2020.10.28的時(shí)候,我登陸立創(chuàng)商城,搜索stm32f103c8t6,單價(jià)15左右,100片的話(huà),價(jià)格不到13。
2020.11.5再次登陸,搜索stm32f103c8t6,價(jià)格瘋長(zhǎng)到了20+
瘋了啊!
真的要考慮單片機(jī)型號(hào)的國(guó)產(chǎn)化了!
以下文章轉(zhuǎn)自網(wǎng)絡(luò):
說(shuō)起MCU,ST(意法半導(dǎo)體)的STM32單片機(jī)十幾年來(lái)已經(jīng)銷(xiāo)售了幾十億顆,在國(guó)內(nèi)幾乎占有50%的市場(chǎng),會(huì)使用STM32單片機(jī)也基本成為電子工程師的標(biāo)配職業(yè)技能,然而2018年下半年的供貨緊張,以及中興事件,給我們硬件工程師敲了敲警鐘,假如有一天我們必須替換下STM32單片機(jī),國(guó)產(chǎn)芯有哪些是可以替代的呢?
北京兆易創(chuàng)新-GD32系列
GD32作為中國(guó)32位通用MCU領(lǐng)域的主流之選,以累計(jì)超過(guò)2億顆的出貨數(shù)量、超過(guò)1萬(wàn)的用戶(hù)數(shù)量、20個(gè)系列300余款產(chǎn)品型號(hào)選擇的廣闊應(yīng)用覆蓋率穩(wěn)居市場(chǎng)前列。GD32使用的是Cortex-M3內(nèi)核,型號(hào)做到了與STM32相同型號(hào)的全兼容,方便替換,主頻頻率更高。
GD32F103是GD早期的產(chǎn)品,GD32E103和GD32F303是對(duì)GD32F103的升級(jí)和優(yōu)化,所以4者是兼容的,雖然內(nèi)核不同,但是通用外設(shè)幾乎很少涉及到內(nèi)核部分,在時(shí)間急迫的情況下可以使用ST的庫(kù)開(kāi)發(fā)。
一、相同點(diǎn)
1)外圍引腳PIN TO PIN兼容,每個(gè)引腳上的復(fù)用功能也完全相同。
2)芯片內(nèi)部寄存器、外部IP寄存器地址和邏輯地址完全相同,但是有些寄存器默認(rèn)值不同,有些外設(shè)模塊的設(shè)計(jì)時(shí)序上和STM32有差異,這點(diǎn)差異主要體現(xiàn)在軟件上修改,詳情見(jiàn)下文。
3)編譯工具:完全相同例如:KEIL 、IAR
4)型號(hào)命名方式完全相同,所以替代只需找尾綴相同的型號(hào)即可,例如:STM32F103C8T6 與 GD32E103C8T6。
5)仿真工具:JLINK GDLINK
二、外圍硬件區(qū)別
三、硬件替換需要注意的地方
從上面的介紹中,我們可以看出,GD32F30/E103系列和STM32F103系列是兼容的,但也需要一些注意的地方。
1)BOOT0必須接10K下拉或接GND,ST可懸空,這點(diǎn)很重要。
2)RC復(fù)位電路必須要有,否則MCU可能不能正常工作,ST的有時(shí)候可以不要。
3)有時(shí)候發(fā)現(xiàn)用仿真器連接不上。因?yàn)镚D的swd接口驅(qū)動(dòng)能力比ST弱,可以有如下幾種方式解決:
a、線(xiàn)盡可能短一些;
b、降低SWD通訊速率;
c、SWDIO接10k上拉,SWCLK接10k下拉。
4)使用電池供電等,注意GD的工作電壓,例如跌落到2.0V~2.6V區(qū)間,ST還能工作,GD可能無(wú)法啟動(dòng)或工作異常。
四、使用ST標(biāo)準(zhǔn)庫(kù)開(kāi)發(fā)需要修改的地方
1)GD對(duì)時(shí)序要求嚴(yán)格,配置外設(shè)需要先打開(kāi)時(shí)鐘,在進(jìn)行外設(shè)配置,否則可能導(dǎo)致外設(shè)無(wú)法配置成功;ST的可以先配置在開(kāi)時(shí)鐘。
2)修改外部晶振起振超時(shí)時(shí)間,不用外部晶振可跳過(guò)這步。
原因:GD與ST的啟動(dòng)時(shí)間存在差異,為了讓GD MCU更準(zhǔn)確復(fù)位。
修改:
將宏定義:#define HSE_STARTUP_TIMEOUT ((uint16_t)0x0500)修改為:#define HSE_STARTUP_TIMEOUT ((uint16_t)0xFFFF)
3)GD32F10X flash取值零等待,而ST需要2個(gè)等待周期,因此,一些精確延時(shí)或者模擬IIC或SPI的代碼可能需要修改。
原因:GD32采用專(zhuān)利技術(shù)提高了相同工作頻率下的代碼執(zhí)行速度。
修改:如果使用for或while循環(huán)做精確定時(shí)的,定時(shí)會(huì)由于代碼執(zhí)行速度加快而使循環(huán)的時(shí)間變短,因此需要仿真重新計(jì)算設(shè)計(jì)延時(shí)。使用Timer定時(shí)器無(wú)影響。
4)在代碼中設(shè)置讀保護(hù),如果使用外部工具讀保護(hù)比如JFLASH或脫機(jī)燒錄器設(shè)置,可跳過(guò)此步驟。
在寫(xiě)完KEY序列后,需要讀該位確認(rèn)key已生效,修改如下:
總共需要修改如下四個(gè)函數(shù):
FLASH_Status FLASH_EraseOptionBytes(void);FLASH_Status FLASH_ProgramOptionByteData(uint32_t Address, uint8_t Data);uint32_t FLASH_GetWriteProtectionOptionByte(void);FlagStatus FLASH_GetReadOutProtectionStatus(void);
5)GD與ST在flash的Erase和Program時(shí)間上有差異,修改如下:
6)需求flash大于256K注意,小于256K可以忽略這項(xiàng)。
與ST不同,GD的flash存在分區(qū)的概念,前256K,CPU執(zhí)行指令零等待,稱(chēng)code區(qū),此范圍外稱(chēng)為dataZ區(qū)。兩者在擦寫(xiě)操作上沒(méi)有區(qū)別,但在讀操作時(shí)間上存在較大差別,code區(qū)代碼取值零等待,data區(qū)執(zhí)行代碼有較大延遲,代碼執(zhí)行效率比code區(qū)慢一個(gè)數(shù)量級(jí),因此data區(qū)通常不建議運(yùn)行對(duì)實(shí)時(shí)性要求高的代碼,為解決這個(gè)問(wèn)題,可以使用分散加載的方法,比如把初始化代碼,圖片代碼等放到data區(qū)。
總結(jié):至此,經(jīng)過(guò)以上修改,在不使用USB和網(wǎng)絡(luò)能復(fù)雜協(xié)議的代碼,就可以使用ST的代碼操作了。
上海靈動(dòng)微電子-MM32系列
MM32系列基于ARM Cortex-M0及Cortex-M3 內(nèi)核,產(chǎn)品包括:針對(duì)通用高性能市場(chǎng)的MM32F系列,針對(duì)超低功耗及安全應(yīng)用的MM32L系列,具有多種無(wú)線(xiàn)連接功能的MM32W系列,電機(jī)驅(qū)動(dòng)及控制專(zhuān)用的MM32SPIN系列,以及OTP型的MM32P系列等,同樣的管腳、型號(hào)等與ST全兼容,替換成本非常低。
華大半導(dǎo)體-HC32系列
有國(guó)企背景的HC32系列基于ARM Cortex-M0+及Cortex-M4內(nèi)核,產(chǎn)品包括超低功耗應(yīng)用的HC32L系列和針對(duì)電機(jī)應(yīng)用市場(chǎng)的HC32M系列,針對(duì)通用市場(chǎng)的高性?xún)r(jià)比HC32F系列,與ST同型號(hào)產(chǎn)品管腳兼容,可以直接替換。
中科芯(CETC)
中科芯的32位MCU產(chǎn)品可批量替換STM32的F103、F030、F031和F051等系列。基于ARM架構(gòu)覆蓋Cortex-M0、M3、M4內(nèi)核八大系列產(chǎn)品,硬件引腳與STM32 P2P兼容,軟件采用寄存器級(jí)兼容設(shè)計(jì),對(duì)于已經(jīng)使用ST系列MCU開(kāi)發(fā)完成的程序,HEX文件可直接燒錄到中科芯對(duì)應(yīng)型號(hào)的MCU中即可運(yùn)行,無(wú)需過(guò)多改動(dòng)。
雅特力(Artery)
雅特力的AT32F403A/F407/ F413/ F415/F421系列,可批量替換STM32的F030、F303、F103、F107、F072、F401和F411等系列,其產(chǎn)品硬件引腳與STM32 P2P兼容,軟件高度兼容,由于內(nèi)核、SRAM、外設(shè)等性能相比STM32大幅度提升,AT32可一顆取代多顆STM32,另外還獨(dú)有安全性&二次開(kāi)發(fā)功能: security Lib,更寬的工作溫度:-40~105度。
中微股份(CMSemicon)
中微股份的高性能低功耗高集成全領(lǐng)域的MCU,可批量替換STM32F030/031系列、STM32G030/031系列和STM32L031/051系列。
航順(Hangshun)
航順已量產(chǎn)基于ARM Cortex-M0及Cortex-M3 內(nèi)核的MCU產(chǎn)品包括:通用高性能市場(chǎng)的HK32F103家族,HK32F030/031/03X家族,存儲(chǔ)器EEPROM家族。2019年即將推出的超低功耗7nA及安全應(yīng)用的HK32L家族以及具有多種無(wú)線(xiàn)連接功能的HK32W/B家族,以滿(mǎn)足客戶(hù)多元化需求。
國(guó)產(chǎn) 芯任重道遠(yuǎn)
國(guó)產(chǎn)芯片在國(guó)內(nèi)MCU市場(chǎng)的占有率在2%左右,市場(chǎng)非常低,還有很大的進(jìn)步空間。以GD32為代表的國(guó)內(nèi)芯片廠(chǎng)商的崛起勢(shì)必沖擊ST,但是我們也必須看到與ST之間的差距,產(chǎn)品線(xiàn)不完整,產(chǎn)品性能以及穩(wěn)定性還不能完全與其匹敵,未來(lái)5年能搶下多少份額,我們拭目以待。
責(zé)任編輯:xj
-
單片機(jī)
+關(guān)注
關(guān)注
6044文章
44629瀏覽量
639025 -
STM32
+關(guān)注
關(guān)注
2273文章
10926瀏覽量
357810 -
意法半導(dǎo)體
+關(guān)注
關(guān)注
31文章
3159瀏覽量
108985
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
零死角玩轉(zhuǎn)STM32F103—指南者
STM32、Arduino、樹(shù)莓派開(kāi)發(fā)方式差異大嗎
stm32 GPIO中斷配置教程
國(guó)產(chǎn)替代ACS724電流傳感器
![<b class='flag-5'>國(guó)產(chǎn)</b><b class='flag-5'>替代</b>ACS724電流傳感器](https://file1.elecfans.com/web2/M00/0A/82/wKgZomch0SqALkalAABz7V4VpSk827.png)
英銳恩科技,以實(shí)力打造國(guó)產(chǎn)單片機(jī)替代品牌!
stm32g與stm32h的區(qū)別
stm32下載完成,但沒(méi)執(zhí)行,為什么
ESP32能取代STM32嗎?哪個(gè)更好?
![ESP32能取代<b class='flag-5'>STM32</b>嗎?哪個(gè)更好?](https://file.elecfans.com/web2/M00/9B/3D/poYBAGQjnauAVXOgAABFcEbXdEE684.png)
STM32F103xC,STM32F103xD,STM32F103xE中文資料
STM32國(guó)產(chǎn)兼容替代芯片,MH32F103A 32位M3內(nèi)核 主頻216M
使用國(guó)產(chǎn)貼片電感替代國(guó)外品牌有哪些優(yōu)勢(shì)
PCM1750U-DUAL CMOS 18 BIT這款數(shù)模轉(zhuǎn)換芯片有國(guó)產(chǎn)替代嗎?
STM32開(kāi)發(fā)者社區(qū):從這里開(kāi)啟你的STM32之旅!小白和PRO都友好
![<b class='flag-5'>STM32</b>開(kāi)發(fā)<b class='flag-5'>者</b>社區(qū):從這里開(kāi)啟你的<b class='flag-5'>STM32</b>之旅!小白和PRO都友好](https://file1.elecfans.com//web2/M00/C2/4D/wKgaomXdk4KAMFuKAAF9eTgY4rI201.jpg)
評(píng)論