TMS320F241型DSP的SPI口EEPROM扩展
跟随一次非易失性写操作。可以读状态寄存器检查WIP位,若WIP为高则非易失性写正在进行。X5043存储器非易失性写周期为10mS,也可以在一个写操作完成后作一个大于10mS的延时,以保证X5043完成内部写操作。
SPISTE_LOW
;置低SPISTE引脚,从而选通X5043
LDP #0
SPLK #WRITEl(h),SPI_Xdata
CALL XMIT_VALUE
;输入寄存器指令
LDP #0
LACL address1
SACL SPI_Xdata
CALL XMIT_VALUE
;输入寄存器地址
LDP #0
LACL data1
SACL SPI_Xdata
CALL XMIT_VALUE
;输入寄存器数据
SPISTE_HIGH
;置高SPISTE引脚,禁止X5043
CALL RSDR_WIP
;读状态寄存器检查WIP位,X5043完成内部非易失性写
RET
本文链接地址:http://www.oyaya.net/fanwen/view/151494.html
3.5.3向X5043 EEPROM存储器阵列中写数据
如图4所示,向EEPROM存储器阵列写入任何数据之前,必须用WREN指令设置WEL位。首先将CS拉低,向器件输入WREN指令,然后拉高/CS。再次拉低/CS并输入WRITE指令,紧跟随8位地址,然后是要写入的数据。WRITE指令的位3是地址位A8,该位选择阵列的高半部分或是低半部分。如果/CS在WREN和WRITE之间不变为高,则WRITE指令将被忽略。为了完成写操作,在最后一个被写入的数据字节的位0完成后/CS必须被拉高。如果它在任何其它时间被拉高,写操作将不完成。
写1个字节数据的程序代码如下:
WRITE:
KICK_DOG
CALL RSDR_WIP
;读状态寄存器检查WIP位
;写WREN指令代码段
SPISTE_LOW
;置低SPISTE引脚,从而选通X5043
LDP #0
SPLK #WREN,SPI_Xdata
CALL XMIT_VALUE
SPISTE_HIGH
;置高SPISTE引脚,禁止X5043
CALL RSDR_WIP
;读状态寄存器检查WIP位
;写WRITE指令/地址/数据代码段
SPISTE_LOW
;置低SPISTE引脚,从而选通X5043
LDP #0
SPLK #WRITEl(h),SPI_Xdata
CALL XMIT_VALUE
;输入寄存器指令
LDP #0
LACL address1
SACL SPI_Xdata
CALL XMIT_VALUE
;输入寄存器地址
LDP #0
LACL data1
SACL SPI_Xdata
CALL XMIT_VALUE
;输入寄存器数据
SPISTE_HIGH
;置高SPISTE引脚,禁止X5043
CALL RSDR_WIP
;读状态寄存器检查WIP位,X5043完成内部非易失性写
RET
3.5.4从X5043 EEPROM中读取数据
如图5所示,/CS只要拉低选中器件。8位READ指令送到器件,后面跟随8位地址,就可以读取指定地址下的EEPROM存储器阵列中的数据。READ指令的位3选择器件的高半部分或是低半部分。在READ指令码和地址送出后,
《TMS320F241型DSP的SPI口EEPROM扩展(第3页)》