存储器

存储器是计算机系统中用于存储数据和程序的设备或组件。它允许计算机系统在断电后保持数据,并能够在需要时快速读取和写入数据。存储器通常按照存取速度、容量、成本和易用性等方面进行分类和选择。

BD网盘链接:

https://pan.baidu.com/s/1dmtMWcK1TII-vutsS8X0Og?pwd=5wwy 
提取码:5wwy

概述

CW32L052内部集成了64KB嵌入式FLASH供用户使用,可用来存储应用程序和用户数据。

芯片支持对 FLASH 存储器的读、擦除和写操作,支持擦写保护和读保护。

芯片内置 FLASH 编程所需的高压 BOOST 电路,无须额外提供编程电压。

FLASH存储器组织

  • 总容量64KB,分页管理

  • 每页 512 字节

  • 共 128 页

FLASH存储器保护

FLASH 存储器具有擦写保护和读保护功能。

  • 擦写保护

包括锁定页擦写保护和PC 地址页擦写保护,处于保护状态的页面不能被擦写,可避免 FLASH 内容被意外改写。

  • 读保护

  • 以整片 FLASH 为保护对象,不支持单页保护,可避免用户代码被非法读取。

FLASH存储器操作

FLASH 存储器操作包括:读操作、擦除、写(编程)操作。

页擦除

FLASH 的页擦除操作的最小单位为 1 页,即 512 字节。页擦除操作完成后,该页所有地址空间的数据内容均为 0xFF。

如果对未解锁的 FLASH 页面进行页擦除操作,或者对*正在运行的程序[^1]*进行擦除操作,会操作失败,产生错误中断标志。

CW32L052 内部 FLASH 存储器被划分为 128 页,每 8 页对应擦写锁定寄存器的1 个锁定位。擦写锁定寄存器的各位域与 FLASH 锁定页面的对应关系如下表所示:

1.png

写操作

基于嵌入式 FLASH 的特性,写操作只能将 FLASH 存储器中位数据由‘1’改写为‘0’,不能由‘0’改写为‘1’, 因此在写数据之前先要对对应地址所在页进行擦除操作。

基于以上陈述,总结出以下三个原则:

  • 不可对数据位内容为‘0’的地址写入

  • 不可对锁定区域内的地址写入

  • 不可对 PC(程序指针)所在的页的地址写入

读操作

CW32L052 对 FLASH 的读操作支持 3 种不同位宽,可采用直接访问绝对地址方式读取,读取的数据位宽必 须和对应地址边界对齐。

核心代码

//单片机头文件
#include "main.h"
//硬件驱动
#include "gpio.h"
#include "delay.h"

//子程序
void LCD_Configuration(void);       //段式LCD配置函数
void LCD_Display(uint16_t dispdata);     //段式LCD显示函数
uint8_t FLASH_Erase(void);         //FLASH页擦除函数
uint8_t FLASH_Write(uint8_t *ByteData,uint16_t amount); //FLASH写操作函数

int main(void)
{
 int i;
 int temp8;
 uint8_t cnt=0;
 uint8_t WriteBuf[256];
 
    LED_Init();    //初始化程序运行情况指示灯
 LCD_Configuration();    //配置LCD液晶显示屏
 
 FLASH_Erase();          //页擦除操作
 for(i=0;i<256;i++)      //验证是否擦除成功
 {
  temp8=*((volatile uint8_t*)(512*127+i));
  if(temp8!=0xff)
  {
   while(1)
   {
    LED2_ON();       //LED2闪烁
    Delay_ms(300);
    LED2_OFF();
    Delay_ms(300);
   }
  }
 }
 
 for(i=0;i<256;i++)      //准备写入FLASH存储器的数据
 {
  WriteBuf[i]=i;
 }
 FLASH_Write(WriteBuf,256); //写操作
 for(i=0;i<255;i++)           //验证是否写入正确
 {
  temp8=*((volatile uint8_t*)(512*127+i));
  if(temp8!=i)
  {
   while(1)
   {
    LED1_ON();     //LED1、LED2同时闪烁指示写入失败
    LED2_ON();
    Delay_ms(300);
    LED1_OFF();
    LED2_OFF();
    Delay_ms(300);
   }
  }
 }
 
 LED1_ON();       //指示擦除、读、写均成功
 LED2_ON();
    while(1)
    {
  LCD_Display(*((volatile uint8_t*)(512*127+cnt)));  //LCD上依次显示写入的数据
  Delay_ms(500);
  cnt++;
    }
}

uint8_t FLASH_Erase(void)    //页擦除
{
 int flag=1;
 
 FLASH_UnlockPages(512*127,512*127);
 flag=FLASH_ErasePages(512*127,512*127);
 FLASH_LockAllPages();
 if(flag!=0)
 {
  while(1)
  {
   LED1_ON();
   Delay_ms(300);
   LED1_OFF();
   Delay_ms(300);
  }
 }
 
 return 0;
}

uint8_t FLASH_Write(uint8_t *ByteData,uint16_t amount)  //写操作
{
 int flag=1;
 
 FLASH_UnlockPages(512*127,512*127);
 flag=FLASH_WriteBytes(512*127,ByteData,amount);
 FLASH_LockAllPages();
 if(flag!=0)
 {
  while(1)
  {
   LED2_ON();
   Delay_ms(300);
   LED2_OFF();
   Delay_ms(300);
  }
 }
 
 return 0;
}

void LCD_Configuration(void)      //段式LCD配置
{
    __RCC_LCD_CLK_ENABLE();
 RCC_LSI_Enable();
 
    LCD_InitTypeDef LCD_InitStruct = {0};

    LCD_InitStruct.LCD_Bias = LCD_Bias_1_3;
    LCD_InitStruct.LCD_ClockSource = LCD_CLOCK_SOURCE_LSI;
    LCD_InitStruct.LCD_Duty = LCD_Duty_1_4;
    LCD_InitStruct.LCD_ScanFreq = LCD_SCAN_FREQ_256HZ;
    LCD_InitStruct.LCD_VoltageSource = LCD_VoltageSource_Internal;

    LCD_Init(&LCD_InitStruct); 
 LCD_COMConfig(LCD_COM0 | LCD_COM1 | LCD_COM2 | LCD_COM3, ENABLE);
    LCD_SEG0to23Config(LCD_SEG0|LCD_SEG1|LCD_SEG2|LCD_SEG3|LCD_SEG4|LCD_SEG5|LCD_SEG6|LCD_SEG7, ENABLE);
   
 LCD_Cmd(ENABLE);
}

void LCD_Display(uint16_t dispdata)   //LCD显示
{
 uint16_t DisBuf[10]={NUM0,NUM1,NUM2,NUM3,NUM4,NUM5,NUM6,NUM7,NUM8,NUM9};
 
 LCD_Write(LCD_RAMRegister_0,0x00000000);
 LCD_Write(LCD_RAMRegister_1,0x00000000);
 
 if(dispdata<10)
  LCD_Write(LCD_RAMRegister_0,DisBuf[dispdata]);
 else if(dispdata<100)
  LCD_Write(LCD_RAMRegister_0,DisBuf[dispdata/10]|DisBuf[dispdata%10]<<16);
 else if(dispdata<1000)
 {
  LCD_Write(LCD_RAMRegister_0,DisBuf[dispdata/100]|DisBuf[dispdata/10%10]<<16);
  LCD_Write(LCD_RAMRegister_1,DisBuf[dispdata%10]);
 }
 else
 {
  LCD_Write(LCD_RAMRegister_0,0xffffffff);
  LCD_Write(LCD_RAMRegister_1,0xffffffff);
 }
 
}

