基于SM320F2812 SPI总线的扩展EEPROM设计

最新更新时间:2014-06-30来源: 互联网关键字:SM320F2812  SPI总线 手机看文章 扫描二维码
随时随地手机看文章

EEPROM(Electrically Erasable ProgrammableRead-Only Memory电可擦可编程只读存储器),是一种掉电后数据不丢失的存储芯片.在实际应用中,为了保持程序能够统一,又必须在程序中使用不同的参数,可以使用EEPROM进行扩展存储,将需要使用的数据存储在EEPROM中.当系统上电开始工作时,首先从EEPROM中读取参数,然后执行应用.本文采用了ATMEL公司的EEPROM存储器AT25010及TI公司推出的2000系列DSP TMS320F2812,很好地实现了数据的擦写和存储.AT25010采用了标准的SPI总线接口,所以与DSP经过简洁的设计连接后即可实现硬件连接.

1.AT25010介绍

AT25010是ATMEL公司推出的串行外设接口可擦写存储器,具有1KB(128*8)字节容量和掉电后数据保持功能,主要用于低电压和低功耗应用中.

2.TMS320F2812的SPI接口介绍

TMS320F2812是TI公司推出的32位的定点DSP,主要应用于控制领域.DSP主频可以通过软件进行设置,最高可以达到150MHz,内部集成了丰富的资源,可以大大简化外围电路的设计.

TMS320F2812的串行外设接口(SPI)是一个高速同步的串行输入/输出口,通信速率和通信数据长度都是可编程的,通常用于DSP处理器和外部外设以及其他处理器之间进行通信.

SPI接口有一个16级的接收和传输FIFO,可以减少工作时CPU的开销.

3.硬件设计

为了使D S P能够从E E P R O M中正确写入和读出数据, 需要对硬件进行正确的设置.

TMS320F2812处理器SPI模块有4个外部引脚,分别是SPI从输出/主输入引脚SPISOMI.SPI从输入/主输出引脚SPISIMO.SPI从发送使能引脚SPISTE.SPI串行时钟引脚SPICLK.AT25010与TMS320F2812的硬件接口电路如图1示所.图1中将DSP的SPISTE引脚与AT25010的片选信号引脚CS相连,使DSP能控制是否选通芯片;DSP的SPISOMI引脚与A T 2 5 0 1 0的数据输出引脚S O相连,接收AT25010发送的数据;DSP的SPISIMO引脚与AT25010的数据输出引脚SI相连,向AT25010发送数据;DSP的SPICLK引脚与AT25010的串行时钟引脚SCK相连,向AT25010提供时钟信号,使其能够与DSP保持同步.AT25010芯片写保护引脚WP(Write Protect)控制是否能够对其写入数据.当将此引脚置高电平时,DSP可以对AT25010芯片写入或者读取数据;当将此引脚置低电平时,DSP只能对AT25010芯片进行读取数据的操作,而不能对其写入数据.电路设计时将AT25010的WP引脚通过电阻拉高.

 

 

4.软件设计

在D S P开始对A T 2 5 0 1 0进行数据写入和读取之前, 按照设计要求进行初始化.对TMS320F2812的设置:首先关闭可屏蔽中断,设置中断屏蔽寄存器,开启系统SPI时钟使能,允许SPI串行外设接口正常工作.其次,DSP采用发送数据的方式对AT25010进行初始化,当DSP需要对AT25010写入数据时,向AT25010发送写入控制指令,并控制时钟同步信号和片选使能信号,向指定的地址写入数据;当DSP需要对AT25010读取数据时,向AT25010发送读取数据的控制指令,从指定地址中读取数据.

4.1 SPI初始化

初始化SPI模块,需要打开系统的SPI使能寄存器,设置SPI的波特率,配置SPI数据发送模块寄存器.数据接收模块寄存器.状态控制寄存器和FIFO寄存器,满足正常系统工作要求.

4.2 AT25010设置

当DSP需要读取AT25010指定地址的数据时,必须按照以下顺序.在片选引脚CS拉低选中AT25010芯片后,“读指令”必须首先发送至AT25010,然后发送地址数据.如果DSP读取数据完毕,片选引脚CS拉高为高电平.

当DSP当DSP需要向AT25010指定地址写入数据时,也必须按照一定的顺序执行.首先必须确认写保护引脚WP是高电平,然后确认被写入的地址没有被锁定.写入数据时,DSP首先向AT20501发送写使能信号WREN.然后才能执行写操作.在片选引脚CS拉低选中AT25010芯片后,8位的地址和8位的数据分别被DSP发送到AT25010芯片,对指定地址写入数据.对AT25010芯片设置后,可以进行页写入,可一次写入大量数据,节省系统资源.4.3 程序设计

读取数据的程序设计架构如下:

SpiaRegs.SPITXBUF=0×0300;//发送读取指令SpiaRegs.SPITXBUF=(Addr《8);//发送需要读取数据的地址位SpiaRegs.SPITXBUF=0×0000;//发送一位空指令val=SpiaRegs.SPIRXBUF;//读取指定地址的数据读取数据的程序设计架构如下:

SpiaRegs.SPITXBUF=0×0200;//发送写入指令SpiaRegs.SPITXBUF=(Addr《8);//发送需要写入数据的地址位SpiaRegs.SPITXBUF=(Data《8);//发送需要写入数据的数据SpiaRegs.SPITXBUF=0×0400;//WRDI5.数据写入和读取实验。

如图2 .

 

 

编写软件代码,进行DSP对AT25010写入和读取数据的实验.

由于AT25010是1KB的存储器,DSP最多只能向AT25010写入128个8位数据.在软件中设置一个9位的数组,分别赋值由0×11至0×99,地址使用0-8共9个地址位.DSP采用循环发送的方式,将数组中的数据发送到存储芯片中.

然后DSP进行读取操作,从存储芯片的地址位中读出数据,写入到另一个数组中并对读取和写入的数据进行比较,检验数据是否正确.结果如图3所示.

 

 

由图3可以看出,读取和写入的数据完全一致.对于使用数据量较大的系统,可以更换容量更大的存储器,使用文中的硬件设计和程序设计,同样可满足需求.

6.结语

本设计使用DSP芯片自带的SPI接口进行硬件设计,节省了设计时间,降低了电路设计的复杂度,实现了对系统掉电以后数据的存储,并可解决由于数据不同造成的程序一致性的问题.此设计满足了系统的要求,适用于各种需要掉电后保存数据的嵌入式系统.

关键字:SM320F2812  SPI总线 编辑:探路者 引用地址:基于SM320F2812 SPI总线的扩展EEPROM设计

上一篇:基于GC5016的宽/窄带数据下变频解决方案
下一篇:基于双单片机的数据通信模块设计方案

推荐阅读最新更新时间:2023-10-12 22:42

IIC和SPI总线协议的区别
现今,在低端数字通信应用领域,我们随处可见IIC (Inter-Integrated Circuit) 和 SPI (Serial Peripheral Interface)的身影。原因是这两种通信协议非常适合近距离低速芯片间通信。Philips(for IIC)和Motorola(for SPI) 出于不同背景和市场需求制定了这两种标准通信协议。 IIC 开发于1982年,当时是为了给电视机内的CPU和外围芯片提供更简易的互联方式。电视机是最早的嵌入式系统之一,而最初的嵌入系统是使用内存映射(memory-mapped I/O)的方式来互联微控制器和外围设备的。要实现内存映射,设备必须并联入微控制器的数据线和地址线,这种方式
[嵌入式]
ADISl6209 IMU在倾角测量中的应用
  O 引言   倾角传感器是测量关于水平倾斜角的装置,倾角变化测量仪器是许多工业应用设备需要具备的一个组成部分,包括测量设备、卫星天线稳定系统、工厂机床、运动安全监视器和汽车轮位对准装置等。准确地测量倾角的变化,有利于这些设备更加稳定的工作及避免事故发生。现在采用的倾角测量仪大多数体积较大,信号采集比较慢,测量精度不高,误差较大,需要做大量的温度补偿和校准工作。这些缺点制约着工业设备性能的提高,也加大了工程的工作量。   ADISl6209是ADI公司新推出的一款精密的微电子机械系统(MEMS)倾斜计,提供小于O.1°线性倾斜误差的全补偿直接角度输出,它使用出厂时安装的校正系数动态地检测系统环境并且补偿直接数字角度输出以
