微芯片技术的闪存程序存储器操作详解
需积分: 43 72 浏览量
更新于2024-08-09
收藏 7.97MB PDF 举报
"闪存程序存储器是微控制器中一种非易失性存储技术,尤其在嵌入式系统中广泛使用。在基于上海地铁1号线的ATS(列车自动控制系统)仿真系统中,理解闪存的工作原理至关重要。"
在11.3章节中,详细介绍了闪存程序存储器的基本结构和操作。闪存存储器被组织成行列结构,每一行包含了固定的14位程序存储器字。最小的擦除单位是行,用户可以通过编程擦除这些行。在进行写或擦除操作前,必须确保目标地址不在由配置字寄存器的WRT<1:0>位定义的写保护区域内。
擦除操作后,用户可以部分或全部重写该行。写入数据通过14位宽的数据写锁存器进行,这些锁存器是用户不可直接访问的,只能通过写入EEDATH:EEDATL寄存器对来加载数据。值得注意的是,写锁存器的数量可能并不等于行的单元数,因此可能需要多次编程操作以完成整个行的重编程。例如,在一个有32字行大小和8个写锁存器的设备中,需要分四次进行编程操作。
读取闪存程序存储器的过程包括以下几个步骤:首先,将低有效和高有效地址位写入EEADRH:EEADRL寄存器;其次,清除EECON1寄存器的CFGS位;接着,设置EECON1寄存器的EEPGD控制位;最后,置位EECON1寄存器的RD控制位。一旦RD被置位,数据将在第二个指令周期被读取,并存储在EEDATH:EEDATL寄存器对中,可供后续指令使用。如果要修改已编程的行的部分内容,必须先读取整个行到RAM中,然后擦除再重新编程。此外,读取指令后的两条指令应为NOP,以避免双周期指令的执行问题。
表格11-1展示了不同器件的闪存存储器特性,以PIC16(L)F1946/47为例,其擦除块(行)大小为32字,边界由EEADRL<4:0> = 00000定义,写锁存器数也为32字,同样边界。
闪存程序存储器的管理涉及到地址映射、擦除编程机制以及安全读取策略。在基于PIC微控制器的系统中,如上海地铁1号线ATS仿真系统,理解和掌握这些知识点对于系统的稳定运行和软件更新至关重要。同时,用户应当遵循Microchip提供的技术规格和指南,以确保正确地使用和保护其知识产权。
2020-10-17 上传
2021-10-15 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
七231fsda月
- 粉丝: 31
- 资源: 3968
最新资源
- 基于Python和Opencv的车牌识别系统实现
- 我的代码小部件库:统计、MySQL操作与树结构功能
- React初学者入门指南:快速构建并部署你的第一个应用
- Oddish:夜潜CSGO皮肤,智能爬虫技术解析
- 利用REST HaProxy实现haproxy.cfg配置的HTTP接口化
- LeetCode用例构造实践:CMake和GoogleTest的应用
- 快速搭建vulhub靶场:简化docker-compose与vulhub-master下载
- 天秤座术语表:glossariolibras项目安装与使用指南
- 从Vercel到Firebase的全栈Amazon克隆项目指南
- ANU PK大楼Studio 1的3D声效和Ambisonic技术体验
- C#实现的鼠标事件功能演示
- 掌握DP-10:LeetCode超级掉蛋与爆破气球
- C与SDL开发的游戏如何编译至WebAssembly平台
- CastorDOC开源应用程序:文档管理功能与Alfresco集成
- LeetCode用例构造与计算机科学基础:数据结构与设计模式
- 通过travis-nightly-builder实现自动化API与Rake任务构建