视频演示

2.gif

补充

FLASH存储器和EEPROM存储器对比

一般性的总结: 

3.png

使用场景侧重:

  • EEPROM:频繁的擦写操作,如存储计数器、传感器数据等

  • FLASH:大容量、高速读写,如存储程序代码和固件等

来源:CW32生态社区

免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 5

上海复旦微电子集团股份有限公司今日举办线上发布会,推出FM25/FM29系列SLC NAND,FM24N/FM24LN/FM25N高可靠、超宽压系列EEPROM,以及符合AEC-Q100的车规FM24C/FM25系列EEPROM等非挥发存储新产品。

1.jpg

FM25/FM29系列产品基于28nm先进NAND flash工艺,满足6万次擦写次数和数据保存10年的高可靠性要求,应用于工规、5G通讯、车载等相关领域。

FM24N/FM24LN/FM25N系列产品基于95nm先进EEPROM工艺,具备低功耗、超宽电压、高可靠等特性,其中擦写寿命大于400万次、数据保持时间大于200年,产品性能及可靠性达到业界领先水平,应用于CCM、白电、工控、仪表、医疗、5G通讯、车载等相关领域。其中FM24C/FM25系列车规产品已通过AEC-Q100 Grade 1车规级验证。

2.jpg

FM25/FM29系列SLC NAND存储器

发布会现场,复旦微电产品经理肖磊介绍,FM25/FM29系列是目前国内外首款单芯片同时支持双接口(SPI/PPI)双电源(1.8/3.3)的 SLC NAND Flash,产品开发团队针对28nm先进工艺平台特性,优化编擦、擦除、回读算法,采用内部8bit BCH ECC设计,兼顾成本、性能和可靠性,满足6万次擦写次数和数据保存10年的高可靠性要求。SPI系列(FM25)容量覆盖512Mb~4Gb,温度覆盖-40℃~+105℃。PPI系列为(FM29)容量覆盖2Gb~8Gb,温度覆盖-40℃~+105℃。

3.jpg

FM25S系列产品特点

  • 存储器容量:512Mb~4Gbit

  • 工作电压范围:1.8V/3.3V

  • 工作温度范围:

  • -40℃~+85℃ 以及-40℃~+105℃扩展级

  • SPI高速单/双/四口:104MHz(3.3V) / 85MHz(1.8V)

  • 支持内置8 bit ECC,满足客户Error-Free 需求

  • 高可靠性:

  • Endurance:6万擦写次数

  • Data Retention:10年

  • 封装支持TDFN5X6/TDFN6X8等多种封装形式

FM29F系列产品特点

  • 存储器容量:2Gb~8G bit

  • 工作电压范围:1.8V/3.3V

  • 工作温度范围:

  • -40℃~+85℃ 以及-40℃~+105℃扩展级

  • 兼容ONFI 1.0标准 50MHz(3.3V)/33MHz(1.8V)

  • 支持内置8 bit ECC,满足客户Error-Free 需求

  • 高可靠性

  • Endurance:6万擦写次数

  • Data Retention:10年

  • 封装支持BGA63/TSOP48等多种封装形式

4.png

下一阶段,复旦微电SLC NAND Flash存储器全系列产品将覆盖512Mbit~16Gbit容量, 其中2/4 Gbit SPI NAND Flash容量新品最高工作频率将扩展到120MHz(3.3V)/95MHz(1.8V)的High speed模式,16Gbit PPI NAND支持DDR高速接口,可满足客户更快读写访问速度需求。同时,全系产品会继续提升耐写性指标,满足客户高工规的应用。

FM24/FM25系列串行EEPROM存储器

本次复旦微电推出国内首款低功耗超宽电压FM24LN系列I2C串行EEPROM存储器、FM24N/25N宽电压高可靠I2C/SPI串行EEPROM,以及FM24C/FM25车规EEPROM三个系列的新产品。复旦微电产品经理周泉介绍道,产品开发团队针对流片工艺平台的特性,以及对存储器产品工作原理的深刻理解,对EEPROM存储器读写电路进行了特别的优化设计,大幅度提升了产品的性能及可靠性,为客户提供了更多的产品选择,可以满足CCM、白电、工控、仪表、医疗、5G通讯、车载等各种应用领域需求。FM24C/FM25系列车规产品已通过权威第三方测试认证机构——工业和信息化部电子第五研究所AEC-Q100 Grade 1车规级验证,产品工作温度扩展至-40℃~+125℃。

5.jpg

FM24LN系列 首发包含

32K/64K/128Kbit三种容量的I2C串行EEPROM,产品支持1.1V~5.5V超宽工作电压范围,温度覆盖工规-40℃~+85℃,全电压范围内均支持400KHz/1MHz工作频率,5.5V下典型待机电流小于1uA,读写电流不超过0.8mA,产品满足擦写寿命≥400万次、数据保持时间≥100年的高可靠性要求,支持WLCSP-4Ball、SOP8、TSSOP8、TDFN8等多种封装形式。 

FM24N系列 首发包含

64K/128K/256K/512Kbit四种容量的I2C串行EEPROM,产品支持1.7V~5.5V宽工作电压范围,温度覆盖工规-40℃~+85℃以及工规扩展温度-40℃~+125℃,支持400KHz/1MHz/ 3.4MHz工作频率,写电流≤2mA,读电流≤0.6mA,产品满足擦写寿命≥400万次、数据保持时间≥200年的高可靠性要求,支持SOP8、TSSOP8、TDFN8等多种封装形式
FM25N系列 首发包含

64K/128K/256K/512Kbit四款容量,产品支持1.7V~5.5V宽工作电压范围,温度覆盖工规 -40℃~+85℃ 以及工规扩展温度-40℃~+125℃ , 支持5M(VCC≥1.7V);10M(VCC≥2.5V); 20M(VCC≥4.5V)工作频率,写电流≤2mA,读电流≤5mA@5.5V/20MHz,产品满足擦写寿命≥400万次、数据保持时间≥200年的高可靠性要求,支持SOP8、TSSOP8、TDFN8等多种封装形式。 

FM24CXXX系列车规产品首发包含

128K/256K/512Kbit三款容量产品,产品通过了严苛的AEC-Q100 Grade1认证,产品支持1.7V~5.5V超宽工作电压范围,工作温度范围 -40℃~+125℃,支持400KHz/1MHz工作频率,写电流≤3mA,读电流≤1mA,产品满足擦写寿命≥100万次、数据保持时间≥40年的高可靠性要求,支持SOP8、TSSOP8、TDFN8等多种封装形式,产品湿敏等级为MSL1。 

FM25XXX系列车规产品 首发包含

64K/512Kbit两款容量产品,产品通过了严苛的AEC-Q100 Grade1认证,产品支持1.8V~5.5V超宽工作电压范围,工作温度范围-40℃~ +125℃ , 最高支持20MHz工作频率,写电流≤3mA,读电流≤5mA,产品满足擦写寿命≥100万次、数据保持时间≥40年的高可靠性要求,支持SOP8、TSSOP8、TDFN8等多种封装形式,产品湿敏等级为MSL1。

6.png

FM24LN32/64/128产品特点

  • 存储器容量:32K/64K/128Kbit

  • 工作电压范围:1.1V~5.5V

    工作温度范围:-40℃~+85℃

  • 全电压范围内兼容400KHz/1MHz时钟

  • 串行接口符合I²C规范

  • IO电压与芯片VCC相同,同时兼容1.2V/1.8V/3.3V/5V等主流电压应用。

  • 具有软件保护功能(SWP)

  • 具备器件地址可配置功能,支持I²C总线上最多挂8颗EEPROM

  • 输入脚经施密特触发器滤波抑制噪声

  • 具有字节写、页写、当前地址读、自由读、顺序读等操作模式

  • 擦写时间内部定时(max 5ms)

  • 128 bit 由厂家编写的、只读的唯一标识码,方便产品溯源

  • 额外的一页Security Sector安全区,用户可读写,可锁成只读。(客户可以把版本、物料、厂商代码等关键信息写入,方便产品管控及溯源)

  • 高可靠性:

    ·Endurance:400万擦写次数

    ·Data Retention:100年

  • 封装支持SOP8/TDFN/TSSOP/WLCSP等封装,其中WLCSP封装支持400um*400um及400um*500um Ball Pitch两种规格

FM24N64/128/256/512产品特点

  • 存储器容量:64K/128K/256K/512Kbit

  • 工作电压范围:1.7V~5.5V

  • 工作温度范围:

    -40℃~+85℃/-40℃~+125℃(扩展)

  • 支持400KHz/1MHz/3.4MHz时钟频率

  • 串行接口符合I²C规范

  • 内置ECC纠错逻辑

  • 支持硬件保护功能

  • 总线上最多支持8颗EEPROM寻址

  • 输入脚经施密特触发器滤波抑制噪声

  • 具有字节写、页写、当前地址读、自由读、顺序读等操作模式

  • 擦写时间内部定时(max 5ms)

  • 128 bit 由厂家编写的、只读的唯一标识码,方便产品溯源

  • 额外的一页Security Sector安全区,用户可读写,可锁成只读。(客户可以把版本、物料、厂商代码等关键信息写入,方便产品管控及溯源)

  • 高可靠性:

    ·Endurance:400万擦写次数

    ·Data Retention:200年

  • 封装支持SOP8/TDFN/TSSOP等封装

FM25N64/128/256/512产品特点

  • 存储器容量:64K/128K/256K/512Kbit

  • 工作电压范围:1.7V~5.5V

  • 工作温度范围

    -40℃~+85℃/-40℃~+125℃(扩展)

  • 工作频率5M(VCC≥1.7V);10M(VCC≥2.5V);20M(VCC≥4.5V)

  • 支持SPI Mode 0 (0,0)及Mode 3 (1,1)

  • 内置ECC纠错逻辑

  • 支持1/4空间、1/2空间、全空间写保护

  • 支持软、硬件写保护功能

  • 支持字节页及页写模式

  • 擦写时间内部定时(max 5ms)

  • 128 bit 由厂家编写的、只读的唯一标识码,方便产品溯源

  • 额外的一页Security Sector安全区,用户可读写,可锁成只读。(客户可以把版本、物料、厂商代码等关键信息写入,方便产品管控及溯源)

  • 高可靠性:

    ·Endurance:400万擦写次数

    ·Data Retention:200年

  • 封装支持SOP8/TDFN/TSSOP等封装

FM24C128EA1/FM24C256EA1/FM24C512DA1车规产品特点

  • 存储器容量:128K/256K/512Kbit

  • 符合AEC-Q100 Grade1

  • 工作电压范围:1.7V~5.5V

  • 工作温度范围:-40℃~+125℃

  • 支持400KHz/1MHz时钟频率

  • 串行接口符合I²C规范

  • 支持硬件保护功能

  • 总线上最多支持8颗EEPROM寻址

  • 输入脚经施密特触发器滤波抑制噪声

  • 具有字节写、页写、当前地址读、自由读、顺序读等操作模式

  • 擦写时间内部定时(max 5ms)

  • 128 bit 由厂家编写的、只读的唯一标识码,方便产品溯源

  • 额外的一页Security Sector安全区,用户可读写,可锁成只读。(客户可以把版本、物料、厂商代码等关键信息写入,方便产品管控及溯源)

  • 高可靠性:

    ·Endurance:100万擦写次数

    ·Data Retention:40年

  • 封装支持SOP8/TDFN/TSSOP等封装,湿敏等级:MSL1

FM25640A1/FM25512A1产品特点

  • 存储器容量:64K/512Kbit

  • 符合AEC-Q100 Grade1

  • 工作电压范围:1.8V~5.5V

  • 工作温度范围:-40℃~+125℃

  • 工作频率最高支持20MHz(FM25640A1)、16MHz(FM25512A1)

  • 支持SPI Mode 0 (0,0)及Mode 3 (1,1)

  • 支持1/4空间、1/2空间、全空间写保护

  • 支持软、硬件写保护功能

  • 支持字节页及页写模式

  • 擦写时间内部定时(max 5ms)

  • 128 bit 由厂家编写的、只读的唯一标识码,方便产品溯源

  • 额外的一页Security Sector安全区,用户可读写,可锁成只读。(客户可以把版本、物料、厂商代码等关键信息写入,方便产品管控及溯源)

  • 高可靠性:

    ·Endurance:100万擦写次数

    ·Data Retention:40年

  • 封装支持SOP8/TDFN/TSSOP等封装

下一阶段,复旦微电全新FM24LN、FM24N系列EEPROM存储器全系列产品将覆盖64Kbit~2Mbit容量,FM25N将补全64Kbit~4Mbit全系列容量。其中FM24N全系列新品最高工作频率将扩展到I2C总线规范的3.4MHz的High speed(HS Mode)模式,可满足客户更快读写访问速度需求。I2C、SPI接口EEPROM的全系列容量产品计划于年内完成AEC-Q100 Grade1车规级验证,本次发布EEPROM新品将陆续启动量产。

发布会最后,工业和信息化部电子第五研究所汽车电子行业经理王健分享了题为《车规“芯”形式下的质量保障》的主题演讲。王健表示,近几年来车规芯片快速发展,五所与客户开发并应用“5A+CA关键分析评价”质量工程体系,在研制转批量生产前有效识别、定位、改善解决潜在的设计、材料、结构、工艺等缺陷,提升成品率、可靠性、稳定性和一致性,提升企业品牌和竞争力。五所在与复旦微电的合作中,对存储芯片、MCU、安全与识别等一系列产品开展车规测试认证服务合作。未来,五所将持续和复旦微携手并进,砥砺前行。

基于本次发布的系列新品,复旦微电子还推出全系列车规级NAND/Nor Flash及EEPROM存储器,产品符合AEC-Q100 Grade1/Grade2需求。公司将持续在非易失存储器领域以新工艺节点、低压或宽压、高速、高可靠性(拓展工规、车规等)为发展方向,进一步尝试并拓展系统级存储器产品防线,不断获得突破和领先优势。

关于复旦微电

