DataFlash系列存儲(chǔ)器可以按地址從低到高順序讀寫,也可以隨機(jī)讀寫任一字節(jié)的數(shù)據(jù)。對(duì)于順序讀數(shù)據(jù),可以使用連續(xù)讀主存頁陣列命令(操作碼68H或E8H)從給定的起始地址開始連續(xù)讀出,中間不需用戶干預(yù),也可使用讀單頁主存命令(操作碼52H或D2H),自行提供頁地址讀取數(shù)據(jù)。對(duì)于順序?qū)憯?shù)據(jù),可以使用通過緩存寫主存頁命令(操作碼82H或85H),直接將數(shù)據(jù)寫入主存;也可以先使用寫緩存命令(操作碼84H或87H),將數(shù)據(jù)寫入緩存,在適當(dāng)?shù)臅r(shí)刻再使用緩存寫主存頁命令(操作碼83H或86H),將緩存中的數(shù)據(jù)寫入主存。
使用何種方式讀寫取決于特定的應(yīng)用場合與要求。 下面的子程序?yàn)轫樞蜃x/寫存儲(chǔ)器的例子。子程序spiwt采用了通過緩存寫主存頁的方法,向存儲(chǔ)器寫入1字節(jié)數(shù)據(jù)。順序讀存儲(chǔ)器子程序spicrd采用了邊疆讀主存頁陣列命令。從給定地址處連續(xù)讀出數(shù)據(jù),用圖5所示的PIC16LC73B單片機(jī)匯編語言編寫,使用MPLAB5.4.00編譯器編譯通過并燒寫入單片機(jī),按下圖所示系統(tǒng)實(shí)測通過。
順序?qū)懽映绦?,用spiwt名稱調(diào)用
spiwt bcf STATUS,RP0
bcf PORTB,SCK ;模式0
bcf PORTB,cs ;片選
movlw 82H ;加載操作碼
movwf spi_out ;置入寄存器
call spiout ;調(diào)用子程序輸出操作碼
movf PA1,w ;加載第一字節(jié)地址
movwf spi_out ;置入寄存器
call spiout ;調(diào)用子程序輸出
movf BA1,w
xorwf PA2,w ;獲得第二字節(jié)地址
movwf spi_out ;置入寄存器
call spiout ;調(diào)用子程序輸出
movf BA2,w ;加載第三字節(jié)地址
movwf spi_out ;置入寄存器
call spiout ;調(diào)用子程序輸出
movf spi_wt,w ;加載待寫數(shù)據(jù)
movwf spi_out ;置入寄存器
call spiout ;調(diào)用子程序輸出
bsf PORTB,cs ;觸發(fā)寫入操作
nop ;延時(shí)
retlw 0 ;從子程序返回
;輸出子程序,用spiout名稱調(diào)用
spiout movlw 0x08 ;加載輸出位數(shù)
movwf spi_cnt ;置入寄存器
nspiout rlf spi_out ;先輸出最高位
btfsc STATUS,C ;是否為1
bsf PORTB,SDO ;輸出1
btfss STATUS,C ;是否為0
bcf PORTB,SDO ;輸出0
nop ;延時(shí)
bsf PORTB,SCK ;時(shí)鐘信號(hào)上升沿
nop ;延時(shí)
bcf PORTB,SCK ;時(shí)鐘信號(hào)下降沿
decfsz spi_cnt ;檢查輸出位數(shù)
goto nspiout ;輸出下一位
retlw 0 ;從子程序返回
;順序讀子程序,用名稱spicrd調(diào)用
spicrd bcf STATUS,RP0
bcf PORTB,cs ;片選
bcf PORTB,SCK ;模式0
movlw E8H ;加載操作碼
movwf spi_out ;置入寄存器
call spiout ;調(diào)用子程序輸出
movf PA1,w ;加載第一字節(jié)地址
movwf spi_out ;置入寄存器
call spiout ;調(diào)用子程序輸出
movf BA1,w
xorwf PA2,w ;獲得第二字節(jié)地址
movwf spi_out ;置入寄存器
call spiout ;調(diào)用子程序輸出
movf BA2,w ;加載第三字節(jié)地址
movwf spi_out ;置入寄存器
call spiout ;調(diào)用子程序輸出
movf DCRE,w ;加載任意位字節(jié)
movwf spi_out ;置入寄存器
call spiout ;調(diào)用子程序輸出
movf DCRE,w ;共需4個(gè)任意位字節(jié)
movwf spi_out
call spiout
movf DCRE,w
movwf spi_out
call spiout
movf DCRE,w
movwf spi_out
call spiout
retlw 0 ;從子程序返回
本文關(guān)鍵詞:
DataFlash
相關(guān)文章:
DataFlash存儲(chǔ)器命令接口與狀態(tài)機(jī)
深圳市英尚微電子有限公司,十年來專業(yè)致力代理分銷存儲(chǔ)器芯片IC, SRAM、MRAM、pSRAM、 FLASH芯片、SDRAM(DDR1/DDR2/DDR3)等,為客人提供性價(jià)比更高的產(chǎn)品及方案。
了解更多關(guān)于存儲(chǔ)芯片知識(shí),請(qǐng)關(guān)注英尚微電子:http://cakyus.com