MSP430 与FM25L256 铁电存储器SPI接口 原理与实现

发布时间:2024-11-25

MSP430 与FM25L256 铁电存储器SPI接口 原理与实现

MSP430与FM25L256铁电存储器SPI接口

原理与实现 (版本1.1)

2006.4

MSP430 与FM25L256 铁电存储器SPI接口 原理与实现

页号 文档号 2 of 8

申明

本站为了用户方便设计和使用,编写这个应用说明,仅供参考,不用于商业目的。由于水平有限,难免有错漏之处,希望读者能够指点,以期不断完善。如果你要使用其中的文字,请注明来处,同时,本文作者不承担因用户在使用过程中造成各种错误的损失,也不提供其他任何承诺。

作者 2005-9-12

MSP430 与FM25L256 铁电存储器SPI接口 原理与实现

页号 文档号 3 of 8

目录

1 2

2.1

简介............................................................................................4 原理与实现................................................................................4

接口原理简介.................................................................................................................4 2.1.1 硬件连接.................................................................................................................4 2.2 软件编程.........................................................................................................................4

2.2.1 MSP430的SPI模式设置......................................................................................4 2.3 FM25L256的SPI通信..................................................................................................6

2.3.1 FM25L256的访问操作..........................................................................................6 2.3.2 FM25L256的访问操作..........................................................................................6 2.3.3 FM25L256的功能子程序......................................................................................7

3 4

总结............................................................................................8 参考文献....................................................................................8

MSP430 与FM25L256 铁电存储器SPI接口 原理与实现

页号 文档号 4 of 8

1 简介

FM25L256是由RAMTRON生产,以铁电存储介质的256Kb(32K字节)串行3V非易失性存储器,采用SPI总线控制,构成的系统具有简单,占用硬件资源少,存取快速的特点。同时,由于铁电存储器(以下简称FRAM)有着固有的优势,因此,可用于高可靠场合信息存储设备。与传统EEPROM和FLASH存储器相比,主要优势如下:

z 铁电存储器的读写速度更快。与其它存储器相比,铁电存储器的写入速度

要快10万倍以上。读的速度同样也很快,和写操作在速度上几乎没有太大的区别。

z FRAM存储器可以无限次擦写,而EEPROM则只能进行100万次的擦写。 z 铁电存储器所需功耗远远低于其他非易失性存储器。 因此,FRAM结合了SRAM和DRAM易写入的特性,又具有Flash和EEPROM得非易失性的特点。本文描述了在EDB430实验开发平台上,实现FM25L256

的SPI模式0与MSP430F149的USART1(SPI模式)通信过程。有关FM25L256的详细信息,请参阅有关的器件数据手册。本文不作赘述。

2 原理与实现

2.1 接口原理简介

2.1.1 硬件连接

在EDB430实验平台上,FM25L256与MSP430F149的硬件接口通过使用扩展

槽来实现,如图1所示。

2.2 软件编程

2.2.1 MSP430的SPI模式设置

由于FM25L256可以像其他标准SPI设备一样,可以直接挂在SPI总线上,因此需要额外的片选(CS)信号,同时FM25L256可以通过HOLD控制线,达到暂停操作,故MSP430的口线配置如下:

MSP430 与FM25L256 铁电存储器SPI接口 原理与实现

页号 文档号 5 of 8

端口

P5.3(UCLK1) P5.2(SOMI1) P5.1(SIMO1) P4.7(P4.7) P4.6(P4.6)

输入/输出

输出 输入 输出 输出 输出

描述 端口方式

FM25L256的串行数据输入时钟线第二功能SPI主模式时钟输(SCK) 出

FM25L256的DAC更新控制线(SO)第二功能SPI主模式从出主

FM25L256的串行数据输入线(SI)第二功能SPI主模式从入主

FM25L256的片选控制输入线(CS)端口方式 FM25L256的HOLD控制输入线(SI)端口方式

根据以上配置,对MSP430的SPI模块初始化设置为:

z 设置SPI为主模式, FM25L256工作在SPI模式0。 z 发送中断允许,接收中断允许。 z SPI输出时钟为1MHz。 源代码如下: void InitSPI1() {

SPICS_HIGH; //设置FRAM片选(CS)为高 SPIHOLD_HIGH; //设置HOLD为高 UCTL1=SWRST; //允许配置USART参数寄存器 UCTL1 |=CHAR+SYNC+MM; //设置同步串行模式 UTCTL1=SSEL1+STC; //选择SMCLK为SPI时钟源 UBR11=0; //SPI时钟频率为1M @ 外部8 MHz晶振 UBR01=8; UMCTL1=0; U1ME=USPIE1; //允许SPI功能 UCTL1 &=~SWRST; //保护USART参数寄存器 U1IE=UTXIE1+URXIE1; //允许发送和接收中断 P5SEL |=0x0E; //P5.3(UCLK1),P5.2(SOMI1/SO),P5.1(SIMO1/SI)P5SEL &=0xFE; //P5.0(STE1)使用端口模式 P5DIR |=0x0B; //设置P5.0(STE1)为输出模式 P5OUT |=BIT0; //设置P5.0(STE1)输出高 SPI1Rxflg=0; //初始化SPI接收标志

}

2.2.2 SPI模块的发送和接收

