TMS320F241型DSP的SPI口EEPROM扩展
在选定地址的存储在存储器中的数据即在SO线上移出。读操作由拉高/CS而终止。
读1个字节数据的程序代码如下:
READ:
KICK_DOG
CALL RSDR_WIP
;读状态寄存器检查WIP位
SPISTE_LOW
;置低SPISTE引脚,从而选通X5043
LDP #0
SPLK #READl(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
;此data1无意义,使SPI口连续提供时钟信号,使数据输出
;输出的数据存储在SPI_Xdata中
SPISTE_HIGH
;置高SPISTE引脚,禁止X5043
RET
本文链接地址:http://www.oyaya.net/fanwen/view/151494.html
读1个字节数据的程序代码如下:
READ:
KICK_DOG
CALL RSDR_WIP
;读状态寄存器检查WIP位
SPISTE_LOW
;置低SPISTE引脚,从而选通X5043
LDP #0
SPLK #READl(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
;此data1无意义,使SPI口连续提供时钟信号,使数据输出
;输出的数据存储在SPI_Xdata中
SPISTE_HIGH
;置高SPISTE引脚,禁止X5043
RET
由于X5043是一个半双工器件,在WRITE子程序中从SPIRXBUF中读出来的数据是无效的,同时,在READ子程序中写向SPITXBUF的data1数据也是无效的,只起启动发送时钟的作用。
4.结束语
DSP可以连续的向EEPROM中写入多至16个字节的数据。唯一的限制是16个字节必须在同一页中。一页地址由[X XXXX 0000]开始,由[X XXXX 1111]结束。如果字节地址达到了页中的最后字节而时钟仍在继续,则计数器将返转至该页的第一个地址并重写前面已写过的数据。在连续地提供时钟脉冲的条件下储存在存储器地址处的数据可被连续地读出。在每个数据字节被移出后,器件即自动将地址增加至下一个更高的地址。当达到最高的地址时,地址计数器即翻转到地址00H,使读周期无限制地连续下去。上面只给出了X5043单个字节的读写程序代码,对于多个字节或一页16个字节的读写程序代码可根据单个字节的读写程序代码进行扩展给出。
《TMS320F241型DSP的SPI口EEPROM扩展(第4页)》

★读了本文的人也读了: