Jlink使用技巧之燒寫SPI Flash存儲芯片


前言

大多數玩單片機的人都知道Jlink可以燒寫Hex文件,作為ARM仿真調試器,但是知道能燒寫SPI Flash的人應該不多,本篇文章將介紹如何使用JLink來燒寫或者讀取SPI Flash存儲器,JLink軟件包含的工具中,有一個是JFlashSPI工具,這就是一個燒寫和讀取SPI存儲器的工具了。

准備

  • 要燒寫程序或讀取程序的的Flash芯片:SPI協議的Flash都可以,如W25Q128。
  • JFlashSPI軟件工具:在Jlink系列軟件的安裝目錄下
  • JLink V9仿真器
  • 要燒寫的文件:如GBK字庫文件,UNIGBK.BIN

硬件連接

Jlink內部集成了SPI協議,部分接口是作為SPI復用功能的,具體硬件連接,如下圖所示:

對於20P的標准JTAG接口

|引腳編號|名稱|輸入輸出|和SPI Flash的連接|
|----|-----|-----|
|5|DI |輸入|連接SPI Flash的MOSI引腳|
|7|nCS |輸出|連接SPI Flash的CS引腳|
|9|CLK |輸出|連接SPI Flash的CLK引腳|
|13|DO |輸出|連接SPI Flash的MISO引腳|

對於10P的JTAG接口

|引腳編號|名稱|輸入輸出|和SPI Flash的連接|
|----|-----|-----|
|2|nCS |輸出|連接SPI Flash的CS引腳|
|4|CLK |輸出|連接SPI Flash的CLK引腳|
|6|DO |輸出|連接SPI Flash的MISO引腳|
|8|DI |輸入|連接SPI Flash的MOSI引腳|

這里要注意的一點,正版的Jlink仿真器1腳是輸入引腳,是外部提供參考電平的,但由於現在大部分的JLink仿真器都是學習(dao)版的,1腳不是輸入,而是3.3v的輸出,所以可以直接用這個管教來給SPI Flash供電。

1.打開

有兩個工具,一個是JFlashSPI.exe是圖形化工具,一個JFlashSPI_CL.exe是命令行操作,這里重點介紹圖形化工具JFlashSPI,打開Jlink軟件的安裝目錄,雙擊打開JFlashSPI,界面和之前介紹的JFlash差不太多。

2.連接SPI Flash芯片

點擊Target->Connect,如果連接成功的話,會在底部輸出連接信息,會顯示Flash芯片的型號,生產廠家,Flash ID等等信息。

就像我這個Flash芯片,絲印明明寫的華邦Winbond W25Q128,這里讀取的卻是飛索Spansion S25FL128K,難道是盜版芯片?

3.打開程序文件

點擊File->Open data file,打開要燒寫的字庫文件,支持多種格式的文件,由於是選擇的Bin文件,沒有起始地址,所以手動輸入燒寫的起始地址,這里填寫0就可以了。關於燒寫文件的格式說明,可以查看之前的一篇文章:BIN、HEX、AXF、ELF文件格式有什么區別

4.下載

點擊Target->Auto下載程序到Flash芯片內。

下載完成后,會在底部窗口顯示下載成功的信息,可以看出燒寫速度還是比較快的,170KB的字庫文件,用時不到1秒鍾。

5.程序文件的讀取

和讀寫單片機程序一樣,也是支持讀取SPI Flash芯片程序的,為了尊重他人的勞動成果,這里的介紹僅供學習使用,不可用於商業破解目的。

可以看出,和下載相比,讀寫速度明顯要慢得多,因為是讀取的整個16M的存儲區,所以時間會相對長一些。

6.程序文件的保存

程序文件讀取完成后,可選擇將文件保存到本地目錄,保存格式可根據需要選擇。

7.命令行工具的使用

JFlashSPI_CL.exe是JFlashSPI的命令行工具,通過輸入命令實現讀寫Flash,這里簡單介紹一下燒寫功能。

在終端運行:./JFlashSPI_CL.exe

可看到一些幫助信息,主要是指令的說明:

可以看到-connect連接,-open打開燒寫文件,-auto燒寫,如果是燒寫,這3個命令就夠了,首先把要燒寫的文件復制到JFlashSPI_CL.exe同級目錄,輸入指令:

./JFlashSPI_CL.exe -open UNIGBK.BIN 0 -connect -auto

可以看到,燒寫成功

為了方便快捷,我們可以將以上命令寫成一個批處理命令,直接雙擊運行即可,

新建download.bat文件,並以記事本方式打開,輸入以下內容

JFlashSPI_CL.exe -open UNIGBK.BIN 0 -connect -auto
echo 程序燒寫完成!
pause

然后將這個bat文件和要燒寫的字庫文件放到一個文件夾下。雙擊直接運行就可以直接燒寫,是不是方便了許多呢?

支持的芯片列表

支持的Flash芯片多達百種,如Atmel的AT25系列,國產兆易的GD25Q系列等等,基本上常見的SPI協議Flash芯片都支持,具體的芯片列表可查看SEGGER官方網址:List of supported SPI flashes

速度說明

對於不同型號的Flash芯片,Jlink燒寫器最大的寫入速度也不同,具體可參考:

Flash device Programming speed1 Flash device Programming speed1
ISSI IS25LP128 500 KB/s Micron N25Q128A 270 KB/s
ISSI IS25LD040 100 KB/s Micron M25P10 160 KB/s
ISSI IS25LQ080 340 KB/s Micron M25PX16 230 KB/s
ISSI IS25CD010 100 KB/s Micron M45PE10 230 KB/s
ISSI IS25CQ032 190 KB/s Micron M25PE4 215 KB/s
Macronix MX25L3235E 285 KB/s Spansion S25FL128 410 KB/s
Macronix MX66L1G45G 430 KB/s Spansion S25FL116K 265 KB/s
Macronix MX66L51235F 315 KB/s Winbond W25Q128FV 340 KB/s

參考資料:

J-Flash SPI

JLink軟件的下載

JLink_Windows_V614b軟件下載鏈接:JLink_Windows_V614b.exe


Jlink使用技巧系列文章:


歡迎大家關注我的個人博客

或微信掃碼關注我的公眾號


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM