导言
现在,在一些操控系统中需求不断地调整参数或许改动相关的设置,才干获得杰出的操控作用,而且将这些参数在掉电之前保存下来,然后保证下次运行时能够直接运用现已调整好的参数,而不用从头设置。这就需求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能够完结对不同页的操作。
1.2.1 读时序
当片选信号为低时,向25LC040传送8位的读指令(0000 A8011),紧接着传送需求读取数据的低8位地址。当正确的读写指令和地址被识别后,EEPROM中对应地址的数据将会由输出引脚顺次传出,若持续供给时钟信号,下一位地址对应的数据也会顺次读出。当片选信号为高时,读数据的操作将会被停止。其具体操作如图1所示。图中,CS为片选信号,SCK为时钟信号,SI为输入引脚信号,SO为输出引脚信号。
1.2.2 写时序
在对25LC040进行任何写操作之前,有必要先履行WREN(写使能)指令。写使能指令的操作如图2所示。先使片选信号为低,然后传送写使能指令到25LC040中,指令传送完毕后,有必要将片选信号设置为高以完结写使能操作。假如写指令传送完毕后没有拉高片选信号,直接进行写操作,那么数据将不会写入到存储阵列中。