[嵌入式]
基于FPGA的SPI总线在软件接收机上的应用
随着现代技术的发展,SPI接口总线已经成为了一种标准的接口,由于协议实现简单,并且I/O资源占用少,为此SPI总线的应用十分广泛。目前,SPI接口的软件扩展方法虽然简单方便,但若用来通信,则速度受到限制。因此,我们采用ALTERA公司的FPGA器件设计SPI总线的通信接口,该总线接口具有高速、配置灵活等优点,大大地缩短了系统的开发周期。 1 SPI总线原理 1.1 SPI总线协议简介 SPI总线是一种全双工同步串行接口,能够实现微控制器与外设通信。它采用主从模式架构,支持多slave模式应用,并且只占用芯片上四个管脚,节省了芯片的引脚。 1.2 SPI总线接口 SPI是一个环形总线结构,通常有4条线:串行时钟(SCK)线、主机输入/
[嵌入式]
SPI总线的verilog实现
SPI一共4个线: *)SCK 串行时钟线:时钟信号 *)MISO 主机输入/从机输出线; *)MOSI 主机输出/从机输入线; *)CS 片选那个从机进行通信。 无应答机制   一定要搞清楚从设备是上升沿还是下降沿接受数据。   时钟极性:一根线上比如:主的SDO和从的SDI时钟极性相反,也就是如果主SDO是上升沿有效,那么从SDI下降沿有效。   时钟相位为0:第一个跳变沿数据采样,所以时钟前采样,时钟后输出; 时钟相位为1:第二个跳变沿数据采样,所以时钟前输出,时钟后采样。 一般使用0模式。   管脚SS非为判断主从的标志,SS非为低为从,高为主。   IP可
[嵌入式]
AVR基础知识:ATMEGA的SPI总线 - 第2部分
在第1部分中,我们在AVR ATMEGA328P微控制器上已经设置好SPI总线。现在我们就可以开始使用SPI了。 设置相关引脚 在开始之前,我们需要在AVR上设置SPI总线的引脚(在主机模式下使用)。我在这里使用的是ATMEGA328P,所以需要定义一些宏来使代码变得更清晰。如果您使用不同的微控制器,则可以根据您的需要进行调整。 #define SPI_SS_GPIO PB2 #define SPI_SS_PORT PORTB #define SPI_SS_DDR DDRB #define SPI_MOSI_GPIO PB3 #define SPI_MOSI_PORT PORTB #defin
[单片机]
AVR基础知识:ATMEGA的<font color='red'>SPI总线</font> - 第2部分
SPI总线接口与简单配置
SPI 总线接口 SPI总线主要由4条线组成: n SCLK —Serial Clock (output from master) n MOSI/SIMO —Master Output, Slave Input (output from master) n MISO/SOMI —Master Input, Slave Output (output from slave) n SS — (; output from master) 有另一种命名方式也经常可见: n SCK — Serial Clock (output from master) n SDI, DI, SI — Serial Data In
[嵌入式]
轻松学PIC之SPI总线
  一、SPI总线基本概念   SPI ( Serial Peripheral Interface ———串行外设接口) 总线是Motorola 公司推出的一种同步串行接口技术。SPI 总线系统是一种同步串行外设接口, 允许MCU 与各种外围设备( 如闪存、数摸转换、网络控制器、从MCU) 以串行方式进行通信、数据交换。   SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB 的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议。其工作模式有两种:主模式和从模式。SPI 是一种允许一个主设备启动一个从设备的同步通讯的
[单片机]
轻松学PIC之<font color='red'>SPI总线</font>篇
嵌入式系统中可配置式GPIO模拟SPI总线方法
在嵌入式系统处理器中有相当一部分处理器不带SPI接口,但基丁SPI接口的设备非常丰富,此外,SPI设备的不同以及处理器对GPIO口位寻址是否支持各处理器各有不同,因而不同处理器中软件模拟GPIO也各不相同。若能提供一种通用可配置可移植的GPIO模拟SPI总线的驱动则能很方便快捷的访问SPI设备,从而提高整个嵌入式系统的开发效率。本文针对GPIO口位寻址与否给出方面,给出了一种可配置GPIO模拟SPI总线的方法并详细介绍了其设计与实现过程,且具有代码小可移植性强使用方便等特点。 1 GPIO规范 SPI是一个全双工的串行接口。它设计成可以在一个给定总线上处理多个互联的主机和从机。在一定数据传输过程中,接口上只能有一个丰机和一
[嵌入式]
小广播
最新电源管理文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved