周立功教授新書《面向AMetal框架與接口的編程(上)》,對AMetal框架進行了詳細介紹,通過閱讀這本書,你可以學到高度復(fù)用的軟件設(shè)計原則和面向接口編程的開發(fā)思想,聚焦自己的“核心域”,改變自己的編程思維,實現(xiàn)企業(yè)和個人的共同進步。經(jīng)周立功教授授權(quán),即日起,致遠電子公眾號將對該書內(nèi)容進行連載,愿共勉之。
第一章為AM824-Core 開發(fā)套件,本文為 1.3 開關(guān)矩陣(SWM)和1.4 AM824-Core。
1.3 開關(guān)矩陣(SWM)
>>> 1.3.1 SWM 簡介
如圖1.4 所示的開關(guān)矩陣(Switch Matrix)是NXP 公司新推出的在MCU 中集成的一個非常有特色的外設(shè)功能,通過開關(guān)矩陣可以將芯片內(nèi)部所有數(shù)字外設(shè)功能引腳分配到除電源、地之外的任意引腳,從而提高了設(shè)計的靈活性。
圖1.4 SWM 功能示意圖
由于開關(guān)矩陣的存在,因此可以將LPC824 的外設(shè)功能引腳信號分為固定功能信號和可分配數(shù)字信號,其對應(yīng)的外設(shè)功能如下:
-
固定功能信號
GPIOx 、RESET、VDDCMP、ACMP_I1~ACMP_I4 、ADC_0~ADC_11、SWDIO、SWCLK、XTALIN、XTALOUT、CLKIN,以及標準I2C 開漏引腳I2C0_SDA 和I2C0_SCL,這些功能引腳都是固定在芯片外部某個管腳位置,不能通過 SWM 分配到其它外部管腳。
-
可分配數(shù)字信號
USART0、USART1、USART2、SPI0、SPI1、CTIN、CTOUT、I2C1、I2C2、I2C3、ACMP_O、CLKOUT,這些信號可以通過 SWM 分配到除電源/地以外的任意外部管腳。
>>> 1.3.2 SWM 應(yīng)用
由于MCU 的部分數(shù)字外設(shè)可以根據(jù)需要分配到芯片其它引腳,因此將大大簡化用戶的設(shè)計。即:
(1)系統(tǒng)硬件設(shè)計時,以外圍器件布局及PCB 布線為主導(dǎo),不用考慮信號的管腳位置,幫助緩解PCB 走線擁擠,降低開發(fā)成本;
(2)更換系統(tǒng)外圍器件或主控制器時,避免更改硬件設(shè)計,降低維護成本;
(3)分配多個功能到同一個引腳實現(xiàn)特殊功能(謹慎使用)。
下面我們以實際應(yīng)用中幾個小案例來實際體驗一下SWM 的特點。
1. 解決硬件設(shè)計錯誤
用戶電路設(shè)計過程中,經(jīng)常會出現(xiàn)一些意外的錯誤,比如串口主機和設(shè)備的TXD 引腳對應(yīng)連接(實際應(yīng)交叉連接),導(dǎo)致PCB 需要重新設(shè)計,增加產(chǎn)品的設(shè)計成本,如果主控制器支持SWM 功能,即便PCB 設(shè)計錯誤,也可以在不修改硬件的前提下保證功能正常。
圖1.5 解決硬件設(shè)計錯誤問題
如圖1.5(a)所示是MCU 驅(qū)動SPI Flash 的應(yīng)用電路,但是可以發(fā)現(xiàn)此電路設(shè)計錯誤,SPI Flash 的MOSI/MISO 引腳和MCU 對應(yīng)引腳應(yīng)該直接相連,而實際電路中采用交叉連接,因此該電路無法直接使用。如果圖1.5(a)中的MCU 是LPC824,則可以靈活的通過SWM來實現(xiàn)SPI 外設(shè)引腳功能信號的重新分配,不用重新設(shè)計硬件而解決問題,詳見圖1.5(b)。
2. 簡化外圍設(shè)計
系統(tǒng)應(yīng)用中不同電壓信號的通信問題是經(jīng)常遇到的,比較常見的是3.3V 系統(tǒng)和5V 系統(tǒng)兼容問題,例如3.3V 系統(tǒng)產(chǎn)品通過串口和5V 系統(tǒng)產(chǎn)品通信,就要求TXD 和RXD 引腳之間經(jīng)過電平轉(zhuǎn)換才能可靠通信。
LPC824 的電源供電范圍是1.8 V~3.6 V,通常工作在3.3V 電源環(huán)境中,如果使用LPC824 為核心的產(chǎn)品需要支持5V 串口通信,則LPC824 的串口通信接口TXD 和RXD 均需要經(jīng)過處理才能與外部5V 系統(tǒng)相連接,這部分電路可以通過多個分立器件或者電平轉(zhuǎn)換芯片完成電平轉(zhuǎn)換,這樣既增加了設(shè)計復(fù)雜性又增加設(shè)計成本。但是LPC824 的第8、第9 引腳是標準開漏結(jié)構(gòu)的引腳(默認I2C0 的I2C0_SDA 和I2C0_SCL 引腳分配在該引腳),實際應(yīng)用中可以通過SWM 將UART 的TXD 和RXD 分配到這兩個引腳位置上,通過外接上拉電阻到5V 電源直接實現(xiàn)5V 電平的兼容,可以很好地簡化外圍設(shè)計實現(xiàn)相應(yīng)功能,詳見圖1.6。
圖1.6 SWM 的靈活應(yīng)用
1.4 AM824-Core
AM824 開發(fā)套件包括AM824-Core 和MiniCK100 仿真器,如圖1.7 所示為AM824-Core的示意圖,MCU 為NXP 半導(dǎo)體的LPC824M201JHI33,包括2 個MiniPort 接口、1 個MicroPort接口和1 個2×10 擴展接口。這些接口不僅將MCU 的所有I/O 資源引出,還可以借助MiniPort 接口和icroPort 接口外擴多種模塊。片上資源包括2 個LED 發(fā)光二極管、1 個無源蜂鳴器、1 個加熱電阻、1個LM75B 測溫芯片、1 個熱敏電阻、1 個TL431 基準源、1個多功能獨立按鍵和1 個復(fù)位按鍵,可以完成多種基礎(chǔ)實驗。
圖1.7 AM824-Core 開發(fā)板接口分布
AM824-Core 的出現(xiàn)簡化了用戶的硬件設(shè)計,使得學習LPC824 系列MCU 的難度大大降低,可以幫助初學者快速掌握基于32 位Cortex?-M0+內(nèi)核微控制器的應(yīng)用開發(fā)。
>>> 1.4.1 電源電路
1. 系統(tǒng)電源
AM824 通過5V 的USB 供電,需要將電壓轉(zhuǎn)為3.3V 給LPC824 使用。為了實現(xiàn)5V 到3.3V 的轉(zhuǎn)換,AM824 選用了美國EXAR 半導(dǎo)體公司的SPX1117M3-L-3.3V 電源管理器件。其輸入電壓為4.7V~10V,最大輸入電流可達800mA,且負載為800mA 時典型壓差為1.1V。
SOT223 封裝的SPX1117M3-L-3.3V 的典型應(yīng)用電路詳見圖1.8,芯片的輸入和輸出端分別接了兩個濾波電容,通過濾波電容保障電壓的穩(wěn)定減少毛刺干擾。
圖1.8 LDO 典型應(yīng)用電路圖
AM824-Core 留有一個標準的Micro-USB 接口,大家平時可以在手機、移動充電寶等設(shè)備上看到該接口。因為LPC824 不支持USB 通信功能,所以該接口主要用于供電,可通過手機充電器或者電腦等設(shè)備提供5V 電源。
Micro-USB 是一種USB2.0 標準接口,是Mini-USB 的下一個版本。其特點如下:
-
Micro-USB 連接器比標準USB 和Mini-USB 連接器更小,節(jié)省空間;
-
具有高達10000 次的插拔壽命和強度;
-
盲插結(jié)構(gòu)設(shè)計;
-
兼容USB1.1 (低速:1.5Mb/s,全速:12Mb/s) 和USB 2.0(高速:480Mb/s);
-
同時提供數(shù)據(jù)傳輸和充電。
2. 基準源電路
AM824-Core 開發(fā)板板載的基準源芯片是TL431,是一種常用的可控精密穩(wěn)壓源。其主要特點如下:
-
可編程輸出電壓:2.5V~36V;
-
電壓參考源誤差:典型+/-0.4%@25℃;
-
低動態(tài)輸出阻抗,典型為0.22Ω;
-
1.0mA 到100mA 的灌電流能力。
TL431 輸出2.5V 基準電壓的電路詳見圖1.9,其中的R13 為限流電阻,可以保證輸入到TL431 的灌電流在1~100mA 以內(nèi)。
圖1.9 基準源電路
>>> 1.4.2 最小系統(tǒng)
LPC824 微控制器的最小系統(tǒng)電路主要包括復(fù)位電路和時鐘電路兩部分,詳見圖1.10。由于LPC824 芯片內(nèi)部集成了一個IRC 時鐘,因此外部的時鐘電路可以省略。
圖1.10 最小系統(tǒng)電路
當系統(tǒng)要求提供更精準的時鐘信號時,則可以使用外部時鐘電路,推薦的時鐘電路采用12MHz 外部晶振與電容C9 和C11 一起構(gòu)成振蕩回路。
>>> 1.4.3 復(fù)位與調(diào)試電路
1. 復(fù)位電路
-
內(nèi)部復(fù)位電路
如果要求不高,比如,直接驅(qū)動LED 數(shù)碼管和鍵盤掃描電路,則可以選用內(nèi)部復(fù)位電路?;蛘吒蓴_并不嚴重的場合,也可以選用內(nèi)部復(fù)位電路。
-
RC 復(fù)位電路
計算機系統(tǒng)都有邏輯電路,而在電源上電時,一些邏輯電路的狀態(tài)是不可預(yù)測的。所以若要使數(shù)字設(shè)備或計算機正常工作,在上電時必須要使系統(tǒng)中所有邏輯電路的輸出處于指定的高或低狀態(tài),這就是復(fù)位電路的作用。復(fù)位電路能使設(shè)備在剛上電時,且電源電壓穩(wěn)定后,自動產(chǎn)生一個具有一定寬度的高或低電平的脈沖信號。
利用電容的充放電延時原理可產(chǎn)生上電時MCU 所需的復(fù)位脈沖信號,如圖1.11 所示為產(chǎn)生低電平復(fù)位信號的電路原理圖。在圖1.11 中,MCU 上電時,由于電容C 兩端的電壓VC 不能突變,因此VC 保持低電平。但隨著電容C 的充電,VC 不斷上升,上升曲線詳見圖1.11。只要選擇合適的R 和C,VC 就可以在MCU 復(fù)位電壓以下持續(xù)足夠的時間使MCU 復(fù)位。復(fù)位之后,VC 上升至電源電壓,MCU開始正常工作。相當于在MCU 上電時,自動產(chǎn)生了一個一定寬度的低電平脈沖信號,使MCU 復(fù)位。
圖1.11 RC 復(fù)位電路圖
如圖1.12 所示為AM824-Core 的RC 復(fù)位電路,其中,D2 的作用是在電源電壓消失時為電容C1 提供一個迅速放電的回路,使復(fù)位端的電壓迅速回零,以便下次上電時能可靠地復(fù)位。短接J8 之后,也可以通過復(fù)位按鍵實現(xiàn)人工復(fù)位。
圖1.12 復(fù)位電路
2. 調(diào)試電路
AM824-Core 將SWD 調(diào)試接口引出。相對于JTAG 調(diào)試模式來說,SWD 調(diào)試模式速度更快且使用的I/O 口更少,因此AM824-Core 開發(fā)板引出SWD 調(diào)試接口,其參考電路詳見圖1.13,具體引腳功能介紹詳見表1.5。
圖1.13 調(diào)試電路
表1.5 調(diào)試管腳說明
>>> 1.4.4 板載外設(shè)電路
1. LED 電路
AM824-Core 開發(fā)板板載了兩路LED 發(fā)光二極管,可以完成簡單的顯示任務(wù),電路詳見圖1.14,引腳標號GPIO_LED0、GPIO_LED1 對應(yīng)PIO0_8、PIO0_9,LED 為低電平有效(低電平有效)。LED 電路的控制引腳與微控制器的I/O 引腳通過J9 和J10 相連。電路中的R3 和R4 為LED 的限流電阻,選擇1.5kΩ這個值可以避免LED 點亮時過亮。
圖1.14 板載LED 電路
2. 蜂鳴器電路
為了便于調(diào)試,AM824-Core 設(shè)計了蜂鳴器驅(qū)動電路,詳見圖1.15,引腳標號PIO_BEEP對應(yīng)PIO0_2。AM824-Core 開發(fā)板使用的是無源蜂鳴器,D1 起保護三極管的作用,當突然截止時無源蜂鳴器兩端產(chǎn)生瞬感應(yīng)電動勢可以通過D1 迅速釋放掉,避免疊加到三極管集電極上從而擊穿。若使用有源蜂鳴器則D1 不用焊接。當不使用蜂鳴器的時候也可以用J7 斷開蜂鳴器電路與I/O 口的連接。
圖1.15 板載蜂鳴器電路
3. 加熱電阻與按鍵電路
AM824-Core 開發(fā)板創(chuàng)新性的設(shè)計了一套測溫實驗電路。包含加熱電路和數(shù)字/模擬測溫電路。其中加熱電路采用了一個阻值為20~50Ω的功率電阻(2W),通過按鍵來控制,詳見圖1.16,引腳標號GPIO_KEY 對應(yīng)PIO0_1。電阻越小通過其電流越大,產(chǎn)生的熱量越大,因此R32若焊接小電阻時,不宜加熱時間過長。按鍵的功能需要用J14 上的跳線帽來選擇為加熱按鍵。當按鍵按下時電路導(dǎo)通,電阻上產(chǎn)生的熱量會導(dǎo)致電阻周圍的溫度上升,這時可以通過測溫電路觀察溫度上升情況。
圖1.16 加熱電路
4. 數(shù)字測溫電路
AM824-Core 選擇LM75B 作為數(shù)字測溫電路的主芯片,LM75B 與LM75A 完全兼容,只是靜態(tài)功耗會稍低一些,電路詳見圖1.17,引腳標號PIO_SDA、IO_SCL 對應(yīng)PIO0_11、PIO0_10。LM75B 是一款內(nèi)置帶隙溫度傳感器和Σ-Δ模數(shù)轉(zhuǎn)換功能的溫度數(shù)字轉(zhuǎn)換器,它也是溫度檢測器,并且可提供過熱輸出功能。
圖1.17 LM75B 電路
LM75B 的主要特性如下:
-
溫度精度可達0.125℃的精度;
-
較寬電源電壓范圍:2.8V~5.5V;
-
環(huán)境溫度范圍:Tamb=-55℃~+125℃;
-
較低的功耗,關(guān)斷模式下消耗的電流僅為1μA;
-
I2C 總線接口,同一總線上可連接多達8 個器件。
在電路設(shè)計上,R5 和R6 是I2C 總線的上拉電阻。由于板載只有一片LM75B,不用考慮芯片的地址問題,因此芯片的A0~A2 引腳可以直接接地。OS 為芯片的過熱輸出,可以外接繼電器等器件實現(xiàn)一個獨立溫控器的功能,這里由于溫控是通過單片機控制的,因此這個引腳可以不使用。
5. 模擬測溫電路
模擬測溫電路是利用熱敏元件的電特定隨溫度變化的特點進行測量,AM824-Core 開發(fā)套件選擇了熱敏電阻作為測溫元件,熱敏電阻選用的是MF52E-103F3435FB-A,當測溫范圍在0~85℃,電阻變化范圍為27.6~1.45KΩ。測溫電路詳見圖1.18,引腳標號PIO_ADC 對應(yīng)PIO_14,其采用的是簡單的電阻分壓電路,其中C8 是為了電路輸出更加穩(wěn)定。單片機通過ADC 采集分壓電阻上的電壓值,當溫度變化時,熱敏電阻的阻值發(fā)生變化,單片機采集到的ADC值也會發(fā)生變化。通過計算得到熱敏電阻的阻值,再對比熱敏電阻阻值與溫度的對照表,就可以得到當前的溫度值。
圖1.18 熱敏電阻電路
>>> 1.4.5 跳線帽使用
板載外設(shè)接口設(shè)計在MCU 引腳和板載外設(shè)電路之間,可以通過跳線帽進行短接,詳見圖1.19。這樣設(shè)計是為了外設(shè)電路在不使用的時候可以斷開與MCU 引腳的連接,而不會影響到這些引腳當作其它功能使用,詳見表1.6。
圖1.19 板載外設(shè)接口引腳圖
表1.6 板載外設(shè)接口管腳說明
>>> 1.4.6 MiniPort 接口
MiniPort(2×10)接口是一個通用板載標準硬件接口,通過該接口可以與配套的標準模塊相連,便于進一步簡化硬件設(shè)計和擴展。其特點如下:
-
采用標準的接口定義,采用2×10 間距2.54mm 的90°彎針;
-
可同時連接多個擴展接口模塊;
-
具有16 個通用I/O 端口;
-
支持1 路SPI 接口;
-
支持1 路I2C 接口;
-
支持1 路UART 接口;
-
支持一路3.3V 和一路5V 電源接口。
標準MiniPort(2×10)接口功能說明詳見圖1.20,MiniPort(2×10)接口使用的連接器為2.54mm 間距的2×10 排針/排母(90°),其封裝樣式詳見圖1.21。主控制器底板選用90°排針,功能模塊選用90°排母與主機相連,同時采用90°排針將所有引腳引出,實現(xiàn)模塊的橫向堆疊。
圖1.20 MiniPort(2×10)接口功能說明
圖1.21 MiniPort(2×10)接口連接器
MiniPort 的90°排針與90°排母之間連接關(guān)系,A1 - B20、A2 - B19……A19 – B2、A20 - B1(A 代表排針,B 代表排母)。MiniPort(2×10)目前支持的模塊為MiniPort-Key、MiniPort-LED、MiniPort-View 和MiniPort-595,這些模塊不僅可以直接插入MiniPort,而且還可以通過杜邦線與其它各種開發(fā)板相連。
AM824-Core 開發(fā)板搭載了2 路MiniPort,接口標號為J3 和J4。J3 與J4 接口引腳完全相同,用戶可根據(jù)習慣選擇使用,其具體的引腳分配詳見表1.7。
表1.7 MiniPort 引腳分配
>>> 1.4.7 2×10 擴展接口說明
LPC824M201JHI33 有33 個引腳,I/O 管腳29 個。由于MiniPort 僅定義了16 個I/O,因此還有部分I/O 未引出。
為了便于擴充外圍接口,因此需要將剩余的引腳全部引出,基于此,還為M824-Core 設(shè)計了一個2×10 擴展接口,不僅將MiniPort 未使用的I/O 引出,還包含了一組電源接口和一個參考源引腳(VREF),詳見圖1.22。
圖1.22 2×10 擴展接口引腳圖
>>> 1.4.8 MicroPort 接口
為了便于擴展開發(fā)板功能,ZLG 制定了MicroPort 接口標準,MicroPort 是一種專門用于擴展功能模塊的硬件接口,其有效地解決了器件與MCU 之間的連接和擴展。其主要特點如下:
-
具有標準的接口定義;
-
接口包括豐富的外設(shè)資源,支持UART、I2C、SPI、PWM、ADC 和DAC 功能;
-
配套功能模塊將會越來越豐富;
-
支持上下堆疊擴展。
MicroPort 分為標準接口和擴展接口,擴展接口可實現(xiàn)更豐富的外設(shè)應(yīng)用,不同的應(yīng)用環(huán)境下可以選擇不同的接口類型。MicroPort 接口使用的連接器為2.54 間距的1×9 圓孔排針,高度為7.5mm,實現(xiàn)上下堆疊連接。MicroPort分為標準接口和擴展接口。MicroPort 標準接口采用U 型設(shè)計,三邊各9 個引腳,共27 個引腳,其引腳功能定義詳見圖1.23。MicroPort 標準接口包含22 個I/O 引腳,最多可實現(xiàn)1 路UART、1 路I2C、1 路SPI、2 路ADC、1 路DAC 和4 路PWM 功能,也可以全部當做普通I/O 使用。MicroPort 標準接口還包含3.3V、5V 電壓引腳和VREF(參考基準源)引腳,以及MCU 的復(fù)位引腳。
圖1.23 MicroPort 標準接口引腳定義
MicroPort 擴展接口是在MicroPort 標準接口的基礎(chǔ)上,在U 型底部增加一排1×9 的引腳,這9 個引腳可以引出SDIO 和USB 擴展接口,也可以當做普通的I/O 使用。對于部分MCU 來說,由于其引腳資源較為豐富,因此可以借助MicroPort 擴展接口支持更多的模塊實現(xiàn)更多的擴展功能,MicroPort 擴展接口增加的引腳定義詳見圖1.24。MicroPort 擴展接口的SDIO 接口為四線式,USB 接口可以支持OTG 模式。
圖1.24 MicroPort 擴展接口增加的引腳定義
AM824-Core 板載1 路帶擴展的MicroPort接口,用戶可以依據(jù)需求,選擇或開發(fā)功能多樣的MicroPort 模塊,快速靈活地搭建原型機。由于LPC824 片上資源有限,還有極少部分MicroPort 接口定義的引腳功能不支持,其相應(yīng)的引腳可以當做普通I/O 使用,AM824-Core 的MicroPort 接口引腳分配詳見表1.8。
表1.8 AM824-Core MicroPort 引腳分配表
在公眾號后臺回復(fù)關(guān)鍵字【編程】,即可在線閱讀《面向AMetal框架與接口的編程(上)》和《程序設(shè)計與數(shù)據(jù)結(jié)構(gòu)》兩本書。
書籍的淘寶購買鏈接如下,可復(fù)制到瀏覽器打開:
【廣州致遠電子官方企業(yè)店】,復(fù)制這條信息¥Ebic03xkccD¥后打開手機淘寶
-
周立功
+關(guān)注
關(guān)注
38文章
130瀏覽量
37665 -
開關(guān)矩陣
+關(guān)注
關(guān)注
0文章
13瀏覽量
3035
原文標題:周立功:開關(guān)矩陣(SWM)和 AM824-Core的應(yīng)用
文章出處:【微信號:ZLG_zhiyuan,微信公眾號:ZLG致遠電子】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論