文件名称:写闪存程序存储器-利用pytorch实现对cifar-10数据集的分类
文件大小:4.81MB
文件格式:PDF
更新时间:2024-07-10 01:45:29
datasheet
7.5 写闪存程序存储器 编程块大小为 32 个字或 64 字节。 不支持字或字节编程。 在内部使用表写指令将需要写入闪存的内容装入保持寄 存器中。表写操作使用 64 个保持寄存器进行编程。 由于表锁存器(TABLAT)只是单字节寄存器,所以每 次编程操作 TBLWT指令可能需要执行 64 次。因为只写 保持寄存器,所以所有的表写操作实际上都是短写。更 新 64 个或 128 个保持寄存器后,必须写 EECON1 寄存 器,以便启动长写周期开始编程操作。 对内部闪存编程要求使用长写操作。在长写周期中,指 令暂停执行。由内部编程定时器终止长写操作。 由 EEPROM 片上定时器控制写入的时间。写入 / 擦除 电压由片上的电荷泵产生,该电荷泵可以在器件的电压 范围内工作。 图 7-5: 对闪存程序存储器的表写操作 7.5.1 闪存程序存储器写序列 对内部程序存储单元编程的过程如下: 1. 将 64 字节读入 RAM。 2. 必要时更新 RAM 中的数据值。 3. 将要擦除的地址装入表指针寄存器。 4. 执行行擦除过程。 5. 将要写入的第一个字节的地址装入表指针寄 存器。 6. 通过自动递增将 64 字节写入保持寄存器。 7. 设置 EECON1 寄存器来执行写操作: • 将 EEPGD 位置 1 以指向程序存储器 • 将 CFGS 位清零以访问程序存储器 • 将 WREN 置 1 以使能字节写操作 8. 禁止中断。 9. 将 55h 写入 EECON2。 10. 将 0AAh 写入 EECON2。 11. 将 WR 位置 1。这将开始写周期。CPU 在写入期 间 (TIW,见参数 D133A)将会停止工作。 12. 重新允许中断。 13. 校验存储器 (表读)。 下页中的例 7-3 给出了所需代码的示例。 注: 器件复位和写操作完成后保持寄存器的默 认值为 FFh。将 FFh 写入保持寄存器不会 修改其中的数值。这意味着可以修改程序 存储器的各字节(假如不是想将任何位从 0 更改为 1)。当修改各字节时,无需在执 行写操作前装入所有 64 个保持寄存器。 TABLAT TBLPTR = xxxx3FTBLPTR = xxxxx1TBLPTR = xxxxx0 写寄存器 TBLPTR = xxxxx2 程序存储器 保持寄存器 保持寄存器 保持寄存器 保持寄存器 8 8 8 8 注: 在将 WR 位置 1 前,表指针地址必须处于 保持寄存器中的 64 字节预期地址范围内。 2011 Microchip Technology Inc. 初稿 DS39977C_CN 第 141 页