EDN China > 技术文章 > 微处理器与DSP > DSP应用 > 正文
? 2016博客大赛-不限主题,寻找电子导师,大奖升级??

(多图) 基于SPI方式DSP外部E2PROM接口设计

现代电子技术 许昌学院 张元敏 罗书克?? 2010年01月05日 ?? 收藏0

  3 软件设计

  软件设计主要包括DSP相关寄存器的配置,X5043状态寄存器的配置,以及X5043的读写操作。

  3.1 寄存器的配置

  DSP端需要配置的寄存器主要包括CLKMD,SPCR[1,2],XCR[1,2],RCR[1,2],SRGR[1,2],PCR等。

  其中CLKMD主要配置DSP的时钟;XCR[1,2],RCR[1,2]主要配置接收和发送数据的帧的个数、帧长以及字长。根据对X5043操作的不同,发送和接收的字长也不同,但是针对某一种操作,接收和发送字长是一样的;SRGR[1,2]主要是对CLKGDV,CLKSM,FSGM三个位域的配置;SPCR[1,2]主要是对CLKSTP位域的配置,因为它决定了McBSP是采用时钟停止模式(SPI模式)还是正常模式;引脚控制寄存器(PCR)配置了各个引脚的工作状态。

  值得注意的是在配置McBSP的寄存器之前,首先要使发送、接收和分频器复位,配置完SPCR[1,2],XCR[1,2],RCR[1,2],PCR后,使分频器置位,等待两个时钟周期,在配置SRGR[1,2],然后使发送和接收置位在等待两个时钟周期,这时才可以进行其他操作。

  3.2 X5043的读写操作

  X5043的读操作包括读状态寄存器、读存储器阵列(即读数据)。写操作包括写使能/写禁止、写状态寄存器、写存储器阵列(写数据)。X5043的指令组如表1所示。

X5043的指令组

  下面主要讲一下对单个数据的读写操作。

  3.2.1 写一个字节操作

  写操作之前必须写使能,即向X5043先发送数据(06H)。首先将CS拉低,然后向器件输入WREN指令,在将CS拉高。再次将CS拉低并输入WRITE指令,后面跟随8位地址,在后面需要写入的数据。WRITE指令的位3是地址位A8,它选择是阵列的高半部分还是低半部分。如果CS在WREN和WRITE之间没变为高,则WRITE指令被忽略。写操作时序如图3所示。

写操作时序

  在字节的最后一个位0写入后,CS必须被拉高。如果它在其他时间拉高,写操作不完全。在存储器写操作之后跟随一次非易失性写操作。可以通过读状态寄存器的WIP位来判断非易失性写是否结束。只有非易失性写结束之后才可以进行下次写操作。

  值得注意的是McBSP在SPI模式下,只有数据发送的时候CLKX端才有时钟输出,FSX端才输出低电平的帧同步信号。因为在发送写使能和写数据指令之间要求CS(即FSX)变高,所以DSP要分两次把数据送给X5043。且这两次发送的字长不同(写使能一个字节,写数据三个字节),所以在发送之前需要重新配置McBSP。

  3.2.2 读一个字节操作

  当从E2PROM存储器阵列读数据时,首先CS通过FSX引脚拉低为低电平,然后送READ指令到器件,后面跟随8位地址,在后面就是发送8位无意义的数据(目的是为了继续产生时钟信号)。发送结束后,所选地址中的数据从SO端移出到McBSP的数据接收引脚。读操作时序如图4所示。

读操作时序

  读操作和写操作一样,都是发送三个字节的数据,所以McBSP的串口字长要配置为24位。读操作发出以后,通过查看SPCR1寄存器的RRDY位来判断接收数据是否完成,若RRDY为1,则读DRR寄存器获取数据。

  3.3 值得注意的地方

  无论是写使能/写禁止、写状态寄存器还是写数据,当McBSP相应数据发送结束后,McBSP的时钟和帧同步信号都将变为无效状态,这种无效状态要保持至少10μs之上(否则数据将无法正确写入),然后在读取X5043的状态寄存器,判断非易失性写是否结束,结束了才可以进行其他操作。

  4 结 语

  通过SPI接口外接E2PROM,简化了硬件电路,提高了系统的可靠性和开发难度,具有很实际的应用价值。


上一页12下一页
?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

SPI? DSP? E2PROM? 接口?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