嗨,欢迎来到兆亿微波官方商城!
服务热线: 010-62975458  17600099251
购物车图片 购物车 ( )
全部商品分类

FM33LE026低功耗 MCU 芯片的Flash 编程功能分析

2026/1/13 11:35:48
浏览次数: 2

FM33LE0 支持以下 Flash 编程方法:

•在系统编程(ISP):通过 FMSH 专用编程器或者 KEIL 用户界面实施芯片编程,使用 SWD 接口

•在应用编程(IAP):通过 bootloader 代码实现芯片自编程,用户可定义任意串口,可用于实现程序在线升级

编程前必须对 Flash 进行擦除。Flash 支持三种擦除操作:全擦、扇区擦、页擦

一、Flash 擦写时钟

执行 Flash 擦写时使用校准后的 RCHF 时钟,但是系统时钟可以是任意时钟。NVMIF 根据当前RCHF 实际频率设置,来产生相应的计时长度。需要支持的 RCHF 频率为 8M、16M 和 24M。

擦写时钟独立于 CPU 时钟,两者之间作为异步时钟处理。

二、Flash 擦写方法

FM33LE0 支持 Flash 擦除操作,以及单次编程和连续编程。

Flash 擦写前须进行 Key 校验,写入顺序错误或写入值错误,或者在 Flash Key 验证正确之前就进行擦除或编程 Flash 操作将会进入错误状态,并产生相应中断。Flash Key 认证错误之后将禁止擦写

Flash 直到下一次复位。而在正常擦写完成后,向 KEY 寄存器写入任意值都会使状态机返回初始的写保护状态。状态转换如下图:

FM33LE026低功耗 MCU 芯片的Flash 编程功能分析

软件可以通过查询 FLSIF.KEYSTA 来确认当前 Key 输入状态。

三、全擦操作(Matrix Erase)

全擦操作只能由 SWD 接口启动,软件禁止进行全擦。全擦操作仅擦除 main array,不会擦除特殊信息扇区。SWD 可以在制造商或用户模式下启动全擦,操作流程如下:

•编程器通过 SWD 配置 ERTYPE 寄存器为 10

•编程器通过 SWD 清除 PREQ 寄存器,置位 EREQ 寄存器

•编程器通过 SWD 写入 Flash 全擦 Key:0x9696_9696 和 0x7D7D_7D7D

•SWD 向 Flash 任意地址写擦除请求 0x1234_ABCD

•芯片启动对 Flash 的全擦,并暂停任何 Master 对 Flash 的访问

•全擦完成后置位中断标志和全擦标志(全擦标志表示 main array 全部擦除,任何对 main array的编程将清除此标志)

•在全擦标志有效的情况下,SWD 可以任意擦写 NVR0,否则擦写 NVR0 被禁止并触发错误中断

•软件确认擦除结束后向 FlashKEY 寄存器写任意值恢复写保护

四、扇区擦操作(Sector Erase)

SWD 和应用代码都可以执行扇区擦。操作流程如下:

•配置 ERTYPE 寄存器为 00

•清除 PREQ 寄存器,置位 EREQ 寄存器

•写入 Flash 块擦 Key:0x9696_9696 和 0xEAEA_EAEA

•向需要擦除的 Page 内任意地址写擦除请求 0x1234_ABCD

•芯片检查目标扇区是否属于被 ACLOCK 锁定的 Block,如果没有锁定则启动对目标扇区的擦除,如果被锁定则触发错误标志

•扇区擦完成后置位中断标志

•软件确认擦除结束后向 FlashKEY 寄存器写任意值恢复写保护

五、页擦操作(Pgae Erase)

SWD 和应用代码都可以执行页擦。操作流程如下:

•配置 ERTYPE 寄存器为 00 或 11

•清除 PREQ 寄存器,置位 EREQ 寄存器

•写入 Flash 块擦 Key:0x9696_9696 和 0xEAEA_EAEA

•向需要擦除的扇区内任意地址写擦除请求 0x1234_ABCD

•芯片检查目标扇区是否属于被 ACLOCK 锁定的 Block,如果没有锁定则启动对目标扇区的擦除,如果被锁定则触发错误标志

•扇区擦完成后置位中断标志

•软件确认擦除结束后向 FlashKEY 寄存器写任意值恢复写保护

六、单次编程

单次编程由软件发起,通过总线直接写 Flash,每次操作只能执行 word 编程,操作流程如下:

•清除 EREQ 寄存器,置位 PREQ 寄存器

•清除连续编程使能寄存器

•写入 Flash 编程 Key:0xA5A5_A5A5 和 0xF1F1_F1F1

•向 Flash 目标地址写数据,如果目标地址被 ACLOCK 锁定,则触发错误标志,如果没有锁定,则执行编程

