TI中文支持网
TI专业的中文技术问题搜集分享网站

FRAM问题请教

想请问下各位

看MSP430选型手册FRAM系列MCU中说到“Configurable as program or data memor”,是不是可以将部分FRAM分配给SRAM?如果可以的话怎么实现?

谢谢!

灰小子:

这一句的意思应该是:可配置作为程序或者数据存储器

 

Ken Wang:

chunyu,

  通俗点说就是这个FRAM可以用来配置成存储程序,我们传统的Flash类型,或是配置成用来存储数据变量的RAM。

这个是FRAM的特性,兼备Flash的掉电不丢失和RAM的快速读写。

谢谢

longlong gao:

回复 Ken Wang:

您好!

       我做的项目目前遇到的问题是想把FRAM当做EEPROM来使用,我尝试直接给FRAM写数据,掉电后数据还是会丢失,我想问一下,能否有相关的FRAM当做EEPROM来使用?项目非常着急,期待各位的回答,非常感谢!

另外我想知道FRAM当做EEPROM使用是FR系列的亮点,为什么没有相关的示例呢,很是困惑!

灰小子:

回复 longlong gao:

可以作为eeprom的。丢失是不是没存上?存上之后读一次试试

Ling Zhu2:

回复 longlong gao:

你好, FRAM 读写都有范例代码的。

掉电保存

#include <msp430.h>void FRAMWrite(void);unsigned char count = 0;
unsigned long *FRAM_write_ptr;
unsigned long data;#define FRAM_TEST_START 0x1800int main(void)
{WDTCTL = WDTPW | WDTHOLD;// Stop watchdog timerP1OUT &= ~BIT0;// Clear P1.0 output latch for a defined power-on stateP1DIR |= BIT0;// Set P1.0 to output directionOUTPM5CTL0 &= ~LOCKLPM5;// Disable the GPIO power-on default high-impedance mode// to activate previously configured port settingsdata = 0x11111111;// Initialize dummy datawhile(1){data += 0x00010001;FRAM_write_ptr = (unsigned long *)FRAM_TEST_START;FRAMWrite();count++;if (count > 100){P1OUT ^= 0x01;// Toggle LED to show 512K bytescount = 0;// ..have been writtendata = 0x11111111;}}
}void FRAMWrite (void)
{unsigned int i=0;SYSCFG0 &= ~DFWP;for (i = 0; i < 128; i++){*FRAM_write_ptr++ = data;}SYSCFG0 |= DFWP;
}

longlong gao:

回复 Ling Zhu2:

您好:

        感谢您的提示,这个代码之前我测试不行,昨天测试就可以了,

我想请教一下,我需要存放变量的地址是需要自己在FRAM中划分出一块专门来存放变量,还是说我随便都可以定义一个起始地址开始存放,如果这样可以的话,烧写代码或者代码运行的过程中,这些地址的内容会不会被误操作,期待您的回复,谢谢!

longlong gao:

回复 Ken Wang:

您说的配置,能说的具体一点吗,我应该怎么设置就是传统的FLASH,怎么做是SRAM,又怎么做是EEPROM?这个感觉太模糊了,

还是说FRAM本身就具备这三种特性,只是看我自己使用他的什么特性?期待您的解释,谢谢!

Ling Zhu2:

回复 longlong gao:

用户数据一般存放在数据区,这样就可以避免程序代码被改掉。

有一些FRAM的产品是带MPU的,建议看一下数据手册和用户手册。

m:

回复 Ling Zhu2:

是不是还要添加其他头文件,SYSCFG0 和 DFWP 提示未定义

Ling Zhu2:

回复 m:

m

是不是还要添加其他�文件,SYSCFG0 和 DFWP 提示未定义

赞(0)
未经允许不得转载:TI中文支持网 » FRAM问题请教
分享到: 更多 (0)