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