STM32替代記:國產(chǎn)芯片替代很容易!
手里有幾個STM32F103RET6應(yīng)用的板子,整天被采購問詢是否能用國產(chǎn)替代,成本快摟不住了。這次又拿了HK的樣片,作為替代,嘗試一下。
開始沒做任何修改,程序下載了就跑起來,讓我還抱怨了一番,感覺是不是拿錯片子了。后面靜下心來,詳細(xì)測試了使用的各功能模塊,
還是有點小問題的,不過非常好修改,作為應(yīng)急替代使用,應(yīng)該問題不大。所以,補(bǔ)寫個序,告知下本次替代容易至極,如果有同樣需求,放心大膽的干吧!
隨之而來的悲催就是,這幾天的工作就大部分的成了拍照,留念,技術(shù)內(nèi)容并不是很多,有ST使用的底子,基本上不需要強(qiáng)制查閱手冊之類的文檔,完全無壓力。
本來準(zhǔn)備好的替代步驟,技術(shù)攻堅,變成了如下的“旅游回憶錄”。
1、??先把芯片換了再說
換之前,先留個ST的影像,一會就換了它。
換好了,拿回辦公位,我的焊工還算可以吧。只是酒精干了,雜質(zhì)沒有清理干凈,引腳有些發(fā)白。
準(zhǔn)備就緒,后面怎么辦?網(wǎng)上說的那么的神,直接燒ST的程序,行不行?
2、??直接原ST程序直接燒寫
我無語,直接燒寫原ST的程序,不做任何修改,居然能跑起來?那我還玩什么?
都準(zhǔn)備好一頓操作了,結(jié)果,給我直接憋在了開始~~~~紅色電源指示,藍(lán)色閃爍程序運(yùn)行指示。
是我出現(xiàn)幻覺了么?這是第一次接觸航順啊,怎么可能這么的順利。
打開MDK,來確認(rèn)下眼神,確實把ST的程序,燒到了HK的片子里,直接就跑起來。本來是打算挑挑毛病的呢……
好吧,既然事實已經(jīng)如此,那么回過頭來,看看當(dāng)初STM32里到底使用了哪些資源。
整個程序基于HAL庫,硬件初始化部分。
程序是同事開發(fā)的,我當(dāng)前只是嘗試驗證是否滿足芯片替代的條件,程序開發(fā)的過程中,兼容了一些產(chǎn)品,初始化的資源,比實際使用的多一點,下面驗證下使用到的模塊是否正常。
GOIO:PC13
DMA1: 后來程序測試的過程中,發(fā)現(xiàn)并沒有使用DMA
ADC1: ADC_CHANNEL_9 , ADC_CHANNEL_10,ADC_CHANNEL_11
USART: COM1 COM4
Timer(PWM) : TIM3
SPI2:這個實際沒有用到,作為預(yù)留功能的。
DAC: DAC_CHANNEL_1
3、??既然程序跑起來了,突然覺得沒事干了,驗證下當(dāng)前使用的資源,工作是不是正常吧。
3.1 IO輸出(PC13)
直接看程序運(yùn)行狀態(tài)指示,閃爍頻率正常。? ?還用到了其他IO,單純的IO使用,問題不大。
3.2 串口
數(shù)據(jù)收發(fā)正常。
3.3 DAC輸出檢測
電壓輸出可控,正常。(開始著急了,這也正常?都正常我去哪找毛?。浚?/span>實測DAC輸出正常,但是在HK的應(yīng)用筆記中,找到如下注意事項,我想,在應(yīng)用中,還是參考下應(yīng)用筆記吧。
3.4 ADC檢測
開始沒注意,一看ADC采樣有數(shù)據(jù),貌似正常,差點溜過去。但是,我用了9,10,11三個通道。那么,問題來了,我之前的采樣順序是10,9,11,實際測試發(fā)現(xiàn),通道順序亂了,導(dǎo)致我的采樣數(shù)據(jù)也亂了。
哈哈,終于找到了毛病,可以發(fā)泄和吐槽~~~直到這里,才剛剛開始找HK的資源。先換HK的pack,編譯嘗試一下,設(shè)置和芯片選擇如下:
至此,編譯下載,問題沒有解決,不是PACK包的事。
??接著在在HK的應(yīng)用筆記中,看到了對多通道ADC使用的過程中的一些描述。
那么好,按照應(yīng)用筆記試試,加延遲。結(jié)果,哎,不是我想要的結(jié)果啊,這下只能靠自己了~可別讓我丟人啊~~
還有哪里呢?既然是通道順序亂了,那么,ADC初始化里~
至此,更改完之后,ADC幾個通道采樣值正常了??!緩口氣,前面吹了半天,差點掉鏈子~
但是講真,我還沒搞明白為什么,還特意的找個ST的板子驗證了下,用ST的片子,我之前的設(shè)置沒有問題,用HK的,要改一下,哪位大神,調(diào)試過ADC,還望指點~
這個后面,再看看HK的手冊,既然當(dāng)前adc的值正常了,這里先跳過了。
3.5沒耐性了,基本用到的模塊也都簡單驗證了,直接裝到整機(jī)里,看看效果。
替換原設(shè)備位置,整機(jī)檢驗,工作2h,設(shè)備狀態(tài)穩(wěn)定~~~~? 暫且認(rèn)為替代成功,后面的驗證,交給質(zhì)量部門。
3.6忽悠忽悠同事,換到他的板子上試試。
由于替代比想象的容易,又扔給同事,把芯片換到他的板子上,反饋我的信息是:
1、程序直接下載就能用,2、串口,定時器沒問題,3、有個i2c的器件,讀不到數(shù)據(jù)(程序中使用了硬件i2c,這個應(yīng)該不叫事,應(yīng)用筆記中有提到,實在不行IO模擬也能解決。)
4、??瀏覽航順官網(wǎng)
貌似都完事了,官網(wǎng)都沒有打開,有點不合適。也禁不住那個懶惰的小精靈,在頭上叫著“是不是可以用ST去開發(fā),然后簡單修改就好了?”
但是,我要讓那個勤勞的小精靈獲勝,還是要回到官網(wǎng)去看看~~
http://www.hsxp-hk.com/companyfile/23/
在這里下載F103的PACK包,同時可以根據(jù)自己的需求,下載用戶手冊和數(shù)據(jù)手冊。航順官網(wǎng)做的還是很工整的,資料很好找。
選型表,這個很多人會問,不用的時候,啥用沒有。想找一找的時候,又找不到。記得順便存一下,或者聯(lián)系技術(shù)支持聊聊天。
5、??小結(jié)
或許是使用的資源有限,或許是運(yùn)氣好。替代過程,非常的容易,基本上沒有過多的查看HK的手冊和應(yīng)用筆記。
程序直接下載就能跑起來,功能模塊詳細(xì)測試時,發(fā)現(xiàn)adc多通道采集時,通道采集順序與預(yù)期不符,也是簡單修正初始化部分,就能正常。
感覺如果產(chǎn)品已經(jīng)定型,尋求芯片替代的話,真的可以考慮,硬件不用修改,軟件測試下功能模塊就好了,要求嚴(yán)格的話,測試下整機(jī)和環(huán)境適應(yīng)性,應(yīng)該問題不大。
在測試過程中,選用ST和HK的pack進(jìn)行編譯,暫時沒有發(fā)現(xiàn)不適應(yīng)的狀態(tài),不過,我這里是初步測試,應(yīng)急使用可以參照,后期替換的過程中,應(yīng)該會慢慢的轉(zhuǎn)到HK的庫上來。
后面附上,我下載的HK的應(yīng)用筆記,供參考。(點擊“閱讀原文”內(nèi)下載文件)
END
本文系21ic論壇藍(lán)V作者Gavin3389原創(chuàng)撰寫
▍