想请问下各位
看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 提示未定义
TI中文支持网



