今日帶來(lái)能夠完美替代STM32的產(chǎn)品是航順的HK32F103VET6和HK32F030M,后者是業(yè)界首顆1元內(nèi)32位MCU產(chǎn)品。
航順芯片2014年成立于深圳,軟硬件全兼容進(jìn)口MCU航順造,作為世界頂級(jí)MCU研發(fā)團(tuán)隊(duì)所打造的通用MCU平臺(tái)級(jí)企業(yè),航順將孵化超過(guò)100+專(zhuān)用領(lǐng)域MCU原廠,打造強(qiáng)大MCU生態(tài)合作航空母艦,繼而深入耕耘孵化扶持航順內(nèi)外部科技青年完成“航順無(wú)邊界科技生態(tài)平臺(tái)萬(wàn)億級(jí)世界偉大企業(yè)戰(zhàn)略夢(mèng)想。
21ic壇友zeshoufx表示,一次偶然機(jī)會(huì)在一個(gè)群里,一位群友發(fā)“ST低成本高性?xún)r(jià)比替代方案”,了解了航順科技,進(jìn)入官網(wǎng)后覺(jué)得是一個(gè)很不錯(cuò)的國(guó)產(chǎn)集成電路公司:因?yàn)樗麄兂俗鯩CU外,存儲(chǔ)、電源、驅(qū)動(dòng)、模擬都有涉及,MCU包括32位和8位,存儲(chǔ)包括spi型flash和EEPROM,電源包括DC-DC,LDO等,驅(qū)動(dòng)主要是LCD驅(qū)動(dòng),模擬器件主要是各種運(yùn)算放大器。
多說(shuō)無(wú)益,直接看幾個(gè)21ic家網(wǎng)友關(guān)于這兩款開(kāi)發(fā)板的測(cè)評(píng):
【技術(shù)文檔】HK32F103VET6點(diǎn)亮LED 用戶(hù):tlled 第一次使用HK32F103VET6的芯片,看芯片資料引腳和功能兼容STM32F103VET6,ST的芯片最近漲價(jià)漲的太離譜了,想測(cè)試下這個(gè)國(guó)產(chǎn)芯片來(lái)替代STM32F103,支持國(guó)產(chǎn)芯片。
在官網(wǎng)申請(qǐng)芯片也沒(méi)有申請(qǐng)到,就在X寶上購(gòu)買(mǎi)了一片。芯片是LQFP100引腳的,發(fā)現(xiàn)購(gòu)買(mǎi)的芯片引腳不是很對(duì)位,還好焊接沒(méi)有短路,上電先跑個(gè)點(diǎn)燈程序。官網(wǎng)也沒(méi)有找到芯片SDK包文件,翻論壇的帖子看到有下載資料的鏈接:https://bbs.21ic.com/icview-3055190-1-2.html
一、安裝軟件包 官網(wǎng)可以下載到IAR和MDK對(duì)應(yīng)pack文件,我使用的是MDK,下載對(duì)應(yīng)的文件。
二、硬件 開(kāi)發(fā)板是自己設(shè)計(jì)的,點(diǎn)燈的硬件端口是PD3和PE0.
三、程序 3.1、GPIO端口應(yīng)用分析
通過(guò)點(diǎn)燈程序來(lái)學(xué)習(xí)HK32F103芯片的GPIO端口的應(yīng)用,通過(guò)HK32F103xCxDxE用戶(hù)手冊(cè)_V1.0.0來(lái)了解下GPIO端口的功能。 GPIO端口的每個(gè)位可以由軟件分別配置成多種模式,可配置的模式有下面內(nèi)容: -- 輸入浮空
-- 輸入上拉
-- 輸入下拉
-- 模擬輸入
-- 開(kāi)漏輸出
-- 推挽式輸出
-- 推挽式復(fù)用功能
-- 開(kāi)漏復(fù)用功能
每個(gè)端口都可以根據(jù)硬件的功能來(lái)配置。
對(duì)應(yīng)的程序部分
我的板子硬件外接的LED燈是上拉電阻到電源正極,可以配置的端口模式為開(kāi)漏輸出或推挽式輸出。
HK32F103芯片的GPIO配置和STM32F103芯片的GPIO配置看資料是一樣的,代碼應(yīng)該可以兼容使用的。
3.2、運(yùn)行一個(gè)簡(jiǎn)單的點(diǎn)燈程序
對(duì)應(yīng)的GPIO口配置為輸出,程序里面我配置為推挽式輸出。 代碼:led.c
#include “l(fā)ed.h”#include “delay.h”void Led_Init(void){ GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD|RCC_APB2Periph_GPIOE, ENABLE); GPIO_InitStructure.GPIO_Pin = LED1_GPIO_PIN; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init(LED1_GPIO_PORT, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = LED0_GPIO_PIN; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init(LED0_GPIO_PORT, &GPIO_InitStructure); LED0_OFF; LED1_OFF;}
代碼:main.c
3.3、選擇開(kāi)發(fā)工具
3.4、程序代碼
HK32F103C8T6_template(Keil v5).rar (4.31 MB, 下載次數(shù): 4)
(下載鏈接:
https://bbs.21ic.com/forum.php?mod=attachment&aid=MTYwNTM3NHxmMGNkODViOXwxNjExMTI1OTQ2fDMwMjk2NTZ8MzA2MTE1Mg%3D%3D)
四、程序執(zhí)行
下載程序后,復(fù)位板卡,開(kāi)發(fā)板上的兩個(gè)LED交替點(diǎn)亮,實(shí)際拍攝視頻轉(zhuǎn)換成GIF圖片,看著效果不是很清晰,還是能夠看出交替點(diǎn)亮過(guò)程。
[HK32F030M]嚴(yán)謹(jǐn)?shù)呐軅€(gè)分,不嚴(yán)謹(jǐn)?shù)恼{(diào)個(gè)皮(頻),附測(cè)試源碼用戶(hù):gddddd 先簡(jiǎn)介一下來(lái)龍去脈,之前用HK32F030M做過(guò)一次CoreMark的跑分,但當(dāng)時(shí)剛?cè)胧中酒€沒(méi)弄清楚狀況,為了適應(yīng)2Kram將CoreMark魔改過(guò)一番,但就是這番魔改導(dǎo)致跑分項(xiàng)目是不完整的,于是最后計(jì)算的分?jǐn)?shù)也就虛高了。
后來(lái)經(jīng)過(guò)測(cè)試發(fā)現(xiàn)其實(shí)HK32F030M也是有4Kram的,也就有了今天的這個(gè)完整也相對(duì)嚴(yán)謹(jǐn)?shù)呐芊殖煽?jī)了,但因?yàn)镠K32F030M本身是沒(méi)有PLL倍頻的,所以高頻時(shí)加上flash等待后的結(jié)果就不如STM32F030來(lái)得順滑了,有深入興趣的壇友可以源碼再細(xì)調(diào)參數(shù)看看,總的來(lái)說(shuō)54Mhz以下可以一戰(zhàn)。 好了話(huà)不多說(shuō)直接上圖看療效,每Mhz得分在1.84左右,比STM32F030的每Mhz得分1.67左右稍微高一點(diǎn)點(diǎn),還是相當(dāng)不錯(cuò)了,性?xún)r(jià)比杠杠的
下面是不嚴(yán)謹(jǐn)?shù)恼{(diào)個(gè)頻,首先需要說(shuō)的是實(shí)際產(chǎn)品應(yīng)用請(qǐng)不要超頻使用,極少數(shù)場(chǎng)合比如對(duì)時(shí)序有較高要求(GPIO模擬低速USB時(shí)的666.6667ns就需要48Mhz的主頻來(lái)實(shí)現(xiàn))可以考慮稍微調(diào)個(gè)皮來(lái)適配。 再就是這款HK32F030M本身沒(méi)有PLL鎖相環(huán)來(lái)倍頻,調(diào)整頻率靠的是RCC_CR中的HSICAL粗調(diào)和HSITRIM細(xì)調(diào),而且調(diào)節(jié)方式也并不是手冊(cè)中提到的粗調(diào)2%和細(xì)調(diào)0.2%,而是一種非線(xiàn)性的比值,我也是靠笨辦法(主要是我懶,用示波器看MCO輸出的話(huà)才會(huì)精確)用串口是否亂碼來(lái)調(diào)節(jié)的頻率,因?yàn)榇诒旧碚`碼率是有范圍的,所以調(diào)節(jié)的結(jié)果當(dāng)然是相當(dāng)?shù)牟粐?yán)謹(jǐn)。
另一個(gè)原因是我手上的幾片HK32F030M出廠的HSICAL都是0x1C,但HSITRIM的值卻有不同,所以這種粗調(diào)加細(xì)調(diào)的方式調(diào)節(jié)主頻也有很大局限性,萬(wàn)一出廠的HSICAL值不為0x1C的話(huà)那就會(huì)有很大頻率偏差。 但有興趣的壇友也可改改參數(shù)玩一玩,我是最高調(diào)整到了108Mhz,得分嘛就呵呵(高頻低能),所以我還是太年輕,太不嚴(yán)謹(jǐn)了,源碼僅供搗鼓玩耍,不要噴我,噴我~我也不負(fù)責(zé)任。 最后上兩張圖,標(biāo)示出了調(diào)整頻率的地方,已經(jīng)設(shè)置了32M、48M、54M、72M、96M、108M幾個(gè)選項(xiàng),需要其他頻率的自己再搗鼓了。
最后說(shuō)說(shuō)這款MCU真的很不錯(cuò),VECT_TAB_OFFSET的設(shè)定很適合做IAP啊,這個(gè)可是CORTEX M0+和M3的功能,EEPROM雖然少點(diǎn)但也很實(shí)用,如果有DMA的話(huà)就吊炸天了。等空了打算研究一下圈圈的USB書(shū),做個(gè)USB方式的IAP那就真香了。
HK32F030MF4P6_UpClock_Demo_coremark-loop.zip (316 KB, 下載次數(shù): 10) (下載鏈接:https://bbs.21ic.com/forum.php?mod=attachment&aid=MTUyODUzMHxmMzhlYWYxN3wxNjExMTI3MjU4fDMwMjk2NTZ8MzAyMDY4Mg%3D%3D) 航順MCU開(kāi)發(fā)入門(mén)及常見(jiàn)問(wèn)題匯總 用戶(hù):ifxz0123 問(wèn)題0、航順(HK)MCU所需的IDE、仿真調(diào)試工具、批量燒錄工具分別是什么?是否有說(shuō)明文檔?
答:開(kāi)發(fā)環(huán)境(IDE):Keil(for ARM)、IAR(for ARM)。凡是開(kāi)發(fā)過(guò)STM8、STM32、STC51的想必對(duì)這兩個(gè)軟件很熟悉,至少也有所耳聞。目前市面上流行的32位ARM架構(gòu)的MCU,大部分用的都是這兩款軟件。 STM8的芯片開(kāi)發(fā)還可以用ST自家的開(kāi)發(fā)工具(IDE)STVD,免費(fèi)的使用。當(dāng)然,還有一些其他的IDE,我沒(méi)用過(guò),這里也就不提了,有興趣的請(qǐng)自行網(wǎng)上搜索。(Keil建議V5版本)。
仿真調(diào)試工具:航順的MCU和ST的32位MCU一樣都是ARM CortexM0、CortexM3的內(nèi)核,所有都是支持SWD調(diào)試接口的,因此ST的32位MCU調(diào)試工具,如J-LINK、U-Link、ST-Link、DAP-Link等都是可以用的。 國(guó)產(chǎn)的其他家的32位的ARM CortexM0/CortexM3的芯片這些仿真調(diào)試工具一般依舊是可以使用的。 批量燒錄工具:目前,好像航順沒(méi)有出自家的批量燒錄器,基本上都是第三方的。
第三方燒錄器清單_20200918.zip (5.57 KB, 下載次數(shù): 10) 航順現(xiàn)在也出了自家的離線(xiàn)批量燒錄器
航順RX-0001離線(xiàn)編程器說(shuō)明書(shū) v1.0.00.pdf (1.34 MB, 下載次數(shù): 2) (請(qǐng)點(diǎn)擊閱讀原文到原貼內(nèi)下載) 補(bǔ)充: HK單獨(dú)的在線(xiàn)燒錄軟件: ST的STVP軟件:只支持同型號(hào)的航順MCU燒錄、讀寫(xiě)FLASH、讀寫(xiě)選項(xiàng)字、以及使能取消讀寫(xiě)保護(hù)等。
JLINK Flash V6.70e:支持航順全系列MCU的燒錄。需要注意的是JLINK驅(qū)動(dòng)必須是6.0以上,并且打了航順MCU的補(bǔ)丁包。
STM32 ST-LINK Utility:(測(cè)試了HK32F030F4P6,代碼正常運(yùn)行)
HK Config:航順32MCU編程配置工具,航順自家出品的燒錄軟件,需要JLINK作為工具,支持航順全系列的MCU。能實(shí)現(xiàn)程序的燒錄、讀、選項(xiàng)字的配置等。
問(wèn)題1、航順和ST同型號(hào)MCU的軟硬件兼容是啥意思?不用改硬件嗎?不用改軟件嗎?ST的程序能直接燒錄到HK的芯片里運(yùn)行嗎?
答:是的,基本不用改硬件電路,基本不需要改動(dòng)軟件代碼,可以直接將ST的程序直接燒錄到HK的芯片里運(yùn)行,因?yàn)楹巾樀男酒瑑?nèi)核是ST的是一樣的,并且寄存器及寄存器地址也是一樣的。
可以用Keil + 仿真器,IAR + 仿真器,把程序燒錄到HK的芯片里。如果下載不成功,請(qǐng)安裝HK的MCU器件庫(kù),并將工程芯片型號(hào)設(shè)置為HK的型號(hào),工程的燒錄算法設(shè)置為HK的燒錄算法,然后編譯、連接、Download。 注意,ST的型號(hào)要和HK的型號(hào)對(duì)應(yīng),舉例STM32F030C8T6 -》 HK32F030C8T6, STM32F103C8T6 -》 HK32F103C8T6。 如果程序直接下載到HK的芯片,上電后運(yùn)行有問(wèn)題,請(qǐng)根據(jù)航順的芯片應(yīng)用筆記對(duì)程序進(jìn)行微調(diào),讓芯片正確工作。
問(wèn)題2、可以使用STM32MxCube開(kāi)發(fā)航順的單片機(jī)嗎? 答:可以的,只要是和ST的MCU軟硬件兼容的同型號(hào)的航順單片機(jī),是可以用STM32MxCube開(kāi)發(fā)的。但是在應(yīng)用中碰到航順應(yīng)用筆記列舉的問(wèn)題是需要手動(dòng)去添加或修改一些代碼,讓航順的正確工作起來(lái)。 目前,航順的F103/F030/F031系列是可以的。 航順的MCU哪些型號(hào)是支持用STM32MxCube開(kāi)發(fā)的呢,請(qǐng)看下圖:(只列舉了部分常用型號(hào))
責(zé)任編輯:xj
原文標(biāo)題:盤(pán)點(diǎn)STM32的國(guó)產(chǎn)替代者(3)
文章出處:【微信公眾號(hào):嵌入式ARM】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
-
mcu
+關(guān)注
關(guān)注
146文章
17149瀏覽量
351215 -
STM32
+關(guān)注
關(guān)注
2270文章
10900瀏覽量
356052 -
航順芯片
+關(guān)注
關(guān)注
1文章
106瀏覽量
22800
原文標(biāo)題:盤(pán)點(diǎn)STM32的國(guó)產(chǎn)替代者(3)
文章出處:【微信號(hào):gh_c472c2199c88,微信公眾號(hào):嵌入式微處理器】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論