一、概述
在操作相關(guān)flash器件的時候,需要先發(fā)指令再讀數(shù)據(jù),或者先發(fā)指令再發(fā)地址再發(fā)dummy再讀相關(guān)數(shù)據(jù)。而先楫的SPI控制器中,SPI傳輸包括了命令、地址和數(shù)據(jù)字段,提供了專用的寄存器來存儲這些字段,不需要開發(fā)者自行去填充。本文使用hpm6200evk開發(fā)板,flash器件是華邦的W25Q64JV。使用hpm_sdk進行開發(fā)。
SPI四線模式,統(tǒng)稱也就QSPI。
本文是作者在使用先楫的SPI調(diào)試flash器件的心得,僅僅作為參考。
二、開發(fā)流程
(一)外設(shè)引腳初始化
需要初始化下SPI時鐘,由于SDK使用的是單線常規(guī)模式的SPI,所以引腳上我們還需要初始化IO2和IO3兩個引腳。


(二)SPI模式初始化
華邦的W25Q64JV使用的SPI模式是mode0或者mode3。這里使用mode0。可以使用sdk的api接口spi_format_init進行初始化


(三)SPI頻率
先楫的SPI SCLK可以達到80M,這里由于是杜邦線接的flash模塊,波形會存在失真,使用該flash可以達到50M的QSPI速度。
使用SDK的spi_master_timing_init api接口進行SPI頻率調(diào)整。
(四)指令操作(單線模式SPI操作)
1. 華邦相關(guān)flash都會有手冊,這里使用了SDK的spi_transfer api接口封裝了一個指令操作的API。下面根據(jù)這個api配合flash器件的手冊命令進行說明。
比如使用90命令讀取制造商設(shè)備ID的時候,使用單線模式,需要先發(fā)指令,再發(fā)兩個dummy,之后就是讀取。

那么使用spi_transfer賦值以下結(jié)構(gòu)體

cmd_enable:使能命令段傳輸
addr_enable:使能地址段傳輸
addr_pahase_fmt:選擇是單線模式還是四線模式傳輸?shù)刂?/p>
trans_mode:選擇的傳輸模式,比如同時讀寫,僅寫,僅讀,寫讀,讀寫,寫填充讀,讀填充寫等
dmmy_cnt:填充的數(shù)量
依靠上述說明,可以使用單線模式,傳輸模式為填充再讀。填充數(shù)量為2

通過波形查看,是沒什么問題的。

從以下可知,單線模式收發(fā)指令是沒什么問題的。

(五)讀寫操作(四線模式QSPI操作)
這里舉例讀操作,讀操作有好幾條指令。這里舉例使用Fast Read Quad I/O指令,也就是EBh指令。這里需要先發(fā)指令,再發(fā)地址(地址使用四線模式),再發(fā)三個填充dummy,之后再讀。


擦除指令,可寫入指令跟以上類似,這里測試sector0的0頁地址。

對0頁的256字節(jié)進行1到256賦值,然后再讀取,這時候會是0~255 0變化。查看波形可以知道,讀寫正常。

三、總結(jié)
先楫的spi外設(shè)支持常規(guī)單線single spi,雙線dual spi,四線quad spi。有著專用的操作flash的寄存器。極大方便開發(fā)相關(guān)flash器件。
-
FlaSh
+關(guān)注
關(guān)注
10文章
1748瀏覽量
155527 -
SPI
+關(guān)注
關(guān)注
17文章
1885瀏覽量
101257 -
外設(shè)
+關(guān)注
關(guān)注
0文章
43瀏覽量
12089
發(fā)布評論請先 登錄
CES2026:先楫半導(dǎo)體隆重推出HPM5E3Y,打造機器人運動控制芯片陣容
先楫方案 | LED車尾燈純硬件高刷新率解決方案
經(jīng)驗分享 | eclipse搭建先楫開發(fā)環(huán)境
先楫解決方案 | 變頻器EtherCAT通訊卡+遠程IO方案
SPI NOR FLASH是什么,與SPI NAND Flash的區(qū)別
先楫半導(dǎo)體高性能MCU入駐立創(chuàng)商城,國產(chǎn)芯勢力再添新動能
hpm6364內(nèi)部flash使用時的openocd配置問題.
支持HPM6P00/HPM5E00系列!HPMicro Manufacturing Tool v0.6.0發(fā)布
先楫半導(dǎo)體HPM6E8Y:先楫實時控制芯片驅(qū)動的機器人關(guān)節(jié)“芯”時代
【強勢上新】HPM5E00:EtherCAT運動控制MCU,先楫半導(dǎo)體再拓工業(yè)總線產(chǎn)品新版圖
【強勢上新】HPM5E00:EtherCAT運動控制MCU,先楫半導(dǎo)體再拓工業(yè)總線產(chǎn)品新版圖
AD7606C-18的硬件串行模式,如何使用三線SPI?
600MHz RISC-V 雙核加持!先楫HPM6P00重新定義國產(chǎn)高性能混合信號MCU
先楫hpm6000的SPI外設(shè)使用四線模式操作讀寫華邦flash
評論