上海复旦微电子集团股份有限公司(“复旦微电”,上交所科创板证券代码: 688385.SH;“上海复旦”,港交所股份代号: 01385.HK)是国内从事超大规模集成电路的设计、开发、生产(测试)和提供系统解决方案的专业公司。公司于1998年7月创办,并于2000年在香港上市,2014年转香港主板,是国内成立最早、首家上市的股份制集成电路设计企业。2021年登陆上交所科创板,形成“A+H”资本格局。复旦微电子集团现已建立健全安全与识别芯片、非挥发存储器、智能电表芯片、FPGA芯片和集成电路测试服务等产品线。产品行销30多个国家和地区,广泛应用于金融、社保、汽车电子、城市公共交通、电子证照、移动支付、防伪溯源、智能手机、安防监控、工业控制、信号处理、智能计算等领域。

来源:复旦微电子集团

免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 35

意法半导体 STM32G0* 系列Arm® Cortex®-M0+ 微控制器 (MCU)新增多款产品和更多新功能,例如,双区闪存、CAN FD接口和无晶振USB全速数据/主机支持功能。

“意法半导体发布新STM32G0微控制器,增加USB-C全速双模端口、CAN

对于注重预算的应用,新的  STM32G050超值产品线、STM32G051STM32G061主流产品线增加了丰富的模拟功能和最大容量18KB 的 RAM存储器,以及多达 48 引脚且售价极具竞争力的封装。

此外,STM32G0B0 超值产品线、STM32G0B1和STM32G0C1主流产品线给STM32G0 带来了新功能,这三个产品线都集成了一个 USB 2.0 设备/主机控制器和双区闪存,而STM32G0B1 和 STM32G0C1还增加了意法半导体的 FDCAN 外设。

有了集成无晶振USB2.0 全速主从双模数据接口和 USB-C 供电控制器的新产品加入,STM32G0系列让客户能够利用双模功能扩展新 USB-C 设备互操作性,开发创新应用。由于USB 双模即将取代 USB On-The-Go (OTG),STM32G0 可以在设备和主机之间轻松完成角色互换,通过简单的 USB供电命令在送电和受电之间快速转换。FDCAN 模块提供两个 CAN 2.0 接口并支持 CAN FD技术,有助于工业系统和汽车诊断系统集成创新功能。

在应用开发方面,现已推出的NUCLEO-G0B1RE开发板和 STM32G0C1E-EV评估板可加快新项目开发,STM32CubeG0软件包提供硬件抽象层 (HAL)、低层 (LL) API 和中间件等软件。

在增加这些新产品和技术功能后,现在STM32G0 系列覆盖 8 - 100 引脚封装、16 -512 KB片上闪存容量,以及高达 144 KB的大容量程序数据 RAM。灵活可变的运行模式和静态模式确保低功耗和最高64MHz的处理频率。高精度内部时钟信号在整个工作温度范围内非常稳定,高精度计时器的分辨率可设为CPU处理频率两倍。STM32G0 MCU 具有高抗噪性、最高125°C的多种额定工作温度范围。

网络安全功能为消费电子、家电和工业应用带来先进的数据安全保护,其中包括安全启动和固件更新 (SB/SFU)、保护厂商知识产权的专有代码读出保护 (PCROP) ,以及协助任务分区的存储器保护单元 (MPU) ,同时还推出了具有 AES-256 硬件加密加速处理器的产品型号。

新的 STM32G0 产品现已量产,STM32G050F6P6 超值产品线采用 TSSOP20 封装和 32 KB 闪存。在STM32G0B产品线中,STM32G0B0KET6采用LQFP32封装和512 KB 闪存。

NUCLEO-G0B1RE Nucleo-64 board 和 STM32G0C1E-EV 已上市。

详情访问www.st.com/stm32g0,相关博文请访问https://blog.st.com/stm32g0c1-stm32g061/

关于意法半导体

意法半导体拥有46,000名半导体技术的创造者和创新者,掌握半导体供应链和先进的制造设备。作为一家独立的半导体设备制造商,意法半导体与十万余客户、数千名合作伙伴一起研发产品和解决方案,共同构建生态系统,帮助他们更好地应对各种挑战和新机遇,满足世界对可持续发展的更高需求。意法半导体的技术让人们的出行更智能,电力和能源管理更高效,物联网和5G技术应用更广泛。详情请浏览意法半导体公司网站:www.st.com

围观 65

引言

因为对能够支持新功能和复杂功能的应用需求不断上升,对配备更大闪存区的设备的需求也在增加。

使用外部闪存可以提供具有近似性能水平的更高存储能力,同时为增加闪存区的需求提供一种经济划算的解决方案。

这样,基于STM32F7x0 超值系列和 STM32H750 超值系列开发的设备能够以更小的内部闪存区来应对市场需求。

本文详细描述了在基于STM32超值系列开发的设备上,从外部存储器执行代码构建应用程序所需的步骤,并讲解了如何从内部闪存启动,然后跳转到片外存储器的用户程序去执行。

1 概述

本文档适用于基于 Arm®的器件。

提示:Arm 是 ArmLimited(或其子公司)在美国和/或其他地区的注册商标。

2 外部存储器代码执行概述

2.1 外部存储器代码执行原则

STM32CubeF7 v1.12.0和STM32CubeH7 v1.3.0固件包提供多个应用程序,用于演示如何从内部闪存启动以及如何配置外部存储器并跳转到用户应用程序(位于外部存储器上)。其中有两个用例,XiP和BootROM,可用于外部存储器代码执行。

(1) XiP 用例旨在从外部闪存(QSPI 或 FMC-NOR 闪存)“芯片内执行”。用户应用程序代码应链接到目标执行存储器地址(外部 QSPI 或 FMC-NOR 闪存)。

(2) BootROM用例旨在演示如何从内部闪存启动,配置外部RAM存储器(SDRAM 或 SRAM),将用户应用程序二进制文件从代码存储区域(SDCARD 或 SPI-Flash 存储器)复制到外部 SDRAM 或外部SRAM,然后跳转到用户应用程序。用户应用程序代码应链接到目标执行存储器地址(外部 SDRAM 或 SRAM)。

下表中所述的应用程序可在固件包中的\Applications\ExtMem_CodeExecution路径下获得,供下列板使用:

(1) STM32F723E-Discovery板针对STM32F730 器件
(2) STM32F756G_EVAL板针对STM32F750 器件
(3) STM32H743I_EVAL板针对STM32H750 器件

“▲
▲ 表1. 应用详情

外部存储器启动应用程序负责初始化所需资源,以使外部存储器随时可用。该应用程序根据用户配置初始化所需资源(参见 第 3.3 节配置)。

外部存储器启动应用程序必须设置主堆栈指针,并将应用程序配置为在外部存储器上执行。该类型启动方案支持大小可调的用户应用程序。

外部存储器启动应用程序确保在跳到用户应用程序之前重置或释放安装阶段之后不再需要的任何资源。下图展示了该启动方案:

“▲
▲ 图1. 外部存储器代码启动方案

2.2 外部存储器启动应用程序描述

外部存储器启动应用程序包含STM32CubeF7/H7包上的一组源文件,这些定制的源文件可以匹配每个硬件平台支持的配置。

下图显示了所有受支持配置的所有文件超集示例。

“▲
▲ 图2. 外部存储器启动应用程序源文件超集

3 支持的启动模型

