芯片持續(xù)缺貨漲價,在初創(chuàng)小公司真的是處于生死的邊緣,各種芯片一直在告急,沒有供貨商,公司產品也生產不出來,32的芯片價格飆升,讓企業(yè)不得選擇國產的芯片HC32F460KETA國產芯片華大HC32替換STM32。
華大HC32F460和ST STM32F407ZGT6對比
Stm32F07ZGT6
HC32F460KETA
由對比圖看見,相比于Stm32F407ZGT6,華大單片機HC32F460的主頻有了提升,最大為200M。
兩者都是Cortex-M4內核,供電的話因為都屬于ARM系列,都是適用于3.3V。
Flash容量有點少于遜色于32的容量,其實這個看是看自己代碼空間的大小,太多了也是浪費并且價格也高,畢竟公司是要求成本的,兩者的RAM大小是一樣的。
但很大劣勢就是華大的引腳有點少,一共64pin,32是114,所以要求控制引腳比較多的產品還是要好好考慮一下引腳的分配問題,但是華大給我一個很驚艷的地方是他的引腳功能有一個分組表,這樣更改功能非常方便,如下圖:
幾乎所有的引腳可以任意映射,這實在是太方便了,對于PCB拉線來說,不用到處轉彎拉線了。
外設功能的話,都差不多,但肯定華大這款板子的資源不如st的F407.下面記錄下一下使用的過程。
1、 畫了一塊HC32F460的核心板,大概一個周左右板子才回來。
2、 我用的是華大的官方庫,當初移植了部分原stm32的程序,但是有沖突,所以感覺網(wǎng)上說直接替換是不太現(xiàn)實的,但函數(shù)的命名方式都是標準的,可以不用看底層直接用。
3、 焊接完板子之后,滿懷期待插上下載器,然而心涼了半截。明天插圖
這里能找到下載器(我用的是J-link,ST-Link也是可以的),但找不到芯片,我慌了,開始翻找數(shù)據(jù)手冊,一般來說找不到芯片可能是晶振起振的問題(以我的經驗來說,希望大家來補充),然后看了晶振部分的電容要求
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image010.jpg
要求晶振電容大小為2pf到25pf,板子和引腳間的寄生電容估算為10pf,我選擇的是10pf的電容,也是沒有問題的,那有沒有可能是電容的實際容值不對,我拿萬用表涼了下也是符合標準的。然后懷疑是不是下載電路那邊有問題。為了防止拔插燒錄引腳的脈沖,在兩個下載引腳分別加了3.3V的TVS管。
我試著將下載頻率降低,奇跡竟然發(fā)生了,能找到芯片了,但是只能在1M以下才能找得到,也就是說低頻可以,高頻不可以,讓我想到是電容容性的問題,果然是這樣。
將TVS管放到了100歐姆電阻的后面,然而TVS管是有寄生電容的,用萬用表晾了一下差不多有3nf之大,這樣跟電阻就組成了一個低通濾波器,根據(jù)公式fc = 1/2pi*R*c
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image012.jpg
算出頻率是800Kz左右,符合1M以下能找到的原因,在multisim做了個仿真電路。
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image014.jpg
在1Mhz的方波頻率下,最上面那個電路的輸出波形已經不是方波了,接近于正弦波了,這也就是下載器找不到新片的原因了,下面兩個電路均正常工作,方波都能通過去。
但我有個疑問的是,中間那個電路,如果電容足夠大的時候,按道理他的波形也會發(fā)生變形或者產生相位差,但是仿真模擬中卻沒有發(fā)生,不知道是為啥,請大佬們指點一下。
我去掉了兩個TVS管,在50MHz的情況下也能正常找到芯片了,完美。然后下載了一個標準歷程,下載成功。
總結:
1、第一個就是要對下載電路熟悉一點,掌握相應的模電知識,高通濾波器、低通濾波器等。
2、stm32的庫我沒有嘗試,還是使用華大官方的庫,用的還比較順心,但是華大單片機的DMA發(fā)送有的小小的不盡人意,32單片機可以直接使能DMA通道就可以完成發(fā)送,而華大的DMA發(fā)送用AOS觸發(fā)一直不成功,哪位大佬有成功麻煩教教我,跪謝?,F(xiàn)在用的DMA 發(fā)送是用串口發(fā)送完一個字節(jié)之后產生DMA發(fā)送中斷來實現(xiàn)的,也是可以的,至少現(xiàn)在沒有遇到什么問題。
3、單純這個測試,兩者差別不大,應該說可以相互替代。選擇替代芯片時,官網(wǎng)有個選型手冊,參考一下,根據(jù)自己的需求來,也可以嘗試聯(lián)系一下技術尋求幫助,聽說華大的技術還是蠻熱心的,我還沒有求助過。