小巧“摳門”的FTHR-F0140開發板
緣起
工欲善其事,必先利其器。調試和開發MM32F0140這種小巧的芯片,還是需要小巧的板子去適配,搞起來才巴適。
我曾經定義過POKT
(口袋)系列和NANO
(微小型)系列作為低成本微控制器的開發板套件,但POKT
系列的開發板受定義限制,需要把引腳按照編號整整齊齊地引出來,對走線的面積要求較高;而NANO
系列還需要配套擴展板才能引出方便易用的2.54mm間距的排針,這兩套板子在某些情況下,實際應用起來的成本并不低。
今年半導體市場的整體行情不大好,大家做板子用料都比較摳門,為了進一步降低對這種小封裝芯片開發板的成本,我又定義了更輕量級的FTRH
(羽毛)系列開發板。FTHR-F0140
是FTHR
系列的第一塊板子,這個板子上連USB轉UART的CH340E芯片和Type-C的USB插座都省掉了,整塊開發板的尺寸兼容DIP40封裝的8051單片機。如果不是因為F0140微控制器要用到CAN總線接口,可能連這個SOP-8引腳封裝的PHY芯片也省掉。FTHR-F0140
電路板的外觀如圖x所示。當然,這里也要點名感謝我的同事Hao,熟練使用KiCAD幫助我完成了PCB的設計工作。
figure-fthr-f0140-a
圖x FTHR-F0140電路板實物效果圖
到目前為止,主打摳門省錢的FTHR
系列開發板,已經有了3個成員,按照創建的時間順序,分別是FTHR-F0140
、FTHR-F0160
、FTHR-G0140
。如圖x所示。
figure-fthr-boards-a
圖x FTHR系列開發板全家福
其中,FTHR-F0160
(左1)在FTHR-F0140
(右1)基礎上增加了硬件支持的USB Device以及對應的Type-C插座,FTHR-G0140
(左2)在FTHR-F0140
基礎上移除了CAN接口電路,成為了目前FTHR
系列中最摳門的電路板。
硬件電路
使用FTHR-F0140
進行開發,還需要配合調試器(J-Link)、USB轉UART(CH340G模塊)。這個電路系統連起來,如圖x所示。
figure-fthr-f0140-runtime
圖x FTHR-F0140開發板開發場景實物圖
這里使用了標準的JLink,以及轉換成miniJTAG插座的套件。如果開發者手頭上只有各種開源版本的Link調試器,也可以通過2.54mm間距規格的杜邦線從FTHR-F0140開發板的擴展引腳直連至SWD引腳。
主控芯片
FTHR-F0140
開發板使用MM32F0144C4P
微控制器,使用Arm Cortex-M0處理器內核,最高可運行在72MHz主頻,片上集成64KB Flash和8KB RAM,LQFP32封裝,以及眾多的通信類外設、模擬類外設和定時器等。圖x中的表格列出了MM32F0140微控制器的所有選型。
figure-mm32f0140-ps
圖x MM32F0140選型
圖x中展現了MM32F0140微控制器的最小系統,其中包含了復位按鍵的復位阻容電路、晶體振蕩器,以及最簡的電源連線。
figure-sch-mcu-core
圖x MM32F0140最小系統
這里要注意的是,FTHR-F0140
微控制器使用了12Mhz的晶振。因為MM32F0140
微控制器上沒有集成USB外設,所以不強制開發者在設計自己的最小系統時使用 12MHz頻率的晶振(例如,也可以使用8MHz晶振),這里只是選了比較容易備貨的物料而已。
供電系統
FTHR-F0140板子上設計了一個產生3.3V電壓的LDO,可以從外部接收5V的供電,經過LDO轉換成3.3V供給MM32F0140微控制器芯片。但LDO轉換產生的3.3V供電默認是不對板外供電的(在擴展插座上設計了3V3
的引腳),需要短接J3
插座方可。
這個設計的意義在于,考慮到一種特殊的基于CAN總線的應用場景,當需要將微控制器本身的電源域同CAN總線上的電源域進行隔離時(電源干擾相關),可拆掉板子上的LDO,再短接J3
插座,此時微控制器使用的3.3V供電可以通過擴展插座上的3V3
引腳供電,而CAN總線使用自己的5V供電,兩個供電域沒有直接耦合。此時,也可以驗證MM32F0140微控制器在寬電壓供電情況下的工作狀態(不限定是3.3V)。
調試器插座
FTHR-F0140
板子上使用了1.27mm間距的miniJTAG插座,以節約PCB面積,也更精致,這借鑒了一些國際大廠設計開發板常用的做法。但為了適配miniJTAG插座,還需要配套1.27間距的軟排線和對應的轉接電路板,對于非專業開發者來說,也可能是一筆開銷。本著摳門的原則,這里將調試端口需要使用的SWCLK
、SWDIO
、RESET
等信號線引出到擴展插座上。如圖x所示。
figure-sch-debug-swd
圖x FTHR-F0140開發板的調試器接口
LED燈
FTHR-F0140
開發板上集成了2個LED燈:
按鍵
FTHR-F0140
開發板上集成了1個復位按鍵SW1,對應MM32F0140
的硬件復位信號線。無可編程按鍵。
CAN接口電路
FTHR-F0140
開發板上集成了CAN通信PHY芯片的電路,并可通過J2
插座選擇是否由本開發板向CAN總線接入120ohm的電阻。如圖x所示。
figure-sch-can-if
圖x FTHR-F0140開發板上的CAN接口電路
關于CAN接口電路,這里還留了一個巧妙的設計,如果不想焊接PHY芯片(進一步節約成本),但仍想試用CAN總線接口,可以將PHY芯片焊接位上的標記的兩個引腳用焊錫或者0ohm電阻短接起來,此時仍可使用J1插座對外連線。但要注意,此時J1插座上的CANH和CANL已經不是CAN差分信號了,而是CAN_TX
和CAN_RX
,分別對應于MM32F0140的PA10
和PA9
引腳。如圖x所示。
figure-pcb-can-if
圖x FTHR-F0140開發板上CAN接口的直連應用
軟件資源
靈動官方的MindSDK(https://mindsdk.mindmotion.com.cn)已經支持了MM32F0140微控制器,但目前僅有MINI-F0140
這塊板子在官方的支持清單中對應MM32F0140
微控制器。但可以使用MINI-F0140
板子的樣例工程運行在FTHR-F0140
開發板上,因為MINI-F0140
開發板使用的是8MHz的晶振,而FTHR-F0140
開發板使用的是12MHz的晶振,此處需要調整一下clock_init.c
文件中CLOCK_BootToHSE48MHz()
函數中關于配置使用發生器PLL的代碼,指定RCC_PLLCFGR_PLLDN
的值為7
,從而基于12MHz的晶振信號源產生48MHz的主頻。
void CLOCK_BootToHSE48MHz(void)
{
//RCC- >APB1ENR |= (1u < < 28u); /* enable PWR/DBG. */
//PWR- >CR1 = (PWR- >CR1 & ~PWR_CR1_VOS_MASK) | PWR_CR1_VOS(1u); /* 1.65V. */
/* enable HSE. */
RCC- >CR |= RCC_CR_HSEON_MASK;
while ( RCC_CR_HSERDY_MASK != (RCC- >CR & RCC_CR_HSERDY_MASK) )
{
}
/* F_clko = F_refin * N/(M*P), F_refin = 12M. */
RCC- >PLLCFGR = RCC_PLLCFGR_PLLSRC(1) /* (pllsrc == 1) ? HSE : HSI. */
| RCC_PLLCFGR_PLLDN(7) /* N = DN+1. */
| RCC_PLLCFGR_PLLDM(1) /* M = DM+1. */
| RCC_PLLCFGR_PLLDP(0) /* P = DP+1. */
| RCC_PLLCFGR_PLLLDS(1)
| RCC_PLLCFGR_PLLICTRL(3) /* 10uA. */
;
...
}
之后,就可以使用MindSDK中為MM32F0140
微控制器提供的芯片頭文件、啟動代碼、驅動程序,以及海量的樣例工程和多操作系統平臺多工具鏈的支持。
figure-mindsdk-examples
圖x MindSDK中支持MM32F0140微控制器的海量樣例工程
-
接口電路
+關注
關注
8文章
464瀏覽量
57076 -
led燈
+關注
關注
22文章
1592瀏覽量
107950 -
CAN
+關注
關注
57文章
2744瀏覽量
463621 -
開發板
+關注
關注
25文章
5032瀏覽量
97373 -
硬件電路
+關注
關注
39文章
243瀏覽量
29217
發布評論請先 登錄
相關推薦
評論