本文以 KiCad v6.0 設計一個簡單的 MM32F5277E9PV 的開發板為例,通過原理圖講述 MM32F5 硬件系統設計,中間會提到一些電路設計中遇到的問題,供大家參考。
最小系統設計
最小系統是 MM32F5 能夠工作的電路設計,包括 MM32F5 系列的芯片,去耦電容,復位電路,外部時鐘電路(可選)以及電源。
元件繪制
首先,我們需要繪制一個名為 MM32F5277E9PV 的元件,繪制元件的信息來自于該芯片的產品手冊,可在靈動官網中查看。
在 “引腳定義及復用功能” 章節中,通過引腳分布圖可以直觀看到不同封裝芯片的引腳分布情況(圖1),或者是通過引腳定義表,查看引腳功能和序號。
圖1 MM32F5270 LQFP144封裝引腳排布
不同用戶對 MCU 元件的繪制方法有所不同,較大的器件甚至可以繪制成多個單元,從而能在一張原理圖中放下整個器件。
本文介紹一種繪制方法,規則如下:
1. 元件以單個矩形表示,引腳分布在矩形的左右兩邊。
2. 電源引腳集中放置在左上角,VDD 在上,VSS 在下。
3.GPIO 引腳在右側放置,且按照 PORT 順序排列,不同 PORT 中間間隔一個引腳位置,若右側放置數量過多,可適當將部分 GPIO 放置在左側。
4. 復位引腳在矩形左側繪制,其位置在電源引腳的下面,GPIO引腳的上面。
元件繪制如圖所示,由于繪制的元件較長,分成三張圖片表示(圖2,圖3,圖4):
圖2 MM32F5277E9PV 元件符號 part A
圖3 MM32F5277E9PV 元件符號 part B
圖4 MM32F5277E9PV 元件符號 part C
當然,這種畫法也存在一定的問題,A4 大小的原理圖需要紙張豎向才能放得下,一般使用的話都調整成 A3 大小繪制。
元件繪制有一些建議:
1. 不建議按照芯片形狀繪制,否則一個大矩形,中間空著,浪費原理圖空間不說,看著也并不舒服。
2. 引腳按照功能分類,方便索引,如上面提到 GPIO 引腳在右側放置,且按照 PORT 順序排列,并沒有按照引腳順序排列,這樣方便查找指定功能的引腳。
總之,原理圖的第一需求是讓用戶看得懂,看著舒服,其次才是讓機器明白電路之間的關系,因此繪制元件時,也需考慮怎么才能讓用戶看著舒服,再將元件繪制完整。
去耦電容
幾乎每個器件的電源附近都要放置一個容值為 100nF 左右的去耦電容,來提高系統的穩定性。在此推薦,每個VDD 附近都要就近放置一個 100nF 的去耦電容。MM32F5277E9PV 有11個 VDD 引腳,1個 VDDA 引腳,一個 VBAT 引腳,一個 VREF+ 引腳,因此需要放置14個去耦電容(圖5)。
當然,本文的目標是設計一款簡單的開發板,對 ADC 的需求沒有那么嚴格,因此 VDDA 以及 VREF+ 與 VDD 使用同樣的電源,若有對 ADC 嚴格要求的場景,需額外使用更加穩定的基準電源,來保證 ADC 的正常工作。同樣的,如果有 RTC 需求,VBAT 也需額外處理。
圖5 去耦電容
復位電路
產品手冊中有對復位 電路的描述(圖6):
圖6 手冊中的復位電路
通過產品手冊可知,為保證系統穩定工作,建議在復位引腳添加一個上拉電阻,和一個接地的電容。作為一個開發板,方便調試,再加上一個按鍵,方便復位(圖7)。
圖7 原理圖:復位電路
外部時鐘
MM32F5277E9PV 內置經出廠調校的 8MHz 高速 RC 振蕩器,在一些簡單的場合,無需再添加外部晶振,但即使是經出廠調教過,RC 振蕩器提供的時鐘依然存在誤差,對于高精度要求的場合,比如說 USB,尤其是產品在進行 USB 認證時,對時鐘精準度要求極高,此時就需要使用外部晶振提供更加精確的時鐘來源了。
常見的外部晶振頻率一般有 8MHz 和 12MHz,還有32.768KHz 的晶振作為外部低速時鐘來源,用于 RTC。如果有 USB 需求的用戶,外部高速時鐘建議使用 12.000MHz 的晶振,注意12后面有小數點帶三個零,比單純的 12MHz 晶振更精確,這樣才能給 USB 提供更精確的時鐘。
如圖所示(圖8),本文采用 12MHz 晶振作為外部高速時鐘來源,22pF的負載電容,510K 的反饋電阻。
圖8 原理圖:外部高速時鐘晶振
本文要設計的開發板無 RTC 需求,因此不再放置 32.768KHz 晶振。若有 RTC 需求的用戶,可參照 12MHz 晶振的規則,注意選擇好負載電容的容值即可。
電源
前文的圖片中已經可以看到,存在兩種不同的電源:VMCU 和 VCC3,VMCU 是用于測量 MCU 功耗而單獨設計的電源,實際與 VCC3 導通(圖9)。
圖9 原理圖細節:VCC3 和 VMCU 的關系
MM32F5277E9PV 具有較寬的電壓范圍,支持2.0V ~ 5.5V 供電,但實際電路中,需要考慮外圍器件的工作電壓,比如稍后介紹的 QSPI Flash,就只能在 2.7V~ 3.6V 左右的電壓下工作,綜合考慮,在實際電路中,VCC3 的電壓選擇為3.3V。
本文設計的開發板供電來源為 USB 供電,開發板帶有兩個 TYPE-C 接口,存在兩路 USB 電源,為防止電流倒灌,需使用過二極管隔離。
完整的電源原理圖如圖所示(圖10):
圖10 原理圖:電源
還有個VLCD?這一路是單獨給 LCD 屏這個吃電大戶提供的,開發板選擇使用 XC6206 LDO 作為電源芯片,考慮到可提供的電流較小,因此放置兩路 LDO,且 LCD 單獨供電,避免電流較大,LDO 吃不消。
為什么兩個 LDO 不并聯放置?考慮到的一個問題是兩個 LDO 總會存在少許差異,如輸出電壓不一致,若并聯放置,則可能其中一個 LDO 在拼命干活, 另個 LDO 在那閑著,那放置兩個 LDO 就沒有什么意義了。
外設器件設計
最小系統有了,MCU 就能夠正常工作了,但沒有外圍器件,MCU 就是一個光桿司令,你甚至感受不到 MCU 已經運行起來了,除非讓它以最大功耗工作,過好一會后,能感受到 MCU 有一丟丟的溫熱。
那么,就加一丟丟細節,豐富下這個最小系統吧,下面將講述幾個外設的電路設計:
USB 轉串口
串口是一個常用的好東西,簡單實用,加一個 USB 轉串口的器件,方便用戶在電腦上查看 MCU 的工作日志唄。
原理圖放上(圖11):
圖11 原理圖:USB 轉串口
大多數用戶使用串口時,習慣使用 PA9 & PA10 作為調試用的串口引腳,同時具有 ISP 下載程序的功能,但當使用 USB 功能時,PA9 & PA10 會被占用,因此建議使用 PB6 & PB7 引腳作為調試用串口引腳,也具有 ISP 下載功能,且不會被 USB 占用,豈不美哉?
有一個細節(圖12),我見過一些板載 USB 轉串口的方案,都沒有考慮一個問題:串口芯片一般工作在 USB 提供的 5V 電壓下,TXD 輸出的高電平也是 5V 電壓,而 MCU 以及其它外設,是工作在 3.3V 電壓下的,如果沒有隔離,會影響其他器件的正常工作,因此需要在串口引腳之間,加入肖特基二極管,起到隔離的作用。當然,MCU 的 RX 引腳,也要配置成上拉輸入才行。
圖12 原理圖細節:隔離二極管
分析下電路,USB 轉串口的 TXD 如果輸出高電平,二極管左側電壓高于右側,二極管截止,MCU 的 RXD 配置為上拉輸入,默認為高電平,因此可以接收到 USB 轉串口發出的高電平信號;USB 轉串口的 TXD 如果輸出低電平,二極管左側電壓低于于右側,二極管導通,MCU 的 RXD 也因此被拉低,接收到了 USB 轉串口發出的低電平信號,數據就這樣傳輸起來了,當然,二極管需要選擇肖特基二極管這種快恢復的二極管,避免丟數據。
需要注意的是,USB 轉串口芯片要根據手冊描述來決定是否串聯阻抗匹配電阻,否則會造成芯片無法正常工作。
QSPI Flash
MM32F5 系列的一大優勢就是具有 QSPI 接口,可以連接 QSPI Flash,并且 XIP 執行 QSPI Flash 中存儲程序。
原理圖放上(圖13):
圖13 原理圖:QSPI Flash
一個芯片加了好多電阻,其實很多是冗余的,為了適配更多的 SPI Flash 芯片,我們來一一分析下:
以 IO2 和 IO3 引腳的上拉電阻為例,這兩個引腳可能會被復用為 HOLD 引腳和 WP 引腳,當這兩個引腳處于低電平時,QSPI Flash 芯片就不能隨心所欲的使用了,因此,建議手動拉高這兩個引腳,防止 QSPI Flash 不能正常使用。當然,在做產品時,可以省略這些上拉電阻,先將IO2 和 IO3 連接的 GPIO 配置為推挽輸出模式,輸出高電平,待將 QSPI Flash 配置為四線模式時,再將這兩個 GPIO 恢復為 QSPI 模式,操作 QSPI Flash。
原理圖中的 0R 電阻,其實阻值并不是 0R,而是需要根據 QSPI Flash 的阻抗特性,匹配相應的匹配電阻,以 W25Q 系列芯片為例,建議將 0R 電阻替換為 22R 或 33R 的電阻(僅供參考),否則在四線模式下,讀寫的數據可能會出錯,其它 QSPI Flash 如 FM25Q系列芯片實測 0R 電阻也可用,但實際應用過程中,需根據芯片手冊和實際場景,來更換匹配電阻的阻值。
SRAM
使用 QSPI Flash 擴展了 MM32F5277E9PV 的 Flash 大小,何不再擴展下它的 SRAM 呢?
常見的 SRAM 芯片有 SRAM 和 PSRAM 兩種,PSRAM 其實是 DRAM 加控制器實現的,對外的接口和 SRAM 無差,但成本會比 SRAM 低不少,感興趣的用戶可以了解下。
放原理圖(圖14):
圖14 原理圖:片外 SRAM
原理圖沒什么好講的,把線連起來就行,重點是 PCB 布線,SRAM 走的是并行信號,并且信號頻率也挺高的,需要考慮下線路的問題了:
1. PCB 布線是否等長?
2. 信號線過孔數量是否過多?
布線要等長,這一條其實挺難實現的,如果沒特別要求,在實際布線中,只要別差個十萬八千里,也沒啥大問題,調整 FSMC 的工作參數,別讓它工作的太快也能用起來,當然,這樣的話性能肯定會受影響,就需要綜合考慮情況了。
過孔其實挺煩人的,每增加一個過孔,就相當于在信號線上加了個數皮法的電容,信號質量肯定會受影響,因此,要減少過孔數量,實測兩三個沒啥問題,但過孔多了,還是得擔心信號質量問題了。
LCD
同 SRAM 一樣,LCD 也是使用 FSMC 驅動,當然,SPI 也可以,但有 FSMC,為什么還要用 SPI 慢悠悠刷屏呢?
放原理圖(圖15):
圖15 原理圖:LCD
信號線也沒什么多講的,接上就行,需要注意幾點:
1. 同 SRAM 一樣,注意信號線要盡可能等長,過孔數量盡可能少。
2. LCD_RS 可接 FSMC 任意一根地址線,但軟件要根據所接的地址線,來決定向哪個地址讀寫數據。
3.LCD_RST 接任意 GPIO,該 GPIO 配置為普通的推挽輸出即可,與 FSMC 無關。
需要看的就是這個 LCD 的背光控制了,LCD 背光來自于 LED,由于工作電流較大,不能單純使用限流電阻草草了事,而應該使用三極管進行電流控制,LCD_BL 同 LCD_RST 一樣,接任意 GPIO,該 GPIO 配置為普通的推挽輸出即可,與 FSMC 無關,當然,如果想實現屏幕亮度控制的話,可用帶定時器 PWM 輸出的引腳作為背光控制,使用 PWM 波控制屏幕亮度。
結語
本文通過設計一個 MM32F5277E9PV 開發板的原理圖講解下 MM32F5 的硬件系統設計,以及分享下設計電路中遇到過的坑,比如說 USB 轉串口的問題,一個是 USB D+ & D- 不加串聯電阻,一個是串口電流倒灌,都是本文作者切身實際踩過的坑,希望大家設計電路時,能夠注意到這些問題,減少 PCB 打樣的次數,也希望能有更多的人,選擇使用 MM32F5 系列的芯片,做出更多更有趣的產品。
審核編輯:劉清
-
去耦電容
+關注
關注
11文章
316瀏覽量
22472 -
復位電路
+關注
關注
13文章
322瀏覽量
44707 -
MM32F5
+關注
關注
0文章
12瀏覽量
536 -
MM32
+關注
關注
1文章
106瀏覽量
808
原文標題:靈動微課堂 (第228講) | MM32F5 硬件系統設計
文章出處:【微信號:MindMotion-MMCU,微信公眾號:靈動MM32MCU】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論