一、概述
在操作相關(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進(jìn)行開發(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進(jìn)行初始化


(三)SPI頻率
先楫的SPI SCLK可以達(dá)到80M,這里由于是杜邦線接的flash模塊,波形會存在失真,使用該flash可以達(dá)到50M的QSPI速度。
使用SDK的spi_master_timing_init api接口進(jìn)行SPI頻率調(diào)整。
(四)指令操作(單線模式SPI操作)
1. 華邦相關(guān)flash都會有手冊,這里使用了SDK的spi_transfer api接口封裝了一個指令操作的API。下面根據(jù)這個api配合flash器件的手冊命令進(jìn)行說明。
比如使用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é)進(jìn)行1到256賦值,然后再讀取,這時候會是0~255 0變化。查看波形可以知道,讀寫正常。

三、總結(jié)
先楫的spi外設(shè)支持常規(guī)單線SPI,雙線duad spi,四線quad spi。有著專用的操作flash的寄存器。極大方便開發(fā)相關(guān)flash器件。
-
控制器
+關(guān)注
關(guān)注
114文章
17791瀏覽量
193178 -
寄存器
+關(guān)注
關(guān)注
31文章
5608瀏覽量
129994 -
FlaSh
+關(guān)注
關(guān)注
10文章
1748瀏覽量
155527 -
SPI
+關(guān)注
關(guān)注
17文章
1885瀏覽量
101250 -
先楫半導(dǎo)體
+關(guān)注
關(guān)注
12文章
285瀏覽量
3301
原文標(biāo)題:開發(fā)者分享|先楫hpm6000的SPI外設(shè)使用四線模式操作讀寫華邦flash
文章出處:【微信號:HPMicro,微信公眾號:先楫半導(dǎo)體HPMicro】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
【先楫HPM5361EVK開發(fā)板試用體驗(yàn)】先楫HPM5361EVK開發(fā)板初體驗(yàn)
先楫半導(dǎo)體HPM6750EVKMINI評估板免費(fèi)試用
先楫半導(dǎo)體HPM6700系列正式合入OpenHarmony社區(qū)主干
先楫hpm6000的SPI外設(shè)使用四線模式操作讀寫華邦flash
先楫HPM6000系列雙核MCU怎么玩?
如何玩轉(zhuǎn)HPM6000系列雙核MCU?
先楫HPM6000系列MCU雙核的通信方式和資源分配
HPM6000系列微控制器 CMSIS DAP調(diào)試器使用指南
HPM6000系列微控制器的BOOT 模式的說明以及相應(yīng)的外部電路設(shè)計(jì)建議
應(yīng)用貼士 | HPM6000系列 Security Flash介紹
玩轉(zhuǎn)MCU雙核(上) 先楫HPM6000系列雙核怎么玩?答案超乎你想象!
玩轉(zhuǎn)先楫HPM6000系列雙核(下)
先楫hpm6000的SPI外設(shè)使用四線模式操作讀寫華邦flash
先楫hpm6000的SPI外設(shè)使用四線模式操作讀寫華邦flash
評論