电子说
在嵌入式系统设计中,闪存内存是关键的存储组件,其性能和可靠性直接影响着整个系统的运行。Renesas的RX64M和RX71M组闪存内存以其丰富的功能和出色的性能,在众多应用场景中得到了广泛的应用。本文将详细介绍这两款闪存内存的特性、模块配置、地址空间、寄存器设置、操作模式、命令使用以及安全功能等方面,为电子工程师在硬件设计和开发过程中提供全面的参考。
文件下载:R5F571MFGDLK#20.pdf
RX64M和RX71M组闪存内存配备了专门的闪存序列器,通过内部外设总线6执行编程和擦除操作。该序列器支持编程或擦除的暂停和恢复,以及后台操作(BGO),大大提高了系统的灵活性和效率。
为了防止非法篡改或读取闪存数据,该内存集成了硬件级的安全功能,为数据的安全性提供了可靠的保障。
硬件保护功能可有效防止错误编程,确保数据的准确性和稳定性。
支持闪存序列器处理完成中断和错误中断,方便系统及时响应和处理各种情况。
闪存内存相关模块主要由闪存序列器组成,它包括闪存控制单元(FCU)和闪存应用命令接口(FACI)。FCU负责闪存内存的基本控制,FCURAM用于存储控制FCU执行的固件,FACI通过内部外设总线6接收FACI命令并相应地控制FCU操作。在复位时,FACI会将数据从闪存内存传输到选项设置内存。
| 使用闪存内存的硬件接口需要访问多个区域,包括硬件寄存器区域、FACI命令发布区域、FCU固件存储区域、FCURAM区域和配置设置区域。各区域的地址和容量信息如下表所示: | 区域 | 地址 | 容量 |
|---|---|---|---|
| 包含硬件各种寄存器的区域 | 见第4节,寄存器 | 见第4节,寄存器 | |
| FACI命令发布区域 | 007E 0000h | 4字节 | |
| FCU固件存储区域 | FEFF F000h至FEFF FFFFh | 4 K字节 | |
| FCURAM区域 | 007F 8000h至007F 8FFFh | 4 K字节 | |
| 配置设置区域 | 0012 0040h至0012 007Fh | 64字节 |
文档中详细介绍了多个与闪存内存相关的寄存器,如 Flash P/E Protect Register (FWEPROR)、Flash Access Status Register (FASTAT)等。这些寄存器在控制闪存的编程、擦除、错误检测和状态监控等方面起着至关重要的作用。
FWEPROR:用于控制代码闪存、数据闪存或选项设置内存的编程和擦除权限,以及锁定位的操作和空白检查。通过设置不同的位组合,可以灵活地限制或允许这些操作,增强了系统的安全性和可控性。
FASTAT:指示代码闪存或数据闪存是否发生访问违规。当CFAE、CMDLK和DFAE标志中的任何一个设置为1时,闪存序列器将进入命令锁定状态,需要通过特定的命令进行释放。
闪存序列器有三种操作模式:读取模式、代码闪存P/E模式和数据闪存P/E模式。通过更改FENTRYR寄存器的值,可以实现不同模式之间的切换。在读取模式下,闪存序列器不接收FACI命令,代码闪存和数据闪存均可读取;在代码闪存P/E模式下,可以对代码闪存进行编程或擦除,但数据闪存不可读;在数据闪存P/E模式下,可以对数据闪存进行编程或擦除,代码闪存可读。
FACI命令包括编程、块擦除、P/E暂停、P/E恢复、状态清除、强制停止、空白检查、配置设置、锁定位读取等。这些命令通过写入FACI命令发布区域来执行,不同的命令有不同的写入格式和处理流程。
在使用编程命令之前,需要在FSADDR寄存器中设置目标块的第一个地址,并根据需要设置FPROTR寄存器。写入特定的数据到FACI命令发布区域,最后写入D0h开始编程处理。在编程过程中,需要注意数据缓冲区的状态,以避免影响其他外设的通信性能。
块擦除命令用于擦除用户区域、锁定位和数据区域。在执行之前,需要设置FSADDR寄存器、FPROTR寄存器和FCPSR寄存器。写入特定的数据到FACI命令发布区域,开始擦除处理。
P/E暂停命令用于暂停编程或擦除操作,在执行之前需要检查FASTAT.CMDLK标志和FSTATR.SUSRDY标志。P/E恢复命令用于恢复暂停的操作,在恢复之前需要确保FENTRYR寄存器的值正确。
通过控制寄存器的设置和用户区域的锁定位设置,软件保护可以禁止代码闪存的编程和擦除。如果试图违反这些保护设置发出FACI命令,闪存序列器将进入命令锁定状态。
错误保护功能可以检测非法FACI命令的发出、非法访问和闪存序列器的故障。一旦检测到这些错误,闪存序列器将进入命令锁定状态,需要通过特定的命令进行释放。
用户引导区域通常在正常操作模式和用户引导模式下是写保护的,只能在编程模式(引导模式)下进行覆盖,确保了引导程序等重要程序的安全存储。
文档提供了闪存内存的AC特性,包括FCURAM数据传输时间、FACI命令设置时间、FACI命令处理时间等,这些特性在特定的电压和时钟频率条件下测量,为硬件设计提供了重要的参考。
在使用闪存内存时,需要注意避免读取编程或擦除中断的区域,禁止对同一区域进行二次写入,在编程和擦除过程中避免复位、电压波动和频率变化等情况,以确保数据的完整性和系统的稳定性。
Renesas的RX64M和RX71M组闪存内存具有丰富的功能和出色的性能,通过合理配置寄存器和使用FACI命令,可以实现高效的编程、擦除和数据管理。同时,强大的安全功能和详细的使用注意事项,为系统的可靠性和稳定性提供了全面的保障。电子工程师在设计和开发过程中,应充分了解这些特性和要求,以确保系统的最优性能。你在实际使用中是否遇到过类似闪存内存的问题?你是如何解决的呢?欢迎在评论区分享你的经验和想法。
全部0条评论
快来发表一下你的评论吧 !