该应用程序支持两种执行方式:

(1) 支持芯片内执行(支持 XiP)
(2) 支持 BootROM

用户必须通过修改 memory.h 头文件来选择匹配需求的配置。

3.1 支持芯片内执行(XiP)

XiP 模型基于直接从用于代码存储的外部非易失性存储器执行代码。该执行模型需要内存映射支持,以允许 CPU 直接访问代码以执行用户应用程序。XiP 模型可通过 FMC/QSPI 接口在外部 NOR/QSPI 闪存上使用。

外部存储器启动应用程序基于 memory.h 文件中的用户配置对下列易失存储器之一进行配置:SDRAM、SRAM、 PSRAM 或内部 SRAM。在该模型中,易失性存储器仅用于数据访问。

下面的流程图说明了 XiP 模型的操作流程。

“▲
▲ 图3. XiP 模型操作流程

3.2 支持 BootROM BootROM

模型基于从选定的易失性存储器中执行代码。当二进制数据存储在非内存映射模式的存储器(比如SDCARD)中时,该执行模型非常适合。当二进制数据存储在低吞吐量的存储器(比如 SPI-NOR(使用单线 QSPI 进行仿真))中时,此模型也适用。

外部存储器启动应用程序基于 memory.h 文件中的用户配置对下列其中两个易失存储器进行配置:SDRAM、 SRAM、PSRAM 或内部 SRAM。在该模型中,二进制数据从一个非易失性存储器复制到一个易失性存储器,然后 由外部存储器启动应用程序执行。第二个易失性存储器用于数据。
下面的流程图说明了 BootROM 模型的操作流程。

“▲
▲ 图4. BootROM 模型操作流程

3.3 配置

用户配置由以下定义确定:

DATA_AREA:用于指定用于数据存储的易失性存储器。支持的存储器(取决于所用的板)有:

(1) USE_EXTERNAL_SDRAM:外部SDRAM用于数据存储
(2) USE_EXTERNAL_SRAM:外部SRAM用于数据存储
(3) USE_EXTERNAL_PSRAM:外部PSRAM用于数据存储
(4) USE_INTERNAL_SRAM:内部SRAM用于数据存储

CODE_AREA:用于指定用户应用程序的执行位置。该区域可以是用于BootROM 方案的易失性存储器,也可以是用于XiP方案的非易失性存储器。支持的存储器(取决于所用的硬件)有:

(1) XiP 模型:BINARY_AREA必须是未定义的:

1) USE_QSPI:QSPI Flash 用于代码执行
2) USE_NOR:FMC-NOR Flash 用于代码执行

(2) BootROM 模型:BINARY_AREA 必须已定义

1) USE_EXTERNAL_SDRAM:外部SDRAM 用于代码执行
2) USE_EXTERNAL_SRAM:外部SRAM 用于代码执行
3) USE_EXTERNAL_PSRAM:外部PSRAM 用于代码执行
4) USE_INTERNAL_SRAM:内部SRAM 用于代码执行
BINARY_AREA:仅在 BootROM模型中定义。它用于指定包含用户应用程序的二进制文件位置。根据所选配置,需要附加定义。支持的存储器(取决于所用的硬件)有:

(1) USE_SPI_NOR:SPI NOR Flash 用于二进制存储

1) BINARY_BASE_OFFSET:SPI NOR Flash中的二进制偏移
2) BINARY_SIZE:二进制图像大小

(2) USE_SDCARD:SDCard 用于二进制存储

BINARY_FILENAME:要执行的二进制文件名称

用户应确保所选存储器包含代码和数据,以至少覆盖一个适当的用户应用程序启动。然后,用户应用程序可以初始化所需的任何其他存储器。

3.4 外部存储器部件总结

下表总结了与所用板和启动模型对应的外部存储器部件编号。由于 STM32F7x0 超值系列和TM32H750 超值系列器件没有专用板,使用的板(与兼容器件)为:

(1) STM32F723E-Discovery 用于模拟 STM32F730 器件。
(2) STM32F756G_EVAL 用于模拟 STM32F750 器件。
(3) STM32H743I_EVAL 用于模拟 STM32H750 器件。

“▲
▲ 表2. 启动模型在每个板上使用的外部存储器

4 需要考虑的资源约束

初始化后,不再需要的任何资源(中断、正在进行的传输、未使用的引脚)都应在跳到用户应用程序之前释放。必须这样做以避免额外的功耗,并限制对用户应用程序的任何干扰。特别是对于BootROM 模型,由于不再需要用于二进制存储的外设,因此应将其重置。

用户应考虑外部存储器启动应用程序使用的资源数量,以确保外部存储器接口保持正常运行。资源约束与以下因素有关:

(1) 引脚分配和配置
(2) 接口配置(不应修改 QSPI IP 寄存器,FMC IP 寄存器即使是部分更新)
(3) 配置 RCC,以避免 IP 重置时钟,禁用和以有害的方式更新时钟频率/源。

下面的引脚分配表作为参考,实际中根据使用的板进行引脚选择是必须的。可根据可用的替代功能选择使用其他引 脚。

“▲
▲ 表3. 板为每个存储器分配的引脚

下表总结了应保持不变的资源。它列出了不应修改的外设(或外设的一部分),以避免外部存储不可用。不应重置 上述外设或禁用时钟,也不应以可能改变其行为的方式进行重新配置。

提示 部分要素可能会根据为所选板选择的外部存储器启动应用程序配置和平台硬件而更改。

“▲
▲ 表4. 内存类型所需的外设

5 外部存储器用户应用程序描述

5.1 需要的更新

外部存储器应用程序基于特定的启动方案,该方案与标准的启动方案不同,支持从片上应用到片外应用的平稳过渡。

当应用程序的位置发生变化时,用户必须进行两项更新:

(1) 确保使用所需的链接器文件,并提供与所选启动选项相对应的内存映射。
(2) 更新 VTOR 设置,以使用正确的地址。

5.2 加载和调试

STM32F723E-Discovery、STM32756G_EVAL和STM32H743I_EVAL这三种板都有面向外部非易失性内存的加载器。这些加载器在STM32CubeF7/H7中以如下形式提供:

(1) EWARM IDE 的补丁
(2) MDK-ARM IDE 的专用包

XiP 模型提供了类似于内部Flash 调试的无缝加载和调试体验。对于 SW4STM32 IDE,应使用STM32CubeProgrammer 在外部闪存上加载应用程序。

在 BootROM 模型中,应用程序被编译和链接,以便从外部易失性内存执行:

(1) External SDRAM:链接器地址 0xD0000000 用于 STM32H750 超值系列,而 0xC0000000 用于 STM32F7x0 超值系列

(2) External SRAM:链接器地址 0x68000000 用于 STM32H750 超值系列和 STM32F7x0 超值系列

然后将应用程序二进制文件存储到 SPI_NOR 闪存或 SDCARD 中。由启动应用程序将用户应用程序从存储区域复 制到执行 RAM 区域。

因此,应用程序的加载模式不能由 IDE(MDK-ARM 或 EWARM)外部存储Flash 加载器处理(因为应用程序的链 接地址和存储地址不同)。

根据 BINARY_AREA 定义(在启动应用程序的 “memory.h” 文件中指定),该模型需要使用以下两种不同的加载模式:

SPI_NOR

