TMS320F2812的SPI接口设计

[09-14 00:27:47]   来源:http://www.88dzw.com  通信电路   阅读:8528

文章摘要:2.3 发送数据流程 SPI发送数据需要先完成写使能操作,然后依次传送写指令和低位地址,才可以正确地进行数据写入。向SPITXBUF寄存器中写入待发的数据,SPI时钟就会自动启动,数据会由输出引脚顺次传出;数据传送完后,SPI时钟自动停止。也可以通过查询SPI中断标志位来判断数据是否完成发送,若该标志位为1,则可接着发送下一个数据。SPI设置成主模式时,发送完一个数据,必须要空读一下SPIRXBUF寄存器,以清除SPI中断标志位。由于在读取数据的过程中已经包含读SPIRXBUF寄存器,因此在读取数据时不需要再空读SPIRXBUF寄存器。下面给出发送数据程序,其中data为待发送的数据,a

TMS320F2812的SPI接口设计,标签:电路设计,http://www.88dzw.com

2.3 发送数据流程
    SPI发送数据需要先完成写使能操作,然后依次传送写指令和低位地址,才可以正确地进行数据写入。向SPITXBUF寄存器中写入待发的数据,SPI时钟就会自动启动,数据会由输出引脚顺次传出;数据传送完后,SPI时钟自动停止。也可以通过查询SPI中断标志位来判断数据是否完成发送,若该标志位为1,则可接着发送下一个数据。SPI设置成主模式时,发送完一个数据,必须要空读一下SPIRXBUF寄存器,以清除SPI中断标志位。由于在读取数据的过程中已经包含读SPIRXBUF寄存器,因此在读取数据时不需要再空读SPIRXBUF寄存器。下面给出发送数据程序,其中data为待发送的数据,addr为待发送数据将要存放的地址。

2.4 运行效率的提升
    25LC040要求在写操作之后有一定的写周期时间来存储数据,其间TMS320F2812对25LC040的所有访问会被忽略。每个器件都有规定的最坏情况写周期时间,可以通过在再次访问25LC040之前插入不小于最坏情况写周期时间的延时等待来确保遵守写周期时间。但是25LC040常常会在最大规定时间内完成写周期,而此时TMS320F2812还在等待,会造成不必要的时间浪费。25LC040内部有一个状态寄存器,其第l位为WIP(Write-In-Process)位,该位是一个只读位,可以显示25LC040是否处在写周期内。当芯片处于写周期时,WIP位置1;当写操作完成时,WIP位立即清零。状态寄存器在写操作期间仍然可读,可以通过读状态寄存器指令(WRSR)来获取状态寄存器的内容,从而得到WIP位的值以判断写周期何时完成,以进入下一步操作。这样就可以减少不必要的等待时间,使运行更加高效。具体的流程如图5所示。

结语
   本文在分析TMS320F2812 SPI模块的特点的基础上,描述了SPI各个控制寄存器的作用。通过与EEPROM25LC040通信的实例,给出了SPI口的软硬件设计方法,并对其中需要注意的关键问题进行了分析讨论。

www.88dzw.com
1.2.1 读时序
    当片选信号为低时,向25LC040传送8位的读指令(0000 A8011),紧接着传送需要读取数据的低8位地址。当正确的读写指令和地址被识别后,EEPROM中对应地址的数据将会由输出引脚顺次传出,若继续提供时钟信号,下一位地址对应的数据也会依次读出。当片选信号为高时,读数据的操作将会被终止。其具体操作如图1所示。图中,CS为片选信号,SCK为时钟信号,SI为输入引脚信号,SO为输出引脚信号。


1.2.2 写时序
    在对25LC040进行任何写操作之前,必须先执行WREN(写使能)指令。写使能指令的操作如图2所示。先使片选信号为低,然后传送写使能指令到25LC040中,指令传送完毕后,必须将片选信号设置为高以完成写使能操作。如果写指令传送结束后没有拉高片选信号,直接进行写操作,那么数据将不会写入到存储阵列中。


    写使能操作完成后,片选信号应该被拉低以进行写操作,时序如图3所示。写指令、写入地址以及写入的数据会被依次传送到25LC040中。若要使数据正确地写入到存储阵列中,片选信号应该在最后一个有效字节的D0位传送完毕后被拉高。

上一页  [1] [2] [3]  下一页


Tag:通信电路电路设计家电维修 - 单元电路介绍 - 通信电路