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