最近,嵌入式ARM分享一篇《GD32也開(kāi)始假貨泛濫了》文章,嵌入式ARM的老友StrongerHuang也表示其技術(shù)交流群正在討論芯片漲價(jià)和咸魚(yú)上賣(mài)芯片的話題,并撰寫(xiě)了一文揭露了背景和識(shí)別翻新假貨的方法。特此轉(zhuǎn)載供大家參考。
1
芯片漲價(jià)背景 前兩年的中美毛衣戰(zhàn),使國(guó)內(nèi)一些技術(shù)型大企業(yè)受到了影響,比如華為。但是絕大部分電子相關(guān)的企業(yè),受到的影響很小。 2020年,一場(chǎng)疫情,導(dǎo)致了一些半導(dǎo)體企業(yè)受到很大打擊,比如工人罷工。 然后,一些原材料價(jià)格開(kāi)始出現(xiàn)了不同程度的上漲,特別是今年初開(kāi)始,很多金屬、塑料等絕大部分原材料價(jià)格都上漲了,小到電阻電容,大到電視冰箱等消費(fèi)電子產(chǎn)品,都出現(xiàn)了不同程度的漲價(jià)。 芯片亦如此,我們熟知的MCU價(jià)格出現(xiàn)了不同程度的漲價(jià),相信大家都知道了,特別是STM32部分型號(hào)價(jià)格甚至翻了好幾倍。 在這種漲價(jià)潮的背景下,必定存在一些不良商家,然后,出現(xiàn)假貨的概率就增加了。
2
STM32/GD32翻新或假貨 STM32/GD32翻新或假貨這個(gè)問(wèn)題,有經(jīng)驗(yàn)的工程師可能遇到過(guò),包括我之前就遇到過(guò),把GD32標(biāo)志擦除,然后搞成STM32,還有從舊板子上拆下來(lái)的翻新STM32。 下面就來(lái)說(shuō)說(shuō)芯片翻新或假貨的一些情況: 1.擦除標(biāo)志 芯片擦除標(biāo)志這種做法很常見(jiàn),包括我們有時(shí)候開(kāi)發(fā)的產(chǎn)品,為了防止別人山寨,也可能將芯片表面的標(biāo)志擦除,以起到防止被人山寨的作用。 一些商家就會(huì)利用這種“貍貓換太子”的手段來(lái)牟利,一些兼容的芯片,比如早期我就知道很多STM32就是用GD32假冒的。 2.虛假型號(hào) STM32內(nèi)部Flash實(shí)際大小可能與型號(hào)不匹配,比如:STM32F103RF標(biāo)準(zhǔn)容量為768K,但Flash實(shí)際不止768K。
由此延伸出話題:你的STM32芯片F(xiàn)LASH容量真如ST官方選型手冊(cè)那樣嗎?
1 先說(shuō)點(diǎn)其它 一般對(duì)于初學(xué)者來(lái)說(shuō),內(nèi)部FLASH完全足夠,跑一個(gè)簡(jiǎn)單的裸機(jī)Demo,或者一個(gè)RTOS加上兩個(gè)任務(wù)的Demo,對(duì)于現(xiàn)在的MCU完全沒(méi)有壓力。 但是,一旦你接觸到實(shí)際項(xiàng)目,你會(huì)發(fā)現(xiàn)很多地方都會(huì)開(kāi)支FLASH,而且有些項(xiàng)目占用FLASH還不小。比如:某種特定算法,加載字庫(kù),甚至放兩張圖片在FLASH里面。 再拿一個(gè)IAP應(yīng)用編程的例子來(lái)說(shuō):一般對(duì)升級(jí)這個(gè)功能做的好一點(diǎn)的,會(huì)有一塊區(qū)域(備份區(qū)域)與應(yīng)用程序差不多大小的FLASH區(qū)域。就是說(shuō):為了保證安全,你程序下載保存在一個(gè)備份區(qū)域,等下載成功再更新應(yīng)用程序。這樣做的目的:就是防止在下載的時(shí)候中途掉線,導(dǎo)致失敗。 找了一個(gè)圖,大致如下,將FLASH劃分為3個(gè)區(qū)域(引導(dǎo)程序FLASH區(qū)域、應(yīng)用程序FLASH區(qū)域、備份程序FLASH區(qū)域),你們琢磨一下。
2 STM32芯片選型 一般我們項(xiàng)目提出需求之后,都會(huì)選擇一款合適的MCU,首先想到的就是查看【選型手冊(cè)】,除了選擇外設(shè)資源之外,還有就是選擇適合的FLASH容量大小。STM32產(chǎn)品命令規(guī)則如下:
3 驗(yàn)證STM32內(nèi)部FLASH究竟有多大 說(shuō)了關(guān)于FLASH的一些話題,回來(lái)說(shuō)說(shuō)本文的重點(diǎn):我們的STM32內(nèi)部FLASH可能不止上面選型手冊(cè)說(shuō)的那么大一點(diǎn)。 比如:我的MCU芯片具體型號(hào)為STM32F103RF,查看手冊(cè)可以知道其容量為768K,但實(shí)際它有1M的FLASH容量。
我這里大概說(shuō)兩點(diǎn)簡(jiǎn)單驗(yàn)證的方法:
1.通過(guò)編程驗(yàn)證 簡(jiǎn)單來(lái)說(shuō)就是通過(guò)擦除,寫(xiě)入,讀取指定地址(就是超過(guò)FLASH大小的地址)。 FLASH_EraseSector FLASH_ProgramWord 2.通過(guò)工具讀取FLASH數(shù)據(jù) 這個(gè)辦法是最直接,也是最簡(jiǎn)單的辦法。拿STM32 ST-LINK Utility這個(gè)下載工具來(lái)舉例說(shuō)明:
重點(diǎn)其實(shí)都在圖中描述出來(lái)了:超過(guò)768K地址,實(shí)際上還可以讀出來(lái)數(shù)據(jù)的。 (上圖是我拿STM32F103RF真實(shí)MCU讀出來(lái)的,應(yīng)用程序起始地址就是0x080C0000,應(yīng)用程序?qū)嶋H也運(yùn)行起來(lái)了) 說(shuō)了這么多,其實(shí)我想說(shuō)的是:STM32芯片有許多也是類似,不止我上面舉例的STM32F103RF,103RC標(biāo)稱的是256K,其實(shí)不止256K空間。如果你發(fā)現(xiàn)你FLASH空間不足了,通過(guò)上面方法可以看看是否不止那么大的空間。 3.翻新為原裝正品這種在某寶上最常見(jiàn),那種看起來(lái)價(jià)格便宜,你零售買(mǎi)幾個(gè)也發(fā)貨這種十有八九都是翻新芯片。 翻新芯片,你買(mǎi)回來(lái),可能寫(xiě)一個(gè)LED流水燈測(cè)試一下沒(méi)有問(wèn)題。但是,你上項(xiàng)目之后,特別是要求外設(shè)比較多,功能又復(fù)雜一點(diǎn)的項(xiàng)目,可能很快就原形畢露了。 運(yùn)氣不好,可能會(huì)出現(xiàn)以下幾種情況:
軟件通宵加班數(shù)日無(wú)果,甩鍋硬件;
硬件飛線各種測(cè)試,換一塊芯片解決問(wèn)題;
軟件和硬件工程師干一架;
······
所以,現(xiàn)在市面上出現(xiàn)很多假貨,或者有問(wèn)題的芯片不足為奇,包括嵌入式ARM說(shuō)的“GD32也開(kāi)始假貨泛濫了”,我覺(jué)得肯定存在。
3
識(shí)別翻新或假貨識(shí)別STM32/GD32翻新或假貨,常規(guī)的操作就是先焊接在PCB板(或在工裝夾具),上電看是否正常,如果出現(xiàn)發(fā)燙、電流過(guò)大、甚至冒煙等情況,要注意了。 然后讀取一下芯片信息,比如Flash容量,UID信息、選項(xiàng)字節(jié)等。 這里分享之前的文章:關(guān)于STM32的這幾個(gè)寄存器,你知道嗎? 讀取的具體方式如下:
1 Flash容量寄存器 1.通過(guò)讀寄存器 在STM32的“參考手冊(cè)”中有Flash size data register這么一個(gè)寄存器(一般在手冊(cè)最后),明確寫(xiě)了寄存器的基地址。 提示:不同芯片型號(hào),可能這個(gè)寄存器地址不同。比如F103的基地址為:0x1FFFF7E0。
是一個(gè)16位的數(shù)值,出廠寫(xiě)入,程序只能讀取。讀取方法很簡(jiǎn)單,可以如下: uint16_t Flash_size;Flash_size = *(uint16_t *)0x1FFFF7E0;2.通過(guò)STM32 ST-LINK Utility直接讀取 通過(guò)ST-Link連接芯片,直接讀取,可以看到容量信息:
2 UID寄存器 之前有人問(wèn)我,可以通過(guò)STM32的UID來(lái)加密嗎?這個(gè)肯定是可以的。 但又問(wèn)了我一個(gè)問(wèn)題,我不希望讀取全部(96位),可以只讀取部分寄存器來(lái)作為標(biāo)識(shí)嗎?讀取的部分會(huì)不會(huì)重復(fù)? STM32的UID唯一標(biāo)識(shí)符適用于:
用來(lái)作為序列號(hào)。
用來(lái)作為密碼,在編寫(xiě)閃存時(shí),將此唯一標(biāo)識(shí)與軟件加解密算法結(jié)合使用,提高代碼在閃存存儲(chǔ)器內(nèi)的安全性。
用來(lái)激活帶安全機(jī)制的自舉過(guò)程。
STM32的UID共有96位(32 x 3)。所有,就有朋友,我是否可以只讀取其中某一部分來(lái)作為唯一識(shí)別? 這個(gè)問(wèn)題,嚴(yán)格來(lái)說(shuō),不可以。但如果不是特別嚴(yán)格,還是可以。因?yàn)檫@個(gè)UID是通過(guò)晶元、分批等來(lái)進(jìn)行編號(hào)的。如果你買(mǎi)同一批次,你會(huì)發(fā)現(xiàn)那個(gè)編號(hào)可能連續(xù)。
我之前曾讀取過(guò)幾塊生產(chǎn)的板卡(購(gòu)買(mǎi)得_MCU是同一批次),芯片的UID是連續(xù)的,感興趣的可以試試。 所以,通過(guò)讀取部分UID來(lái)作為標(biāo)識(shí),只能說(shuō)不嚴(yán)格的情況是可以的。
3 寄存器偏移地址 現(xiàn)在還有許多初學(xué)的朋友在學(xué)習(xí)底層的一些知識(shí),比如前面就有朋友想自己通過(guò)寄存器來(lái)編程,但是卻不知道什么是寄存器基地址,什么是寄存器偏移地址。 1.基地址 每一個(gè)片內(nèi)外設(shè)都有一個(gè)對(duì)應(yīng)的基地址,而且是由廠商決定我們不能修改。如下圖:
在程序中,你會(huì)發(fā)現(xiàn)和上面對(duì)應(yīng)的代碼:
2.偏移地址 偏移地址就是在基地址基礎(chǔ)上偏移(一般是以4字節(jié)增加),比如TIM定時(shí)器的偏移地址:
同樣,在程序中對(duì)應(yīng)的代碼通過(guò)結(jié)構(gòu)體實(shí)現(xiàn)偏移:
關(guān)于基地址和偏移地址,不管是標(biāo)準(zhǔn)外設(shè)庫(kù)還是HAL庫(kù),都是上面所示那種基地址+偏移的方法實(shí)現(xiàn)。 還是之前多次在文章中提到的,想要了解寄存器原理,或者通過(guò)寄存器來(lái)實(shí)現(xiàn)的朋友,最好參考“標(biāo)準(zhǔn)外設(shè)庫(kù)”例程。HAL庫(kù)封裝的相對(duì)復(fù)雜,不適合研究最底層寄存器。 再進(jìn)一步驗(yàn)證,寫(xiě)入數(shù)據(jù)(RAM、Flash)測(cè)試、各種外設(shè)基本功能測(cè)試等。
4
建議正規(guī)渠道買(mǎi)到假貨或山寨貨,付出的代價(jià)是很大的,前期開(kāi)發(fā)階段現(xiàn)了問(wèn)題都還好,就怕批量生產(chǎn)之后才發(fā)現(xiàn)問(wèn)題。 更可怕的是,大批量出貨,產(chǎn)品在客戶手里因?yàn)樾酒儇洺霈F(xiàn)問(wèn)題的情況。 今天交流群里有人在討論咸魚(yú)上賣(mài)芯片的情況,我覺(jué)得,咸魚(yú)買(mǎi)芯片來(lái)玩玩可以,做產(chǎn)品最好慎重。 比如淘寶搜出來(lái)十多元的STM32還是進(jìn)口原裝正品,你信嗎? 正規(guī)渠道買(mǎi)的芯片,都還存在一定概率是芯片自身的問(wèn)題,更別說(shuō)咸魚(yú)這種平臺(tái)了。我之前就遇到過(guò),從正規(guī)且比較大的代理商買(mǎi)的STM32,出現(xiàn)了問(wèn)題,F(xiàn)AE多次到公司都沒(méi)找出問(wèn)題,最后拿回原廠解剖芯片,發(fā)現(xiàn)真的是芯片自身的問(wèn)題。 所以,不要因?yàn)楸阋司蛷奶詫殹⑾挑~(yú)上購(gòu)買(mǎi)芯片,建議走正規(guī)渠道。否則,可能會(huì)付出很大代價(jià)。
原文標(biāo)題:如何識(shí)別STM32/GD32是否為翻新假貨?
文章出處:【微信公眾號(hào):嵌入式ARM】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
責(zé)任編輯:haq
-
芯片
+關(guān)注
關(guān)注
459文章
52181瀏覽量
436171 -
mcu
+關(guān)注
關(guān)注
146文章
17837瀏覽量
360423 -
STM32
+關(guān)注
關(guān)注
2289文章
11012瀏覽量
362377
原文標(biāo)題:如何識(shí)別STM32/GD32是否為翻新假貨?
文章出處:【微信號(hào):gh_c472c2199c88,微信公眾號(hào):嵌入式微處理器】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
如何判斷電路是否為高頻電路
厚聲電阻的真?zhèn)伪孀R(shí):如何避免購(gòu)買(mǎi)假貨?

NRK3502系列芯片 | 制氧機(jī)離線語(yǔ)音識(shí)別方案

AFE5808A電平時(shí)鐘正常,如何排查芯片是否工作?
離線語(yǔ)音識(shí)別芯片,讓您的產(chǎn)品“聽(tīng)懂會(huì)說(shuō)”

EVS103智能純離線語(yǔ)音識(shí)別芯片介紹

PCM2707為什么無(wú)法被電腦識(shí)別?
物聯(lián)網(wǎng)系統(tǒng)智能控制產(chǎn)品的語(yǔ)音識(shí)別方案_離線語(yǔ)音識(shí)別芯片分析

中國(guó)臺(tái)灣斥資翻新晶圓廠,力挺創(chuàng)企先進(jìn)制造
智能玩具用離線語(yǔ)音識(shí)別芯片有什么優(yōu)勢(shì)

什么是離線語(yǔ)音識(shí)別芯片?與在線語(yǔ)音識(shí)別的區(qū)別
ESP32-C6是否可以將8MB擴(kuò)展為64MBs使用?
ADZS-AD2428MINI USBI忽然無(wú)法識(shí)別是哪里出了問(wèn)題?
真正國(guó)巨電容如何識(shí)別?

評(píng)論