微芯片技术:基于闪存的高精度导航地图编程方法

需积分: 50 15 下载量 120 浏览量 更新于2024-08-10 收藏 9.33MB PDF 举报
"基于激光点云扫描的高精导航地图关键技术研究" 在嵌入式系统中,微控制器(MCU)的程序存储器是至关重要的组成部分,用于存储执行代码和其他固件。本文档详细介绍了如何对PIC18F24K20微控制器的闪存程序存储器进行编程,这是一种采用nanoWatt XLP技术的28/40/44引脚闪存单片机。在编程闪存时,必须遵循特定的步骤以确保正确性和可靠性。 编程闪存程序存储器时,首先要了解器件的编程块大小,它可以是8、32或64字节,具体取决于微控制器型号。这种设备不支持字或字节级别的编程,而是要求一次写入完整的编程块。数据首先被加载到内部的保持寄存器中,保持寄存器的数量与编程块的字节数相同。由于TABLAT寄存器是单字节的,因此每次使用TBLWT指令可能需要多次执行以完成整个块的编程。 写入过程包括一系列步骤,如将数据读入RAM,更新数据,设置表指针寄存器以指向目标地址,执行块擦除,然后使用TBLWT指令将数据写入保持寄存器。在写入操作之前,需要配置EECON1寄存器,设置EEPGD和CFGS位以指向程序存储器,并启用写操作。写操作开始后,CPU会暂停工作,由内部编程定时器控制写入时间,而写入/擦除的电压由片上的电荷泵产生。 值得注意的是,器件在复位或写操作完成后,保持寄存器默认值为FFh,写入FFh不会改变寄存器中的值。这意味着可以修改程序存储器的字节,但只有在想要将位从0变为1时才需要填充所有保持寄存器。在WR位被设置为1之前,表指针地址必须处于即将被写入的地址范围内。 整个写操作过程大约需要6毫秒来更新每个编程块,这个过程需要重复,直到所有64字节都被写入。写入后,通常需要进行校验以确认数据的正确性。这一系列步骤对于理解和实现对PIC18F24K20这类微控制器的程序存储器编程至关重要。 此外,文档还强调了使用Microchip Technology Inc.的中文版本时应注意的事项,包括参考英文原文档的重要性,以及Microchip对产品信息的免责声明。在使用Microchip器件进行生命维持和/或生命安全应用时,用户需自行承担风险,并同意保护和赔偿Microchip免受任何法律问题的影响。最后,文档还提及了Microchip的多个注册商标,展示了其知识产权的保护范围。