•编程完成后置位中断标志

•软件确认编程结束后向 FlashKEY 寄存器写任意值恢复写保护

七、连续编程

连续编程指通过 DMA 的 Memory 通道一次向 Flash 写入 half-sector(256 字节)。连续编程时 DMA从 RAM 指定地址读取数据,Flash 目标编程地址必须是 half-sector 对齐的,也就是 Flash 地址低 6位为 0。采用这种方式时一次编程的数据长度是固定的,主要用于快速大数据量写入。

在启动连续编程期间,DMA 完全占据 Flash 总线,暂停 CPU 对 Flash 的一切访问。连续编程的操作流程如下:

•清除 EREQ 寄存器,置位 PREQ 寄存器

•置位连续编程使能寄存器(DMA 模式使能)

•向 RAM 中写入 256 字节待编程数据

•配置 DMA 存储器通道,设定传输方向、读地址和写地址

•使能 DMA 存储器通道

•写入 Flash 编程 Key:0xA5A5_A5A5 和 0xF1F1_F1F1

•软件触发 DMA 存储器通道,DMA 连续 64 次读取 RAM 并对 Flash 编程,芯片每收到 1 个 word自动完成 4 次 byte program

•芯片检查被编程扇区是否被 ACLOCK 锁定,如果锁定则触发错误中断并通知 DMA 停止编程

•256 字节完全编程结束后产生中断,释放 Flash 总线

•软件确认编程结束后向 FlashKEY 寄存器写任意值恢复写保护

注意:如果 CPU 在 Flash 中取指时进行 Flash 擦写,则 CPU 取指将被暂停,直到擦写操作完成。如果 CPU 跳转到 RAM 中取指运行,则 Flash 擦写不会暂停 CPU 的执行。Flash 擦写过程中,若用户希望在 RAM 中执行代码时仍然能够实时响应中断,应将中断向量表重新映射到 RAM 中。

八、启动区交换(BootSwap)

BootSwap主要目的是,防止在系统更新启动代码时出现意外中断(停电、异常复位等),如果此时原来的启动代码已经被擦除,将导致芯片重启后无法正常运行。BootSwap功能通过编程informationpage3最低地址word实现。

BootSwap示意图如下:

FM33LE026低功耗 MCU 芯片的Flash 编程功能分析

实现BootSwap功能后,假设启动代码占据0000~1FFF共8KB空间,系统升级时应先将新的启动代码写入2000~3FFF地址,然后使能BootSwap。此时有几种可能性:

•芯片擦写2000~3FFF地址时掉电,由于原来的启动代码还在,不会影响重启

•芯片成功写入boot program1,然后使能bootswap并执行软复位,芯片重启后将执行bootprogram1

•芯片擦写boot program0时掉电,由于boot program1已经写入,将不影响后续运行另一种BootSwap应用方法如下图,为了保证可靠的更新启动代码,使用2nd 8KB物理空间作为原来Boot程序的备份,如果编程期间发生异常掉电,则触发BootSwap:

FM33LE026低功耗 MCU 芯片的Flash 编程功能分析

如果启动程序更新期间没有发生异常掉电,则可以不执行软复位,无需真正Swap,仅需在更新原来的Boot程序前使能BootSwap,成功更新后撤销BootSwap即可:
FM33LE026低功耗 MCU 芯片的Flash 编程功能分析

推荐应用按照如下步骤升级:

•更新application program

•如需升级boot,先将新的boot程序写入第二个8KB空间

•配置information block,使能BootSwap

•执行软复位,重启后执行新的boot程序

•将第二个8KB空间改写为新的应用程序

逻辑地址对Flash物理地址的重映射由NVMIF模块完成,不论程序还是DEBUG都以逻辑地址进行访问。

寄存器标志(FLSIF.BTSF)来表示当前的Boot区是1st 8KB物理地址、还是2nd 8KB物理地址,用于给用户代码查询当前启动情况。

以上是关于其的一些相关信息,如有采购及选型需求,可联系兆亿微波电子元件商城

