TMS320F2812的SPI接口设计

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

文章摘要:摘要:为了使控制系统的参数能够在掉电之前保存下来,提出一种SPI模块与25LC040芯片的接口设计方法,介绍了DSP芯片TMS320F2812 SPI模块的特点,以及25LC040芯片的功能特点、操作规范和读写时序,给出了硬件接口电路,详细介绍了SPI模块各个功能部分的设置;设计了一种可以提高运行效率的查询算法,并给出数据编程的软件设计,解决了DSP芯片不能保存在线更改参数的问题,从而使系统可以直接使用已经调整好的参数,而不必重新设置。关键词:TMS320F2812;25LC040;SPI接口;软件设计引言 目前,在一些控制系统中需要不断地调整参数或者改变相关的设置,才能取得良好的控制效

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

摘要:为了使控制系统的参数能够在掉电之前保存下来,提出一种SPI模块与25LC040芯片的接口设计方法,介绍了DSP芯片TMS320F2812 SPI模块的特点,以及25LC040芯片的功能特点、操作规范和读写时序,给出了硬件接口电路,详细介绍了SPI模块各个功能部分的设置;设计了一种可以提高运行效率的查询算法,并给出数据编程的软件设计,解决了DSP芯片不能保存在线更改参数的问题,从而使系统可以直接使用已经调整好的参数,而不必重新设置。
关键词:TMS320F2812;25LC040;SPI接口;软件设计

引言
    目前,在一些控制系统中需要不断地调整参数或者改变相关的设置,才能取得良好的控制效果,并且将这些参数在掉电之前保存下来,从而确保下次运行时可以直接使用已经调整好的参数,而不必重新设置。这就需要EEPROM(Electrically Erasable Programmable Read-Only Memory,电可擦可编程只读存储器),一种掉电后数据不丢失的存储芯片,来存储这些数据。随着DSP芯片在控制系统中的应用越来越广泛,越来越多的控制系统采用DSP的SPI模块来对EEPROM进行操作,以实现数据的存储记录。
    TMS320F2812是TI公司推出的一款用于控制系统的高性能、多功能、高性价比的32位定点DSP芯片。TMS320F2812采用哈佛总线结构,具有密码保护机制,可在一个周期内进行双16×16乘加和32×32乘加操作,从而兼顾控制和快速运算的双重功能;芯片上集成了多种外设,尤其是2个事件管理器为电动机以及功率变换控制提供了很大的便利,因此在控制系统中得到了很广泛的应用。下面以Microchip公司的EEPROM 25LC040为例,介绍TMS320F2812的SPI接口设计。

1 主要芯片简介
1.1 TMS320F2812 SPI模块
    SPI总线是一种同步串行外设接口,它可以使控制芯片以串行方式与各种外围设备进行通信。该接口一般使用4条线:串行时钟线(SCK)、主机输入/从机输出数据线MISO、主机输出/从机输入数据线MOSI和片选信号STE。
    TMS320F2812的SPI模块有主从两种工作模式,可以通过寄存器来设置(其数据长度可以配置为1~16位,具有125种可编程的波特率);通过时钟极性和时钟相位可以将SPI模块配置成4种不同的时钟模式;有16级发送/接收FIFO,并且具有延时发送的功能,可以通过中断或者查询的方式来完成数据的发送和接收。
    SPI模块有8个寄存器需要设置,用来控制SPI的操作:SPICCR、SPICTL用来配置SPI的工作状态;SPISTS用来获取SPI的状态信息,包括2个接收状态位和1个发送缓冲状态位,可以通过查询这些状态位来判断是否完成数据的接收或者发送;SPIBRR用来设置SPI的波特率;SPIRXB-UF和SPITXBUF分别用来接收和发送数据;SPIDAT装载SPI要发送的数据,SPIPRI用来设置SPI中断的优先级。
1.2 EEPROM芯片25LC040
    25LC040是SPI接口的4 Kb EEPROM,至少可以擦写1 000万次,数据至少可以保存200年,可以满足大部分数据存储的要求。DSP必须能通过相应的指令实现对25LC040的访问。25LC040的操作指令如表1所列。


    表1中,A8是读/写开始地址的第9位。25LC2040是512×8位的EEPROM,分成上下两页,每页256个字节,通过选择A8可以实现对不同页的操作。

www.88dzw.com
    SPI模块有4种时钟模式:上升沿无延时模式、上升沿有延时模式、下降沿无延时模式和下降沿有延时模式。25LC040是在时钟的上升沿接收数据,下降沿发送数据,所以TMS320F2812的SPI应该配置为上升沿发送数据,下降沿接收数据。
2.2 接收数据流程
    通过SPI读取数据比较简单,只需要依次传送读指令和待读数据的低位地址,就可以在SPISOMI引脚上接收到25LC040中的数据。因为TMS320F2812为主控制器,所以必须先发送一个无意义的数,才能够启动时钟。在SPI状态寄存器(SPISTS)中有一个SPI中断标志位(SPIINT FLAG),该位是一个只读标志位,由硬件设置。当SPI已经完成数据发送或者接收,正在等待下一步的操作时,SPI中断标志位被置1,若使能SPI中断,将产生一个SPI中断请求。可以通过查询SPI中断标志位来判断数据是否完成接收。若该标志为1,已接收的数据将被放入接收缓冲寄存器SPIRXBUF中,通过读SPIRXBUF寄存器即可得到需要的数据。下面给出接收数据的子程序,其中addr为待读数据的低位地址。

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


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