[MCU] 國產替代 MCU 踩坑記

cruelfox 樓主
2021-4-1 08:57

  作為一名蝴蝶粉,對STM32缺貨漲價事情表示遺憾。但是不論做產品還是DIY玩,成本也不可能不在乎(說不在乎也是有限度的)。

  去年下半年我設計了一個作品(算少量批量做的產品),板子上有些地方需要個MCU進行簡單的控制。因為我用 STM32 系列用得最熟悉,就選了差不多最便宜的 20 腳 STM32F030F4P6 來用。當時兩塊多一片吧,也不是最便宜的 MCU 方案,但這樣對我來說開發起來最快。一個月后第二批采購的時候,同一賣家的報價就漲了不少,不過還是繼續用了。再過了一個月,居然又漲了價,于是我換成了引腳兼容的 STM32L010F4P6,從STM32天貓店買的,四元不到。雖然比原來的還是貴,但比當時的 F030F4P6 要便宜。

  再后來,STM32F030 的價格離譜了(雖然 MCU 成本占比并不大),我就開始選擇國產替代了。

  嘗試 #1, CKS32F030F4P6.  據說是二進制兼容 STM32F030 的,價格又便宜。買來樣片一試,居然可以用 ST-Link 下載,被 ST-Link Utility 識別為 STM32F030 了。原來的 HEX 不作改動直接燒寫,運行效果和 STM32 一樣。因為我要的功能很簡單,只是我用到的功能驗證沒有問題,不代表 100% 和 STM32 兼容。便宜好用,可是,今年初也缺貨漲價了。

  嘗試 #2. HK32F030MF4P6.  當我發現國產替代的 MCU 也開始缺貨,就考慮下其它方案了,不排除以后用 C51 帶代替。因為還有引腳兼容要考慮,我把 PCB 修改成了兼容 STM8S003 的,不兼容 STM32F030 了。接著,發現了 HK32F030MF4P6 這個奇特的型號。這家廠家還有叫做 HK32F030F4P6 的型號,后者是和 STM32F030 引腳兼容的。而前者,卻是兼容 STM8S003. 我測試樣品發現它并不能被 ST 的工具識別,只能用 OpenOCD 來自己寫腳本程序下載了。雖然引腳分布變了,但一看手冊我發現這和 STM32 的寄存器基本上是一回事,所以用個 STM8S 的小板子放了段代碼進去,運行點燈沒問題,就投板子做去了。

  嘗試 #3. XM1008F6P6.  最近的事情,我有另一個作品用 STM32F031F6P6 的需要再做,但因為缺貨也得找替代型號了。CKS32F031 已經買不到了。搜索找到這個型號號稱可以兼容 ST 的 F030/031, 價格還不貴。好象廠家正在做推廣,買樣片還包郵順豐,那就先驗證。居然又是可以被 ST 工具識別成 STM32F0 的,但是我的代碼燒進去不能正常工作了。

 

  下面說踩的坑了: XM1008 這個,我遇到原來 STM32 代碼不兼容的地方有兩個。(1) GPIO.BSRR 這個寄存器,在 STM32 中是可以 32-bit/16-bit/8-bit 讀寫的,但是在 XM1008 上面,BSRR 的高16位用一個半字操作來寫,就無效了——源代碼改一下就能解決。但是這暗示著 XM1008 可能在寄存器的訪問方式上與 STM32 不完全一致。(2) 這個其實是我在 STM32 的代碼中有bug, 但是STM32卻按我的意圖工作了,在 XM1008 上嚴格地失敗。我操作 SYSCFG 的 CR 寄存器改變內存映射,卻沒有在 RCC 中將 SYSCFG 使能。這個錯誤操作在 STM32 上居然成功起了作用。

 

  HK32F030MF4P6 的坑,因為板子剛焊回來,是才調試的。這里的坑倒是費了我不少工夫找問題。這個芯片,可以看成 STM32F030 的一個變種。雖然比較頭文件的寄存器定義,跟 STM32 看起來是一樣的……(但是魔鬼可能在細節里面)我修改過引腳使用的程序燒進去就不工作了,而且不能重新燒程序,SWD 口連不上……

  我的程序用了 STOP 模式,靠外部中斷喚醒。按照 STM32 上的經驗,在 STOP 模式下是能用 SWD 調試的,除非把 DBGMCU 里面允許低功耗調試的開了。奇怪的是,我用復位引腳也不能讓 SWD 連上(Connect under reset),這個 MCU 變磚了一樣。

  為了找問題,我用了實驗板和另外一片芯片,在代碼中加了一段延時用于調試器介入。我發現了 MCU 的 SCB.CR 的 SLEEPDEEP 位不設置的話,外部中斷可以喚醒,也就是在普通 Sleep 模式工作是正常的。為什么用 STOP 模式就不正常呢?而且,在 STOP 模式進入之后,不但外部中斷不能喚醒,復位腳也不起作用。

  后來我注意到這產品手冊上提到,除了電源腳外,引腳都可以做 GPIO.  哦,是,NRST 腳也可以做 GPIO. 仔細核對,NRST 腳也就是 PA0. 而我的代碼將默認引腳都設置成 analog 模式去了。所以,要給 PA0 設置成 AF 才可以作復位。