由于SPI可以在发送的同时可以接收,因此,采用了同一个收发程程序,实现中断发送和接收方式。在发送前,检查发送缓冲器空标志(TXEPT)是否为1,如果发送完成后,这个标志为1,表示可以发送新的数据。在发送中断服务程序中,不需要任何功能。在接收中断服务程序中,如果中断得到了服务,那么,就设置SPI1Rxflg变量为1,就表示一个字节已经接收完毕。详细实现如下: unsigned char RxTxSPI1(unsigned char c) {

while(!(U1TCTL & TXEPT)); SPI1Rxflg=0; TXBUF1=c;

MSP430 与FM25L256 铁电存储器SPI接口 原理与实现

页号 文档号 6 of 8

while(!SPI1Rxflg); SPI1Rxflg=0; return RXBUF1; }

2.2.3 SPI发送中断服务程序。

#pragma vector=UART1TX_VECTOR __interrupt void SPITX1ISR(void) { }

2.2.4 SPI接收中断服务程序。

#pragma vector=UART1RX_VECTOR __interrupt void SPIRX1ISR(void) {

SPI1Rxflg=1; }

2.3 FM25L256的SPI通信

2.3.1 FM25L256的访问操作

每次访问FM25L256,都是首先通过发送(写)操作命令(操作码)到FRAM开始,下表示所有这些操作的代码:

名称 描述

WREN 设置写操作允许,每次写操作(写存储器数据或者状态寄存器)时,都必

须首先使用这个命令,执行这个命令后,状态寄存器中WEL位被设置为1。

WRDI 写操作不允许,在每次写操作完成后,器件会自动改变为写操作不允许,

用户也可使用这个命令,设置写操作不允许。执行这个命令后,状态寄存器中的WEL位被清除。

RDSR 读状态寄存器。 WRSR 写状态寄存器,设置状态寄存器中的保护为(WPEN)和保护区域(BP1,BP0) READ 读存储器数据,将数据写入到存储器的任何位置,对于FM25L256而言,地

址范围为0000H-7FFFH。

WRITE 写存储器数据, 将数据写入到存储器的任何位置,对于FM25L256而言,地

址范围为0000H-7FFFH。

操作码 0000 0110b 0000 0100b

0000 0101b 0000 0001b 0000 0011b 0000 0010b

2.3.2 FM25L256的访问操作

FM25L256的读时序,如下图所示。

MSP430 与FM25L256 铁电存储器SPI接口 原理与实现

页号 文档号 7 of 8

FM25L256的读时序

FM25L256的写时序

2.3.3 FM25L256的功能子程序

void MemEnable() {

SPICS_LOW;

RxTxSPI1(WREN_CMD); SPICS_HIGH; }

void MemDisable() {

SPICS_LOW;

RxTxSPI1(WRDI_CMD); SPICS_HIGH; }

void WrMemStatReg(unsigned char c) {

MemEnable(); SPICS_LOW;

RxTxSPI1(WRSR_CMD); RxTxSPI1(c); SPICS_HIGH; }

unsigned char RdMemStatReg() {

unsigned char temp; SPICS_LOW;

RxTxSPI1(RDSR_CMD);

//发送器件写操作命令

//发送器件写器件禁止

//写状态寄存器

//读状态寄存器

MSP430 与FM25L256 铁电存储器SPI接口 原理与实现

页号 文档号 8 of 8

temp=RxTxSPI1(DUMY_CMD); SPICS_HIGH; return temp; }

void WrMemData(unsigned int addr,unsigned char c) {

MemEnable(); SPICS_LOW;

RxTxSPI1(WRMM_CMD); RxTxSPI1((addr & 0xff00)>>8); RxTxSPI1(addr & 0x00ff); RxTxSPI1(c); SPICS_HIGH; }

unsigned char RdMemData(unsigned int addr) {

unsigned char temp; SPICS_LOW;

RxTxSPI1(RDMM_CMD); RxTxSPI1((addr & 0xff00)>>8); RxTxSPI1(addr & 0x00ff);

temp=RxTxSPI1(DUMY_CMD); SPICS_HIGH; return temp; }

//写一个字节数据到指定地址

//从指定地址读一个字节

3 总结

本文仅仅提供一些简单函数,实现了对FM25L256的读写操作,进一步的代码功能,用户可以在上述基础上进行扩展。例如,利用存储器读写操作时,自动地址增加功能,可以实现连续读写多个字节的操作。

对于FRAM的操作,从编程的角度而言,功耗和可靠性,速度方面的表现,可以与SRAM媲美。在MSP430的应用中,FRAM可能是一个不错的选择。

4 参考文献

256Kb FRAM Serial 3V Memory – Commercial Temp.,Rev. 2.2,September 2005,

Ramtron International Corporation

MSP430x13x,MSP430x14x,MSP430x141x MIXED SIGNAL MICROCONTROLLER,

SLAS272F JULY 2000 REVISED JUNE 2004,TEXAS INSTRUMENT INC. MSP430x1xx FAMILY USER’S GUIDE, SLAU049E,TEXAS INSTRUMENT INC. EDB430A+,B 型用户手册 版本A.6

http://

2006-4-25

MSP430 与FM25L256 铁电存储器SPI接口 原理与实现.doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:7 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:29元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219