用户应用程序应存储在地址为0x90000000的SPI-NOR闪存中。必须使用 STM32CubeProgrammer 来完成。应用程序的输出应为二进制格式,以便能够指定一个不同的加载地址,即 SPI-Flash 地址。详细信息请参见下图。

SDCARD

用户应手动将二进制文件(构建的输出)复制到用于存储用户应用程序的 SDCARD 中,然后将 SDCARD 插入评估板。

下图显示了加载和调试的步骤:

“▲
▲ 图5. STM32CubeProgrammer

5.3 使用 EWARM IDE 进行调试

在调试从外部存储器运行的用户应用程序时,需要特别注意EWARM IDE。EWARM 将 PC(程序计数器)的默认CPU重置值覆盖为用户应用程序中给定的值(外部执行存储器中的地址值)。

在该启动方案中,在执行外部存储器启动应用程序之前,用户应用程序 PC 地址保持不可访问(因此外部存储器已经准备好,并通过FMC 或 QSPI 映射内存)。如果EWARM 直接跳到用户应用程序的起始点,就会生成hardfault。为了避免 hardfault,用户应在调试器选项中添加“---drv_reset_to_cpu_start”命令行,如下图所示。此设置防止EWARM强制PC,并让外部存储器启动应用程序在跳到用户应用程序之前配置外部存储器。

“图
图 6.调试器命令行选项

6 性能特性

当从外部存储器执行时,由于外部闪存延迟和较长的指令/数据路径,性能会受到影响。如果使用STM32F7x0超值系列和STM32H750超值系列设备,Cortex-M7 L1-cache可以减少这种影响。

下表总结了每个 ROM / RAM 组合取得的 EEMBC® CoreMark®分数。当从内部闪存执行时,可以获得最佳性能。然而,当从外部存储器执行时,损失会显著减少。

这些数字说明了从外部存储器进行操作时对CPU性能的影响。提供内部 Flash 配置分数作为参考。

“▲
▲ 表5. 每种配置的 EEMBC® CoreMark®分数

本文转载自:ST意法半导体中文论坛
免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:
cathy@eetrend.com)。

围观 147

近年来随着物联网、车用电子及智慧家居等需求兴起,电源管理与微控制器(MCU)等晶片用量逐步攀升,已经排挤其他部分8吋芯片产能的投片量,根据TrendForce光电研究(WitsView)最新观察指出,晶圆代工厂相继提高8吋厂IC代工费用。

2017年12英寸硅晶圆供不应求且价格逐季调涨,随着第三季旺季需求上升,加上8吋晶圆代工短期难再大幅扩产,整体产能仍然吃紧。2018年8吋硅晶圆价格将再次上涨。

涨价浪潮对中国厂商的伤害

由于上游产能紧张及原材料价格上涨,被动元器件的涨价更是超过预期。进入2018年,电容,电阻等被动元器件价格一路走高。据相关渠道获悉,国巨,风华高科均对电阻多次提价。其中,国巨对中大尺寸后膜芯片电阻级排阻提价30%以上,风华高科对片式电阻提价10%-20%左右。在采访中,多位业内人士对记者表示,电容、电阻等被动元器件涨价将持续,涨价趋势可能将持续到年底。

另一方面,DRAM和NANDFlash的价格从2017年就开始不断上涨,随即引起内存条和固态硬盘等产品的价格大幅上涨,一年内内存条的价格增幅一度达到300%。光是两条内存装机成本就要比一年前至少增加800-1000元,SSD硬盘的价格也翻倍。

外界原本预期DRAM上游厂商会在2018年一季度下调价格,但三星、海力士已拒绝了降价的可能,三星2018年的DRAM颗粒合约价将上涨3-5%,海力士也跟进表态称将涨价5%,理由是DRAM颗粒依然供不应求。

存储器/处理器/阻容暴涨背后,谁将引领国产MCU未来?

据了解,发改委已就存储芯片涨价的问题约谈三星,或将调查可能存在的公司价格操纵行为。发改委价监局官员徐新宇称,过去18个月芯片价格大幅上涨,发改委对此保持警惕,“我们已经注意到价格飙升状况,将更加关注该行业未来可能因‘价格操纵’引起的问题。”徐新宇表示,可能有多家公司协同行动,尽量推高芯片价格,谋求获利最大化。

谁将引领国产MCU未来?

在业界关注被动元器件和存储芯片价格是否会出现松动的时候,MCU等芯片涨价潮又来袭。2017年第四季度以来,全球不少MCU厂商产品交期都从4个月延长至6个月,日本MCU厂商更是拉长至9个月。从2018年上季度半导体情报数据来看,去年至今全球电子产品制造业都异常兴旺,连日本都出现多年不见的正增长,这带动芯片等电子元器件的销量。在硅晶圆产能满载、汽车电子及物联网需求的持续爆发下,MCU在2018年供应短缺局面或难以有效缓解。

存储器/处理器/阻容暴涨背后,谁将引领国产MCU未来?

近期,欧洲半导体巨头NXP公司对其代理商又发出了涨价通知。通知称,将从2018年第一季度开始对NXP旗下MCU(微控制器)、数字化网络、汽车微控制器等主要产品上调价格。涨价幅度在5%-10%不等,这标志着半导体巨头打响了2018年MUC芯片涨价的第一枪。因此导致市场上MCU供应出现短缺,芯片报价因而持续大幅走扬。市场分析人士指出,另一家欧洲半导体巨擘─ST(意法半导体),后续有可能跟进NXP调涨MCU报价脚步,增强全球MCU市场涨价热潮更大动能。
存储器/处理器/阻容暴涨背后,谁将引领国产MCU未来?

中国MCU市场增长率高于全球,并稳步增长。2017年中国MCU市场规模为400亿元左右,较去年增长7%,占全球市场的30%;中国MCU自2010年以来保持稳定增长,预计2020年,年均增长可达6.5%。从营业收入看,我国MCU应用的最大市场是消费电子,其次是计算机外设和汽车电子市场。汽车电子MCU增长迅速,预计2015-2020年年均增速达13%。从MCU位数看,8位和32位将以互补性的组合占据MCU领域。

芯片价格一路上涨,需求旺盛是重要原因。此外全球6成的家电产能都在中国。国内消费电子市场无论在规模还是在质量上都在不断崛起,以美的、格力为代表的家电企业,以及以华为、OPPO、VIVO为代表的手机厂商已进入全球市场前列。广阔的市场空间和本土消费电子企业的崛起为本土消费电子MCU企业提供了优越的成长环境,加上国家政策支持IC国产化的背景下,国内MCU企业将迎来高速成长。

作为国内本土MCU厂商代表中颖,HK(航顺芯片),GD(北京兆易),NUC(新唐)是否能在这一波涨价潮中脱颖而出,抢占更多的市场做好准备?另一方面,国内厂商能否最大化接受本土MCU的进入,达成本土MCU战略合作共识,减小国外MCU对国内厂商的涨价冲击呢?这也是国内厂商需要思考的问题。MCU市场的增长已经势不可挡,预估中国MCU市场将于2020年持续成长达414亿元人民币。

存储器/处理器/阻容暴涨背后,谁将引领国产MCU未来?