af0.PNG   復位腳問題解決了。但是 STOP 模式下還是不能復位。奇怪了,我測量了下工作電流,還沒有達到 STOP 模式那么低。再對照下手冊,HK32F030M 有 Sleep, Deep Sleep, STOP 模式,比 STM32F030 多了一個 Deep Sleep. 而我測量的電流,似乎和 Deep Sleep 差不多。難道休眠模式錯了?

sleep.PNG   按照手冊給出的說明,我設置 SLEEPDEEP 位進入 STOP 模式并沒有問題。這坑從哪里來的?

   然而,我將 PWR.CR 的 LPDS 位寫1之后,居然就成功了。電流也小了,也可以NRST腳復位了。

 

回復評論 (45)

沙發 soso

2021-4-1 09:51

坑不少,好在解決了!謝謝樓主分享哈哈

不管是哪年,都要加油!繼續為中國電子行業做出小小的貢獻吧! 扣扣 1206973913

板凳 nmg

2021-4-1 11:00

你這淘替代的能力很強啊, XM1008F6P6,都沒聽過的品牌,你是咋淘到的

4樓 qwqwqw2088

2021-4-1 11:52

現在有的MCU剛一出生,就號稱可以替代STM32,,,樓主的分享值得借鑒

坑確實多

5樓 cruelfox

2021-4-1 12:03
引用: nmg 發表于 2021-4-1 11:00 你這淘替代的能力很強啊, XM1008F6P6,都沒聽過的品牌,你是咋淘到的

淘寶搜到的。

6樓 cruelfox

2021-4-1 12:09

補充一個 HK32F030M 的坑:

從STOP模式恢復以后,內部RC振蕩器(HSI)的頻率穩定時間比STM32明顯長了。我的程序中喚醒之后就啟用了定時器來檢測外部脈沖沿,結果就是推算的時間不準確。

7樓 okhxyyo

2021-4-1 12:25

有好多都不知名的替代啊。昨天還是前天還看到個也是介紹替代的,什么GOF的,百度搜半天就看到咱論壇網友分享的那個貼

8樓 ddllxxrr

2021-4-1 13:33

樓主比較幸運,我的 XM1008。ST LINK根本就不識別,加焊也識別不了。一腳踢飛,永不啟用。

http://shop34182318.taobao.com/
https://shop436095304.taobao.com/?spm=a230r.7195193.1997079397.37.69fe60dfT705yr

9樓 zxopenljx

2021-4-1 13:56

感謝樓主分享

10樓 damiaa

2021-4-1 16:16

感覺前路漫漫盡是埪啊。如何是好。

11樓 大秦正聲

2021-4-1 19:18

小廠家的還是不要使用為好。103香水股票應該封殺嚴懲!中國應該停止提供封裝,出口化學酸性,原材料和半導體硅材料。

12樓 大秦正聲

2021-4-1 19:21
引用: ddllxxrr 發表于 2021-4-1 13:33 樓主比較幸運,我的 XM1008。ST LINK根本就不識別,加焊也識別不了。一腳踢飛,永不啟用。

還是要有定力。

13樓 大秦正聲

2021-4-1 19:24

投機倒把的代理應該嚴懲不貸。現在的商家需要好好整頓了!

14樓 freebsder

2021-4-2 17:21

雅特力試試呢。好像兼容性挺強的。電氣、寄存器這上千上萬個參數,遇到了可能就是麻煩事,關鍵是能兼容,但是最后的結果依據環境有偏差,這才麻煩。

默認摸魚

15樓 damiaa

2021-4-13 16:09
本帖最后由 damiaa 于 2021-4-14 09:18 編輯

XM1008 拿幾片試試。  

16樓 damiaa

2021-4-14 09:18
damiaa 發表于 2021-4-13 16:09 XM1008 拿幾片試試。  

不過這芯片估計最多只能是暫時替代。一是價格也不低了。二是除了datasheet外。沒有任何資料。也沒庫文件。

有時間靜下心來移植的話還是推薦雅特力。

17樓 damiaa

2021-4-14 12:12
damiaa 發表于 2021-4-14 09:18 damiaa 發表于 2021-4-13 16:09 XM1008 拿幾片試試。   不過這芯片估計最多只能是暫時替 ...

準備拿點試試。

采購告訴我:問淘寶。直接說缺貨。

驚 還不知道能不能用!  

       直接回:算了。不要了。 

18樓 花好月圓510

2021-4-19 14:03

華大的單片機坑多嗎?最近入門替換103

19樓 book1

2021-5-2 06:52

現在雖然網絡很發達,但有些資訊絕對封閉!受貿易戰影響,進口芯片漲價可以理解,但國內的芯片價格也一起發瘋……

20樓 懶貓愛飛

2021-6-10 14:59

雖我缺芯,但樓主很用心,棒棒噠

專注智能產品的研究與開發,專注于電子電路的生產與制造……QQ:2912615383,電子愛好者群: void
123下一頁
電子工程世界版權所有 京B2-20211791 京ICP備10001474號-1 京公網安備 11010802033920號
    我也要說兩句
    發送
    評論
    萝卜大香蕉