3273|3

2144

帖子

3

TA的资源

五彩晶圆(中级)

楼主
 

【TI首届低功耗设计大赛】msp430fr5969_漫谈铁电FRAM [复制链接]

1、MSP430FRXX系列MCU简介


TI公司最新一代MSP430FRXX系列MCU采用了FRAM作为代码和数据存储器,替代传统MCU FLASH+SRAM的结构,并且其FRAM带有分区管理和ECC校验功
能,增强存储器可靠性,FRAM运行时的低功耗特性,将MCU的功耗降低至100uA/MHz。除了FRAM外与SCI/IIC/SPI/GPIO/ADC/CMP/TIMER等普通外设外,其还增加了AES硬件加解密模块,32位硬件乘法器等,其余性能指标可详见官方数据手册,建议和传统MSP430低功耗数据做一下比较。




2、FRAM简介
FRAM (Ferroelectric Random Access Memory) 铁电存储器是新一代的非易失性高速低功耗存储器,和传统的FLASH/EEPROM存储器相比FRAM具有非
常明显的优势:
1)速度快-FRAM的写入时间比Flash/EEPROM快1000倍以上, FRAM写入一个字节仅耗时50ns,而FLASH至少耗时75us,EEPROM更是长达5ms。


2)功耗低-由于FRAM的工作电压只有1.5V,相比FLASH/EEPROM存储器需要一个升压器把电压升到9-12V,操作FRAM的功耗仅有后者1%或者更低。


3)抗干扰力强-由于FRAM工作仅需要很少的能量,故FRAM工作起来更加稳定,不会出现FLASH存储器的“Data-tearing”现象。


4)耐久性强(读/写次数)-FRAM的读/写周期数为一百万亿次 (10E15) ,而通常的FLASH/ EEPROM只有一百万次 (10E6) 。




3、FRAM管理器简介
为了能够充分发挥FRAM速度快,功耗低,掉电不易失,耐久性强的特点, MSP430FR5969同时为其配置了同样强大的存储器管理单元。


MSP430FRXX系列MCU对FRAM的管理可分为两部分:MPU和FRAM controller。


MPU是存储器保护单元,其可提供FRAM的分区配置和读/写/执行权限独立控制。如果发生越权读/写/执行,FRAM会受到保护,同时产生错误中断通知MCU,进行相应的操作。


FRAM控制器主要提供FRAM的操作方式管理,ECC校验和Cache功能。ECC校验可纠正1bit的错误和检测2bit以上的错误。 Cache拥有2个64bit的缓冲区,当要处理的数据小于8字节时,CPU可直接操作Cache,提高系统效率。




注意MAB为地址总线,MDB为数据总线。

4、框图比较

1)MSP430F5438框图



2)MSP430FR5969框图


我们注意看,EEM块多出了一个Energy Trace++部分,其他的就是传统的Flash被换成了FRAM了,基本都差不多的,所以说FR系列主要体现在铁电这一部分。

通过前面FRAM性能分析我们可以明显的知道FR系列MSP430有两个主要特性:FRAM的存储性能+更低的功耗控制

简单说说FR系列的主要应用领域,都是基于这两个特性来的。
1)在需要铁电存储的领域,将MSP430FR5969作为一个从机模块来使用,总线方式可选SPI/I2C/UART等等,配合从机模块内部程序,主机可以通过总线来操作FRAM实现存储系统,同时这个从机模块还能够帮助完成一些其他的事情,比如提供RTC、AES等等。

2)在需要ULP超低功耗的领域,由于FRAM的革新从本质上降低了功耗,相比传统的关断外设或者模块的方式、降低有效工作时间的方式这两种方式有本质的区别,从降低模块运行功耗上入手,也是当前低功耗控制的主流方式,MSP430传统系列还算是老的思维。目前fsl M0+的低功耗控制方式大家可以了解下,每个模块功耗可局级进行控制,相当复杂。

好了,这一贴就说这么多了,下面简单聊一下linkerfile吧,有利于了解memery mapping,这个很关键,对于熟悉一款MCU而言。


  1. MEMORY
  2. {
  3.     SFR                     : origin = 0x0000, length = 0x0010
  4.     PERIPHERALS_8BIT        : origin = 0x0010, length = 0x00F0
  5.     PERIPHERALS_16BIT       : origin = 0x0100, length = 0x0100
  6.     RAM                     : origin = 0x1C00, length = 0x0800
  7.     INFOA                   : origin = 0x1980, length = 0x0080
  8.     INFOB                   : origin = 0x1900, length = 0x0080
  9.     INFOC                   : origin = 0x1880, length = 0x0080
  10.     INFOD                   : origin = 0x1800, length = 0x0080
  11.     FRAM                    : origin = 0x4400, length = 0xBB80
  12.     FRAM2                   : origin = 0x10000,length = 0x4000
  13.     JTAGSIGNATURE           : origin = 0xFF80, length = 0x0004, fill = 0xFFFF
  14.     BSLSIGNATURE            : origin = 0xFF84, length = 0x0004, fill = 0xFFFF
  15.     IPESIGNATURE            : origin = 0xFF88, length = 0x0008, fill = 0xFFFF
  16.     INT00                   : origin = 0xFF90, length = 0x0002
  17.     INT01                   : origin = 0xFF92, length = 0x0002
  18.     INT02                   : origin = 0xFF94, length = 0x0002
  19.     INT03                   : origin = 0xFF96, length = 0x0002
  20.     INT04                   : origin = 0xFF98, length = 0x0002
  21.     INT05                   : origin = 0xFF9A, length = 0x0002
  22.     INT06                   : origin = 0xFF9C, length = 0x0002
  23.     INT07                   : origin = 0xFF9E, length = 0x0002
  24.     INT08                   : origin = 0xFFA0, length = 0x0002
  25.     INT09                   : origin = 0xFFA2, length = 0x0002
  26.     INT10                   : origin = 0xFFA4, length = 0x0002
  27.     INT11                   : origin = 0xFFA6, length = 0x0002
  28.     INT12                   : origin = 0xFFA8, length = 0x0002
  29.     INT13                   : origin = 0xFFAA, length = 0x0002
  30.     INT14                   : origin = 0xFFAC, length = 0x0002
  31.     INT15                   : origin = 0xFFAE, length = 0x0002
  32.     INT16                   : origin = 0xFFB0, length = 0x0002
  33.     INT17                   : origin = 0xFFB2, length = 0x0002
  34.     INT18                   : origin = 0xFFB4, length = 0x0002
  35.     INT19                   : origin = 0xFFB6, length = 0x0002
  36.     INT20                   : origin = 0xFFB8, length = 0x0002
  37.     INT21                   : origin = 0xFFBA, length = 0x0002
  38.     INT22                   : origin = 0xFFBC, length = 0x0002
  39.     INT23                   : origin = 0xFFBE, length = 0x0002
  40.     INT24                   : origin = 0xFFC0, length = 0x0002
  41.     INT25                   : origin = 0xFFC2, length = 0x0002
  42.     INT26                   : origin = 0xFFC4, length = 0x0002
  43.     INT27                   : origin = 0xFFC6, length = 0x0002
  44.     INT28                   : origin = 0xFFC8, length = 0x0002
  45.     INT29                   : origin = 0xFFCA, length = 0x0002
  46.     INT30                   : origin = 0xFFCC, length = 0x0002
  47.     INT31                   : origin = 0xFFCE, length = 0x0002
  48.     INT32                   : origin = 0xFFD0, length = 0x0002
  49.     INT33                   : origin = 0xFFD2, length = 0x0002
  50.     INT34                   : origin = 0xFFD4, length = 0x0002
  51.     INT35                   : origin = 0xFFD6, length = 0x0002
  52.     INT36                   : origin = 0xFFD8, length = 0x0002
  53.     INT37                   : origin = 0xFFDA, length = 0x0002
  54.     INT38                   : origin = 0xFFDC, length = 0x0002
  55.     INT39                   : origin = 0xFFDE, length = 0x0002
  56.     INT40                   : origin = 0xFFE0, length = 0x0002
  57.     INT41                   : origin = 0xFFE2, length = 0x0002
  58.     INT42                   : origin = 0xFFE4, length = 0x0002
  59.     INT43                   : origin = 0xFFE6, length = 0x0002
  60.     INT44                   : origin = 0xFFE8, length = 0x0002
  61.     INT45                   : origin = 0xFFEA, length = 0x0002
  62.     INT46                   : origin = 0xFFEC, length = 0x0002
  63.     INT47                   : origin = 0xFFEE, length = 0x0002
  64.     INT48                   : origin = 0xFFF0, length = 0x0002
  65.     INT49                   : origin = 0xFFF2, length = 0x0002
  66.     INT50                   : origin = 0xFFF4, length = 0x0002
  67.     INT51                   : origin = 0xFFF6, length = 0x0002
  68.     INT52                   : origin = 0xFFF8, length = 0x0002
  69.     INT53                   : origin = 0xFFFA, length = 0x0002
  70.     INT54                   : origin = 0xFFFC, length = 0x0002
  71.     RESET                   : origin = 0xFFFE, length = 0x0002
  72. }
复制代码

1)注意看一下下面三个部分的区间定义:

RAM : origin = 0x1C00, length = 0x0800


INFOA : origin = 0x1980, length = 0x0080
INFOB : origin = 0x1900, length = 0x0080
INFOC : origin = 0x1880, length = 0x0080
INFOD : origin = 0x1800, length = 0x0080

FRAM : origin = 0x4400, length = 0xBB80
FRAM2 : origin = 0x10000,length = 0x4000




2)关于堆栈的设置:





3)关于MPU的配置会跟新到cmd文件中的:



好了,欢迎大家讨论,个人认为大家不要去想如何使用FRAM作为程序执行的RAM的问题了,默认的RAM是2K可以参考1)中的区域定义。




最新回复

TI的东西一直不错啊  低功耗更好啊   详情 回复 发表于 2014-9-13 11:16
 
点赞 关注
个人签名电工

回复
举报

1119

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
过来看看~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 

回复

1042

帖子

6

TA的资源

纯净的硅(中级)

板凳
 
铁电是比较省电;
 
 
 

回复

3028

帖子

0

TA的资源

五彩晶圆(初级)

4
 
TI的东西一直不错啊  低功耗更好啊
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表