18
atmega16(l)
2466e–avr–10/02
当 eemwe 有 被 写 至 一个 用 软件, 硬件 clears 这 位 至 零 之后
四 时钟 循环. 看 这 描述 的 这 eewe 位 为 一个 可擦可编程只读存储器 写 程序.
• 位 1 – eewe: 可擦可编程只读存储器 写 使能
这 可擦可编程只读存储器 写 使能 信号 eewe 是 这 写 strobe 至 这 可擦可编程只读存储器. 当
地址 和 数据 是 correctly 设置 向上, 这 eewe 位 必须 是 写 至 一个 至 写 这
值 在 这 可擦可编程只读存储器. 这 eemwe 位 必须 是 写 至 一个 在之前 一个 logical 一个 是
写 至 eewe, 否则 非 可擦可编程只读存储器 write takes 放置. 这 下列的 程序
应当 是 followed 当 writing 这 可擦可编程只读存储器 (这 顺序 的 步伐 3 和 4 是 不
essential):
1. wait 直到 eewe 变为 零.
2. wait 直到 spmen 在 spmcr 变为 零.
3. 写 新 可擦可编程只读存储器 地址 至 eear (optional).
4. 写 新 可擦可编程只读存储器 数据 至 eedr (optional).
5. 写 一个 logical 一个 至 这 eemwe 位 当 writing 一个 零 至 eewe 在 eecr.
6. 在里面 四 时钟 循环 之后 设置 eemwe, 写 一个 logical 一个 至 eewe.
这 可擦可编程只读存储器 能 不 是 编写程序 在 一个 cpu 写 至 这 flash 记忆. 这
软件 必须 审查 那 这 flash 程序编制 是 完成 在之前 初始的 一个 新
可擦可编程只读存储器 写. 步伐 2 是 仅有的 相关的 如果 这 软件 包含 一个 激励 loader 准许
这 cpu 至 程序 这 flash. 如果 这 flash是 从不 正在 updated 用 这 cpu, 步伐 2
能 是 omitted. 看 “boot loader 支持 – 读-当-写 自-programming” 在
页 241 为 详细信息 关于 激励 程序编制.
提醒: 一个 中断 在 步伐 5 和 步伐 6 将 制造 这 写 循环 失败, 自从 这
可擦可编程只读存储器 主控 写 使能 将 时间-输出. 如果 一个 中断 routine accessing 这
可擦可编程只读存储器 是 interrupting 另一 可擦可编程只读存储器 进入, 这 eear 或者 eedr 寄存器 将 是
修改, 造成 这 interrupted 可擦可编程只读存储器 进入 至 失败. 它 是 推荐 至 有
这 global 中断 标记 cleared 在 所有 这 步伐 至 避免 这些 问题.
当 这 写 进入 时间 有 消逝, 这 eewe 位 是 cleared 用 硬件. 这
用户 软件 能 poll 这个 位 和 wait 为 一个 零 在之前 writing 这 next 字节. 当
eewe 有 被 设置, 这 cpu 是 halted 为 二 循环 在之前 这 next 操作指南 是
executed.
• 位 0 – eere: 可擦可编程只读存储器 读 使能
这 可擦可编程只读存储器 读 使能 信号 – eere – 是 这 读 strobe 至 这 可擦可编程只读存储器. 当
这 准确无误的 地址 是 设置 向上 在 这 eear 寄存器, 这 eere 位 必须 是 写 至 一个
逻辑 一个 至 触发 这 可擦可编程只读存储器 读. 这 可擦可编程只读存储器 读 进入 takes 一个 操作指南,
和 这 要求 数据 是 有 立即. 当 这 可擦可编程只读存储器 是 读, 这 cpu
是 halted 为 四 循环 在之前 这 next 操作指南 是 executed.
这 用户 应当 poll 这 eewe 位 在之前 开始 这 读 运作. 如果 一个 写 运作
是 在 progress, 它 是 neither 可能 至 读 这 可擦可编程只读存储器, 也不 至 改变 这 eear
寄存器.
这 校准 振荡器 是 使用 至 时间 这 可擦可编程只读存储器 accesses. 表格 1 lists 这 典型
程序编制 时间 为 可擦可编程只读存储器 进入 从 这 cpu.
Table1.
可擦可编程只读存储器 程序编制 时间
标识
号码 的 校准 rc
振荡器 循环
(1)
典型值 程序编制 时间
可擦可编程只读存储器 写 (从 cpu) 8448 8.5 ms