問題描述
最近出了一個機器變磚的問題,一些用戶使用的設備,頭一天晚上用的好好的,第二天來一上電開機就起不來了。
然后就寄回來,返廠維修。一些是因為部分電子器件壞了,還有一些是文件系統(tǒng)問題,重新升級一下就好了。
這個文件系統(tǒng)問題造成的不良品返修,在出貨中占比2%,影響還是很大。
維修中心負責維修,修好了再給客戶寄回去。但產(chǎn)品出問題還是會影響到產(chǎn)品口碑和出貨,所以品質(zhì)那邊就要我們工程師盡快調(diào)查這個問題。
出問題的板卡上的SPI Nor-Flash送交了原廠,出了個測試報告,結論是這個Flash是沒有問題的。
這個文件系統(tǒng)的索引區(qū)有兩個,一個作為備份,一個作為活動分區(qū)。機器啟動后在Bootloader里先加載文件系統(tǒng),再加載APP程序文件,完成啟動。
加載文件系統(tǒng)時,要讀取文件分區(qū)表。分區(qū)表有兩個,交替選擇其中一個作為活動分區(qū),另一個作為備份。
最后大概是發(fā)現(xiàn),文件系統(tǒng)的分區(qū)表數(shù)據(jù)讀取后,要計算CRC來校驗,這時出現(xiàn)了錯誤。兩個分區(qū)表都出錯,無法成功加載文件系統(tǒng),就會格式化分區(qū)表。
原來的文件元數(shù)據(jù)就都丟失了,所以無法正常加載APP程序文件,啟動失敗而變磚。
我們使用工具將Flash數(shù)據(jù)讀取出來,發(fā)現(xiàn)分區(qū)表里有個別字節(jié)數(shù)據(jù)異常,比如0xFF變成0xBF。
僅從理論分析上,原因有三,一個是Flash數(shù)據(jù)確實發(fā)生變化,一個是SPI讀取Flash數(shù)據(jù)時,信號受干擾,一個是讀到DRAM里后,數(shù)據(jù)出錯。
最后只能軟件上在CRC校驗的處理中加入保護邏輯,不要隨便格式化。
解決問題中使用的工具
要想調(diào)查分析這個問題,普通調(diào)試方法是無效的,機器是無法啟動的,需要讀取有問題的板卡上的Flash數(shù)據(jù)。所以我們從淘寶上購買了燒寫Flash的工具,還有匹配我們Flash的底座。使用的底座是根據(jù)封裝類型和Pin腳數(shù)目而定的。
把板子上的SPI Nor Flash吹下來,放入燒寫工具的底座,將其中的數(shù)據(jù)全部dump出來,保存成一個bin文件,然后分析文件系統(tǒng)出錯的原因。
燒寫工具介紹
深圳市思泰佳電子有限公司,VS4000P通用型編程器。
思泰佳官網(wǎng),編程器設備生產(chǎn)商,燒錄設備
鎖緊座腳數(shù):40腳
支持芯片種類:約1.8萬種
支持最大容量:512Mbit
通訊和供電:USB接口
支持系統(tǒng):Win XP/7/8/10
標配包含:編程器主機,USB電纜,光盤(軟件和使用說明)
支持芯片型號以設備為準,可在官網(wǎng)下載器件列表或編程器軟件查看。
還可以下載VS4000P軟件包(附使用說明、器件列表),2023年7月19日更新.zip,15.63MB。
支持的可燒寫的芯片列表如下。
-
常用存儲器
24系列EEPROM:24C01/02/04/08/16/32/64/128/256/512/1024...? ?
??????????????24LC01/02/08/16/32/64/128/256/512...
25系列EEPROM:25010/020/040...640...
25 SPIflash: 25Qxx/25Xxx/25Txx/25Dxx/25Pxx/25Dxx/25Rxxxx/25Uxxxx/25Lxxxx...
27系列EPROM:???27C32/64/128/256/512
28系列:??????28C32/64/128/256...28HCxx....
39系列:??????39Dxxx/39Fxxx/39Lxxx/39Vxxx...
49系列:??????49Fxxx/49Vxxx...
93系列EEPROM: 93C46/56/66/76/86(8bit、16bit),93LC46/56/66/76/86(8bit、16bit),93C45/55/65/75/85...
95系列:??????95010/020/040/080/160/320/640/128/256/512...
45系列:??????45DB011/021/041/081/161/321/641/642...
-
常用51單片機
ATEML:????????AT89C51/52、AT89S51/52、AT89C2051、
WINDBOND:?????W77E58/058/516...、W78E052/058/516...
SST:?????????SST89E516/516RD2...
SyncMOS:?????SM8952A/B...
-
常用PIC單片機
PIC12Cxxx/PIC12Fxxx/PIC16Cxxx/PIC16Fxxx...
PIC18Fxxxx/PIC18LFxxxx...
-
常用AVR單片機
ATmega8/16/32/48/88/162/163/164/168/8515...
ATtiny10/11/12/13/15/24/25/28/44/45/84/2313...
AT90Sxxxx
具體使用
我手里這個是Serial Nor Flash。要根據(jù)Part No來查找芯片資料,比如根據(jù)Density(密度或容量)來查找。芯片上顯示型號W25Q64JVIQ,F(xiàn)AE識別的型號W25Q64JVZEIQ,下載的Datasheet的名字顯示型號:W25Q64JV。
可以在https://www.winbond.com/?官網(wǎng)上,查找芯片手冊。這個芯片是8 pin的。
選擇好芯片,然后執(zhí)行操作就好,很簡單??梢宰x取Flash數(shù)據(jù)、保存文件。也可以導入一個bin文件,然后一鍵寫入Flash。
其他燒寫工具
Flash的第三方燒錄器廠家有很多,可自行選擇,比如可以使用dediprog SF600。
如下可供參考,燒錄器廠商網(wǎng)站:
1. 岱鐠電子的燒錄器(www.dediprog.com)
2. 西爾特(www.xeltek.com)
3. 碩飛(www.sofi-tech.com)
4. 永創(chuàng)(www.forcreat.com)
5. 昂科(www.acroview.com)
6. 艾科(www.elnec.com)
7. 浦洛(www.prosystems.com.cn)
燒寫芯片:存儲芯片和處理器芯片
燒寫芯片的目的,都是將數(shù)據(jù)寫入到存儲設備中。上面介紹的是專門的燒寫工具,是用來裸片燒寫的,可以燒寫SPI Flash、EEPROM等類型的存儲設備,也能燒寫處理器芯片。
我上面燒寫的是8MB的SPI Nor-Flash,掛在處理器(imx257)外面,存儲程序和數(shù)據(jù),而處理器里面是沒有用戶使用的存儲空間的。
而有些存儲器是和處理器集成在一起的,所以這時再燒寫數(shù)據(jù)的就是處理器芯片。我們會說這個MCU或MPU的Rom是多大的,其實就是說它里面集成的閃存空間是多大的,燒寫的是其內(nèi)部的閃存。實際是通過處理器的端子來燒寫其內(nèi)部的存儲設備。
對于燒寫器來說,原理是一樣的,將裸片IC放入合適的底座,再插入燒寫器,燒寫器能正確識別需要使用的端子,通過連接的端子,將數(shù)據(jù)按正確的通訊協(xié)議發(fā)送給IC,就可以了。
另外除了裸片燒錄,還有板級燒錄,是指在元器件都貼到PCB上以后,閃存或處理器芯片都是空數(shù)據(jù)時,進行燒錄。
在實際電子產(chǎn)品開發(fā)和生產(chǎn)中,大多使用這種方法。裸片出廠只是普通物料,在貼到PCB板子上以后,才需要燒入相應的Firmware。做一個板子,燒一個程序,不會浪費物料。
板級燒錄的話,一般需要定制的治具,通過頂針來連接PCB上的TP點,給IC供電,并和PCB上的IC進行通訊,來達到燒錄的目的。
原理和上位機上使用的工具,同裸片燒錄是類似的。
板級燒錄中,還有一種情況,就是空的閃存和單純處理器的組合,比如我使用的iMX6ULL芯片,其內(nèi)部未集成客戶可用的閃存,而是外掛的存儲器。
這種情況下,為了提高系統(tǒng)的靈活性、擴展性,一般都是通過處理器來燒寫外掛的Flash閃存,并不直接操作外掛的閃存。
而處理器一般也支持這種功能,使用治具和處理器進行連接,在上電后,進入燒錄模式,通過處理器,再與外掛的存儲器進行通訊,將數(shù)據(jù)燒寫到外部閃存。
舉些例子:
下面是我以前用的SONIX的8bit OTP 處理器的裸片燒寫工具,也要配個底座。不像現(xiàn)在的芯片里的Flash都是能多次燒寫,這種芯片只能燒錄一次。而且資源很少,才2K ROM, 64 字節(jié)的內(nèi)存。16M的處理器時鐘,14個引腳。
要是通過燒寫來調(diào)式或驗證問題的話,燒完一個廢一個。
調(diào)試器也是有的,長這個樣子。
左邊是我們的板卡,中間是一塊接口板,右邊大大的黑盒子就是來連接電腦的調(diào)試器了。
一提起芯片調(diào)試器,就想起了下面這款:
這是2007年左右,我還在開發(fā)車載音響項目,使用NEC V850芯片的調(diào)試器。
開發(fā)用的板卡上沒有處理器,取而代之的是一個插座,然后插入調(diào)試器的插頭。調(diào)試器另一邊插入電腦,就可以設置軟件斷點、硬件斷點、單步執(zhí)行等。
當年的項目想想還有印象,當年的teammates全都沒了往來,有些唏噓。
參考:
1,松翰芯片
Writer - 松翰科技 :: Sonix Technology Co., Ltd. :: MP5-WRITER
2,美國加州的一個公司網(wǎng)站文章來源:http://www.zghlxwxcb.cn/news/detail-799632.html
https://www.ntc-tech.com/products/renesas-nec-qb-v850essx2-circuit-emulator-w-accessories-included文章來源地址http://www.zghlxwxcb.cn/news/detail-799632.html
到了這里,關于芯片燒寫工具的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!