电竞比分网-中国电竞赛事及体育赛事平台

分享

自制閃存編程器(STM32 SD卡脫機燒寫)

 xuqinav 2019-07-24
本帖最后由 jzzhl 于 2015-5-4 14:37 編輯
        給大家講講我是如何在手上沒有編程器的情況下自制了一個編程器,然后成功的刷入固件的?;赟TM32(ARM)開發(fā),開源給大家,放出原理圖,源代碼,軟件工具等(見附件或http://pan.baidu.com/s/1gdfCJE7),僅供個人學習研究,請不要用于商業(yè)用途。本文的目的在于分享經(jīng)驗,曬曬樓主的技術,沒有開發(fā)過STM32經(jīng)歷的慎重折騰,建議還是用買來的編程器玩玩刷機就好。
一、
        前幾天從網(wǎng)上收了一個二手騰達N300,v1版32m內存的,據(jù)說有很高的可玩性,所以同時買了個8M閃存,SMA轉接線,打算用來刷磊科236固件,搞搞中繼、寬帶疊加神馬的。到手后以為換上新閃存,像電腦換硬盤一樣,通電直接在網(wǎng)頁上刷固件就行了,結果焊好后通電啥也沒有,后來才知道還有個叫做CFE的東東類似于電腦的BIOS,需要用編程器刷到flash里。。。瞬間蛋疼了,手上沒有編程器啊。。。某寶上20多就能搞到,但是路途遙遠不想花時間坐等,而且感覺只為了刷一次路由就買個編程器不是很劃算。樓主是學電子的,主要研究ARM神馬的,手上有STM32最小系統(tǒng)板,sd卡之類的,于是就利用這些,還有修改正點原子的讀寫FLASH的例程,用了2個小時成功搞出了flash脫機燒寫器。在壇子上下載的磊科236編程器固件刷入Flash,焊好,成功進入路由。以后會發(fā)一篇路由改好后的帖子,在此先不提。燒寫8M flash用了大約10分鐘,如果優(yōu)化下程序,估計8分鐘就可以了。
二、
        先說下硬件結構,附件上會放出原理圖,接線圖及一些軟件。
首先,是STM32核心板,圖片上的型號是STM32F103ZET6(144腳),實際上用STM32F103C8T6(48腳)就夠用了
其次是SD卡座,樓主這個是自制的。。。
最后,需要一塊洞洞板,把主角(8M flash)放在上面(像不像蜘蛛。。。)
主要就是這3大塊,還有就是杜邦線若干。
SD卡與flash都是通過SPI的方式讀寫的,所以可以共用一個SPI接口,通過片選腳區(qū)分,下面介紹下圖中的卡座怎么接,看圖就懂了
除此之外,還需一些工具,pl2303串口線是必須的,既可以下載程序,又能監(jiān)控刷寫進度。
j-link,如果你也是搞STM32開發(fā)的話,你肯定會有它的,就是用來給STM32下載程序的,串口線可以代替它,所以不是很重要
Stm32工程使用keil v4.0編譯,工程在USER目錄下的HZ.uvproj文件打開,已經(jīng)編譯好的源碼在OUTPUT目錄下的Flasher.hex。可以使用串口下載軟件mcuisp.exe(見附件)將這個.hex文件下載到STM32中即可(這個.hex就是STM32編程器的程序(固件))。
目前只實現(xiàn)了燒寫功能,稍加改進,實現(xiàn)固件的備份也是可以的。
三、
        介紹下如何使用。首先,把要寫入的編程器固件改名為“update.bin”,找一張手機用的tf卡并格式化為FAT32格式,復制固件update.bin到TF卡中的根目錄下,插入TF卡座。Stm32芯片已經(jīng)下載好程序,硬件連接無誤后,通電。這時會有LED指示燈,由熄滅變?yōu)槌A?,表示是正在擦除全片flash,并寫入固件。等LED變?yōu)殚W爍狀態(tài)時,固件寫入完成,斷電,取下flash焊接即可。刷寫固件的同時也可以在串口端看到進度提示信息等,波特率9600。串口軟件在附件中放出。
數(shù)字的意義:前面一直在變的是當前燒寫的地址,后面不變的是固件總共的大小,圖中的就是8MB,最后的是燒寫進度的百分比。燒寫成功后,會在串口端打印出flash前100個地址的數(shù)據(jù),方便查看是否燒寫成功(不是全ff就成功了),和winhex打開update.bin文件的前100個字節(jié)應該是一樣的。
最后來張全家福~

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多