中国作为最大的芯片市场却没有话语权,国产化率低受制于人,MCU市场更是尤为明显。中颖号称国内8位MCU之王,站在有利的环境及正确的产业趋势下,在家电行业内十几年默默耕耘,九死一生。但中颖作为中国小家电MCU的龙头厂商,近年来营运表现优于其他同业。

然而在32位MCU市场近一年来,又出一匹黑马HK(航顺),短短一年时间的市场推广,大受客户选用,根据客户使用反馈,不仅产品性能稳定,功耗更低,宽电压设计,兼容性更是完美替代进口品牌。这也是继GD32位MCU之后的又一个国内32位MCU之新星。而GD在市场多年的沉淀和耕耘,在国内一直处于领先地位,也让很多国内厂商对本土MCU品牌接受度提高。但与进口品牌相比较,本土MCU仍是弱势群体。

存储器/处理器/阻容暴涨背后,谁将引领国产MCU未来?

不掌握芯片及其技术,本土企业终究被跨国巨头扼住咽喉。从近5年中国集成电路产业进出口数据来看,国内集成电路每年进口金额在1250-1650亿美元,有着极大的国产替代进口的空间,芯片国产化也将带来诸多的投资机会。中国本土MCU小微跃跃欲试,32位MCU厂商众多,但我们相信中颖,HK(航顺),GD(兆易)必将引领国产替代进口MCU的未来。

来源:慧聪电子网

围观 506

存储器的工作原理:

1、存储器构造

存储器就是用来存放数据的地方。它是利用电平的高低来存放数据的,也就是说,它存放的实际上是电平的高、低,而不是我们所习惯认为的1234这样的数字

单片机存储器结构

单片机存储器结构

单片机里面都有这样的存储器,这是一个存储器的示意图:一个存储器就象一个个的小抽屉,一个小抽屉里有八个小格子,每个小格子就是用来存放“电荷”的,电荷通过与它相连的电线传进来或释放掉,每个小抽屉称之为一个“单元”。

有了这么一个构造,我们就能开始存放数据了,想要放进一个数据12,也就是00001100,我们只要把第二号和第三号小格子里存满电荷,而其它小格子里的电荷给放掉就行了。问题出来了,一个存储器有好多单元,线是并联的,在放入电荷的时候会将电荷放入所有的单元中,而释放电荷的时候会把每个单元中的电荷都放掉,这样的话,不管存储器有多少个单元,都只能放同一个数,这不是我们所希望的,因此要在结构上稍作变化,看图2,在每个单元上有个控制线,我想要把数据放进哪个单元,就给一个信号这个单元的控制线,这个控制线就把开关打开,这样电荷就能自由流动了,而其它单元控制线上没有信号,所以开关不打开,不会受到影响,这样,只要控制不一样单元的控制线,就能向各单元写入不一样的数据了,同样,如果要某个单元中取数据,也只要打开对应的控制开关就行了。

2、存储器译码

那么,我们怎样来控制各个单元的控制线呢?这个还不简单,把每个单元元的控制线都引到集成电路的外面不就行了吗?事情可没那么简单,一片27512存储器中有65536个单元,把每根线都引出来,这个集成电路就得有6万多个脚?不行,怎么办?要想法减少线的数量。我们有一种办法称这为译码,简单介绍一下:一根线能代表2种状态,2根线能代表4种状态,3根线能代表几种,256种状态又需要几根线代表?8种,8根线,所以65536种状态我们只需要16根线就能代表了。

3、存储器的选片及总线的概念

单片机存储器结构

至此,译码的问题解决了,让我们再来关注另外一个问题。送入每个单元的八根线是用从什么地方来的呢?它就是从计算机上接过来的,一般地,这八根线除了接一个存储器之外,还要接其它的器件,这样问题就出来了,这八根线既然不是存储器和计算机之间专用的,如果将某个别的单元接在这八根线上,就不好了,比如这个存储器单元中的数值是0FFH另一个存储器的单元是00H,那么这根线到底是处于高电平,还是低电平?所以我们要让它们分离。办法当然很简单,当外面的线接到单片机的管脚进来后,不直接接到各单元去,中间再加一组开关就行了。平时我们让开关关闭着,如果确实是要向这个存储器中写入数据,或要从存储器中读出数据,再让开关接通就行了。这组开关由三根引线选择:读控制端、写控制端和片选端。要将数据写入片中,先选中该片,然后发出写信号,开关就合上了,并将传过来的数据(电荷)写入片中。如果要读,先选中该片,然后发出读信号,开关合上,数据就被送出去了。注意图4,读和写信号同时还接入到另一个存储器,但是由于片选端不一样,所以虽有读或写信号,但没有片选信号,所以另一个存储器不会“误会”而开门,造成冲突。

从上面的介绍中我们已经看到,用来传递数据的八根线并不是专用的,而是很多器件大家共用的,所以我们称之为数据总线,总线英文名为BUS,总即公交车道,谁都能走。而十六根地址线也是连在一起的,称之为地址总线。

半导体存储器的分类

按功能能分为只读和随机存取存储器两大类。

只读存储器的英文缩写为ROM(READ ONLY MEMORY),从字面上理解就是只能从里面读,不能写进去,它类似于我们的书本,发到我们手回之后,我们只能读里面的内容,不能随意更改书本上的内容。

随机存储器的英文缩写为RAM(Random Access Memory),即随时能改写,也能读出里面的数据,它类似于我们的黑板,我能随时写东西上去,也能用黑板擦擦掉重写。

解释一下几个常见的概念:

PROM,称之为可编程存储器。这就象我们的练习本,买来的时候是空白的,能写东西上去,可一旦写上去,就擦不掉了,所以它只能用写一次,要是写错了,就报销了。(现在已经被淘汰)

EPROM,称之为紫外线擦除的可编程只读存储器。它里面的内容写上去之后,如果觉得不满意,能用一种特殊的办法去掉后重写,这就是用紫外线照射,紫外线就象“消字灵”,能把字去掉,然后再重写。当然消的次数多了,也就不灵光了,所以这种芯片能擦除的次数也是有限的——几百次吧。(现在已经被淘汰)

EEPROM,也叫 E2PROM称之为电可擦可编程只读存储器,它和EEPROM类似,写上去的东西也能擦掉重写,但它要方便一些,不需要光照了,只要用电就能擦除或者重新改写数据,所以就方便许多,而且寿命也很长(几万到几十万次不等)。

FLASH,称之为闪速存储器,属于EEPROM的改进产品,它的最大特点是必须按块(Block)擦除(每个区块的大小不定,不同厂家的产品有不同的规格), 而EEPROM则可以一次只擦除一个字节(Byte)。FLASH现在常用于大容量存储,比如u盘。

来源:Love_Code

围观 451

存储器映射是指把芯片中或芯片外的FLASH,RAM,外设,BOOT,BLOCK等进行统一编址。即用地址来表示对象。
这个地址绝大多数是由厂家规定好的,用户只能用而不能改。用户只能在挂外部RAM或FLASH的情况下可进行自定义。

Cortex-M3支持4GB的存储空间,它的存储系统采用统一编址的方式; 程序存储器、数据存储器、寄存器被组织在4GB的线性地址空间内,以小端格式(little-endian)存放。由于Cortex-M3是32位的内核,因此其PC指针可以指向2^32=4G的地址空间,也就是0x0000_0000——0xFFFF_FFFF这一大块空间。见图1:

STM32的存储器映射详解
图1 Cortex-M3的存储器映射

Cortex-M3内核将0x0000_0000——0xFFFF_FFFF这块4G大小的空间分成8大块:代码、SRAM、外设、外部RAM、外部设备、专用外设总线-内部、专用外设总线-外部、特定厂商(见图1)。这就导致了,使用该内核的芯片厂家必须按照这个进行各自芯片的存储器结构设计,如stm32。

STM32的存储器映射详解
图2 Cortex-M3与中密度stm32的存储器映射对比

图2中可以很清晰的看到,STM32的存储器结构和Cortex-M3的很相似(这是因为stm32本来就是按照cortex_m3内核来设计硬件的),不同的是,STM32加入了很多实际的东西,如:Flash、SRAM等。只有加入了这些东西,才能成为一个拥有实际意义的、可以工作的处理芯片——STM32。STM32的存储器地址空间被划分为大小相等的8块区域,每块区域大小为512MB(如:0x20000000~0x40000000)。对STM32存储器知识的掌握,实际上就是对Flash和SRAM这两个区域知识的掌握。

不同类型的STM32单片机的SRAM大小是不一样的,但是他们的起始地址都是0x2000 0000,终止地址都是0x2000 0000+其固定的容量大小。SRAM的理解比较简单,其作用是用来存取各种动态的输入输出数据、中间计算结果以及与外部存储器交换的数据和暂存数据。设备断电后,SRAM中存储的数据就会丢失。

STM32的Flash,严格说,应该是Flash模块。三个分区的称呼与datasheet保持一致。该Flash模块包括:

Flash主存储区(Main memory)Flash:存放代码的地方,如图2中的FLASH区域:128KB(0x08000000~0x0801ffff)(不同容量的Flash终止地址不同);

Flash信息区(Information block),该区域又可以分为Option Bytes和System Memory区域;System Memory:STM32在出厂时,已经固化了一段程序在System memory(medium-density devices的地址为:0x1FFF_F000,大小为2KB)存储器中。这段程序就是一个固定好的,并且没法修改的Boot Loader(见编程手册PM0042这种描述)。Option Bytes:可以按照用户的需要进行配置(如配置看门狗为硬件实现还是软件实现);该区域除了互联型所用型号地址都一样:(0x1fff_f000~0x1fff_f80f)图中终止地址有误:应为0x1fff_f80f,正好16个字节。

Flash存储接口寄存器区(Flash memory interface),用于片上外设。是图2中从0x40000000开始的PERIPHERALS区域。也称作外设存储器映射,对该区域操作,就是对相应的外设进行操作。

根据STM32的内存映射图,在代码区,0x00000000地址为启动区,上电以后,CPU从这个地址开始执行代码。0x08000000是用户FLASH的起始地址,0x20000000是SRAM的起始地址。

STM32的存储器映射详解

来源: rh0932

围观 904

将电源管理、非易失性自举存储器、以太网物理层和高速DDR存储器集成在一个小型单面电路板上,让设计更紧凑、更高效

设计用于运行Linux® 操作系统的工业级微处理器(MPU)系统是一件非常困难和复杂的事情。即便是该领域资深的开发人员也要花费大量时间来设计电路板布局以确保DDR存储器和以太网物理层(PHY)高速接口的信号完整性,同时还要满足电磁兼容性(EMC)标准的要求。为了让此类设计变得更加简单,Microchip Technology Inc. (美国微芯科技公司)开发了一种新的基于SAMA5D2 MPU的系统模块(SOM)。 这款ATSAMA5D27-SOM1里面包含了最近发布的ATSAMA5D27C-D1G-CU封装级系统(SiP),通过将电源管理、非易失性自举存储器、以太网物理层和高速DDR2存储器集成在一个小型单面电路板(PCB)上,从而大幅简化了系统的设计。欲了解更多信息,敬请访问 www.microchip.com/SAMA5D2SOM

SAMA5D2系列产品可以为各层次专业水平的设计者提供极为灵活的设计选择。例如,其中的SOM集成了多个外部器件并解决了围绕EMI、ESD和信号完整性的主要设计问题,从而加快开发时间。客户可以将SOM焊接到自己的电路板上然后进行生产,也可以将其与能够从网上免费获取的电路图、设计和Gerber文件以及完整的材料清单一起用作设计参考。此外,客户也可以根据自身的设计需求从SOM转换成SiP 或MPU。无论客户选择哪种器件,他们都可以享受Microchip按客户所需的持续供货政策,确保满足客户所需。

采用 Arm® Cortex®-A5微处理器的SAMA5D2 SiP可以安装在SOM PCB上或是单独提供,产品集成了1 Gb DDR2存储器,去除了PCB对高速存储器接口的限制,从而进一步简化设计。阻抗匹配在封装过程中即已完成,无需在开发过程中手动执行,因此系统可以在正常速度和低速运行时依旧保持正常工作。SAMA5D2 SIP有三种大小的DDR2存储器供选择(128 Mb、512 Mb和1 Gb),均针对裸机、实时操作系统(RTOS)和Linux实现进行了优化。

Microchip的客户在开发Linux应用程序时可以免费获得最广泛的设备驱动、中间件和用于嵌入式市场的应用层。所有Microchip用于SiP 和 SOM的 Linux开发代码都已经接入到Linux社区当中。这样客户就可以最低的软件开发程度将驱动连接的外部设备接入到SOM 和 SiP当中。

SAMA5D2系列产品具备业内最高的安全等级,并且满足PCI标准,为客户实现安全的设计提供了绝佳的平台。产品集成了Arm TrustZone® 、篡改检测、数据和程序安全储存、硬件加密引擎、安全启动等多种功能,客户可以与 Microchip的安全专家一同对自身的安全需求进行评估并落实适合自身设计的保护措施。SAMA5D2 SOM 还包含了 Microchip的 QSPI NOR闪存、一个电源管理集成电路(PMIC)、一个以太网物理层和带有介质访问控制(MAC)功能的串行EEPROM存储器,以满足扩展设计的需求。

Microchip MPU32业务部副总裁Alfredo Vadillo说道:“SOM可以大幅减少开发时间、软件编码和调试工作,让设计者们将精力放在系统的应用功能上,从而缩短上市时间。有了这款新的SOM,客户可以利用Microchip集最新技术于一身的单个模块来更快地将产品推向市场,而且还可以放心地得到来自我们的全方位支持和长期供货承诺。”

如需了解详细信息,请联系Microchip销售代表或者全球授权分销商,或者访问Microchip网站。欲购买文中提及产品,可访问易于使用的microchipDIRECT在线商店或联系Microchip授权分销伙伴。

开发支持

SOM1-EK1开发板为SOM和SiP的开发设计提供了便捷的评估平台。免费的板级支持包(BSP)中包含了用于SOM上的MPU外设和集成电路的Linux核心和驱动程序。 此外还提供用于SOM的电路图和Gerber文件。

供货

• ATSAMA5D2 SiP有四种型号,以ATSAMA5D225C-D1M-CU开头的型号为196引脚BGA封装,10,000片起批量供应。
• ATSAMA5D27-SOM1目前可100件起批量供应。
• 还提供ATSAMA5D27-SOM1-EK1开发板。

围观 465

页面

订阅 RSS - 存储器