航順芯片HK32F030M復用SWD為通用GPIO
關于航順HK32F030MHK32F030M簡介
HK32F030M 系列使用 ARM® CortexTM-M0 內(nèi)核
最高工作頻率 32MHz, 內(nèi)置 16K-ByteFLASH、 448-Byte EEPROM 和 2-KByte SRAM。
并且號稱引腳兼容STM8S003F3P6,對比圖如下:
而且HK32F030M還提供了一個跟STM8S類似的BEEP功能,也在PD4引腳。
但是,想要直接轉換到現(xiàn)有的板子上是有條件的,根據(jù)數(shù)據(jù)手冊提供的信息來看,有幾點區(qū)別:
HK32F030M供電范圍1.8V~3.6V,STM8S供電范圍2.9V-5.5V,如果板載MCU供電是5V的話,就無法直接替換了
HK32F030M使用SWD燒錄程序,SWD需要SWDIO-SWCLK-NRST三個信號,而SWIM是串行單線調(diào)試,僅需一根SWIM信號線,無法使用原先板載的SWIM接口燒錄程序。
總結來看,想要無縫切換,需要先在Demo板上調(diào)試好HK32F030M的軟件,使用Scoket燒錄好程序,再貼裝。
HM32F030M和HM32F031M有什么不同
0301M可以堪稱030M的升級版,主要體現(xiàn)在:
0301M的主頻更高,達到48M,對于一些電機控制應用而言,可以達到更高的精度
0301M有18個可用的GPIO,把030M上NRST和VCAP這兩個引腳都用起來了
同時,航順為這兩個系列的MCU提供了,兩套庫。
HK32F030M復用SWD為通用GPIO
AF外設功能映射
對于引腳功能復用HK32的設置方法和STM32類似,使用一個類似AF的寄存器進行功能切換。
使用AF功能寄存器,完成了不同外設功能在當前引腳的映射。
IOMUX引腳功能多重映射
HK32F030M還提供了一個叫引腳功能多重映射IOMUX的外設,對于 TSSOP16/SO8N 產(chǎn)品 HK32F030M 通過 IOMUX 引腳功能多重映射控制器,實現(xiàn)了單根引腳對應多個 GPIO 或外設 IO 的映射控制。
例如下圖中第 8 腳,芯片初始復位后其功能為“PD5(及 SYSCFG 配置中對應的外設 IO)”;通過配置 IOMUX 寄存器可以將第 8 腳功能重映射到 PD3(及 SYSCFG 配置中對應的外設 IO)、 PD1(及 SYSCFG 配置中對應的外設 IO)或 PC6(及 SYSCFG 配置中對應的外設 IO)。
通過 IOMUX 配置, SO8N/SOP8 封裝產(chǎn)品仍然可以靈活使用 18 個 GPIO 以及片內(nèi)所有外設 IO 功能。
SWD映射為普通GPIO
MCU上電復位后PD5和PB5分別作為SWDIO和SWCLK用于調(diào)試功能,當我們想把這兩個IO作為普通GPIO來使用時,通過配置AF寄存器是無法實現(xiàn)的,必須使用IOMUX來實現(xiàn)GPIO和SWD(SWDIO和SWCLK)之間的切換。
可以通過以下代碼片實現(xiàn)這一操作:
總結一下,關于很多人說國產(chǎn)的MCU坑很多這個問題,我覺得大部分答案都可以在數(shù)據(jù)手冊和用戶手冊上找到相應的答案。他敢拿出來賣,說明基本功能都是經(jīng)過嚴格驗證過的,無非就是使用體驗的問題,而使用體驗是跟資料的豐富程度掛鉤的,這一點正是國產(chǎn)廠家所欠缺的,資料非常不完善;旧,有任何問題只有數(shù)據(jù)手冊和用戶手冊可以看,至于應用手冊啊啥的。。。。。
所以,官方的例程庫就顯得十分重要了,基本能解決初次使用所碰到的90%的問題,比如SWD映射為GPIO的問題,數(shù)據(jù)和用戶手冊完全沒有提到,但是在例程庫里有詳細的代碼說明整個配置過程。
只要資料完善,我覺得使用體驗還是很不錯的。畢竟內(nèi)核是從ARM買的,廠家也就做了一些外設的定制,改來改去,無非就是寄存器換了個名字,弄個IOMUX這種看似很奇怪的東西,其實這種東西STM32也有,只不過我們習慣了STM32的用法和資料罷了。
編輯:zzy 最后修改時間:2022-05-12