PIC微控制器的闪存编程步骤与注意事项

需积分: 15 18 下载量 73 浏览量 更新于2024-08-09 收藏 9.82MB PDF 举报
"这篇文档详细介绍了如何在PIC18F25K22、PIC18F45K22、PIC18LF25K22和PIC18LF45K22系列微控制器中对闪存程序存储器进行编程。这个过程涉及到一系列步骤,包括设置和操作特殊功能寄存器EECON1,以及使用表写指令TBLWT。" 在微控制器的闪存编程中,关键在于理解编程块的大小和操作限制。在这些特定的PIC微控制器中,编程块是64字节,并且不支持字或字节级别的编程。编程时,需要先将64字节的数据加载到内部的保持寄存器中,这通常通过TBLWT指令执行64次来完成,因为TABLAT寄存器只能一次处理一个字节。在数据写入所有保持寄存器后,通过配置EECON1寄存器启动编程操作,包括设置EEPGD和CFGS位来指定程序存储器,并启用WREN位以允许写操作。 编程流程涉及以下步骤: 1. 首先,将要写入的64字节数据读入RAM。 2. 更新RAM中的数据,如果需要的话。 3. 设置表指针寄存器(TBLPTR)指向待编程的地址。 4. 执行块擦除操作。 5. 将第一个要写入的字节地址再次装入TBLPTR。 6. 使用自动递增机制将64字节块写入保持寄存器。 7. 设置EECON1寄存器,准备执行写操作。 8. 关闭中断。 9. 分别写入55h和0AAh到EECON2。 10. 使能WR位,开始写周期。CPU在此期间会暂停工作,由内部编程定时器控制写操作,大约需要2毫秒。 11. 写操作完成后,重新开启中断。 12. 最后,通过表读操作校验存储器以确认写入是否成功。 值得注意的是,器件复位后,保持寄存器默认值为FFh,写入FFh不会改变其内容,这允许用户修改程序存储器的字节,除非是将位从0变为1。在这种情况下,无需在执行长写操作之前加载所有保持寄存器。 整个写操作块的过程大约需要6毫秒。示例代码(未在提供的文本中给出)可以帮助实现这个过程。重要的是在置位WR之前,确保表指针地址位于即将写入的保持寄存器地址范围内。 此文档还强调了使用Microchip微控制器时的一些法律条款和责任,包括对信息的准确性、知识产权的保护以及生命安全应用的风险提示。用户应始终参考Microchip的英文原版文档以获取最新和最完整的信息。
2023-05-12 上传