在线留言询价
推荐阅读
  • 点击次数: 0
    2026-03-24
    主 CPUCC1310 SimpleLink 无线 MCU 内置 ARM Cortex-M3 (CM3) 32 位处理器,负责运行应用程序及协议栈的高层部分。CM3 处理器提供了一个高性能、低成本的平台,满足系统对内存实现和低功耗的需求,同时提供卓越的运算性能和对中断的出色响应能力。CM3 的特性包括:为小尺寸嵌入式应用优化的 32 位 ARM Cortex-M3 架构出色的处理能力结合快速中断处理ARM Thumb®-2 混合 16/32 位指令集,在通常与 8/16 位器件相关的紧凑内存空间(几 KB)内,实现 32 位 ARM 核预期的高性能:单周期乘法指令和硬件除法原子位操作(位带),最大化内存利用率并简化外设控制非对齐数据访问,使数据能高效打包进内存快速代码执行允许降低处理器时钟频率或延长睡眠模式时间哈佛架构,具有独立的指令总线和数据总线高效的处理器核心、系统和内存面向数字信号处理的硬件除法和快速乘累加单元用于信号处理的饱和算术运算确定性、高性能的中断处理,适用于时间关键型应用增强的系统调试功能,支持广泛的断点和跟踪能力串行线跟踪减少调试和追踪所需的引脚数量可从 ARM™ 处理器家族迁移,以获得更好的性能和能效针对单周期闪存内存使用优化集成睡眠模式,实现超低功耗每 MHz 提供 1.25 DMIPSRF 核心RF 核心是一个高度灵活且功能强大的无线电系统,它接口模拟 RF 和基带电路,处理来自系统侧的数据并向其发送数据,并按给定包结构组装信息比特。RF 核心可自主处理无线电协议中的时间关键部分,从而减轻主 CPU 负担,为用户应用留出更多资源。RF 核心提供高级、基于命令的 API 供主 CPU 调用。RF 核心支持多种调制格式、频段和加速器功能,包括:广泛的数据速率范围:从 625 bps(提供长距离和高鲁棒性)到高达 4 Mbps广泛的调制格式:多级...
  • 点击次数: 1
    2026-03-24
    为简化系统设计,TPA3255 电子元器件除典型的 51V 功率级电源外,仅需一个 12V 电源。内部电压调节器可为数字电路和低压模拟电路(AVDD 和 DVDD)提供合适的电压电平。此外,所有需要浮动电源的电路——即高侧栅极驱动——均由内置自举电路支持,每个半桥仅需一个外部电容。音频信号路径(包括栅极驱动和输出级)被设计为两个相同且独立的半桥结构。因此,每个半桥拥有独立的自举引脚(BST_X)。功率级电源引脚(PVDD_X)与栅极驱动电源引脚(GVDD_X)在每座全桥上相互分离。尽管两者可从同一 12V 电源供电,但建议通过印刷电路板(PCB)上的 RC 滤波器分别连接至 GVDD_AB、GVDD_CD、VD 和 VDD。这些 RC 滤波器可提供推荐的高频隔离。应特别注意将去耦电容器尽可能靠近其对应引脚放置。通常,从电源引脚经过去耦电容到器件引脚的物理回路必须尽可能短,并尽量减少面积,以最小化电感。为确保自举电路正常工作,必须在每个自举引脚(BST_X)与功率级输出引脚(OUT_X)之间连接一个小陶瓷电容。当功率级输出为低电平时,自举电容通过内部二极管由栅极驱动电源引脚(GVDD_X)充电;当功率级输出为高电平时,自举电容电位被抬升至高于输出电位,从而为高侧栅极驱动器提供合适的电压。建议使用 33nF 陶瓷电容(尺寸 0603 或 0805)作为自举电容。即使在最小 PWM 占空比下,这些 33nF 电容也能储存足够能量,确保高侧功率场效应管(LDMOS)在 PWM 周期剩余时间内保持完全导通。需特别关注功率级电源部分:包括元器件选型、PCB 布局与布线。如前所述,每座全桥均配备独立的功率级电源引脚(PVDD_X)。为实现最佳电气性能、电磁兼容性(EMI)合规性及系统可靠性,强烈建议每个 PVDD_X 节点就近并联一个 1μF 陶瓷去耦电容。推荐遵循 PCB 布局中的 T...
  • 点击次数: 2
    2026-03-24
    AD633 电子元器件评估板使用户能够轻松控制 AD633,从而进行简单的 bench-top 实验。其内置的灵活性允许便捷配置,以适应其他工作模式。下图是 AD633 评估板的照片。任何能够提供 ±10 mA 或更大电流的双极性电源均可用于执行预期测试,此外还可根据用户需求连接任意测试设备。参考下图的原理图,乘法器的输入为差分且直流耦合。三个位置滑动开关增强了灵活性,使乘法器输入可连接至有源信号源、接地,或直接连接至器件引脚以进行直接测量(如偏置电流)。输入可以单端或差分方式连接,但必须提供通往地的直流通路以支持偏置电流。若某输入源的阻抗非零,则需在相反极性输入端接入等值阻抗,以避免引入额外的失调电压。AD633-EVALZ 可通过开关 S1 配置为乘法器或除法器模式。图1 至图4分别展示了信号、电源和地平面的布线 artwork;图 5 显示了元件面和电路面的丝印层;图 6 展示了组装后的实物。图1-图4图5图6
  • 点击次数: 2
    2026-03-24
    以下是子类 1 高速串行链路建立过程的简要概述。步骤 1 — 码组同步每个接收器必须在其输入数据流中定位 /K/(K28.5)字符。当所有链路上检测到连续四个 /K/ 字符后,接收器块会向发射器块断言 SYNCOUTx± 信号,该信号在接收器的 LMFC 边沿处触发。发射器捕获 SYNCOUTx± 信号的变化,并在未来的发射器 LMFC 上升沿启动 ILAS(初始链路对齐序列)。步骤 2 — 初始链路对齐序列此阶段的主要目的是对齐链路的所有通道,并验证链路参数。在链路建立之前,需为每个链路参数指定值,以告知接收设备如何向接收块发送数据。ILAS 由四个或更多多帧组成。每个多帧的最后一个字符是多帧对齐字符 /A/。第一、第三和第四多帧填充预定义的数据值。JESD204B 规范文档第 8.2 节描述了 ILAS 期间预期的数据 ramp。解帧器使用每个 /A/ 的最终位置来对齐其内部的 LMFC。第二个多帧包含一个 /R/(K28.0)、/Q/(K28.4),以及对应于链路参数的数据。如有需要,接收器可添加额外的多帧至 ILAS。默认情况下,AD9173 在 ILAS 中使用四个多帧(可通过寄存器 0x478 修改)。若使用子类 1,则必须恰好使用四个多帧。在最后一个 ILAS 的 /A/ 字符之后,多帧数据开始流式传输。此时,接收器调整 /A/ 字符的位置,使其与自身内部 LMFC 对齐。步骤 3 — 数据流传输在此阶段,数据从发射器块流向接收器块。可选地,数据可进行扰码。扰码仅在 ILAS 后的第一个八位组才开始生效。接收器块处理并监控所接收数据中的错误,包括以下内容:不良运行 disparity(8b/10b 错误)不在表中(8b/10b 错误)意外控制字符错误 ILAS通道间偏斜误差(通过字符替换检测)若存在任何上述错误,将通过以下方式之一报告给发射...
  • 点击次数: 1
    2026-03-24
    AD9173 是一款 16 位双通道射频数模转换器(DAC)电子元器件,配备高速 JESD204B SERDES 接口,符合子类 0 和子类 1 操作规范。通过AD9173功能图可以看出:每个 DAC 核心包含三个可独立旁路的通道化器,支持每通道最高 1.54 GSPS 的复数据速率输入。八个高速串行链路以每通道最高 15.4 Gbps 的速率向通道数据路径传输数据。JESD204B 接口支持单链路和双链路工作模式,具体取决于所选模式配置。与 LVDS 或 CMOS 接口相比,SERDES 接口简化了引脚数量、电路板布局及器件输入时钟要求。上图:AD9173功能图输入数据的时钟源自 DAC 时钟或由设备时钟(根据 JESD204B 规范)提供。该设备时钟可由片上 PLL 生成的 DAC 参考时钟驱动,也可使用高保真度外部 DAC 采样时钟。器件可配置为每链路 1、2、3、4 或 8 线模式,具体取决于所需输入数据速率。AD9173 的数字数据路径为通道数据路径和主数据路径均提供可选的 (1×) 插值模式。此外,根据所选模式,通道数据路径还支持 2×、3×、4×、6× 和 8× 插值选项;主数据路径则支持 2×、4×、6×、8× 和 12× 插值选项。对于每个通道数字数据路径(当未使用 1× 通道插值时),均提供可编程增益级和 NCO 模块。NCO 模块具备 48 位模数 NCO 振荡器,可实现近乎无限精度的数字频率偏移信号处理。NCO 可在纯 NCO 模式下独立运行,通过 SPI 接口输入可编程直流值,或通过 SERDES 接口与数字数据路径结合数字数据进行控制。在三个通道化数据路径末端,一个求和节点将三路通道数据路径合并,最高可达 1.54 GSPS,随...
热门分类
关于我们

───  公众号二维码  ───

兆亿微波商城微信公众号

兆亿微波商城www.rfz1.com是一个家一站式电子元器件采购平台,致力于为广大客户提供高质量、高性能的电子元器件产品。产品覆盖功放器件、射频开关、滤波器、混频器、功分器、耦合器、衰减器、电源芯片、电路板及射频电缆等多个领域,平台主营业务涵盖电子元器件现货销售、BOM配单及提供产品配套资料等,为客户提供一站式供应链采购服务。 

  • 品质 • 正品行货 购物无忧
  • 低价 • 普惠实价 帮您省钱
  • 速达 • 专业配送 按时按需
Copyright ©2020 - 2021 兆亿微波科技有限公司
X
1

QQ设置

    1
3

SKYPE 设置

4

阿里旺旺设置

5

电话号码管理

电话 电话 电话
010-62975458
    1
6

二维码管理

    1
返回顶部
展开