您好,登錄后才能下訂單哦!
如何理解AXI Quad Serial Peripheral Interface IP核,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。
在使用MicroBlaze過程中,調(diào)用了此IP,所以有必須仔細學(xué)習(xí)下;
名詞:
XIP: eXecute In Place
Motorola M68HC11
支持特性:
*可配置的AXI4接口
*支持對DRR/DTR FIFO的突發(fā)操作;
*支持可配置的XIP模式操作;
*支持AXI4-Lite或者AXI4接口連接的32bit Slave;
*支持可配置的SPI模式:標準、雙、四模式;
*可編程的SPI時鐘相位和極性;
*可配置的FIFO深度,16、256深度;對XIP模式只支持64深度;
*Configurable slave Memories in dual and quad modes are: Mixed,Micro,Winbond,and Spansion;
*SPICR
*SPI DTR:
After the SPE bit is set to 1 in master mode or spisel is active in the slave mode,the data is transferred from the SPI DTR to the shift register.
1. DN-1位始終表示MSB位,與LSB優(yōu)先或MSB優(yōu)先傳輸選擇無關(guān)。 當(dāng)傳輸寬度參數(shù)為8或16時,未使用的高位((AXI數(shù)據(jù)寬度-1)到N)被保留。
2.在標準SPI模式下,根據(jù)內(nèi)核配置,該寄存器的寬度可以是8或16或32。 在雙通道或四通道SPI模式下,該寄存器為8位寬。
*SPI DRR
SPI數(shù)據(jù)接收寄存器(SPI DRR)用于讀取從SPI總線接收的數(shù)據(jù)。 這是一個雙緩沖寄存器。 每次完成傳輸后,接收的數(shù)據(jù)將被放入該寄存器中。 SPI架構(gòu)沒有為從設(shè)備提供任何方法來限制總線上的流量; 因此,只有在最后一次SPI傳輸之前讀取了SPI DRR時,才會在每次完成的事務(wù)后更新SPI DRR。如果未讀取SPI DRR且已滿,則最近傳輸?shù)臄?shù)據(jù)將丟失并發(fā)生接收溢出中斷。 主SPI設(shè)備也會出現(xiàn)相同的情況。
*TX_FIFO_OCY:
僅當(dāng)AXI Quad SPI內(nèi)核配置了FIFO(FIFO深度= 16或256)時,才會出現(xiàn)SPI發(fā)送FIFO占用寄存器(TX_FIFO_OCY)。 如果它存在且發(fā)送FIFO不為空,則寄存器包含一個四位右對齊值,該值比FIFO中的元素數(shù)少一(占用率減1)。
該寄存器是只讀的。 寫入時,或當(dāng)FIFO為空時讀取,寄存器內(nèi)容不受影響。 確定發(fā)送FIFO為空/滿的唯一可靠方法是讀取SPI狀態(tài)寄存器中的Tx_Empty / Tx_Full狀態(tài)位或中斷狀態(tài)寄存器中的DTR空位。
*DGIER
默認[31]=0,全局使能處于disable狀態(tài);
*IPIER
中斷允許寄存器(IPIER)寄存器允許系統(tǒng)中斷輸出有效。 如果IPISR寄存器中的有效位對應(yīng)于IPIER寄存器中的使能位,則會產(chǎn)生該中斷。 IPIER寄存器對IPISR的每個定義位都有一個使能位。 所有位在復(fù)位時清零。
* 編程順序:
寫使能命令順序:
1.通過置位SPICR(60h)的主禁止位來禁用主事務(wù),并通過SPICR復(fù)位RX和TX FIFO。
示例:將0x1E6寫入SPICR
2.通過將0x06寫入SPIDTR來發(fā)出write enable命令。
3.通過向SPISSR(70h)寫入0x00來發(fā)出芯片選擇。
4.通過置低SPICR主禁止位來使能主事務(wù)。
5.通過將0x01寫入SPISSR來置低片選。
6.通過置位SPICR主禁止位來禁用主事務(wù)。
擦除命令序列:
1.通過SPICR復(fù)位RX和TX FIFO。
2.將扇區(qū)擦除命令(a)發(fā)送到SPIDTR以擦除閃存扇區(qū)地址后面的任何特定扇區(qū)或發(fā)出批量擦除命令(a)擦除整個閃存
然后是flash基地址。
示例:將0xD8寫入SPIDTR
3.通過向SPISSR寫入0x00來發(fā)出芯片選擇。
4.通過置低SPICR主禁止位來使能主事務(wù)。
5.通過將0x01寫入SPISSR來置低片選。
6.通過置位SPICR主禁止位來禁用主事務(wù)。
寫數(shù)據(jù)命令序列:
1.通過SPICR復(fù)位RX和TX FIFO。
2.將寫入數(shù)據(jù)命令(a)(b)發(fā)送到SPIDTR,以將數(shù)據(jù)寫入任何特定扇區(qū)
其次是閃存扇區(qū)地址。
3.使用要寫入閃存的數(shù)據(jù)填充SPIDTR; 最大數(shù)據(jù)大小取決于
配置的QSPI FIFO大小。
4.通過向SPISSR寫入0x00來發(fā)出芯片選擇。
5.通過置低SPICR主禁止位來使能主事務(wù)。
6.通過將0x01寫入SPISSR來置低片選。
7.通過置位SPICR主禁止位來禁用主事務(wù)。
讀取數(shù)據(jù)命令序列:
1.通過SPICR復(fù)位RX和TX FIFO。
2.將讀取數(shù)據(jù)命令(a)(b)發(fā)送到SPIDTR以從任何特定扇區(qū)讀取數(shù)據(jù)
其次是閃存扇區(qū)地址。
3.使用虛擬數(shù)據(jù)填充SPIDTR以從閃存中讀取所需數(shù)據(jù)。
4.通過向SPISSR(70h)寫入0x00來發(fā)出芯片選擇。
5.通過置低SPICR主禁止位來使能主事務(wù)。
6.通過將0x01寫入SPISSR來置低片選。
7.通過置位SPICR主禁止位來禁用主事務(wù)
8.讀取SPIDRR,以獲取從SPI總線接收的讀取數(shù)據(jù)。
a.參見相應(yīng)的SPI Slave(閃存)數(shù)據(jù)表,了解要發(fā)出的命令。
b.寫入/讀取命令因使用的模式(標準/雙/四)而異。
看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進一步的了解或閱讀更多相關(guān)文章,請關(guān)注億速云行業(yè)資訊頻道,感謝您對億速云的支持。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。