理解闪存程序存储器: PIC16F193X/LF193X的编程与读取
需积分: 50 162 浏览量
更新于2024-08-10
收藏 8.44MB PDF 举报
"闪存程序存储器的结构、操作与读取方法- PIC16F1936 单片机的使用"
在嵌入式系统中,闪存程序存储器是一种重要的非易失性存储器,它允许数据在电源断开后仍然保持。在微芯科技(Microchip Technology Inc.)的PIC16F1936单片机中,闪存程序存储器的结构和操作方式具有一定的特点。
11.3 闪存程序存储器概述
闪存程序存储器按照行进行组织,每行包含一定数量的14位程序存储器字。这种布局使得擦除和编程操作能够以行作为最小单位进行。在进行写或擦除操作前,必须确保目标地址不在被写保护的存储器段内,这由配置字寄存器2的WRT<1:0>位来定义。
擦除操作会清除一行中的所有数据,之后用户可以对这一行的部分或全部进行重新编程。编程时,数据首先被写入14位宽的数据写锁存器,用户不能直接访问这些锁存器,但可以通过写入EEDATH:EEDATL寄存器对来加载数据。值得注意的是,写锁存器的数量并不等于行中的单元数,因此在编程全行时,可能需要多次启动编程操作。例如,对于一个有32字行大小和8个写锁存器的器件,可能需要四次编程操作来完整重写一行。
11.3.1 读闪存程序存储器
读取闪存程序存储器的过程涉及以下几个步骤:
1. 将低有效地址和高有效地址写入EEADRH:EEADRL寄存器对。
2. 清零EECON1寄存器的CFGS位。
3. 设置EECON1寄存器的EEPGD控制位。
4. 最后,置位EECON1寄存器的RD控制位。这样,数据将在第二个指令周期被读取,并在EEDATH:EEDATL寄存器对中可用。由于读操作的特性,紧随其后的第二条指令会被忽略。
在进行部分编程时,如果想修改已编程行的一部分,需要先读取整个行的内容并保存在RAM中,然后进行擦除操作。表11-1给出了具体器件(如PIC16F193X/LF193X)的闪存存储器构成,包括擦除块(行)大小和写锁存器的数量。
对于PIC16F1936这样的器件,注意在读操作后,通常需要插入两条NOP指令以防止双周期指令的执行。此外,无论CP位设置如何,都可以读取闪存程序存储器。
在使用Microchip的单片机时,建议参考英文原版数据手册,确保遵循最新的技术规范和注意事项,因为这些文档可能会随着产品的更新而变化。同时,对于生命维持和/或生命安全应用,责任由购买者承担,Microchip不对由此产生的任何损害或后果负责。最后,使用Microchip的知识产权需遵守相关许可协议。
2020-12-31 上传
2015-09-14 上传
2019-12-24 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
烧白滑雪
- 粉丝: 28
- 资源: 3873
最新资源
- 掌握Jive for Android SDK:示例应用的使用指南
- Python中的贝叶斯建模与概率编程指南
- 自动化NBA球员统计分析与电子邮件报告工具
- 下载安卓购物经理带源代码完整项目
- 图片压缩包中的内容解密
- C++基础教程视频-数据类型与运算符详解
- 探索Java中的曼德布罗图形绘制
- VTK9.3.0 64位SDK包发布,图像处理开发利器
- 自导向运载平台的行业设计方案解读
- 自定义 Datadog 代理检查:Python 实现与应用
- 基于Python实现的商品推荐系统源码与项目说明
- PMing繁体版字体下载,设计师必备素材
- 软件工程餐厅项目存储库:Java语言实践
- 康佳LED55R6000U电视机固件升级指南
- Sublime Text状态栏插件:ShowOpenFiles功能详解
- 一站式部署thinksns社交系统,小白轻松上手