ATmega8

Size: px
Start display at page:

Download "ATmega8"

Transcription

1 产 品 特 性 高 性 能 低 功 耗 的 8 位 AVR 微 处 理 器 先 进 的 RISC 结 构 3 条 指 令 大 多 数 指 令 执 行 时 间 为 单 个 时 钟 周 期 32 个 8 位 通 用 工 作 寄 存 器 全 静 态 工 作 工 作 于 6 MHz 时 性 能 高 达 6 MIPS 只 需 两 个 时 钟 周 期 的 硬 件 乘 法 器 非 易 失 性 程 序 和 数 据 存 储 器 8K 字 节 的 系 统 内 可 编 程 Flash 擦 写 寿 命 :, 次 具 有 独 立 锁 定 位 的 可 选 Boot 代 码 区 通 过 片 上 Boot 程 序 实 现 系 统 内 编 程 真 正 的 同 时 读 写 操 作 52 字 节 的 EEPROM 擦 写 寿 命 :, 次 K 字 节 的 片 内 SRAM 可 以 对 锁 定 位 进 行 编 程 以 实 现 用 户 程 序 的 加 密 外 设 特 点 两 个 具 有 独 立 预 分 频 器 8 位 定 时 器 / 计 数 器, 其 中 之 一 有 比 较 功 能 一 个 具 有 预 分 频 器 比 较 功 能 和 捕 捉 功 能 的 6 位 定 时 器 / 计 数 器 具 有 独 立 振 荡 器 的 实 时 计 数 器 RTC 三 通 道 PWM TQFP 与 MLF 封 装 的 8 路 ADC 8 路 位 ADC PDIP 封 装 的 6 路 ADC 8 路 位 ADC 面 向 字 节 的 两 线 接 口 两 个 可 编 程 的 串 行 USART 可 工 作 于 主 机 / 从 机 模 式 的 SPI 串 行 接 口 具 有 独 立 片 内 振 荡 器 的 可 编 程 看 门 狗 定 时 器 片 内 模 拟 比 较 器 特 殊 的 处 理 器 特 点 上 电 复 位 以 及 可 编 程 的 掉 电 检 测 片 内 经 过 标 定 的 RC 振 荡 器 片 内 / 片 外 中 断 源 5 种 睡 眠 模 式 : 空 闲 模 式 ADC 噪 声 抑 制 模 式 省 电 模 式 掉 电 模 式 及 Standby 模 式 I/O 和 封 装 23 个 可 编 程 的 I/O 口 28 引 脚 PDIP 封 装,32 引 脚 TQFP 封 装,32 引 脚 MLF 封 装 工 作 电 压 V (ATmega8L) V (ATmega8) 速 度 等 级 - 8 MHz (ATmega8L) - 6 MHz (ATmega8) 4 Mhz 时 功 耗, 3V, 25 C 工 作 模 式 : 3.6 ma 空 闲 模 式 :. ma 掉 电 模 式 :.5 µa 具 有 8KB 系 统 内 可 编 程 Flash 的 8 位 微 控 制 器 ATmega8 ATmega8L

2 引 脚 配 置 PDIP (RESET) PC6 (RXD) PD (TXD) PD (INT) PD2 (INT) PD3 (XCK/T) PD4 VCC GND (XTAL/TOSC) PB6 (XTAL2/TOSC2) PB7 (T) PD5 (AIN) PD6 (AIN) PD7 (ICP) PB PC5 (ADC5/SCL) PC4 (ADC4/SDA) PC3 (ADC3) PC2 (ADC2) PC (ADC) PC (ADC) GND AREF AVCC PB5 (SCK) PB4 (MISO) PB3 (MOSI/OC2) PB2 (SS/OCB) PB (OCA) TQFP Top View (INT) PD3 (XCK/T) PD4 GND VCC GND VCC (XTAL/TOSC) PB6 (XTAL2/TOSC2) PB PC (ADC) PC (ADC) ADC7 GND AREF ADC6 AVCC PB5 (SCK) (T) PD5 (AIN) PD6 (AIN) PD7 (ICP) PB (OCA) PB (SS/OCB) PB2 (MOSI/OC2) PB3 (MISO) PB PD2 (INT) PD (TXD) PD (RXD) PC6 (RESET) PC5 (ADC5/SCL) PC4 (ADC4/SDA) PC3 (ADC3) PC2 (ADC2) MLF Top View (INT) PD3 (XCK/T) PD4 GND VCC GND VCC (XTAL/TOSC) PB6 (XTAL2/TOSC2) PB PC (ADC) PC (ADC) ADC7 GND AREF ADC6 AVCC PB5 (SCK) (T) PD5 (AIN) PD6 (AIN) PD7 (ICP) PB (OCA) PB (SS/OCB) PB2 (MOSI/OC2) PB3 (MISO) PB PD2 (INT) PD (TXD) PD (RXD) PC6 (RESET) PC5 (ADC5/SCL) PC4 (ADC4/SDA) PC3 (ADC3) PC2 (ADC2) NOTE: The large center pad underneath the MLF packages is made of metal and internally connected to GND. It should be soldered or glued to the PCB to ensure good mechanical stability. If the center pad is left unconneted, the package might loosen from the PCB. 2 ATmega8(L)

3 ATmega8(L) 综 述 方 框 图 ATmega8 是 基 于 增 强 的 AVR RISC 结 构 的 低 功 耗 8 位 CMOS 微 控 制 器 由 于 其 先 进 的 指 令 集 以 及 单 时 钟 周 期 指 令 执 行 时 间, ATmega8 的 数 据 吞 吐 率 高 达 MIPS/MHz, 从 而 可 以 缓 减 系 统 在 功 耗 和 处 理 速 度 之 间 的 矛 盾 Figure. 结 构 框 图 XTAL RESET PC - PC6 PB - PB7 VCC XTAL2 PORTC DRIVERS/BUFFERS PORTB DRIVERS/BUFFERS GND PORTC DIGITAL INTERFACE PORTB DIGITAL INTERFACE MUX & ADC ADC INTERFACE TWI AGND AREF PROGRAM COUNTER STACK POINTER TIMERS/ COUNTERS OSCILLATOR PROGRAM FLASH SRAM INTERNAL OSCILLATOR INSTRUCTION REGISTER GENERAL PURPOSE REGISTERS WATCHDOG TIMER OSCILLATOR INSTRUCTION DECODER X Y Z MCU CTRL. & TIMING CONTROL LINES ALU INTERRUPT UNIT AVR CPU STATUS REGISTER EEPROM PROGRAMMING LOGIC SPI USART + - COMP. INTERFACE PORTD DIGITAL INTERFACE PORTD DRIVERS/BUFFERS PD - PD7 3

4 AVR 内 核 具 有 丰 富 的 指 令 集 和 32 个 通 用 工 作 寄 存 器 所 有 的 寄 存 器 都 直 接 与 算 逻 单 元 (ALU) 相 连 接, 使 得 一 条 指 令 可 以 在 一 个 时 钟 周 期 内 同 时 访 问 两 个 独 立 的 寄 存 器 这 种 结 构 大 大 提 高 了 代 码 效 率, 并 且 具 有 比 普 通 的 CISC 微 控 制 器 最 高 至 倍 的 数 据 吞 吐 率 ATmega8 有 如 下 特 点 :8K 字 节 的 系 统 内 可 编 程 Flash( 具 有 同 时 读 写 的 能 力, 即 RWW), 52 字 节 EEPROM,K 字 节 SRAM,32 个 通 用 I/O 口 线,32 个 通 用 工 作 寄 存 器, 三 个 具 有 比 较 模 式 的 灵 活 的 定 时 器 / 计 数 器 (T/C), 片 内 / 外 中 断, 可 编 程 串 行 USART, 面 向 字 节 的 两 线 串 行 接 口, 位 6 路 (8 路 为 TQFP 与 MLF 封 装 )ADC, 具 有 片 内 振 荡 器 的 可 编 程 看 门 狗 定 时 器, 一 个 SPI 串 行 端 口, 以 及 五 种 可 以 通 过 软 件 进 行 选 择 的 省 电 模 式 工 作 于 空 闲 模 式 时 CPU 停 止 工 作, 而 SRAM T/C SPI 端 口 以 及 中 断 系 统 继 续 工 作 ; 掉 电 模 式 时 晶 体 振 荡 器 停 止 振 荡, 所 有 功 能 除 了 中 断 和 硬 件 复 位 之 外 都 停 止 工 作 ; 在 省 电 模 式 下, 异 步 定 时 器 继 续 运 行, 允 许 用 户 保 持 一 个 时 间 基 准, 而 其 余 功 能 模 块 处 于 休 眠 状 态 ; ADC 噪 声 抑 制 模 式 时 终 止 CPU 和 除 了 异 步 定 时 器 与 ADC 以 外 所 有 I/O 模 块 的 工 作, 以 降 低 ADC 转 换 时 的 开 关 噪 声 ; Standby 模 式 下 只 有 晶 体 或 谐 振 振 荡 器 运 行, 其 余 功 能 模 块 处 于 休 眠 状 态, 使 得 器 件 只 消 耗 极 少 的 电 流, 同 时 具 有 快 速 启 动 能 力 本 芯 片 是 以 Atmel 高 密 度 非 易 失 性 存 储 器 技 术 生 产 的 片 内 ISP Flash 允 许 程 序 存 储 器 通 过 ISP 串 行 接 口, 或 者 通 用 编 程 器 进 行 编 程, 也 可 以 通 过 运 行 于 AVR 内 核 之 中 的 引 导 程 序 进 行 编 程 引 导 程 序 可 以 使 用 任 意 接 口 将 应 用 程 序 下 载 到 应 用 Flash 存 储 区 (Application Flash Memory) 在 更 新 应 用 Flash 存 储 区 时 引 导 Flash 区 (Boot Flash Memory) 的 程 序 继 续 运 行, 实 现 了 RWW 操 作 通 过 将 8 位 RISC CPU 与 系 统 内 可 编 程 的 Flash 集 成 在 一 个 芯 片 内, ATmega8 成 为 一 个 功 能 强 大 的 单 片 机, 为 许 多 嵌 入 式 控 制 应 用 提 供 了 灵 活 而 低 成 本 的 解 决 方 案 ATmega8 具 有 一 整 套 的 编 程 与 系 统 开 发 工 具, 包 括 :C 语 言 编 译 器 宏 汇 编 程 序 调 试 器 / 软 件 仿 真 器 仿 真 器 及 评 估 板 声 明 本 数 据 手 册 的 典 型 值 来 源 于 对 器 件 的 仿 真, 以 及 其 他 基 于 相 同 产 生 工 艺 的 AVR 微 控 制 器 的 标 定 特 性 本 器 件 经 过 特 性 化 之 后 将 给 出 实 际 的 最 大 值 和 最 小 值 4 ATmega8(L)

5 ATmega8(L) 引 脚 说 明 VCC 数 字 电 路 的 电 源 GND 地 端 口 B(PB7..PB) XTAL/XTAL2/TOSC/TOSC2 端 口 C(PC5..PC) PC6/RESET 端 口 D(PD7..PD) RESET 端 口 B 为 8 位 双 向 I/O 口, 具 有 可 编 程 的 内 部 上 拉 电 阻 其 输 出 缓 冲 器 具 有 对 称 的 驱 动 特 性, 可 以 输 出 和 吸 收 大 电 流 作 为 输 入 使 用 时, 若 内 部 上 拉 电 阻 使 能, 端 口 被 外 部 电 路 拉 低 时 将 输 出 电 流 在 复 位 过 程 中, 即 使 系 统 时 钟 还 未 起 振, 端 口 B 处 于 高 阻 状 态 通 过 时 钟 选 择 熔 丝 位 的 设 置, PB6 可 作 为 反 向 振 荡 放 大 器 或 时 钟 操 作 电 路 的 输 入 端 通 过 时 钟 选 择 熔 丝 位 的 设 置 PB7 可 作 为 反 向 振 荡 放 大 器 的 输 出 端 若 将 片 内 标 定 RC 振 荡 器 作 为 芯 片 时 钟 源, 且 ASSR 寄 存 器 的 AS2 位 设 置,PB7..6 作 为 异 步 T/C2 的 TOSC2.. 输 入 端 端 口 B 的 其 他 功 能 见 P 55 端 口 B 的 第 二 功 能 及 P 22 系 统 时 钟 及 时 钟 选 项 端 口 C 为 7 位 双 向 I/O 口, 具 有 可 编 程 的 内 部 上 拉 电 阻 其 输 出 缓 冲 器 具 有 对 称 的 驱 动 特 性, 可 以 输 出 和 吸 收 大 电 流 作 为 输 入 使 用 时, 若 内 部 上 拉 电 阻 使 能, 端 口 被 外 部 电 路 拉 低 时 将 输 出 电 流 在 复 位 过 程 中, 即 使 系 统 时 钟 还 未 起 振, 端 口 C 处 于 高 阻 状 态 若 RSTDISBL 熔 丝 位 编 程, PC6 作 为 I/O 引 脚 使 用 注 意 PC6 的 电 气 特 性 与 端 口 C 的 其 他 引 脚 不 同 若 RSTDISBL 熔 丝 位 未 编 程, PC6 作 为 复 位 输 入 引 脚 持 续 时 间 超 过 最 小 门 限 时 间 的 低 电 平 将 引 起 系 统 复 位 门 限 时 间 见 P 35Table 5 持 续 时 间 小 于 门 限 时 间 的 脉 冲 不 能 保 证 可 靠 复 位 端 口 C 的 其 他 功 能 见 后 端 口 D 为 8 位 双 向 I/O 口, 具 有 可 编 程 的 内 部 上 拉 电 阻 其 输 出 缓 冲 器 具 有 对 称 的 驱 动 特 性, 可 以 输 出 和 吸 收 大 电 流 作 为 输 入 使 用 时, 若 内 部 上 拉 电 阻 使 能, 则 端 口 被 外 部 电 路 拉 低 时 将 输 出 电 流 在 复 位 过 程 中, 即 使 系 统 时 钟 还 未 起 振, 端 口 D 处 于 高 阻 状 态 端 口 D 的 其 他 功 能 见 后 复 位 输 入 引 脚 持 续 时 间 超 过 最 小 门 限 时 间 的 低 电 平 将 引 起 系 统 复 位 门 限 时 间 见 P 35Table 5 持 续 时 间 小 于 门 限 时 间 的 脉 冲 不 能 保 证 可 靠 复 位 5

6 AV CC AV CC 是 A/D 转 换 器 端 口 C (3..) 及 ADC (7..6) 的 电 源 不 使 用 ADC 时, 该 引 脚 应 直 接 与 V CC 连 接 使 用 ADC 时 应 通 过 一 个 低 通 滤 波 器 与 V CC 连 接 注 意, 端 口 C (5..4) 为 数 字 电 源, V CC AREF A/D 的 模 拟 基 准 输 入 引 脚 ADC7..6(TQFP 与 MLF 封 装 ) 代 码 例 子 TQFP 与 MLF 封 装 的 ADC7..6 作 为 A/D 转 换 器 的 模 拟 输 入 为 模 拟 电 源 且 作 为 位 ADC 通 道 本 数 据 手 册 包 含 了 一 些 简 单 的 代 码 例 子 以 说 明 如 何 使 用 芯 片 各 个 不 同 的 功 能 模 块 这 些 例 子 都 假 定 在 编 译 之 前 已 经 包 含 了 正 确 的 头 文 件 有 些 C 编 译 器 在 头 文 件 里 并 没 有 包 含 位 定 义, 而 且 各 个 C 编 译 器 对 中 断 处 理 有 自 己 不 同 的 处 理 方 式 请 注 意 查 阅 相 关 文 档 以 获 取 具 体 的 信 息 6 ATmega8(L)

7 ATmega8(L) AVR CPU 内 核 介 绍 结 构 综 述 本 节 从 总 体 上 讨 论 AVR 内 核 的 结 构 CPU 的 主 要 任 务 是 保 证 程 序 的 正 确 执 行 因 此 它 必 须 能 够 访 问 存 储 器 执 行 运 算 控 制 外 设 以 及 处 理 中 断 Figure 2. AVR MCU 结 构 的 方 框 图 Data Bus 8-bit Flash Program Memory Program Counter Status and Control Instruction Register 32 x 8 General Purpose Registrers Interrupt Unit SPI Unit Instruction Decoder Control Lines Direct Addressing Indirect Addressing ALU Watchdog Timer Analog Comparator i/o Module Data SRAM i/o Module 2 i/o Module n EEPROM I/O Lines 为 了 获 得 最 高 的 性 能 以 及 并 行 性, AVR 采 用 了 Harvard 结 构, 具 有 独 立 的 数 据 和 程 序 总 线 程 序 存 储 器 里 的 指 令 通 过 一 级 流 水 线 运 行 CPU 在 执 行 一 条 指 令 的 同 时 读 取 下 一 条 指 令 ( 在 本 文 称 为 预 取 ) 这 个 概 念 实 现 了 指 令 的 单 时 钟 周 期 运 行 程 序 存 储 器 是 可 以 在 线 编 程 的 Flash 快 速 访 问 寄 存 器 文 件 包 括 32 个 8 位 通 用 工 作 寄 存 器, 访 问 时 间 为 一 个 时 钟 周 期 从 而 实 现 了 单 时 钟 周 期 的 ALU 操 作 在 典 型 的 ALU 操 作 中, 两 个 位 于 寄 存 器 文 件 中 的 操 作 数 同 时 被 访 问, 然 后 执 行 运 算, 结 果 再 被 送 回 到 寄 存 器 文 件 整 个 过 程 仅 需 一 个 时 钟 周 期 寄 存 器 文 件 里 有 6 个 寄 存 器 可 以 用 作 3 个 6 位 的 间 接 寻 址 寄 存 器 指 针 以 寻 址 数 据 空 间, 实 现 高 效 的 地 址 运 算 其 中 一 个 指 针 还 可 以 作 为 程 序 存 储 器 查 询 表 的 地 址 指 针 这 些 附 加 的 功 能 寄 存 器 即 为 6 位 的 X Y Z 寄 存 器 ALU 支 持 寄 存 器 之 间 以 及 寄 存 器 和 常 数 之 间 的 算 术 和 逻 辑 运 算 ALU 也 可 以 执 行 单 寄 存 器 操 作 运 算 完 成 之 后 状 态 寄 存 器 的 内 容 得 到 更 新 以 反 映 操 作 结 果 7

8 程 序 流 程 通 过 有 / 无 条 件 的 跳 转 指 令 和 调 用 指 令 来 控 制, 从 而 直 接 寻 址 整 个 地 址 空 间 大 多 数 指 令 长 度 为 6 位, 亦 即 每 个 程 序 存 储 器 地 址 都 包 含 一 条 6 位 或 32 位 的 指 令 程 序 存 储 器 空 间 分 为 两 个 区 : 引 导 程 序 区 (Boot 区 ) 和 应 用 程 序 区 这 两 个 区 都 有 专 门 的 锁 定 位 以 实 现 读 和 读 / 写 保 护 用 于 写 应 用 程 序 区 的 SPM 指 令 必 须 位 于 引 导 程 序 区 在 中 断 和 调 用 子 程 序 时 返 回 地 址 的 程 序 计 数 器 (PC) 保 存 于 堆 栈 之 中 堆 栈 位 于 通 用 数 据 SRAM, 因 此 其 深 度 仅 受 限 于 SRAM 的 大 小 在 复 位 例 程 里 用 户 首 先 要 初 始 化 堆 栈 指 针 SP 这 个 指 针 位 于 I/O 空 间, 可 以 进 行 读 写 访 问 数 据 SRAM 可 以 通 过 5 种 不 同 的 寻 址 模 式 进 行 访 问 AVR 存 储 器 空 间 为 线 性 的 平 面 结 构 AVR 有 一 个 灵 活 的 中 断 模 块 控 制 寄 存 器 位 于 I/O 空 间 状 态 寄 存 器 里 有 全 局 中 断 使 能 位 每 个 中 断 在 中 断 向 量 表 里 都 有 独 立 的 中 断 向 量 各 个 中 断 的 优 先 级 与 其 在 中 断 向 量 表 的 位 置 有 关, 中 断 向 量 地 址 越 低, 优 先 级 越 高 I/O 存 储 器 空 间 包 含 64 个 可 以 直 接 寻 址 的 地 址, 作 为 CPU 外 设 的 控 制 寄 存 器 SPI, 以 及 其 他 I/O 功 能 映 射 到 数 据 空 间 即 为 寄 存 器 文 件 之 后 的 地 址 x2 - x5f 8 ATmega8(L)

9 ATmega8(L) ALU - 算 术 逻 辑 单 元 状 态 寄 存 器 AVR ALU 与 32 个 通 用 工 作 寄 存 器 直 接 相 连 寄 存 器 与 寄 存 器 之 间 寄 存 器 与 立 即 数 之 间 的 ALU 运 算 只 需 要 一 个 时 钟 周 期 ALU 操 作 分 为 3 类 : 算 术 逻 辑 和 位 操 作 此 外 还 提 供 了 支 持 无 / 有 符 号 数 和 分 数 乘 法 的 乘 法 器 具 体 请 参 见 指 令 集 状 态 寄 存 器 包 含 了 最 近 执 行 的 算 术 指 令 的 结 果 信 息 这 些 信 息 可 以 用 来 改 变 程 序 流 程 以 实 现 条 件 操 作 如 指 令 集 所 述, 所 有 ALU 运 算 都 将 影 响 状 态 寄 存 器 的 内 容 这 样, 在 许 多 情 况 下 就 不 需 要 专 门 的 比 较 指 令 了, 从 而 使 系 统 运 行 更 快 速, 代 码 效 率 更 高 在 进 入 中 断 服 务 程 序 时 状 态 寄 存 器 不 会 自 动 保 存, 中 断 返 回 时 也 不 会 自 动 恢 复 这 些 工 作 需 要 软 件 来 处 理 AVR 中 断 寄 存 器 SREG 定 义 如 下 : Bit I T H S V N Z C SREG 读 / 写 R/W R/W R/W R/W R/W R/W R/W R/W 初 始 值 Bit 7 I: 全 局 中 断 使 能 I 置 位 时 使 能 全 局 中 断 单 独 的 中 断 使 能 由 其 他 独 立 的 控 制 寄 存 器 控 制 如 果 I 清 零, 则 不 论 单 独 中 断 标 志 置 位 与 否, 都 不 会 产 生 中 断 任 意 一 个 中 断 发 生 后 I 清 零, 而 执 行 RETI 指 令 后 I 恢 复 置 位 以 使 能 中 断 I 也 可 以 通 过 SEI 和 CLI 指 令 来 置 位 和 清 零 Bit 6 T: 位 拷 贝 存 储 位 拷 贝 指 令 BLD 和 BST 利 用 T 作 为 目 的 或 源 地 址 BST 把 寄 存 器 的 某 一 位 拷 贝 到 T, 而 BLD 把 T 拷 贝 到 寄 存 器 的 某 一 位 Bit 5 H: 半 进 位 标 志 半 进 位 标 志 H 表 示 算 术 操 作 发 生 了 半 进 位 此 标 志 对 于 BCD 运 算 非 常 有 用 详 见 指 令 集 的 说 明 Bit 4 S: 符 号 位, S = N V S 为 负 数 标 志 N 与 2 的 补 码 溢 出 标 志 V 的 异 或 详 见 指 令 集 的 说 明 Bit 3 V:2 的 补 码 溢 出 标 志 支 持 2 的 补 码 运 算 详 见 指 令 集 的 说 明 Bit 2 N: 负 数 标 志 表 明 算 术 或 逻 辑 操 作 结 果 为 负 详 见 指 令 集 的 说 明 Bit Z: 零 标 志 表 明 算 术 或 逻 辑 操 作 结 果 为 零 详 见 指 令 集 的 说 明 Bit C: 进 位 标 志 表 明 算 术 或 逻 辑 操 作 发 生 了 进 位 详 见 指 令 集 的 说 明 通 用 寄 存 器 文 件 寄 存 器 文 件 针 对 AVR 增 强 型 RISC 指 令 集 做 了 优 化 为 了 获 得 需 要 的 性 能 和 灵 活 性, 寄 存 器 文 件 支 持 以 下 的 输 入 / 输 出 方 案 : 输 出 一 个 8 位 操 作 数, 输 入 一 个 8 位 结 果 输 出 两 个 8 位 位 操 作 数, 输 入 一 个 8 位 结 果 输 出 两 个 8 位 位 操 作 数, 输 入 一 个 6 位 结 果 输 出 一 个 6 位 位 操 作 数, 输 入 一 个 6 位 结 果 Figure 3 为 CPU 32 个 通 用 工 作 寄 存 器 的 结 构 9

10 Figure 3. AVR CPU 通 用 工 作 寄 存 器 7 Addr. R x R x R2 x2 R3 xd 通 用 R4 xe 工 作 R5 xf 寄 存 器 R6 x R7 x R26 xa X 寄 存 器, 低 字 节 R27 xb X 寄 存 器, 高 字 节 R28 xc Y 寄 存 器, 低 字 节 R29 xd Y 寄 存 器, 高 字 节 R3 xe Z 寄 存 器, 低 字 节 R3 xf Z 寄 存 器, 高 字 节 大 多 数 操 作 寄 存 器 文 件 的 指 令 都 可 以 直 接 访 问 所 有 的 寄 存 器, 而 且 多 数 这 样 的 指 令 的 执 行 时 间 为 单 个 时 钟 周 期 如 Figure 3 所 示, 每 个 寄 存 器 都 有 一 个 数 据 内 存 地 址, 将 他 们 直 接 映 射 到 用 户 数 据 空 间 的 头 32 个 地 址 虽 然 寄 存 器 文 件 的 物 理 实 现 不 是 SRAM, 这 种 内 存 组 织 方 式 在 访 问 寄 存 器 方 面 具 有 极 大 的 灵 活 性, 因 为 X Y Z 寄 存 器 可 以 设 置 为 指 向 任 意 寄 存 器 的 指 针 ATmega8(L)

11 ATmega8(L) X Y Z 寄 存 器 寄 存 器 R26..R3 除 了 用 作 通 用 寄 存 器 外, 还 可 以 作 为 数 据 间 接 寻 址 用 的 地 址 指 针 这 三 个 间 接 寻 址 寄 存 器 示 于 Figure 4 Figure 4. X Y Z 寄 存 器 5 XH XL X 寄 存 器 7 7 R27 (xb) R26 (xa) 5 YH YL Y 寄 存 器 7 7 R29 (xd) R28 (xc) 5 ZH ZL Z 寄 存 器 7 7 R3 (xf) R3 (xe) 在 不 同 的 寻 址 模 式 中, 这 些 地 址 寄 存 器 可 以 实 现 固 定 偏 移 量, 自 动 加 一 和 自 动 减 一 功 能 具 体 细 节 请 参 见 指 令 集 堆 栈 指 针 堆 栈 指 针 主 要 用 来 保 存 临 时 数 据 局 部 变 量 和 中 断 / 子 程 序 的 返 回 地 址 堆 栈 指 针 总 是 指 向 堆 栈 的 顶 部 要 注 意 AVR 的 堆 栈 是 向 下 生 长 的, 即 新 数 据 推 入 堆 栈 时, 堆 栈 指 针 的 数 值 将 减 小 堆 栈 指 针 指 向 数 据 SRAM 堆 栈 区 在 此 聚 集 了 子 程 序 堆 栈 和 中 断 堆 栈 调 用 子 程 序 和 使 能 中 断 之 前 必 须 定 义 堆 栈 空 间, 且 堆 栈 指 针 必 须 指 向 高 于 x6 的 地 址 空 间 使 用 PUSH 指 令 将 数 据 推 入 堆 栈 时 指 针 减 一 ; 而 子 程 序 或 中 断 返 回 地 址 推 入 堆 栈 时 指 针 将 减 二 使 用 POP 指 令 将 数 据 弹 出 堆 栈 时, 堆 栈 指 针 加 一 ; 而 用 RET 或 RETI 指 令 从 子 程 序 或 中 断 返 回 时 堆 栈 指 针 加 二 AVR 的 堆 栈 指 针 由 I/O 空 间 中 的 两 个 8 位 寄 存 器 实 现 实 际 使 用 的 位 数 与 具 体 器 件 有 关 请 注 意 某 些 AVR 器 件 的 数 据 区 太 小, 用 SPL 就 足 够 了 此 时 将 不 给 出 SPH 寄 存 器 Bit SP5 SP4 SP3 SP2 SP SP SP9 SP8 SPH SP7 SP6 SP5 SP4 SP3 SP2 SP SP SPL 读 / 写 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 初 始 值 指 令 执 行 时 序 这 一 节 介 绍 指 令 执 行 过 程 中 的 访 问 时 序 AVR CPU 由 系 统 时 钟 clk CPU 驱 动 此 时 钟 直 接 来 自 选 定 的 时 钟 源 芯 片 内 部 不 对 此 时 钟 进 行 分 频 Figure 5 说 明 了 由 Harvard 结 构 决 定 的 并 行 取 指 和 指 令 执 行, 以 及 可 以 进 行 快 速 访 问 的 寄 存 器 文 件 的 概 念 这 是 一 个 基 本 的 流 水 线 概 念, 性 能 高 达 MIPS/MHz, 具 有 优 良 的 性 价 比 功 能 / 时 钟 比 功 能 / 功 耗 比

12 Figure 5. 并 行 取 指 和 指 令 执 行 T T2 T3 T4 clk CPU st Instruction Fetch st Instruction Execute 2nd Instruction Fetch 2nd Instruction Execute 3rd Instruction Fetch 3rd Instruction Execute 4th Instruction Fetch Figure 6 演 示 的 是 寄 存 器 文 件 内 部 访 问 时 序 在 一 个 时 钟 周 期 里,ALU 可 以 同 时 对 两 个 寄 存 器 操 作 数 进 行 操 作, 同 时 将 结 果 保 存 到 目 的 寄 存 器 中 去 Figure 6. 单 时 钟 周 期 ALU 操 作 T T2 T3 T4 clk CPU Total Execution Time Register Operands Fetch ALU Operation Execute Result Write Back 复 位 与 中 断 处 理 AVR 有 不 同 的 中 断 源 每 个 中 断 和 复 位 在 程 序 空 间 都 有 独 立 的 中 断 向 量 所 有 的 中 断 事 件 都 有 自 己 的 使 能 位 当 使 能 位 置 位, 且 状 态 寄 存 器 的 全 局 中 断 使 能 位 I 也 置 位 时, 中 断 可 以 发 生 根 据 程 序 计 数 器 PC 的 不 同, 在 引 导 锁 定 位 BLB2 或 BLB2 被 编 程 的 情 况 下, 中 断 可 能 被 自 动 禁 止 这 个 特 性 提 高 了 软 件 的 安 全 性 详 见 P 29 存 储 器 编 程 的 描 述 程 序 存 储 区 的 最 低 地 址 缺 省 为 复 位 向 量 和 中 断 向 量 完 整 的 向 量 列 表 请 参 见 P 43 中 断 列 表 也 决 定 了 不 同 中 断 的 优 先 级 向 量 所 在 的 地 址 越 低, 优 先 级 越 高 RESET 具 有 最 高 的 优 先 级, 第 二 个 为 INT 外 部 中 断 请 求 通 过 置 位 通 用 中 断 控 制 寄 存 器 (GICR) 的 IVSEL, 中 断 向 量 可 以 移 至 引 导 Flash 的 起 始 处, 参 见 P 43 中 断 编 程 熔 丝 位 BOOTRST 也 可 以 将 复 位 向 量 移 至 引 导 Flash 的 起 始 处 具 体 参 见 P 96 支 持 引 导 装 入 程 序 - 在 写 的 同 时 可 以 读 (RWW, Read-While-Write) 的 自 我 编 程 能 力 任 一 中 断 发 生 时 全 局 中 断 使 能 位 I 被 清 零, 从 而 禁 止 了 所 有 其 他 的 中 断 用 户 软 件 可 以 在 中 断 程 序 里 置 位 I 来 实 现 中 断 嵌 套 此 时 所 有 的 中 断 都 可 以 中 断 当 前 的 中 断 服 务 程 序 执 行 RETI 指 令 后 I 自 动 置 位 从 根 本 上 说 有 两 种 类 型 的 中 断 第 一 种 由 事 件 触 发 并 置 位 中 断 标 志 对 于 这 些 中 断, 程 序 计 数 器 跳 转 到 实 际 的 中 断 向 量 以 执 行 中 断 处 理 程 序, 同 时 硬 件 将 清 除 相 应 的 中 断 标 志 中 断 标 志 也 可 以 通 过 对 其 写 的 方 式 来 清 除 当 中 断 发 生 后, 如 果 相 应 的 中 断 使 能 位 为 "", 则 中 断 标 志 位 置 位, 并 一 直 保 持 到 中 断 执 行, 或 者 被 软 件 清 除 类 似 的, 如 果 全 局 中 断 标 志 被 清 零, 则 所 有 已 发 生 的 中 断 都 不 会 被 执 行, 直 到 I 置 位 然 后 挂 起 的 各 个 中 断 按 中 断 优 先 级 依 次 执 行 2 ATmega8(L)

13 ATmega8(L) 第 二 种 类 型 的 中 断 则 是 只 要 中 断 条 件 满 足, 就 会 一 直 触 发 这 些 中 断 不 需 要 中 断 标 志 若 中 断 条 件 在 中 断 使 能 之 前 就 消 失 了, 中 断 不 会 被 触 发 AVR 退 出 中 断 后 总 是 回 到 主 程 序 并 至 少 执 行 一 条 指 令 才 可 以 去 执 行 其 他 被 挂 起 的 中 断 要 注 意 的 是, 进 入 中 断 服 务 程 序 时 状 态 寄 存 器 不 会 自 动 保 存, 中 断 返 回 时 也 不 会 自 动 恢 复 这 些 工 作 必 须 由 用 户 通 过 软 件 来 完 成 使 用 CLI 指 令 来 禁 止 中 断 时, 中 断 禁 止 立 即 生 效 没 有 中 断 可 以 在 执 行 CLI 指 令 后 发 生, 即 使 它 是 在 执 行 CLI 指 令 的 同 时 发 生 的 下 面 的 例 子 说 明 了 如 何 在 写 EEPROM 时 使 用 这 个 指 令 来 防 止 中 断 发 生 以 避 免 对 EEPROM 内 容 的 破 坏 汇 编 代 码 例 程 in r6, SREG ; 保 存 SREG cli ; 禁 止 中 断 sbi EECR, EEMWE ; 启 动 EEPROM 写 操 作 sbi EECR, EEWE out SREG, r6 ; 恢 复 SREG (I 位 ) C 代 码 例 程 char csreg; csreg = SREG; /* 保 存 SREG */ /* 禁 止 中 断 */ _CLI(); EECR = (<<EEMWE); /* 启 动 EEPROM 写 操 作 */ EECR = (<<EEWE); SREG = csreg; /* 恢 复 SREG (I 位 ) */ 使 用 SEI 指 令 使 能 中 断 时, 紧 跟 其 后 的 第 一 条 指 令 在 执 行 任 何 中 断 之 前 一 定 会 首 先 得 到 执 行 汇 编 代 码 例 程 sei ; 置 位 全 局 中 断 使 能 标 志 sleep ; 进 入 休 眠 模 式, 等 待 中 断 发 生 ; 注 意 : 在 执 行 任 何 被 挂 起 的 中 断 之 前 MCU 将 首 先 进 入 休 眠 模 式 C 代 码 例 程 _SEI(); /* 置 位 全 局 中 断 使 能 标 志 */ _SLEEP(); /* 进 入 休 眠 模 式, 等 待 中 断 发 生 */ /* 注 意 : 在 执 行 任 何 被 挂 起 的 中 断 之 前 MCU 将 首 先 进 入 休 眠 模 式 */ 中 断 响 应 时 间 AVR 中 断 响 应 时 间 最 少 为 4 个 时 钟 周 期 4 个 时 钟 周 期 后, 程 序 跳 转 到 实 际 的 中 断 处 理 例 程 在 这 4 个 时 钟 期 期 间 PC 自 动 入 栈 在 通 常 情 况 下, 中 断 向 量 为 一 个 跳 转 指 令, 此 跳 转 需 要 3 个 时 钟 周 期 如 果 中 断 在 一 个 多 时 钟 周 期 指 令 执 行 期 间 发 生, 则 在 此 多 周 期 指 令 执 行 完 毕 后 MCU 才 会 执 行 中 断 程 序 若 中 断 发 生 时 MCU 处 于 休 眠 模 式, 中 断 响 应 时 间 还 需 增 加 4 个 时 钟 周 期 此 外 还 要 考 虑 到 不 同 的 休 眠 模 式 所 需 要 的 启 动 时 间 中 断 返 回 需 要 4 个 时 钟 在 此 期 间 PC( 两 个 字 节 ) 将 被 弹 出 栈, 堆 栈 指 针 加 二, 状 态 寄 存 器 SREG 的 I 置 位 3

14 AVR ATmega8 存 储 器 系 统 内 可 编 程 的 Flash 程 序 存 储 器 本 节 讲 述 ATmega8 的 存 储 器 AVR 结 构 具 有 两 个 主 要 的 存 储 器 空 间 : 数 据 存 储 器 空 间 和 程 序 存 储 器 空 间 此 外, ATmega8 还 有 EEPROM 存 储 器 以 保 存 数 据 这 三 个 存 储 器 空 间 都 为 线 性 的 平 面 结 构 ATmega8 具 有 8K 字 节 的 在 线 编 程 Flash, 用 于 存 放 程 序 指 令 代 码 因 为 所 有 的 AVR 指 令 为 6 位 或 32 位, 故 而 Flash 组 织 成 4K x 6 位 的 形 式 用 户 程 序 的 安 全 性 要 根 据 Flash 程 序 存 储 器 的 两 个 区 : 引 导 (Boot) 程 序 区 和 应 用 程 序 区, 分 开 来 考 虑 Flash 存 储 器 至 少 可 以 擦 写, 次 ATmega8 的 程 序 计 数 器 (PC) 为 2 位, 因 此 可 以 寻 址 4K 字 的 程 序 存 储 器 空 间 引 导 程 序 区 以 及 相 关 的 软 件 安 全 锁 定 位 请 参 见 P 96 支 持 引 导 装 入 程 序 - 在 写 的 同 时 可 以 读 (RWW, Read-While-Write) 的 自 我 编 程 能 力, 而 P 29 存 储 器 编 程 详 述 了 用 SPI 或 平 行 编 程 模 式 实 现 对 Flash 编 程 常 数 可 以 保 存 于 整 个 程 序 存 储 器 地 址 空 间 ( 参 考 LPM 加 载 程 序 存 储 器 指 令 的 说 明 ) 取 指 与 执 行 时 序 图 请 参 见 P 指 令 执 行 时 序 Figure 7. 程 序 存 储 器 映 像 $ Application Flash Section Boot Flash Section $FFF 4 ATmega8(L)

15 ATmega8(L) SRAM 数 据 存 储 器 Figure 8 给 出 了 ATmega8 SRAM 空 间 的 组 织 结 构 前 2 个 数 据 存 储 器 包 括 了 寄 存 器 文 件 I/O 存 储 器 及 内 部 数 据 SRAM 起 始 的 96 个 地 址 为 寄 存 器 文 件 与 I/O 存 储 器, 接 着 是 24 字 节 的 内 部 数 据 SRAM 数 据 存 储 器 的 寻 址 方 式 分 为 5 种 : 直 接 寻 址 带 偏 移 量 的 间 接 寻 址 间 接 寻 址 带 预 减 量 的 间 接 寻 址 和 带 后 增 量 的 间 接 寻 址 寄 存 器 文 件 中 的 寄 存 器 R26 到 R3 为 间 接 寻 址 的 指 针 寄 存 器 直 接 寻 址 范 围 可 达 整 个 数 据 区 带 偏 移 量 的 间 接 寻 址 模 式 能 够 寻 址 到 由 寄 存 器 Y 和 Z 给 定 的 基 址 附 近 的 63 个 地 址 在 自 动 预 减 和 后 加 的 间 接 寻 址 模 式 中, 寄 存 器 X Y 和 Z 自 动 增 加 或 减 少 ATmega8 的 全 部 32 个 通 用 寄 存 器 64 个 I/O 寄 存 器 及 24 个 字 节 的 内 部 数 据 SRAM 可 以 通 过 所 有 上 述 的 寻 址 模 式 进 行 访 问 寄 存 器 文 件 的 描 述 见 P 9 通 用 寄 存 器 文 件 Figure 8. 数 据 存 储 器 映 像 Register File R R R2... Data Address Space $ $ $2... R29 R3 R3 I/O Registers $ $ $2... $3D $3E $3F $D $E $F $2 $2 $22... $5D $5E $5F Internal SRAM $6 $6... $45E $45F 5

16 数 据 存 储 器 访 问 时 间 本 节 说 明 访 问 内 部 存 储 器 的 时 序, 内 部 数 据 SRAM 访 问 时 间 为 两 个 clk CPU 时 钟, 如 Figure 9 所 示 Figure 9. 片 上 数 据 SRAM 存 取 周 期 T T2 T3 clk CPU Address Compute Address Address Valid Data WR Data RD Read Write Memory Vccess Instruction Next Instruction EEPROM 数 据 存 储 器 ATmega8 包 含 52 字 节 的 EEPROM 数 据 存 储 器 它 是 作 为 一 个 独 立 的 数 据 空 间 而 存 在 的, 可 以 按 字 节 读 写 EEPROM 的 寿 命 至 少 为, 次 擦 除 周 期 EEPROM 的 访 问 由 地 址 寄 存 器 数 据 寄 存 器 和 控 制 寄 存 器 决 定 P 29 存 储 器 编 程 包 含 使 用 SPI 或 并 行 编 程 模 式 对 EEPROM 编 程 EEPROM 读 / 写 访 问 EEPROM 的 访 问 寄 存 器 位 于 I/O 空 间 EEPROM 的 写 访 问 时 间 由 Table 给 出 自 定 时 功 能 可 以 让 用 户 软 件 监 测 何 时 可 以 开 始 写 下 一 字 节 用 户 操 作 EEPROM 需 要 注 意 如 下 问 题 : 在 电 源 滤 波 时 间 常 数 比 较 大 的 电 路 中, 上 电 / 下 电 时 V CC 上 升 / 下 降 速 度 会 比 较 慢 此 时 CPU 可 能 工 作 于 低 于 晶 振 所 要 求 的 电 源 电 压 请 参 见 P 2 防 止 EEPROM 数 据 丢 失 以 避 免 出 现 EEPROM 数 据 丢 失 的 问 题 为 了 防 止 无 意 间 对 EEPROM 的 写 操 作, 需 要 执 行 一 个 特 定 的 写 时 序 具 体 参 看 EEPROM 控 制 寄 存 器 的 内 容 执 行 EEPROM 读 操 作 时, CPU 会 停 止 工 作 4 个 周 期, 然 后 再 执 行 后 续 指 令 ; 执 行 EEPROM 写 操 作 时, CPU 会 停 止 工 作 2 个 周 期, 然 后 再 执 行 后 续 指 令 6 ATmega8(L)

17 ATmega8(L) EEPROM 地 址 寄 存 器 - EEARH 和 EEARL Bit EEAR8 EEARH EEAR7 EEAR6 EEAR5 EEAR4 EEAR3 EEAR2 EEAR EEAR EEARL 读 / 写 R R R R R R R R/W R/W R/W R/W R/W R/W R/W R/W R/W 初 始 值 X X X X X X X X X Bits 5..9 Res: 保 留 保 留 位, 读 操 作 返 回 值 为 零 Bits 8.. EEAR8..: EEPROM 地 址 EEPROM 地 址 寄 存 器 EEARH 和 EEARL 指 定 了 52 字 节 的 EEPROM 空 间 EEPROM 地 址 是 线 性 的, 从 到 5 EEAR 的 初 始 值 没 有 定 义 在 访 问 EEPROM 之 前 必 须 为 其 赋 予 正 确 的 数 据 EEPROM 数 据 寄 存 器 - EEDR Bit MSB LSB EEDR 读 / 写 R/W R/W R/W R/W R/W R/W R/W R/W 初 始 值 Bits 7.. EEDR7..: EEPROM 数 据 对 于 EEPROM 写 操 作, EEDR 是 需 要 写 到 EEAR 单 元 的 数 据 ; 对 于 读 操 作, EEDR 是 从 地 址 EEAR 读 取 的 数 据 EEPROM 控 制 寄 存 器 - EECR Bit EERIE EEMWE EEWE EERE EECR 读 / 写 R R R R R/W R/W R/W R/W 初 始 值 X Bits 7..4 Res: 保 留 保 留 位, 读 操 作 返 回 值 为 零 Bit 3 EERIE: EEPROM 就 绪 中 断 使 能 若 SREG 的 I 为 "", 则 置 位 EERIE 将 使 能 EEPROM 就 绪 中 断 清 零 EERIE 则 禁 止 此 中 断 当 EEWE 清 零 时 EEPROM 就 绪 中 断 即 可 发 生 Bit 2 EEMWE: EEPROM 主 机 写 使 能 EEMWE 决 定 了 EEWE 置 位 是 否 可 以 启 动 EEPROM 写 操 作 当 EEMWE 为 "" 时, 在 4 个 时 钟 周 期 内 置 位 EEWE 将 把 数 据 写 入 EEPROM 的 指 定 地 址 ; 若 EEMWE 为 ", 则 操 作 EEWE 不 起 作 用 EEMWE 置 位 后 4 个 周 期, 硬 件 对 其 清 零 见 EEPROM 写 过 程 中 对 EEWE 位 的 描 述 Bit EEWE: EEPROM 写 使 能 EEWE 为 EEPROM 写 操 作 的 使 能 信 号 当 EEPROM 数 据 和 地 址 设 置 好 之 后, 需 置 位 EEWE 以 便 将 数 据 写 入 EEPROM 此 时 EEMWE 必 须 置 位, 否 则 EEPROM 写 操 作 将 不 会 发 生 写 时 序 如 下 ( 第 3 步 和 第 4 步 的 次 序 并 不 重 要 ):. 等 待 EEWE 位 变 为 零 2. 等 待 SPMCSR 中 的 SPMEN 位 变 为 零 3. 将 新 的 EEPROM 地 址 写 入 EEAR( 可 选 ) 7

18 4. 将 新 的 EEPROM 数 据 写 入 EEDR( 可 选 ) 5. 对 EECR 寄 存 器 的 EEMWE 写 "", 同 时 清 零 EEWE 6. 在 置 位 EEMWE 的 4 个 周 期 内, 置 位 EEWE 在 CPU 写 Flash 存 储 器 的 时 候 不 能 对 EEPROM 进 行 编 程 在 启 动 EEPROM 写 操 作 之 前 软 件 必 须 检 查 Flash 写 操 作 是 否 已 经 完 成 步 骤 (2) 仅 在 软 件 包 含 引 导 程 序 并 允 许 CPU 对 Flash 进 行 编 程 时 才 有 用 如 果 CPU 永 远 都 不 会 写 Flash, 步 骤 (2) 可 省 略 请 参 见 P 96 支 持 引 导 装 入 程 序 - 在 写 的 同 时 可 以 读 (RWW, Read-While-Write) 的 自 我 编 程 能 力 注 意 : 如 果 在 步 骤 5 和 6 之 间 发 生 了 中 断, 写 操 作 将 失 败 因 为 此 时 EEPROM 写 使 能 操 作 将 超 时 如 果 一 个 操 作 EEPROM 的 中 断 打 断 了 另 一 个 EEPROM 操 作,EEAR 或 EEDR 寄 存 器 可 能 被 修 改, 引 起 EEPROM 操 作 失 败 建 议 此 时 关 闭 全 局 中 断 标 志 I 经 过 写 访 问 时 间 之 后,EEWE 硬 件 清 零 用 户 可 以 凭 借 这 一 位 判 断 写 时 序 是 否 已 经 完 成 EEWE 置 位 后, CPU 要 停 止 两 个 时 钟 周 期 才 会 运 行 下 一 条 指 令 Bit EERE: EEPROM 读 使 能 EERE 为 EEPROM 读 操 作 的 使 能 信 号 当 EEPROM 地 址 设 置 好 之 后, 需 置 位 EERE 以 便 将 数 据 读 入 EEAR EEPROM 数 据 的 读 取 只 需 要 一 条 指 令, 且 无 需 等 待 读 取 EEPROM 后 CPU 要 停 止 4 个 时 钟 周 期 才 可 以 执 行 下 一 条 指 令 用 户 在 读 取 EEPROM 时 应 该 检 测 EEWE 如 果 一 个 写 操 作 正 在 进 行, 就 无 法 读 取 EEPROM, 也 无 法 改 变 寄 存 器 EEAR 经 过 校 准 的 片 内 振 荡 器 用 于 EEPROM 定 时 Table 为 CPU 访 问 EEPROM 的 典 型 时 间 Table. EEPROM 编 程 时 间 符 号 () 校 准 的 RC 振 荡 器 周 期 数 典 型 的 编 程 时 间 EEPROM 写 操 作 (CPU) ms Note:. 使 用 时 钟 频 率 为 MHz, 不 倚 赖 CKSEL 熔 丝 位 的 设 置 8 ATmega8(L)

19 ATmega8(L) 下 面 的 代 码 分 别 用 汇 编 和 C 函 数 说 明 如 何 实 现 EEPROM 的 写 操 作 在 此 假 设 中 断 不 会 在 执 行 这 些 函 数 的 过 程 当 中 发 生 同 时 还 假 设 软 件 没 有 Boot Loader 若 Boot Loader 存 在, 则 EEPROM 写 函 数 还 需 要 等 待 正 在 运 行 的 SPM 命 令 的 结 束 汇 编 代 码 例 程 EEPROM_write: ; 等 待 上 一 次 写 操 作 结 束 sbic EECR,EEWE rjmp EEPROM_write ; 设 置 地 址 寄 存 器 (r8:r7) out EEARH, r8 out EEARL, r7 ; 将 数 据 写 入 数 据 寄 存 器 (r6) out EEDR,r6 ; 置 位 EEMWE sbi EECR,EEMWE ; 置 位 EEWE 以 启 动 写 操 作 sbi EECR,EEWE ret C 代 码 例 程 void EEPROM_write(unsigned int uiaddress, unsigned char ucdata) { /* 等 待 上 一 次 写 操 作 结 束 */ while(eecr & (<<EEWE)) ; /* 设 置 地 址 和 数 据 寄 存 器 */ EEAR = uiaddress; EEDR = ucdata; /* 置 位 EEMWE */ EECR = (<<EEMWE); /* 置 位 EEWE 以 启 动 写 操 作 */ EECR = (<<EEWE); } 9

20 下 面 的 例 子 说 明 如 何 用 汇 编 和 C 函 数 来 读 取 EEPROM, 在 此 假 设 中 断 不 会 在 执 行 这 些 函 数 的 过 程 当 中 发 生 汇 编 代 码 例 程 EEPROM_read: ; 等 待 上 一 次 写 操 作 结 束 sbic EECR,EEWE rjmp EEPROM_read ; 设 置 地 址 寄 存 器 (r8:r7) out EEARH, r8 out EEARL, r7 ; 设 置 EERE 以 启 动 读 操 作 sbi EECR,EERE ; 自 数 据 寄 存 器 读 取 数 据 in r6,eedr ret C 代 码 例 程 unsigned char EEPROM_read(unsigned int uiaddress) { /* 等 待 上 一 次 写 操 作 结 束 */ while(eecr & (<<EEWE)) ; /* 设 置 地 址 寄 存 器 */ EEAR = uiaddress; /* 设 置 EERE 以 启 动 读 操 作 */ EECR = (<<EERE); /* 自 数 据 寄 存 器 返 回 数 据 */ return EEDR; } 在 掉 电 休 眠 模 式 下 的 EEPROM 写 操 作 防 止 EEPROM 数 据 丢 失 若 程 序 执 行 掉 电 指 令 时 EEPROM 的 写 操 作 正 在 进 行, EEPROM 的 写 操 作 将 继 续, 并 在 指 定 的 写 访 问 时 间 之 前 完 成 但 写 操 作 结 束 后, 振 荡 器 还 将 继 续 运 行, 芯 片 并 非 处 于 完 全 的 掉 电 模 式 因 此 在 执 行 掉 电 指 令 之 前 应 结 束 EEPROM 的 写 操 作 若 电 源 电 压 过 低,CPU 和 EEPROM 有 可 能 工 作 不 正 常, 造 成 EEPROM 数 据 的 毁 坏 ( 丢 失 ) 这 种 情 况 在 使 用 独 立 的 EEPROM 器 件 时 也 会 遇 到 因 而 需 要 使 用 相 同 的 保 护 方 案 由 于 电 压 过 低 造 成 EEPROM 数 据 损 坏 有 两 种 可 能 : 一 是 电 压 低 于 EEPROM 写 操 作 所 需 要 的 最 低 电 压 ; 二 是 CPU 本 身 已 经 无 法 正 常 工 作 EEPROM 数 据 损 坏 的 问 题 可 以 通 过 以 下 方 法 解 决 : 当 电 压 过 低 时 保 持 AVR RESET 信 号 为 低 这 可 以 通 过 使 能 芯 片 的 掉 电 检 测 电 路 BOD 来 实 现 如 果 BOD 电 平 无 法 满 足 要 求 则 可 以 使 用 外 部 复 位 电 路 若 写 操 作 过 程 当 中 发 生 了 复 位, 只 要 电 压 足 够 高, 写 操 作 仍 将 正 常 结 束 I/O 存 储 器 ATmega8 的 I/O 空 间 定 义 见 P 27 2 ATmega8(L) ATmega8 所 有 的 I/O 及 外 设 都 被 放 置 于 I/O 空 间 所 有 的 I/O 位 置 都 可 以 通 过 IN 与 OUT 指 令 来 访 问, 在 32 个 通 用 工 作 寄 存 器 和 I/O 之 间 传 输 数 据 地 址 为 x - xf 的 I/O 寄 存 器 还 可 用 SBI 和 CBI 指 令 直 接 进 行 位 寻 址, 而 SBIS 和 SBIC 则 用 来 检 查 某 一 位 的 值 更 多 内 容 请 参 见 指 令 集 使 用 IN 和 OUT 指 令 时 地 址 必 须 在 x - x3f 之 间 如 果 要 象 SRAM 一 样 通 过 LD 和 ST 指 令 访 问 I/O 寄 存 器, 相 应 的 地 址 要 加 上 x2

21 ATmega8(L) 为 了 与 后 续 产 品 兼 容, 保 留 未 用 的 未 应 写 "", 而 保 留 的 I/O 寄 存 器 则 不 应 进 行 写 操 作 一 些 状 态 标 志 位 的 清 除 是 通 过 写 "" 来 实 现 的 要 注 意 的 是, 与 其 他 大 多 数 AVR 不 同, CBI 和 SBI 指 令 只 能 对 某 些 特 定 的 位 进 行 操 作, 因 而 可 以 用 于 包 含 这 些 状 态 标 志 的 寄 存 器 CBI 与 SBI 指 令 只 对 x 到 xf 的 寄 存 器 有 效 I/O 和 外 设 控 制 寄 存 器 在 后 续 其 他 章 节 进 行 介 绍 2

22 系 统 时 钟 及 时 钟 选 项 时 钟 系 统 及 其 分 布 Figure 为 AVR 的 主 要 时 钟 系 统 及 其 分 布 这 些 时 钟 并 不 需 要 同 时 工 作 为 了 降 低 功 耗, 可 以 通 过 使 用 不 同 的 睡 眠 模 式 来 禁 止 无 需 工 作 的 模 块 的 时 钟, 详 见 P 3 电 源 管 理 及 睡 眠 模 式 时 钟 系 统 详 见 Figure Figure. 时 钟 分 布 Asynchronous Timer/Counter General I/O Modules ADC CPU Core RAM Flash and EEPROM clk ADC clk I/O AVR Clock Control Unit clk CPU clk ASY clk FLASH Reset Logic Watchdog Timer Source Clock Watchdog Clock Clock Multiplexer Watchdog Oscillator Timer/Counter Oscillator External RC Oscillator External Clock Crystal Oscillator Low-Frequency Crystal Oscillator Calibrated RC Oscillator CPU 时 钟 - clk CPU I/O 时 钟 - clk I/O CPU 时 钟 与 操 作 AVR 内 核 的 子 系 统 相 连, 如 通 用 寄 存 器 文 件 状 态 寄 存 器 及 保 存 堆 栈 指 针 的 数 据 存 储 器 终 止 CPU 时 钟 将 使 内 核 停 止 工 作 和 计 算 I/O 时 钟 用 于 主 要 的 I/O 模 块, 如 定 时 器 / 计 数 器 SPI 和 USART I/O 时 钟 还 用 于 外 部 中 断 模 块 要 注 意 的 是 有 些 外 部 中 断 由 异 步 逻 辑 检 测, 因 此 即 使 I/O 时 钟 停 止 了 这 些 中 断 仍 然 可 以 得 到 监 控 此 外, USI 模 块 的 起 始 条 件 检 测 在 没 有 clk I/O 的 情 况 下 也 是 异 步 实 现 的, 使 得 这 个 功 能 在 任 何 睡 眠 模 式 下 都 可 以 正 常 工 作 Flash 时 钟 - clk FLASH Flash 时 钟 控 制 Flash 接 口 的 操 作 此 时 钟 通 常 与 CPU 时 钟 同 时 挂 起 或 激 活 22 ATmega8(L)

23 ATmega8(L) 异 步 定 时 器 时 钟 - clk ASY ADC 时 钟 - clk ADC 时 钟 源 异 步 定 时 器 时 钟 允 许 异 步 定 时 器 / 计 数 器 直 接 由 外 部 32 khz 时 钟 晶 体 驱 动 使 得 此 定 时 器 / 计 数 器 即 使 在 睡 眠 模 式 下 仍 然 可 以 为 系 统 提 供 一 个 实 时 时 钟 异 步 定 时 器 / 计 数 器 与 CPU 主 时 钟 使 用 相 同 的 XTAL 引 脚, 但 其 需 要 的 时 钟 频 率 是 振 荡 器 频 率 的 四 倍 因 此, 只 有 当 芯 片 使 用 内 部 振 荡 器 时 异 步 操 作 才 有 效 ADC 具 有 专 门 的 时 钟 这 样 可 以 在 ADC 工 作 的 时 候 停 止 CPU 和 I/O 时 钟 以 降 低 数 字 电 路 产 生 的 噪 声, 从 而 提 高 ADC 转 换 精 度 ATmega8 芯 片 有 如 下 几 种 通 过 Flash 熔 丝 位 进 行 选 择 的 时 钟 源 时 钟 输 入 到 AVR 时 钟 发 生 器, 再 分 配 到 相 应 的 模 块 Table 2. 时 钟 源 选 择 () 芯 片 时 钟 选 项 CKSEL3.. 外 部 晶 体 / 陶 瓷 振 荡 器 - 外 部 低 频 晶 振 外 部 RC 振 荡 器 - 标 定 的 内 部 RC 振 荡 器 - 外 部 时 钟 Note:. 对 于 所 有 的 熔 丝 位, 表 示 未 编 程, 表 示 已 编 程 不 同 的 时 钟 选 项 将 在 后 续 部 分 进 行 介 绍 当 CPU 自 掉 电 模 式 或 省 电 模 式 唤 醒 之 后, 被 选 择 的 时 钟 源 用 来 为 启 动 过 程 定 时, 保 证 振 荡 器 在 开 始 执 行 指 令 之 前 进 入 稳 定 状 态 当 CPU 从 复 位 开 始 工 作 时, 还 有 额 外 的 延 迟 时 间 以 保 证 在 MCU 开 始 正 常 工 作 之 前 电 源 达 到 稳 定 电 平 这 个 启 动 时 间 的 定 时 由 看 门 狗 振 荡 器 完 成 看 门 狗 溢 出 时 间 所 对 应 的 WDT 振 荡 器 周 期 数 列 于 Table 3 看 门 狗 振 荡 器 的 频 率 由 工 作 电 压 决 定, 详 见 ATmega8 典 型 特 性 芯 片 出 厂 时 CKSEL =, SUT = ( MHz 片 内 RC 振 荡 器, 电 源 缓 慢 上 升 ) Table 3. 看 门 狗 振 荡 器 周 期 数 典 型 的 溢 出 时 间 (V CC = 5.V) 典 型 的 溢 出 时 间 (V CC = 3.V) 时 钟 周 期 数 4. ms 4.3 ms 4K (4,96) 65 ms 69 ms 64K (65,536) 23

24 晶 体 振 荡 器 XTAL 与 XTAL2 分 别 为 用 作 片 内 振 荡 器 的 反 向 放 大 器 的 输 入 和 输 出, 如 Figure 所 示, 这 个 振 荡 器 可 以 使 用 石 英 晶 体, 也 可 以 使 用 陶 瓷 谐 振 器 熔 丝 位 CKOPT 用 来 选 择 这 两 种 放 大 器 模 式 的 其 中 之 一 当 CKOPT 被 编 程 时 振 荡 器 在 输 出 引 脚 产 生 满 幅 度 的 振 荡 这 种 模 式 适 合 于 噪 声 环 境, 以 及 需 要 通 过 XTAL2 驱 动 第 二 个 时 钟 缓 冲 器 的 情 况 而 且 这 种 模 式 的 频 率 范 围 比 较 宽 当 保 持 CKOPT 为 未 编 程 状 态 时, 振 荡 器 的 输 出 信 号 幅 度 比 较 小 其 优 点 是 大 大 降 低 了 功 耗, 但 是 频 率 范 围 比 较 窄, 而 且 不 能 驱 动 其 他 时 钟 缓 冲 器 对 于 谐 振 器, CKOPT 未 编 程 时 的 最 大 频 率 为 8 MHz, CKOPT 编 程 时 为 6 MHz C 和 C2 的 数 值 要 一 样, 不 管 使 用 的 是 晶 体 还 是 谐 振 器 最 佳 的 数 值 与 使 用 的 晶 体 或 谐 振 器 有 关, 还 与 杂 散 电 容 和 环 境 的 电 磁 噪 声 有 关 Table 4 给 出 了 针 对 晶 体 选 择 电 容 的 一 些 指 南 对 于 陶 瓷 谐 振 器, 应 该 使 用 厂 商 提 供 的 数 值 若 想 得 到 更 多 的 有 关 如 何 选 择 电 容 以 及 振 荡 器 如 何 工 作 的 信 息, 请 参 考 多 用 途 振 荡 器 应 用 手 册 Figure. 晶 体 振 荡 器 连 接 图 C2 C XTAL2 XTAL GND 振 荡 器 可 以 工 作 于 三 种 不 同 的 模 式, 每 一 种 都 有 一 个 优 化 的 频 率 范 围 工 作 模 式 通 过 熔 丝 位 CKSEL3.. 来 选 择, 如 Table 4 所 示 Table 4. 晶 体 振 荡 器 工 作 模 式 CKOPT CKSEL3.. 频 率 范 围 (MHz) Note:. 此 选 项 不 适 用 于 晶 体, 只 能 用 于 陶 瓷 谐 振 器 使 用 晶 体 时 电 容 C 和 C2 的 推 荐 范 围 (pf) () ,, 如 Table 5 所 示, 熔 丝 位 CKSEL 以 及 SUT.. 用 于 选 择 启 动 时 间 24 ATmega8(L)

25 ATmega8(L) Table 5. 晶 体 振 荡 器 时 钟 选 项 对 应 的 启 动 时 间 CKSEL SUT.. 掉 电 与 节 电 模 式 下 的 启 动 时 间 复 位 时 额 外 的 延 迟 时 间 (V CC = 5.V) 258 CK () 4. ms 258 CK () 65 ms 推 荐 用 法 Notes:. 这 些 选 项 只 能 用 于 工 作 频 率 不 太 接 近 于 最 大 频 率, 而 且 启 动 时 的 频 率 稳 定 性 对 于 应 用 而 言 不 重 要 的 情 况 不 适 用 于 晶 体 2. 这 些 选 项 是 为 陶 瓷 谐 振 器 设 计 的, 可 以 保 证 启 动 时 频 率 足 够 稳 定 若 工 作 频 率 不 太 接 近 于 最 大 频 率, 而 且 启 动 时 的 频 率 稳 定 性 对 于 应 用 而 言 不 重 要 时 也 适 用 于 晶 体 低 频 晶 体 振 荡 器 为 了 使 用 khz 钟 表 晶 体 作 为 器 件 的 时 钟 源, 必 须 将 熔 丝 位 CKSEL 设 置 为 以 选 择 低 频 晶 体 振 荡 器 晶 体 的 连 接 方 式 如 Figure 所 示 通 过 对 熔 丝 位 CKOPT 的 编 程, 用 户 可 以 使 能 XTAL 和 XTAL2 的 内 部 电 容, 从 而 去 除 外 部 电 容 内 部 电 容 的 标 称 数 值 为 36 pf 选 择 了 这 个 振 荡 器 之 后, 启 动 时 间 由 熔 丝 位 SUT 确 定, 如 Table 6 所 示 Table 6. 低 频 晶 体 振 荡 器 的 启 动 时 间 Note:. 这 些 选 项 只 能 用 于 启 动 时 的 频 率 稳 定 性 对 应 用 而 言 不 重 要 的 情 况 陶 瓷 谐 振 器, 电 源 快 速 上 升 陶 瓷 谐 振 器, 电 源 缓 慢 上 升 K CK (2) 陶 瓷 谐 振 器, BOD 使 能 K CK (2) 4. ms K CK (2) 65 ms 陶 瓷 谐 振 器, 电 源 快 速 上 升 陶 瓷 谐 振 器, 电 源 缓 慢 上 升 6K CK 石 英 振 荡 器,BOD 使 能 6K CK 4. ms 6K CK 65 ms SUT.. 掉 电 模 式 和 省 电 模 式 的 启 动 时 间 复 位 时 的 额 外 延 迟 时 间 (V CC = 5.V) 推 荐 用 法 石 英 振 荡 器, 电 源 快 速 上 升 石 英 振 荡 器, 电 源 慢 速 上 升 K CK () 4. ms 电 源 快 速 上 升, 或 是 BOD 使 能 K CK () 65 ms 电 源 缓 慢 上 升 32K CK 65 ms 启 动 时 频 率 已 经 稳 定 保 留 外 部 RC 振 荡 器 对 于 时 间 不 敏 感 的 应 用 可 以 使 用 Figure 2 对 于 时 间 不 敏 感 的 应 用 可 以 使 用 Figure 2 的 外 部 RC 振 荡 器 频 率 可 以 通 过 方 程 f = /(3RC) 进 行 粗 略 地 鼓 估 计 电 容 C 至 少 要 22 pf 通 过 编 程 熔 丝 位 CKOPT, 用 户 可 以 使 能 XTAL 和 GND 之 间 的 片 内 36 pf 电 容, 从 而 无 需 外 部 电 容 25

26 Figure 2. 外 部 RC 配 置 VCC R C NC XTAL2 XTAL GND 振 荡 器 可 以 工 作 于 四 个 不 同 的 模 式, 每 个 模 式 有 自 己 的 优 化 频 率 范 围 工 作 模 式 通 过 熔 丝 位 CKSEL3.. 选 取, 如 Table 7 所 示 Table 7. 外 部 RC 振 荡 器 工 作 模 式 CKSEL3.. 频 率 范 围 (MHz) 选 择 了 这 个 振 荡 器 之 后, 启 动 时 间 由 熔 丝 位 SUT 确 定, 如 Table 8 所 示 Table 8. 外 部 RC 振 荡 器 的 启 动 时 间 SUT.. 掉 电 模 式 和 省 电 模 式 的 启 动 时 间 复 位 时 的 额 外 延 迟 时 间 (V CC = 5.V) 推 荐 用 法 8 CK BOD 使 能 8 CK 4. ms 电 源 快 速 上 升 8 CK 65 ms 电 源 缓 慢 上 升 6 CK () 4. ms 电 源 快 速 上 升, 或 是 BOD 使 能 Note:. 这 些 选 项 只 能 用 于 工 作 频 率 不 太 接 近 于 最 大 频 率 时 的 情 况 26 ATmega8(L)

27 ATmega8(L) 标 定 的 片 内 RC 振 荡 器 标 定 的 片 内 RC 振 荡 器 提 供 了 固 定 的 或 8. MHz 的 时 钟 这 些 频 率 都 是 5V 25 C 下 的 标 称 数 值 这 个 时 钟 也 可 以 作 为 系 统 时 钟, 只 要 按 照 Table 9 对 熔 丝 位 CKSEL 进 行 编 程 即 可 选 择 这 个 时 钟 ( 此 时 不 能 对 CKOPT 进 行 编 程 ) 之 后 就 无 需 外 部 器 件 了 复 位 时 硬 件 将 标 定 字 节 加 载 到 OSCCAL 寄 存 器, 自 动 完 成 对 RC 振 荡 器 的 标 定 在 5V, 25 C 和 频 率 为. MHz 时, 这 种 标 定 可 以 提 供 标 称 频 率 ± 3% 的 精 度 ; 使 用 中 所 给 出 的 方 法, 可 在 任 何 电 压 任 何 温 度 下, 使 精 度 达 到 ± % 当 使 用 这 个 振 荡 器 作 为 系 统 时 钟 时, 看 门 狗 仍 然 使 用 自 己 的 看 门 狗 定 时 器 作 为 溢 出 复 位 的 依 据 更 多 的 有 关 标 定 数 据 的 信 息 请 参 见 P 2 标 定 字 节 Table 9. 片 内 标 定 的 RC 振 荡 器 工 作 模 式 CKSEL3.. Note:. 出 厂 时 的 设 置 选 择 了 这 个 振 荡 器 之 后, 启 动 时 间 由 熔 丝 位 SUT 确 定, 如 Table 所 示 PB6 (XTAL/TOSC) 与 PB7(XTAL2/TOSC2) 即 可 作 为 通 用 I/O 引 脚, 又 可 作 为 定 时 振 荡 器 引 脚 Note:. 出 厂 时 的 设 置 标 称 频 率 (MHz) () Table. 内 部 标 定 RC 振 荡 器 的 启 动 时 间 SUT.. 掉 电 模 式 与 省 电 模 式 的 启 动 时 间 复 位 时 的 额 外 延 迟 时 间 (V CC = 5.V) 推 荐 用 法 6 CK BOD 使 能 6 CK 4. ms 电 源 快 速 上 升 () 6 CK 65 ms 电 源 缓 慢 上 升 保 留 27

28 振 荡 器 标 定 寄 存 器 - OSCCAL Bit CAL7 CAL6 CAL5 CAL4 CAL3 CAL2 CAL CAL OSCCAL 读 / 写 R/W R/W R/W R/W R/W R/W R/W R/W 初 始 值 标 定 数 据 Bits 7.. CAL7..: 振 荡 器 标 定 数 据 将 标 定 数 据 写 入 这 个 地 址 可 以 对 内 部 振 荡 器 进 行 调 节 以 消 除 由 于 生 产 工 艺 所 带 来 的 振 荡 器 频 率 偏 差 复 位 时 MHz 的 标 定 数 据 ( 标 识 数 据 的 高 字 节, 地 址 为 x) 自 动 加 载 到 OSCCAL 寄 存 器 如 果 需 要 内 部 RC 振 荡 器 工 作 于 其 他 频 率, 标 定 数 据 必 须 人 工 加 载 : 首 先 通 过 编 程 器 读 取 标 识 数 据, 然 后 将 标 定 数 据 保 存 到 Flash 或 EEPROM 之 中 这 些 数 据 可 以 通 过 软 件 读 取, 然 后 加 载 到 OSCCAL 寄 存 器 当 OSCCAL 为 零 时 振 荡 器 以 最 低 频 率 工 作 当 对 其 写 如 不 为 零 的 数 据 时 内 部 振 荡 器 的 频 率 将 增 长 写 入 xff 即 得 到 最 高 频 率 标 定 的 振 荡 器 用 来 为 访 问 EEPROM 和 Flash 定 时 有 写 EEPROM 和 Flash 的 操 作 时 不 要 将 频 率 标 定 到 超 过 标 称 频 率 的 %, 否 则 写 操 作 有 可 能 失 败 要 注 意 振 荡 器 只 对 和 8. MHz 这 四 种 频 率 进 行 了 标 定, 其 他 频 率 则 无 法 保 证, 如 Table 所 示 Table. 内 部 RC 振 荡 器 频 率 范 围 OSCCAL 数 值 最 小 频 率, 标 称 频 率 的 百 分 比 (%) 最 大 频 率, 标 称 频 率 的 百 分 比 (%) x 5 x7f 75 5 xff 2 28 ATmega8(L)

29 ATmega8(L) 外 部 时 钟 为 了 从 外 部 时 钟 源 驱 动 芯 片, XTAL 必 须 如 Figure 3 所 示 的 进 行 连 接 同 时, 熔 丝 位 CKSEL 必 须 编 程 为 若 熔 丝 位 CKOPT 也 被 编 程, 用 户 就 可 以 使 用 内 部 的 XTAL 和 GND 之 间 的 36 pf 电 容 Figure 3. 外 部 时 钟 驱 动 配 置 图 EXTERNAL CLOCK SIGNAL 选 择 了 这 个 振 荡 器 之 后, 启 动 时 间 由 熔 丝 位 SUT 确 定, 如 Table 2 所 示 Table 2. 外 部 时 钟 的 启 动 时 间 SUT.. 掉 电 模 式 与 省 电 模 式 的 启 动 时 间 复 位 时 的 额 外 延 迟 时 间 (V CC = 5.V) 推 荐 用 法 6 CK BOD 使 能 6 CK 4. ms 电 源 快 速 上 升 6 CK 65 ms 电 源 缓 慢 上 升 保 留 为 了 保 证 MCU 能 够 稳 定 工 作, 不 能 突 然 改 变 外 部 时 钟 源 的 振 荡 频 率 工 作 频 率 突 变 超 过 2% 将 会 产 生 异 常 现 象 应 该 在 MCU 保 持 复 位 状 态 时 改 变 外 部 时 钟 的 振 荡 频 率 定 时 器 / 计 时 器 振 荡 器 对 于 拥 有 定 时 器 / 振 荡 器 引 脚 (TOSC 和 TOSC2) 的 AVR 微 处 理 器, 晶 体 可 以 直 接 与 这 两 个 引 脚 连 接, 无 需 外 部 电 容 此 振 荡 器 针 对 khz 的 钟 表 晶 体 作 了 优 化 不 建 议 在 TOSC 引 脚 输 入 振 荡 信 号 29

30 电 源 管 理 及 睡 眠 模 式 睡 眠 模 式 可 以 使 应 用 程 序 关 闭 MCU 中 没 有 使 用 的 模 块, 从 而 降 低 功 耗 AVR 具 有 不 同 的 睡 眠 模 式, 允 许 用 户 根 据 自 己 的 应 用 要 求 实 施 剪 裁 进 入 睡 眠 模 式 的 条 件 是 置 位 寄 存 器 MCUCR 的 SE, 然 后 执 行 SLEEP 指 令 具 体 哪 一 种 模 式 ( 空 闲 模 式 ADC 噪 声 抑 制 模 式 掉 电 模 式 省 电 模 式 及 Standby 模 式 ) 由 MCUCR 的 SM2 SM 和 SM 决 定, 如 Table 3 所 示 使 能 的 中 断 可 以 将 进 入 睡 眠 模 式 的 MCU 唤 醒 经 过 启 动 时 间, 外 加 4 个 时 钟 周 期 后, MCU 就 可 以 运 行 中 断 例 程 了 然 后 返 回 到 SLEEP 的 下 一 条 指 令 唤 醒 时 不 会 改 变 寄 存 器 文 件 和 SRAM 的 内 容 如 果 在 睡 眠 过 程 中 发 生 了 复 位, 则 MCU 唤 醒 后 从 中 断 向 量 开 始 执 行 注 意, 由 于 TOSC 与 XTAL 共 用 同 一 引 脚, 对 于 许 多 AVR MCU 中 有 的 扩 展 Standby 模 式 在 ATmega8 中 已 删 除 P 22Figure 介 绍 了 ATmega8 不 同 的 时 钟 系 统 及 其 分 布 此 图 在 选 择 合 适 的 睡 眠 模 式 时 非 常 有 用 MCU 控 制 寄 存 器 - MCUCR MCU 控 制 寄 存 器 包 含 了 电 源 管 理 的 控 制 位 Bit SE SM2 SM SM ISC ISC ISC ISC MCUCR 读 / 写 R/W R/W R/W R/W R/W R/W R/W R/W 初 始 值 Bit 7 SE: 休 眠 使 能 为 了 使 MCU 在 执 行 SLEEP 指 令 后 进 入 休 眠 模 式, SE 必 须 置 位 为 了 确 保 进 入 休 眠 模 式 是 程 序 员 的 有 意 行 为, 建 议 仅 在 SLEEP 指 令 的 前 一 条 指 令 置 位 SE MCU 一 旦 唤 醒 立 即 清 除 SE Bits 6..4 SM2..: 休 眠 模 式 选 择 位 2 和 如 Table 3 所 示, 这 些 位 用 于 选 择 具 体 的 休 眠 模 式 Table 3. 休 眠 模 式 选 择 SM2 SM SM 休 眠 模 式 空 闲 模 式 ADC 噪 声 抑 制 模 式 掉 电 模 式 省 电 模 式 保 留 保 留 Standby () 模 式 Note:. 仅 在 使 用 外 部 晶 体 或 谐 振 器 时 Standby 模 式 才 可 用 3 ATmega8(L)

31 ATmega8(L) 空 闲 模 式 ADC 噪 声 抑 制 模 式 掉 电 模 式 省 电 模 式 Standby 模 式 当 SM2.. 为 时, SLEEP 指 令 将 使 MCU 进 入 空 闲 模 式 在 此 模 式 下, CPU 停 止 运 行, 而 SPI USART 模 拟 比 较 器 ADC 两 线 串 行 接 口 定 时 器 / 计 数 器 看 门 狗 和 中 断 系 统 继 续 工 作 这 个 睡 眠 模 式 只 停 止 了 clk CPU 和 clk FLASH, 其 他 时 钟 则 继 续 工 作 象 定 时 器 溢 出 与 USART 传 输 完 成 等 内 外 部 中 断 都 可 以 唤 醒 MCU 如 果 不 需 要 从 模 拟 比 较 器 中 断 唤 醒 MCU, 为 了 减 少 功 耗, 可 以 切 断 比 较 器 的 电 源 方 法 是 置 位 模 拟 比 较 器 控 制 和 状 态 寄 存 器 ACSR 的 ACD 如 果 ADC 使 能, 进 入 此 模 式 后 将 自 动 启 动 一 次 转 换 当 SM2.. 为 时, SLEEP 指 令 将 使 MCU 进 入 噪 声 抑 制 模 式 在 此 模 式 下, CPU 停 止 运 行, 而 ADC 外 部 中 断 两 线 接 口 地 址 配 置 定 时 器 / 计 数 器 2 和 看 门 狗 继 续 工 作 这 个 睡 眠 模 式 只 停 止 了 clk I/O clk CPU 和 clk FLASH, 其 他 时 钟 则 继 续 工 作 此 模 式 提 高 了 ADC 的 噪 声 环 境, 使 得 转 换 精 度 更 高 ADC 使 能 的 时 候, 进 入 此 模 式 将 自 动 启 动 一 次 AD 转 换 ADC 转 换 结 束 中 断 外 部 复 位 看 门 狗 复 位 BOD 复 位 两 线 接 口 地 址 匹 配 中 断 定 时 器 / 计 数 器 2 中 断 SPM/EEPROM 准 备 好 中 断 外 部 电 平 中 断 INT 或 INT, 或 外 部 中 断 INT2 可 以 将 MCU 从 ADC 噪 声 抑 制 模 式 唤 醒 当 SM2.. 为 时, SLEEP 指 令 将 使 MCU 进 入 掉 电 模 式 在 此 模 式 下, 外 部 晶 体 停 振, 而 外 部 中 断 两 线 接 口 地 址 匹 配 及 看 门 狗 ( 如 果 使 能 的 话 ) 继 续 工 作 只 有 外 部 复 位 看 门 狗 复 位 BOD 复 位 两 线 接 口 地 址 匹 配 中 断 外 部 电 平 中 断 INT 或 INT, 或 外 部 中 断 INT2 可 以 使 MCU 脱 离 掉 电 模 式 这 个 睡 眠 模 式 停 止 了 所 有 的 时 钟, 只 有 异 步 模 块 可 以 继 续 工 作 当 使 用 外 部 电 平 中 断 方 式 将 MCU 从 掉 电 模 式 唤 醒 时, 必 须 保 持 外 部 电 平 一 定 的 时 间 具 体 请 参 见 P 62 外 部 中 断 从 施 加 掉 电 唤 醒 条 件 到 真 正 唤 醒 有 一 个 延 迟 时 间, 此 时 间 用 于 时 钟 重 新 启 动 并 稳 定 下 来 唤 醒 周 期 与 由 熔 丝 位 CKSEL 定 义 的 复 位 周 期 是 一 样 的, 如 P 23 时 钟 源 当 SM2.. 为 时, SLEEP 指 令 将 使 MCU 进 入 省 电 模 式 这 一 模 式 与 掉 电 模 式 只 有 一 点 不 同 : 如 果 定 时 器 / 计 数 器 2 为 异 步 驱 动, 即 寄 存 器 ASSR 的 AS2 置 位, 则 定 时 器 / 计 数 器 2 在 睡 眠 时 继 续 运 行 除 了 掉 电 模 式 的 唤 醒 方 式, 定 时 器 / 计 数 器 2 的 溢 出 中 断 和 比 较 匹 配 中 断 也 可 以 将 MCU 从 休 眠 方 式 唤 醒, 只 要 TIMSK 使 能 了 这 些 中 断, 而 且 SREG 的 全 局 中 断 使 能 位 I 置 位 如 果 异 步 定 时 器 不 是 异 步 驱 动 的, 建 议 使 用 掉 电 模 式, 而 不 是 省 电 模 式 因 为 在 省 电 模 式 下, 若 AS2 为, 则 MCU 唤 醒 后 异 步 定 时 器 的 寄 存 器 数 值 是 没 有 定 义 的 这 个 睡 眠 模 式 停 止 了 除 clk ASY 以 外 所 有 的 时 钟, 只 有 异 步 模 块 可 以 继 续 工 作 当 SM2.. 为 时, SLEEP 指 令 将 使 MCU 进 入 Standby 模 式 这 一 模 式 与 掉 电 模 式 唯 一 的 不 同 之 处 在 于 振 荡 器 继 续 工 作 其 唤 醒 时 间 只 需 要 6 个 时 钟 周 期 Table 4. 在 不 同 睡 眠 模 式 下 活 动 的 时 钟 以 及 唤 醒 源 工 作 的 时 钟 振 荡 器 唤 醒 源 睡 眠 模 式 clk CPU clk FLASH clk IO clk ADC clk ASY 使 能 的 主 时 钟 使 能 的 定 时 器 时 钟 INT INT TWI 地 址 匹 配 定 时 器 2 SPM/ EEPROM 就 绪 空 闲 模 式 X X X X X (2) X X X X X X ADC 噪 声 抑 制 模 式 X X X X (2) X (3) X X X X ADC 其 他 I/O 3

32 Table 4. 在 不 同 睡 眠 模 式 下 活 动 的 时 钟 以 及 唤 醒 源 工 作 的 时 钟 振 荡 器 唤 醒 源 睡 眠 模 式 clk CPU clk FLASH clk IO clk ADC clk ASY 使 能 的 主 时 钟 使 能 的 定 时 器 时 钟 INT INT TWI 地 址 匹 配 定 时 器 2 SPM/ EEPROM 就 绪 ADC 其 他 I/O 掉 电 模 式 X (3) X 省 电 模 式 X (2) X (2) X (3) X X (2) Standby 模 () X X (3) X 式 Notes:. 时 钟 源 为 外 部 晶 体 或 谐 振 器 2. ASSR 的 AS2 置 位 3. 电 平 中 断 INT 与 INT 最 小 化 功 耗 试 图 降 低 AVR 控 制 系 统 的 功 耗 时 需 要 考 虑 几 个 问 题 一 般 来 说, 要 尽 可 能 利 用 睡 眠 模 式, 并 且 使 尽 可 能 少 的 模 块 继 续 工 作 不 需 要 的 功 能 必 须 禁 止 下 面 的 模 块 需 要 特 殊 考 虑 以 达 到 尽 可 能 低 的 功 耗 模 数 转 换 器 (ADC) 模 拟 比 较 器 使 能 时, ADC 在 睡 眠 模 式 下 继 续 工 作 为 了 降 低 功 耗, 在 进 入 睡 眠 模 式 之 前 需 要 禁 止 ADC 重 新 启 动 后 的 第 一 次 转 换 为 扩 展 的 转 换 具 体 请 参 照 P 83 模 数 转 换 器 在 空 闲 模 式 时, 如 果 没 有 使 用 模 拟 比 较 器, 可 以 将 其 关 闭 在 ADC 噪 声 抑 制 模 式 下 也 是 如 此 在 其 他 睡 眠 模 式 模 拟 比 较 器 是 自 动 关 闭 的 如 果 模 拟 比 较 器 使 用 了 内 部 电 压 基 准 源, 则 不 论 在 什 么 睡 眠 模 式 下 都 需 要 关 闭 它 否 则 内 部 电 压 基 准 源 将 一 直 使 能 请 参 见 P 8 模 拟 比 较 器 以 了 解 如 何 配 置 模 拟 比 较 器 32 ATmega8(L)

33 ATmega8(L) 掉 电 检 测 BOD 如 果 系 统 没 有 使 用 掉 电 检 测 器 BOD, 这 个 模 块 也 可 以 关 闭 如 果 熔 丝 位 BODEN 被 编 程, 从 而 使 能 了 BOD 功 能, 它 将 在 各 种 休 眠 模 式 下 继 续 工 作 在 深 层 次 的 休 眠 模 式 下, 这 个 电 流 将 占 总 电 流 的 很 大 比 重 请 参 看 P 37 掉 电 检 测 以 了 解 如 何 配 置 BOD 片 内 基 准 电 压 看 门 狗 定 时 器 端 口 引 脚 使 用 BOD 模 拟 比 较 器 和 ADC 时 可 能 需 要 内 部 电 压 基 准 源 若 这 些 模 块 都 禁 止 了, 则 基 准 源 也 可 以 禁 止 重 新 使 能 后 用 户 必 须 等 待 基 准 源 稳 定 之 后 才 可 以 使 用 它 如 果 基 准 源 在 休 眠 过 程 中 是 使 能 的, 其 输 出 立 即 可 以 使 用 请 参 见 P 39 片 内 基 准 电 压 以 了 解 基 准 源 启 动 时 间 的 细 节 如 果 系 统 无 需 使 用 看 门 狗, 这 个 模 块 也 可 以 关 闭 若 使 能, 则 在 任 何 休 眠 模 式 下 都 持 续 工 作, 从 而 消 耗 电 流 在 深 层 次 的 睡 眠 模 式 下, 这 个 电 流 将 占 总 电 流 的 很 大 比 重 请 参 看 P 4 看 门 狗 定 时 器 以 了 解 如 何 配 置 看 门 狗 定 时 器 进 入 休 眠 模 式 时, 所 有 的 端 口 引 脚 都 应 该 配 置 为 只 消 耗 最 小 的 功 耗 最 重 要 的 是 避 免 驱 动 电 阻 性 负 载 在 休 眠 模 式 下 I/O 时 钟 clk I/O 和 ADC 时 钟 clk ADC 都 被 停 止 了, 输 入 缓 冲 器 也 禁 止 了, 从 而 保 证 输 入 电 路 不 会 消 耗 电 流 在 某 些 情 况 下 输 入 逻 辑 是 使 能 的, 用 来 检 测 唤 醒 条 件 用 于 此 功 能 的 具 体 引 脚 请 参 见 P 52 数 字 输 入 使 能 和 睡 眠 模 式 如 果 输 入 缓 冲 器 是 使 能 的, 此 时 输 入 不 能 悬 空, 信 号 电 平 也 不 应 该 接 近 V CC /2, 否 则 输 入 缓 冲 器 会 消 耗 额 外 的 电 流 33

34 系 统 控 制 与 复 位 复 位 AVR 复 位 时 所 有 的 I/O 寄 存 器 都 被 设 置 为 初 始 值, 程 序 从 复 位 向 量 处 开 始 执 行 复 位 向 量 处 的 指 令 必 须 是 绝 对 跳 转 JMP 指 令, 以 使 程 序 跳 转 到 复 位 处 理 例 程 如 果 程 序 永 远 不 利 用 中 断 功 能, 中 断 向 量 可 以 由 一 般 的 程 序 代 码 所 覆 盖 这 个 处 理 方 法 同 样 适 用 于 当 复 位 向 量 位 于 应 用 程 序 区, 中 断 向 量 位 于 Boot 区 或 者 反 过 来 的 时 候 Figure 4 为 复 位 逻 辑 的 电 路 图 Table 5 则 定 义 了 复 位 电 路 的 电 气 参 数 复 位 源 有 效 时 I/O 端 口 立 即 复 位 为 初 始 值 此 时 不 要 求 任 何 时 钟 处 于 正 常 运 行 状 态 所 有 的 复 位 信 号 消 失 之 后, 芯 片 内 部 的 一 个 延 迟 计 数 器 被 激 活, 将 内 部 复 位 的 时 间 延 长 这 种 处 理 方 式 使 得 在 MCU 正 常 工 作 之 前 有 一 定 的 时 间 让 电 源 达 到 稳 定 的 电 平 延 迟 计 数 器 的 溢 出 时 间 通 过 熔 丝 位 SUT 与 CKSEL 设 定 延 迟 时 间 的 选 择 请 参 见 P 23 时 钟 源 复 位 源 ATmega8 有 4 个 复 位 源 : 上 电 复 位 电 源 电 压 低 于 上 电 复 位 门 限 V POT 时, MCU 复 位 外 部 复 位 引 脚 RESET 上 的 低 电 平 持 续 时 间 大 于 最 小 脉 冲 宽 度 时 MCU 复 位 看 门 狗 复 位 看 门 狗 使 能 并 且 看 门 狗 定 时 器 溢 出 时 复 位 发 生 掉 电 检 测 复 位 掉 电 检 测 复 位 功 能 使 能, 且 电 源 电 压 低 于 掉 电 检 测 复 位 门 限 V BOT 时 MCU 即 复 位 Figure 4. 复 位 逻 辑 DATA BUS MCU Control and Status Register (MCUCSR) PORF BORF EXTRF WDRF BODEN BODLEVEL Pull-up Resistor Brown-Out Reset Circuit SPIKE FILTER Watchdog Oscillator Clock Generator CK Delay Counters TIMEOUT CKSEL[3:] SUT[:] 34 ATmega8(L)

35 ATmega8(L) Table 5. 复 位 特 性 符 号 参 数 条 件 V POT 上 电 复 位 门 限 电 压 ( 电 压 由 低 到 高 上 升 ) () V 上 电 复 位 门 限 电 压 ( 电 压 由 高 到 低 跌 落 ) V V RST RESET 门 限 电 压..9 V CC t RST RESET 最 小 脉 冲 宽 度.5 µs V BOT (2) 掉 电 检 测 复 位 门 限 电 压 BODLEVEL = BODLEVEL = V t BOD 触 发 掉 电 检 测 复 位 的 低 电 平 的 BODLEVEL = 2 µs 最 小 持 续 时 间 BODLEVEL = 2 µs V HYST 掉 电 检 测 器 的 容 限 3 mv Notes:. 电 压 下 降 时, 只 有 电 压 低 于 V POT 时 复 位 才 会 发 生 2. 一 些 器 件 的 V BOT 可 能 比 标 称 的 最 小 工 作 电 压 还 要 低 这 些 器 件 在 生 产 测 试 过 程 中 进 行 了 V CC = V BOT 的 测 试, 保 证 在 V CC 下 降 到 处 理 器 无 法 正 常 工 作 之 前 产 生 掉 电 检 测 复 位 ATmega8L 的 测 试 条 件 为 BODLEVEL=,ATmega8 的 测 试 条 件 为 BODLEVEL= BODLEVEL= 不 适 用 于 ATmega8 最 小 值 典 型 值 最 大 值 单 位 上 电 复 位 上 电 复 位 (POR) 脉 冲 由 片 内 检 测 电 路 产 生 检 测 电 平 请 参 见 Table 5 无 论 何 时 V CC 低 于 检 测 电 平 POR 即 发 生 POR 电 路 可 以 用 来 触 发 启 动 复 位, 或 者 用 来 检 测 电 源 故 障 POR 电 路 保 证 器 件 在 上 电 时 复 位 V CC 达 到 上 电 门 限 电 压 后 触 发 延 迟 计 数 器 在 计 数 器 溢 出 之 前 器 件 一 直 保 持 为 复 位 状 态 当 V CC 下 降 时, 只 要 低 于 检 测 门 限,RESET 信 号 立 即 生 效 Figure 5. MCU 启 动 过 程, RESET 连 接 到 V CC VCC V POT RESET V RST TIME-OUT t TOUT INTERNAL RESET 35

36 Figure 6. MCU 启 动 过 程, RESET 由 外 电 路 控 制 V CC V POT RESET V RST TIME-OUT t TOUT INTERNAL RESET 36 ATmega8(L)

37 ATmega8(L) 外 部 复 位 外 部 复 位 由 外 加 于 RESET 引 脚 的 低 电 平 产 生 当 复 位 低 电 平 持 续 时 间 大 于 最 小 脉 冲 宽 度 时 ( 参 见 Table 5) 即 触 发 复 位 过 程, 即 使 此 时 并 没 有 时 钟 信 号 在 运 行 当 外 加 信 号 达 到 复 位 门 限 电 压 V RST ( 上 升 沿 ) 时, t TOUT 延 时 周 期 开 始 延 时 结 束 后 MCU 即 启 动 Figure 7. 工 作 过 程 中 发 生 外 部 复 位 CC 掉 电 检 测 ATmega8 具 有 片 内 BOD(Brown-out Detection) 电 路, 通 过 与 固 定 的 触 发 电 平 的 对 比 来 检 测 工 作 过 程 中 V CC 的 变 化 此 触 发 电 平 通 过 熔 丝 位 BODLEVEL 来 设 定, 2.7V (BODLEVEL 未 编 程 ), 4.V (BODLEVEL 已 编 程 ) BOD 的 触 发 电 平 具 有 迟 滞 功 能 以 消 除 电 源 尖 峰 的 影 响 这 个 迟 滞 功 能 可 以 解 释 为 V BOT+ = V BOT + V HYST /2 以 及 V BOT- = V BOT - V HYST /2 BOD 电 路 的 开 关 由 熔 丝 位 BODEN 控 制 当 BOD 使 能 后 (BODEN 被 编 程 ), 一 旦 V CC 下 降 到 触 发 电 平 以 下 (V BOT-, Figure 8), BOD 复 位 立 即 被 激 发 当 V CC 上 升 到 触 发 电 平 以 上 时 (V BOT+,Figure 8), 延 时 计 数 器 开 始 计 数, 一 旦 超 过 溢 出 时 间 t TOUT,MCU 即 恢 复 工 作 如 果 V CC 一 直 低 于 触 发 电 平 并 保 持 如 Table 5 所 示 的 时 间 t BOD, BOD 电 路 将 只 检 测 电 压 跌 落 Figure 8. 工 作 过 程 中 发 生 掉 电 检 测 复 位 V CC V BOT- V BOT+ RESET TIME-OUT t TOUT INTERNAL RESET 37

38 看 门 狗 复 位 看 门 狗 定 时 器 溢 出 时 将 产 生 持 续 时 间 为 个 CK 周 期 的 复 位 脉 冲 在 脉 冲 的 下 降 沿, 延 时 定 时 器 开 始 对 t TOUT 记 数 请 参 见 看 门 狗 定 时 器 的 具 体 操 作 过 程 Figure 9. 工 作 过 程 中 发 生 看 门 狗 复 位 CC CK MCU 控 制 和 状 态 寄 存 器 - MCUCSR MCU 控 制 和 状 态 寄 存 器 提 供 了 有 关 引 起 MCU 复 位 的 复 位 源 的 信 息 Bit WDRF BORF EXTRF PORF MCUCSR 读 / 写 R R R R R/W R/W R/W R/W 初 始 值 见 位 说 明 Bit 7..4 Res: 保 留 这 几 位 保 留, 读 操 作 始 终 为 " Bit 3 WDRF: 看 门 狗 复 位 标 志 看 门 狗 复 位 发 生 时 置 位 上 电 复 位 将 使 其 清 零, 也 可 以 通 过 写 来 清 除 Bit 2 BORF: 掉 电 检 测 复 位 标 志 掉 电 检 测 复 位 发 生 时 置 位 上 电 复 位 将 使 其 清 零, 也 可 以 通 过 写 来 清 除 Bit EXTRF: 外 部 复 位 标 志 外 部 复 位 发 生 时 置 位 上 电 复 位 将 使 其 清 零, 也 可 以 通 过 写 来 清 除 Bit PORF: 上 电 复 位 标 志 上 电 复 位 发 生 时 置 位 只 能 通 过 写 来 清 除 为 了 使 用 这 些 复 位 标 志 来 识 别 复 位 条 件, 用 户 应 该 尽 早 读 取 此 寄 存 器 的 数 据, 然 后 将 其 复 位 如 果 在 其 他 复 位 发 生 之 前 将 此 寄 存 器 复 位, 则 后 续 复 位 源 可 以 通 过 检 查 复 位 标 志 来 了 解 38 ATmega8(L)

39 ATmega8(L) 片 内 基 准 电 压 ATmega8 具 有 片 内 能 隙 基 准 源, 用 于 掉 电 检 测, 或 者 是 作 为 模 拟 比 较 器 或 ADC 的 输 入 ADC 的 2.56V 基 准 电 压 由 此 片 内 能 隙 基 准 源 产 生 基 准 电 压 使 能 信 号 和 启 动 时 间 电 压 基 准 的 启 动 时 间 可 能 影 响 其 工 作 方 式 启 动 时 间 列 于 Table 6 为 了 降 低 功 耗, 可 以 控 制 基 准 源 仅 在 如 下 情 况 打 开 :. BOD 使 能 ( 熔 丝 位 BODEN 被 编 程 ) 2. 能 隙 基 准 源 连 接 到 模 拟 比 较 器 (ACSR 寄 存 器 的 ACBG 置 位 ) 3. ADC 使 能 因 此, 当 BOD 被 禁 止 时, 置 位 ACBG 或 使 能 ADC 后 要 启 动 基 准 源 为 了 降 低 掉 电 模 式 的 功 耗, 用 户 可 以 禁 止 上 述 三 种 条 件, 并 在 进 入 掉 电 模 式 之 前 关 闭 基 准 源 Table 6. 内 部 电 压 基 准 源 的 特 性 符 号 参 数 最 小 值 典 型 值 最 大 值 单 位 V BG 能 隙 基 准 源 电 压 V t BG 能 隙 基 准 源 启 动 时 间 4 7 µs I BG 能 隙 基 准 源 功 耗 µa 39

40 看 门 狗 定 时 器 看 门 狗 定 时 器 由 独 立 的 MHz 片 内 振 荡 器 驱 动 这 是 V CC = 5V 时 的 典 型 值 请 参 见 特 性 数 据 以 了 解 其 他 V CC 电 平 下 的 典 型 值 通 过 设 置 看 门 狗 定 时 器 的 预 分 频 器 可 以 调 节 看 门 狗 复 位 的 时 间 间 隔, 如 P 4Table 7 所 示 看 门 狗 复 位 指 令 WDR 用 来 复 位 看 门 狗 定 时 器 此 外, 禁 止 看 门 狗 定 时 器 或 发 生 复 位 时 定 时 器 也 被 复 位 复 位 时 间 有 8 个 选 项 如 果 没 有 及 时 复 位 定 时 器, 一 旦 时 间 超 过 复 位 周 期, ATmega8 就 复 位, 并 执 行 复 位 向 量 指 向 的 程 序 具 体 的 看 门 狗 复 位 时 序 在 P 38 有 说 明 为 了 防 止 无 意 之 间 禁 止 看 门 狗 定 时 器, 当 看 门 狗 禁 用 时, 其 后 必 须 加 入 一 个 特 定 的 关 闭 序 列, 详 见 看 门 狗 定 时 器 控 制 寄 存 器 说 明 Figure 2. 看 门 狗 定 时 器 WATCHDOG OSCILLATOR 看 门 狗 定 时 器 控 制 寄 存 器 - WDTCR Bit WDCE WDE WDP2 WDP WDP WDTCR 读 / 写 R R R R/W R/W R/W R/W R/W 初 始 值 Bits 7..5 Res: 保 留 保 留 位, 读 操 作 返 回 值 为 零 Bit 4 WDCE: 看 门 狗 修 改 使 能 清 零 WDE 时 必 须 先 置 位 WDCE, 否 则 不 能 禁 止 看 门 狗 一 旦 置 位, 硬 件 将 在 紧 接 的 4 个 时 钟 周 期 之 后 将 其 清 零 请 参 考 有 关 WDE 的 说 明 来 禁 止 看 门 狗 工 作 于 安 全 级 别 和 2 时 也 必 须 置 位 WDCE 以 修 改 预 分 频 器 的 数 据, 详 见 代 码 例 程 4 ATmega8(L)

41 ATmega8(L) Bit 3 WDE: 看 门 狗 使 能 WDE 为 " 时, 看 门 狗 使 能, 否 则 看 门 狗 将 被 禁 止 只 有 在 WDCE 为 " 时 WDE 才 能 清 零 以 下 为 关 闭 看 门 狗 的 步 骤 :. 在 同 一 个 指 令 内 对 WDCE 和 WDE 写 ", 即 使 WDE 已 经 为 " 2. 在 紧 接 的 4 个 时 钟 周 期 之 内 对 WDE 写 " Bits 2.. WDP2, WDP, WDP: 看 门 狗 定 时 器 预 分 频 器 2,, 和 WDP2 WDP 和 WDP 决 定 看 门 狗 定 时 器 的 预 分 频 器, 其 预 分 频 值 及 相 应 的 溢 出 周 期 如 Table 7 所 示 Table 7. 看 门 狗 定 时 器 预 分 频 器 选 项 WDP2 WDP WDP WDT 振 荡 器 周 期 V CC = 3.V 时 典 型 的 溢 出 周 期 V CC = 5.V 时 典 型 的 溢 出 周 期 6K (6,384) 7. ms 6.3 ms 32K (32,768) 34.3 ms 32.5 ms 64K (65,536) 68.5 ms 65 ms 28K (3,72).4 s.3 s 256K (262,44).27 s.26 s 52K (524,288).55 s.52 s,24k (,48,576). s. s 2,48K (2,97,52) 2.2 s 2. s 下 面 的 例 子 分 别 用 汇 编 和 C 实 现 了 关 闭 WDT 的 操 作 在 此 假 定 中 断 处 于 用 户 控 制 之 下 ( 比 如 禁 止 全 局 中 断 ), 因 而 在 执 行 下 面 程 序 时 中 断 不 会 发 生 4

42 改 变 看 门 狗 定 时 器 配 置 的 时 间 序 列 改 变 配 置 的 序 列 根 据 不 同 的 安 全 级 别 略 有 不 同 下 面 将 逐 一 说 明 汇 编 代 码 例 程 WDT_off: ; 复 位 WDT wdr ; 置 位 WDCE 和 WDE in r6, WDTCR ori r6, (<<WDCE) (<<WDE) out WDTCR, r6 ; 关 闭 WDT ldi r6, (<<WDE) out WDTCR, r6 ret C 代 码 例 程 void WDT_off(void) { /* 复 位 WDT */ _WDR() /* 置 位 WDCE 和 WDE */ WDTCR = (<<WDCE) (<<WDE); /* 关 闭 WDT */ WDTCR = x; } 安 全 级 别 (WDTON 熔 丝 位 未 编 程 ) 安 全 级 别 2(WDTON 熔 丝 位 已 编 程 ) 在 这 个 模 式 下, 看 门 狗 定 时 器 的 初 始 状 态 是 禁 止 的, 可 以 没 有 限 制 地 通 过 置 位 WDE 来 使 能 它 改 变 定 时 器 溢 出 周 期 及 禁 止 ( 已 经 使 能 的 ) 看 门 狗 定 时 器 时 需 要 执 行 一 个 特 定 的 时 间 序 列 :. 在 同 一 个 指 令 内 对 WDCE 和 WDE 写 ", 即 使 WDE 已 经 为 " 2. 在 紧 接 的 4 个 时 钟 周 期 之 内 同 时 对 WDE 及 WDP 写 入 合 适 的 数 据, 而 WDCE 则 写 " 在 这 个 模 式 下, 看 门 狗 定 时 器 总 是 使 能 的, WDE 的 读 返 回 值 为 " 改 变 定 时 器 溢 出 周 期 需 要 执 行 一 个 特 定 的 时 间 序 列 :. 在 同 一 个 指 令 内 对 WDCE 和 WDE 写 " 虽 然 WDE 总 是 为 置 位 状 态, 也 必 须 写 " 以 启 动 时 序 在 紧 接 的 4 个 时 钟 周 期 之 内 同 时 对 WDCE 写 ", 以 及 为 WDP 写 入 合 适 的 数 据 WDE 的 数 值 可 以 任 意 42 ATmega8(L)

43 ATmega8(L) 中 断 本 节 说 明 ATmega8 的 中 断 处 理 更 一 般 的 AVR 中 断 处 理 请 参 见 P 2 复 位 与 中 断 处 理 ATmega8 的 中 断 向 量 Table 8. 复 位 和 中 断 向 量 向 量 号 程 序 (2) 地 址 中 断 源 中 断 定 义 x () RESET 外 部 引 脚, 上 电 复 位, 掉 电 检 测 复 位, 看 门 狗 复 位 2 x INT 外 部 中 断 请 求 3 x2 INT 外 部 中 断 请 求 4 x3 TIMER2 COMP 定 时 器 / 计 数 器 2 比 较 匹 配 5 x4 TIMER2 OVF 定 时 器 / 计 数 器 2 溢 出 6 x5 TIMER CAPT 定 时 器 / 计 数 器 捕 捉 事 件 7 x6 TIMER COMPA 定 时 器 / 计 数 器 比 较 匹 配 A 8 x7 TIMER COMPB 定 时 器 / 计 数 器 比 较 匹 配 B 9 x8 TIMER OVF 定 时 器 / 计 数 器 溢 出 x9 TIMER OVF 定 时 器 / 计 数 器 溢 出 xa SPI, STC SPI 串 行 传 输 结 束 2 xb USART, RXC USART, Rx 结 束 3 xc USART, UDRE USART 数 据 寄 存 器 空 4 xd USART, TXC USART, Tx 结 束 5 xe ADC ADC 转 换 结 束 6 xf EE_RDY EEPROM 就 绪 7 x ANA_COMP 模 拟 比 较 器 8 x TWI 两 线 串 行 接 口 9 x2 SPM_RDY 保 存 程 序 存 储 器 内 容 就 绪 Notes:. 熔 丝 位 BOOTRST 被 编 程 时,MCU 复 位 后 程 序 跳 转 到 Boot Loader 请 参 见 P 96 支 持 引 导 装 入 程 序 - 在 写 的 同 时 可 以 读 (RWW, Read-While-Write) 的 自 我 编 程 能 力 2. 当 寄 存 器 GICR 的 IVSEL 置 位 时, 中 断 向 量 转 移 到 Boot 区 的 起 始 地 址 此 时 各 个 中 断 向 量 的 实 际 地 址 为 表 中 地 址 与 Boot 区 起 始 地 址 之 和 Table 9 给 出 了 不 同 的 BOOTRST/IVSEL 设 置 下 的 复 位 和 中 断 向 量 的 位 置 如 果 程 序 永 远 不 使 能 中 断, 中 断 向 量 就 没 有 意 义 用 户 可 以 在 此 直 接 写 程 序 同 样, 如 果 复 位 向 量 位 于 应 用 区, 而 其 他 中 断 向 量 位 于 Boot 区, 则 复 位 向 量 之 后 可 以 直 接 写 程 序 反 过 来 亦 是 如 此 Table 9. 复 位 和 中 断 向 量 位 置 的 确 定 BOOTRST () IVSEL 复 位 地 址 中 断 向 量 起 始 地 址 x x x Boot 区 复 位 地 址 + x Boot 区 复 位 地 址 x Boot 区 复 位 地 址 Boot 区 复 位 地 址 + x 43

44 Note:. Boot 区 复 位 地 址 列 于 P 27Table 82 对 于 熔 丝 位 BOOTRST, 表 示 未 编 程, 表 示 已 编 程 ATmega8 典 型 的 复 位 和 中 断 设 置 如 下 : 地 址 符 号 代 码 说 明 x rjmp RESET ; 复 位 中 断 向 量 x rjmp EXT_INT ; IRQ 中 断 向 量 x2 rjmp EXT_INT ; IRQ 中 断 向 量 x3 rjmp TIM2_COMP ; Timer2 比 较 中 断 向 量 x4 rjmp TIM2_OVF ; Timer2 溢 出 中 断 向 量 x5 rjmp TIM_CAPT ; Timer 捕 捉 中 断 向 量 x6 rjmp TIM_COMPA ; Timer 比 较 A 中 断 向 量 x7 rjmp TIM_COMPB ; Timer 比 较 B 中 断 向 量 x8 rjmp TIM_OVF ; Timer 溢 出 中 断 向 量 x9 rjmp TIM_OVF ; Timer 溢 出 中 断 向 量 xa rjmp SPI_STC ; SPI 传 输 结 束 中 断 向 量 xb rjmp USART_RXC ; USART RX 结 束 中 断 向 量 xc rjmp USART_UDRE ; UDR 空 中 断 向 量 xd rjmp USART_TXC ; USART TX 结 束 中 断 向 量 xe rjmp ADC ; ADC 转 换 结 束 中 断 向 量 xf rjmp EE_RDY ; EEPROM 就 绪 中 断 向 量 x rjmp ANA_COMP ; 模 拟 比 较 器 中 断 向 量 x rjmp TWSI ; 两 线 串 行 接 口 中 断 向 量 x2 rjmp EXT_INT2 ; IRQ2 中 断 向 量 x3 rjmp TIM_COMP ; Timer 比 较 中 断 向 量 x4 rjmp SPM_RDY ; SPM 就 绪 中 断 向 量 ; x5 RESET: ldi r6,high(ramend) ; 主 程 序 x6 out SPH,r6 ; 设 置 堆 栈 指 针 为 RAM 的 顶 部 x7 ldi r6,low(ramend) x8 out SPL,r6 x9 sei ; 使 能 中 断 x2 <instr> xxx ATmega8(L)

45 ATmega8(L) 当 熔 丝 位 BOOTRST 未 编 程,Boot 区 为 2K 字 节, 且 寄 存 器 GICR 的 IVSEL 置 位 时, 典 型 的 复 位 和 中 断 设 置 如 下 : 地 址 符 号 代 码 说 明 $ rjmp RESET ; 复 位 中 断 向 量 ; $ RESET:ldi r6,high(ramend); 主 程 序 $2 out SPH,r6 ; 设 置 堆 栈 指 针 为 RAM 的 顶 部 $3 ldi r6,low(ramend) $4 out SPL,r6 $5 sei ; 使 能 中 断 $6 <instr> xxx ;.org $c $c rjmp EXT_INT ; IRQ 中 断 向 量 $c2 rjmp EXT_INT ; IRQ 中 断 向 量 ; $c2 rjmp SPM_RDY ; SPM 就 绪 中 断 向 量 当 熔 丝 位 BOOTRST 已 编 程, 且 Boot 区 为 2K 字 节 时, 典 型 的 复 位 和 中 断 设 置 如 下 : 丝 位 BOOTRST 已 编 程, 且 Boot 区 为 2K 字 节 时, 典 型 的 复 位 和 中 断 设 置 如 下 : 地 址 符 号 代 码 说 明.org x x rjmp EXT_INT ; IRQ 中 断 向 量 x2 rjmp EXT_INT ; IRQ 中 断 向 量 ; x4 rjmp SPM_RDY ; SPM 就 绪 中 断 向 量 ;.org $c $c rjmp RESET ; 复 位 中 断 向 量 ; $c RESET:ldi r6,high(ramend); 主 程 序 $c2 out SPH,r6 ; 设 置 堆 栈 指 针 为 RAM 的 顶 部 $c3 ldi r6,low(ramend) $c4 out SPL,r6 $c5 sei ; 使 能 中 断 $c6 <instr> xxx 45

46 当 熔 丝 位 BOOTRST 已 编 程,Boot 区 为 2K 字 节, 且 寄 存 器 GICR 的 IVSEL 置 位 时, 典 型 的 复 位 和 中 断 设 置 如 下 : 地 址 符 号 代 码 说 明 ;.org $c $c rjmp RESET ; Reset 中 断 向 量 $c rjmp EXT_INT ; IRQ 中 断 向 量 $c2 rjmp EXT_INT ; IRQ 中 断 向 量 ; $c2 rjmp SPM_RDY ; SPM 就 绪 中 断 向 量 $c3 RESET: ldi r6,high(ramend); 主 程 序 $c4 out SPH,r6 ; 设 置 堆 栈 指 针 为 RAM 的 顶 部 $c5 ldi r6,low(ramend) $c6 out SPL,r6 $c7 sei ; 使 能 中 断 $c8 <instr> xxx 在 应 用 区 和 Boot 区 之 间 移 动 中 断 通 用 中 断 控 制 寄 存 器 - GICR 通 用 中 断 控 制 寄 存 器 决 定 中 断 向 量 表 的 放 置 地 址 Bit INT INT IVSEL IVCE GICR 读 / 写 R/W R/W R R R R R/W R/W 初 始 值 Bit IVSEL: 中 断 向 量 选 择 当 IVSEL 为 " 时, 中 断 向 量 位 于 Flash 存 储 器 的 起 始 地 址 ; 当 IVSEL 为 " 时, 中 断 向 量 转 移 到 Boot 区 的 起 始 地 址 实 际 的 Boot 区 起 始 地 址 由 熔 丝 位 BOOTSZ 确 定 具 体 请 参 考 P 96 支 持 引 导 装 入 程 序 - 在 写 的 同 时 可 以 读 (RWW, Read-While-Write) 的 自 我 编 程 能 力 为 了 防 止 无 意 识 地 改 变 中 断 向 量 表, 修 改 IVSEL 时 需 要 遵 照 如 下 过 程 :. 置 位 中 断 向 量 修 改 使 能 位 IVCE 2. 在 紧 接 的 4 个 时 钟 周 期 里 将 需 要 的 数 据 写 入 IVSEL, 同 时 对 IVCE 写 执 行 上 述 序 列 时 中 断 自 动 被 禁 止 其 实, 在 置 位 IVCE 时 中 断 就 被 禁 止 了, 并 一 直 保 持 到 写 IVSEL 操 作 之 后 的 下 一 条 语 句 如 果 没 有 IVSEL 写 操 作, 则 中 断 在 置 位 IVCE 之 后 的 4 个 时 钟 周 期 保 持 禁 止 需 要 注 意 的 是, 虽 然 中 断 被 自 动 禁 止, 但 状 态 寄 存 器 的 位 I 的 值 并 不 受 此 操 作 的 影 响 注 意 : 若 中 断 向 量 位 于 Boot 区, 且 Boot 锁 定 位 BLB2 被 编 程, 则 执 行 应 用 区 的 程 序 时 中 断 被 禁 止 ; 若 中 断 向 量 位 于 应 用 区, 且 Boot 锁 定 位 BLB2 被 编 程, 则 执 行 Boot 区 的 程 序 时 中 断 被 禁 止 有 关 Boot 锁 定 位 的 细 节 请 参 见 P 96 支 持 引 导 装 入 程 序 - 在 写 的 同 时 可 以 读 (RWW, Read- While-Write) 的 自 我 编 程 能 力 46 ATmega8(L)

47 ATmega8(L) Bit IVCE: 中 断 向 量 修 改 使 能 改 变 IVSEL 时 IVCE 必 须 置 位 在 IVCE 或 IVSEL 写 操 作 之 后 4 个 时 钟 周 期, IVCE 被 硬 件 清 零 如 前 面 所 述, 置 位 IVCE 将 禁 止 中 断 代 码 如 下 : 汇 编 代 码 例 程 : Move_interrupts: ; 使 能 中 断 向 量 的 修 改 ldi r6, (<<IVCE) out GICR, r6 ; 将 中 断 向 量 转 移 到 boot Flash 区 ldi r6, (<<IVSEL) out GICR, r6 ret C 代 码 例 程 void Move_interrupts(void) { /* 使 能 中 断 向 量 的 修 改 */ GICR = (<<IVCE); /* 将 中 断 向 量 转 移 到 boot Flash 区 */ GICR = (<<IVSEL); } 47

48 I/O 端 口 介 绍 作 为 通 用 数 字 I/O 使 用 时, 所 有 AVR I/O 端 口 都 具 有 真 正 的 读 - 修 改 - 写 功 能 这 意 味 着 用 SBI 或 CBI 指 令 改 变 某 些 管 脚 的 方 向 ( 或 者 是 端 口 电 平 禁 止 / 使 能 上 拉 电 阻 ) 时 不 会 无 意 地 改 变 其 他 管 脚 的 方 向 ( 或 者 是 端 口 电 平 禁 止 / 使 能 上 拉 电 阻 ) 输 出 缓 冲 器 具 有 对 称 的 驱 动 能 力, 可 以 输 出 或 吸 收 大 电 流, 直 接 驱 动 LED 所 有 的 端 口 引 脚 都 具 有 与 电 压 无 关 的 上 拉 电 阻 并 有 保 护 二 极 管 与 V CC 和 地 相 连, 如 Figure 2 所 示 请 参 见 P 226 电 气 特 性 以 了 解 完 整 的 参 数 列 表 Figure 2. I/O 引 脚 等 效 原 理 图 R pu Pxn Logic C pin See Figure "General Digital I/O" for Details 本 节 所 有 的 寄 存 器 和 位 以 通 用 格 式 表 示 : 小 写 的 x 表 示 端 口 的 序 号, 而 小 写 的 n 代 表 位 的 序 号 但 是 在 程 序 里 要 写 完 整 例 如, PORTB3 表 示 端 口 B 的 第 3 位, 而 本 节 的 通 用 格 式 为 PORTxn 物 理 I/O 寄 存 器 和 位 定 义 列 于 P 6 I/O 端 口 寄 存 器 的 说 明 每 个 端 口 都 有 三 个 I/O 存 储 器 地 址 : 数 据 寄 存 器 PORTx 数 据 方 向 寄 存 器 DDRx 和 端 口 输 入 引 脚 PINx 数 据 寄 存 器 和 数 据 方 向 寄 存 器 为 读 / 写 寄 存 器, 而 端 口 输 入 引 脚 为 只 读 寄 存 器 但 是 需 要 特 别 注 意 的 是, 对 PINx 寄 存 器 某 一 位 写 入 逻 辑 " 将 造 成 数 据 寄 存 器 相 应 位 的 数 据 发 生 " 与 的 交 替 变 化 当 寄 存 器 SFIOR 的 上 拉 禁 止 位 PUD 置 位 时 所 有 端 口 引 脚 的 上 拉 电 阻 都 被 禁 止 作 为 通 用 数 字 I/O 时 的 端 口 请 参 见 P 48 作 为 通 用 数 字 I/O 的 端 口 多 数 端 口 引 脚 是 与 第 二 功 能 复 用 的, 如 P 53 端 口 的 第 二 功 能 所 示 请 参 见 各 个 模 块 的 具 体 说 明 以 了 解 引 脚 的 第 二 功 能 使 能 某 些 引 脚 的 第 二 功 能 不 会 影 响 其 他 属 于 同 一 端 口 的 引 脚 用 于 通 用 数 字 I/O 目 的 作 为 通 用 数 字 I/O 的 端 口 端 口 为 具 有 可 选 上 拉 电 阻 的 双 向 I/O 端 口 Figure 22 为 一 个 I/O 端 口 引 脚 的 说 明 48 ATmega8(L)

49 ATmega8(L) Figure 22. 通 用 数 字 I/O () PUD Q D DDxn Q CLR RESET WDx RDx Pxn Q D PORTxn Q CLR RESET WPx DATA BUS SLEEP RRx SYNCHRONIZER RPx D L Q Q D Q PINxn Q clk I/O PUD: SLEEP: clk I/O : PULLUP DISABLE SLEEP CONTROL I/O CLOCK WDx: RDx: WPx: RRx: RPx: WRITE DDRx READ DDRx WRITE PORTx READ PORTx REGISTER READ PORTx PIN Note:. WPx, WDx, RRx, RPx 和 RDx 对 于 同 一 端 口 的 所 有 引 脚 都 是 一 样 的 clk I/O, SLEEP 和 PUD 则 对 所 有 的 端 口 都 是 一 样 的 配 置 引 脚 每 个 端 口 引 脚 都 具 有 三 个 寄 存 器 位 : DDxn PORTxn 和 PINxn, 如 P 6 I/O 端 口 寄 存 器 的 说 明 所 示 DDxn 位 于 DDRx 寄 存 器, PORTxn 位 于 PORTx 寄 存 器, PINxn 位 于 PINx 寄 存 器 DDxn 用 来 选 择 引 脚 的 方 向 DDxn 为 " 时, Pxn 配 置 为 输 出, 否 则 配 置 为 输 入 引 脚 配 置 为 输 入 时, 若 PORTxn 为 ", 上 拉 电 阻 将 使 能 如 果 需 要 关 闭 这 个 上 拉 电 阻, 可 以 将 PORTxn 清 零, 或 者 将 这 个 引 脚 配 置 为 输 出 复 位 时 各 引 脚 为 高 阻 态, 即 使 此 时 并 没 有 时 钟 在 运 行 当 引 脚 配 置 为 输 出 时, 若 PORTxn 为 ", 引 脚 输 出 高 电 平 (" ), 否 则 输 出 低 电 平 ( ) 在 ( 高 阻 态 ) 三 态 ({DDxn, PORTxn} = b) 输 出 高 电 平 ({DDxn, PORTxn} = b) 两 种 状 态 之 间 进 行 切 换 时, 上 拉 电 阻 使 能 ({DDxn, PORTxn} = b) 或 输 出 低 电 平 ({DDxn, PORTxn} = b) 这 两 种 模 式 必 然 会 有 一 个 发 生 通 常, 上 拉 电 阻 使 能 是 完 全 可 以 接 受 的, 因 为 高 阻 环 境 不 在 意 是 强 高 电 平 输 出 还 是 上 拉 输 出 如 果 使 用 情 况 不 是 这 样 子, 可 以 通 过 置 位 SFIOR 寄 存 器 的 PUD 来 禁 止 所 有 端 口 的 上 拉 电 阻 在 上 拉 输 入 和 输 出 低 电 平 之 间 切 换 也 有 同 样 的 问 题 用 户 必 须 选 择 高 阻 态 ({DDxn, PORTxn} = b) 或 输 出 高 电 平 ({DDxn, PORTxn} = b) 作 为 中 间 步 骤 49

50 Table 2 总 结 了 引 脚 的 控 制 信 号 Table 2. 端 口 引 脚 配 置 DDxn PORTxn PUD (SFIOR 中 ) 读 取 引 脚 上 的 数 据 不 论 如 何 配 置 DDxn, 都 可 以 通 过 读 取 PINxn 寄 存 器 来 获 得 引 脚 电 平 如 Figure 22 所 示, PINxn 寄 存 器 的 各 个 位 与 其 前 面 的 锁 存 器 组 成 了 一 个 同 步 器 这 样 就 可 以 避 免 在 内 部 时 钟 状 态 发 生 改 变 的 短 时 间 范 围 内 由 于 引 脚 电 平 变 化 而 造 成 的 信 号 不 稳 定 其 缺 点 是 引 入 了 延 迟 Figure 23 为 读 取 引 脚 电 平 时 同 步 器 的 时 序 图 最 大 和 最 小 传 输 延 迟 分 别 为 t pd,max 和 t pd,min Figure 23. 读 取 引 脚 数 据 时 的 同 步 I/O 上 拉 电 阻 说 明 X 输 入 No 高 阻 态 (Hi-Z) 输 入 Yes 被 外 部 电 路 拉 低 时 将 输 出 电 流 输 入 No 高 阻 态 (Hi-Z) X 输 出 No 输 出 低 电 平 ( 漏 电 流 ) X 输 出 No 输 出 高 电 平 ( 源 电 流 ) SYSTEM CLK INSTRUCTIONS XXX XXX in r7, PINx SYNC LATCH PINxn r7 x xff t pd, max t pd, min 下 面 考 虑 第 一 个 系 统 时 钟 下 降 沿 之 后 起 始 的 时 钟 周 期 当 时 钟 信 号 为 低 时 锁 存 器 是 关 闭 的 ; 而 时 钟 信 号 为 高 时 信 号 可 以 自 由 通 过, 如 图 中 SYNC LATCH 信 号 的 阴 影 区 所 示 时 钟 为 低 时 信 号 即 被 锁 存, 然 后 在 紧 接 着 的 系 统 时 钟 上 升 沿 锁 存 到 PINxn 寄 存 器 如 t pd,max 和 t pd,min 所 示, 引 脚 上 的 信 号 转 换 延 迟 界 于 ½ ~ ½ 个 系 统 时 钟 如 Figure 24 所 示, 读 取 软 件 赋 予 的 引 脚 电 平 时 需 要 在 赋 值 指 令 out 和 读 取 指 令 in 之 间 有 一 个 时 钟 周 期 的 间 隔, 如 nop 指 令 out 指 令 在 时 钟 的 上 升 沿 置 位 SYNC LATCH 信 号 此 时 同 步 器 的 延 迟 时 间 t pd 为 一 个 系 统 时 钟 5 ATmega8(L)

51 ATmega8(L) Figure 24. 读 取 软 件 赋 予 的 引 脚 电 平 的 同 步 SYSTEM CLK r6 INSTRUCTIONS xff out PORTx, r6 nop in r7, PINx SYNC LATCH PINxn r7 x xff t pd 5

52 下 面 的 例 子 演 示 了 如 何 置 位 端 口 B 的 引 脚 和, 清 零 引 脚 2 和 3, 以 及 将 引 脚 4 到 7 设 置 为 输 入, 并 且 为 引 脚 6 和 7 设 置 上 拉 电 阻 然 后 将 各 个 引 脚 的 数 据 读 回 来 如 前 面 讨 论 的 那 样, 我 们 在 输 出 和 输 入 语 句 之 间 插 入 了 一 个 nop 指 令 () 汇 编 代 码 例 程... ; 定 义 上 拉 电 阻 和 设 置 高 电 平 输 出 ; 为 端 口 引 脚 定 义 方 向 ldi r6,(<<pb7) (<<PB6) (<<PB) (<<PB) ldi r7,(<<ddb3) (<<DDB2) (<<DDB) (<<DDB) out PORTB,r6 out DDRB,r7 ; 为 了 同 步 插 入 nop 指 令 nop ; 读 取 端 口 引 脚 in r6,pinb... () C 代 码 例 程 unsigned char i;... /* 定 义 上 拉 电 阻 和 设 置 高 电 平 输 出 */ /* 为 端 口 引 脚 定 义 方 向 */ PORTB = (<<PB7) (<<PB6) (<<PB) (<<PB); DDRB = (<<DDB3) (<<DDB2) (<<DDB) (<<DDB); /* 为 了 同 步 插 入 nop 指 令 */ _NOP(); /* 读 取 端 口 引 脚 */ i = PINB;... Note:. 在 汇 编 程 序 里 使 用 了 两 个 暂 存 器 其 目 的 是 为 了 使 整 个 操 作 过 程 的 时 间 最 短 通 过 拉 高 引 脚 6 与 7, 直 到 方 向 位 设 置 正 确, 定 义 位 2 3 为 低, 且 重 新 定 义 为 与 为 强 驱 动 数 字 输 入 使 能 和 睡 眠 模 式 未 连 接 引 脚 的 处 理 如 Figure 22 所 示, 数 字 输 入 信 号 ( 施 密 特 触 发 器 的 输 入 ) 可 以 钳 位 到 地 图 中 的 SLEEP 信 号 由 MCU 休 眠 控 制 器 在 各 种 掉 电 模 式 省 电 模 式 以 及 Standby 模 式 下 设 置, 以 防 止 在 输 入 悬 空 或 模 拟 输 入 电 平 接 近 V CC /2 时 消 耗 太 多 的 电 流 引 脚 作 为 外 部 中 断 输 入 时 SLEEP 信 号 无 效 但 若 外 部 中 断 没 有 使 能, SLEEP 信 号 仍 然 有 效 引 脚 的 第 二 功 能 使 能 时 SLEEP 也 让 位 于 第 二 功 能, 如 P 53 端 口 的 第 二 功 能 里 描 述 的 那 样 如 果 逻 辑 高 电 平 ( ) 出 现 在 一 个 被 设 置 为 " 上 升 沿 下 降 沿 或 任 何 逻 辑 电 平 变 化 都 引 起 中 断 " 的 外 部 异 步 中 断 引 脚 上, 即 使 该 外 部 中 断 未 被 使 能, 但 从 上 述 休 眠 模 式 唤 醒 时, 相 应 的 外 部 中 断 标 志 位 仍 会 被 置 " 这 是 因 为 引 脚 电 平 在 休 眠 模 式 下 被 钳 位 到 " 电 平 唤 醒 过 程 造 成 了 引 脚 电 平 从 " 到 的 变 化 如 果 有 引 脚 未 被 使 用, 建 议 给 这 些 引 脚 赋 予 一 个 确 定 电 平 虽 然 如 上 文 所 述, 在 深 层 休 眠 模 式 下 大 多 数 数 字 输 入 被 禁 用, 但 还 是 需 要 避 免 因 引 脚 没 有 确 定 的 电 平 而 造 成 悬 空 引 脚 在 其 它 数 字 输 入 使 能 模 式 ( 复 位 工 作 模 式 空 闲 模 式 ) 消 耗 电 流 最 简 单 的 保 证 未 用 引 脚 具 有 确 定 电 平 的 方 法 是 使 能 内 部 上 拉 电 阻 但 要 注 意 的 是 复 位 时 上 拉 电 阻 将 被 禁 用 如 果 复 位 时 的 功 耗 也 有 严 格 要 求 则 建 议 使 用 外 部 上 拉 或 下 拉 电 阻 不 52 ATmega8(L)

53 ATmega8(L) 推 荐 直 接 将 未 用 引 脚 与 V CC 或 GND 连 接, 因 为 这 样 可 能 会 在 引 脚 偶 然 作 为 输 出 时 出 现 冲 击 电 流 端 口 的 第 二 功 能 除 了 通 用 数 字 I/O 功 能 之 外, 大 多 数 端 口 引 脚 都 具 有 第 二 功 能 Figure 25 说 明 了 由 Figure 22 简 化 得 出 的 端 口 引 脚 控 制 信 号 是 如 何 被 第 二 功 能 取 代 的 这 些 被 重 载 的 信 号 不 会 出 现 在 所 有 的 端 口 引 脚, 但 本 图 可 以 看 作 是 适 合 于 AVR 系 列 处 理 器 所 有 端 口 引 脚 的 一 般 说 明 () Figure 25. 端 口 的 第 二 功 能 PUOExn PUOVxn PUD DDOExn DDOVxn Q D DDxn PVOExn Q CLR RESET WDx PVOVxn RDx Pxn DIEOExn Q D PORTxn Q CLR WPx DATA BUS DIEOVxn SLEEP RESET RRx SYNCHRONIZER RPx SET D Q L CLR Q D Q PINxn CLR Q clk I/O DIxn AIOxn PUOExn: PUOVxn: DDOExn: DDOVxn: PVOExn: PVOVxn: DIEOExn: DIEOVxn: SLEEP: Pxn PULL-UP OVERRIDE ENABLE Pxn PULL-UP OVERRIDE VALUE Pxn DATA DIRECTION OVERRIDE ENABLE Pxn DATA DIRECTION OVERRIDE VALUE Pxn PORT VALUE OVERRIDE ENABLE Pxn PORT VALUE OVERRIDE VALUE Pxn DIGITAL INPUT-ENABLE OVERRIDE ENABLE Pxn DIGITAL INPUT-ENABLE OVERRIDE VALUE SLEEP CONTROL PUD: PULLUP DISABLE WDx: WRITE DDRx RDx: READ DDRx RRx: READ PORTx REGISTER WPx: WRITE PORTx RPx: READ PORTx PIN clk I/O : I/O CLOCK DIxn: DIGITAL INPUT PIN n ON PORTx AIOxn: ANALOG INPUT/OUTPUT PIN n ON PORTx Note:. WPx, WDx, RRx, RPx 和 RDx 对 于 同 一 个 端 口 的 所 有 引 脚 都 是 一 样 的 clk I/O, SLEEP 和 PUD 则 对 所 有 的 端 口 都 是 一 样 的 其 他 信 号 只 对 某 一 个 引 脚 有 效 Table 2 为 重 载 信 号 的 简 介 表 中 没 有 给 出 Figure 25 的 引 脚 和 端 口 索 引 这 些 重 载 信 号 是 由 第 二 功 能 模 块 产 生 的 53

54 Table 2. 第 二 功 能 重 载 信 号 的 一 般 说 明 信 号 名 称 全 称 说 明 PUOE PUOV DDOE DDOV PVOE PVOV DIEOE DIEOV 上 拉 电 阻 重 载 使 能 上 拉 电 阻 重 载 值 数 据 方 向 重 载 使 能 数 据 方 向 重 载 值 端 口 数 据 重 载 使 能 端 口 数 据 重 载 值 数 字 输 入 使 能 覆 盖 使 能 数 字 输 入 使 能 覆 盖 值 若 此 信 号 置 位, 上 拉 电 阻 使 能 将 受 控 于 PUOV ; 若 此 信 号 清 零, 则 {DDxn, PORTxn, PUD} = b 时 上 拉 电 阻 使 能 若 PUOE 置 位, 则 不 论 DDxn PORTxn 和 PUD 寄 存 器 各 个 位 如 何 配 置, PUOV 置 位 / 清 零 时 上 拉 电 阻 使 能 / 禁 止 如 果 此 信 号 置 位, 则 输 出 驱 动 使 能 由 DDOV 控 制 ; 若 此 信 号 清 零, 输 出 驱 动 使 能 由 DDxn 寄 存 器 控 制 若 DDOE 置 位, 则 DDOV 置 位 / 清 零 时 输 出 驱 动 使 能 / 禁 止, 而 不 管 DDxn 寄 存 器 的 设 置 如 何 如 果 这 个 信 号 置 位, 且 输 出 驱 动 使 能, 端 口 数 据 由 PVOV 控 制 ; 若 PVOE 清 零, 且 输 出 驱 动 使 能, 端 口 数 据 由 寄 存 器 PORTxn 控 制 若 PVOE 置 位, 端 口 值 设 置 为 PVOV, 而 不 管 寄 存 器 PORTxn 如 何 设 置 如 果 这 个 信 号 置 位, 数 字 输 入 使 能 由 DIEOV 控 制 ; 若 DIEOE 清 零, 数 字 输 入 使 能 由 MCU 的 状 态 确 定 ( 正 常 模 式, 睡 眠 模 式 ) 若 DIEOE 置 位, DIEOV 置 位 / 清 零 时 数 字 输 入 使 能 / 禁 止, 而 不 管 MCU 的 状 态 如 何 ( 正 常 模 式, 睡 眠 模 式 ) DI 数 字 输 入 此 信 号 为 第 二 功 能 的 数 字 输 入 在 图 中, 这 个 信 号 与 施 密 特 触 发 相 连, 并 且 在 同 步 器 之 前 除 非 数 字 输 入 用 作 时 钟 源, 否 则 第 二 功 能 模 块 将 使 用 自 己 的 同 步 器 AIO 模 拟 信 号 输 入 / 输 出 模 拟 输 入 / 输 出 信 号 直 接 与 引 脚 接 点 相 连, 而 且 可 以 用 作 双 向 端 口 下 面 的 几 小 节 将 简 单 地 说 明 每 个 端 口 的 第 二 功 能 以 及 相 关 的 信 号 具 体 请 参 考 有 关 第 二 功 能 的 说 明 54 ATmega8(L)

55 ATmega8(L) 特 殊 功 能 I/O 寄 存 器 - SFIOR Bit ACME PUD PSR2 PSR SFIOR 读 / 写 R R R R R/W R/W R/W R/W 初 始 值 Bit 2 PUD: 禁 用 上 拉 电 阻 置 位 时, 即 使 将 寄 存 器 DDxn 和 PORTxn 配 置 为 使 能 上 拉 电 阻 ({DDxn, PORTxn} = b), I/O 端 口 的 上 拉 电 阻 也 被 禁 止 请 参 见 P 49 配 置 引 脚 端 口 B 的 第 二 功 能 端 口 B 的 第 二 功 能 列 于 Table 22 Table 22. 端 口 B 的 第 二 功 能 端 口 引 脚 PB7 PB6 第 二 功 能 XTAL2 ( 芯 片 时 钟 振 荡 器 引 脚 2) TOSC2 ( 定 时 振 荡 器 引 脚 2) XTAL ( 芯 片 时 钟 振 荡 器 引 脚 或 外 部 时 钟 输 入 ) TOSC ( 定 时 振 荡 器 引 脚 ) PB5 SCK (SPI 总 线 的 主 机 时 钟 输 入 ) PB4 MISO (SPI 总 线 的 主 机 输 入 / 从 机 输 出 信 号 ) PB3 PB2 MOSI (SPI 总 线 的 主 机 输 出 / 从 机 输 入 信 号 ) OC2 (T/C2 输 出 比 较 匹 配 输 出 ) SS (SPI 总 线 主 从 选 择 ) OCB (T/C 输 出 比 较 匹 配 B 输 出 ) PB OCA (T/C 输 出 比 较 匹 配 A 输 出 ) PB ICP (T/C 输 入 捕 获 引 脚 ) 引 脚 配 置 如 下 : XTAL2/TOSC2 端 口 B, Bit 7 XTAL2: 芯 片 时 钟 振 荡 器 引 脚 2 使 用 晶 振 或 低 频 晶 振 作 为 时 钟 时 的 引 脚 当 其 作 为 时 钟 引 脚 时, 不 能 作 为 I/O 引 脚 使 用 TOSC2: 定 时 振 荡 器 引 脚 2 当 片 内 标 定 RC 振 荡 器 作 为 芯 片 时 钟 源, 且 异 步 定 时 器 使 能 时, 作 为 时 钟 引 脚 当 ASSR 寄 存 器 的 AS2 位 置 " 使 能 T/C2 异 步 时 钟, PB7 不 与 端 口 连 接, 作 为 振 荡 放 大 器 反 向 输 出 使 用 在 该 模 式 下, 晶 振 与 该 引 脚 连 接, 且 该 引 脚 不 能 作 为 I/O 引 脚 使 用 若 PB7 作 为 时 钟 引 脚 使 用, DDB7 PORTB7 及 PINB7 的 读 出 值 为 XTAL/TOSC 端 口 B, Bit 6 XTAL: 芯 片 时 钟 振 荡 器 引 脚 适 用 于 所 有 芯 片 时 钟 源 ( 片 内 标 定 RC 振 荡 器 除 外 ) 当 其 作 为 时 钟 引 脚 时, 不 能 作 为 I/O 引 脚 使 用 TOSC: 定 时 振 荡 器 引 脚 当 片 内 标 定 RC 振 荡 器 作 为 芯 片 时 钟 源, 且 异 步 定 时 器 使 能 时, 作 为 时 钟 引 脚 当 ASSR 寄 存 器 的 AS2 位 置 " 使 能 T/C2 异 步 时 钟, PB6 不 与 端 口 连 接, 作 为 振 荡 放 大 器 反 向 输 出 使 用 在 该 模 式 下, 晶 振 与 该 引 脚 连 接, 且 该 引 脚 不 能 作 为 I/O 引 脚 使 用 若 PB6 作 为 时 钟 引 脚 使 用, DDB6 PORTB6 及 PINB6 的 读 出 值 为 SCK 端 口 B, Bit 5 55

56 SCK:SPI 通 道 的 主 机 时 钟 输 出, 从 机 时 钟 输 入 端 口 工 作 于 从 机 模 式 时, 不 论 DDB5 设 置 如 何, 这 个 引 脚 都 将 设 置 为 输 入 工 作 于 主 机 模 式 时, 这 个 引 脚 的 数 据 方 向 由 DDB5 控 制 设 置 为 输 入 后, 上 拉 电 阻 由 PORTB5 控 制 MISO 端 口 B, Bit 4 MISO:SPI 通 道 的 主 机 数 据 输 入, 从 机 数 据 输 出 端 口 工 作 于 主 机 模 式 时, 不 论 DDB4 设 置 如 何, 这 个 引 脚 都 将 设 置 为 输 入 工 作 于 从 机 模 式 时, 这 个 引 脚 的 数 据 方 向 由 DDB4 控 制 设 置 为 输 入 后, 上 拉 电 阻 由 PORTB4 控 制 MOSI/OC2 端 口 B, Bit 3 MOSI:SPI 通 道 的 主 机 数 据 输 出, 从 机 数 据 输 入 端 口 工 作 于 从 机 模 式 时, 不 论 DDB3 设 置 如 何, 这 个 引 脚 都 将 设 置 为 输 入 当 工 作 于 主 机 模 式 时, 这 个 引 脚 的 数 据 方 向 由 DDB3 控 制 设 置 为 输 入 后, 上 拉 电 阻 由 PORTB3 控 制 OC2, 输 出 比 较 匹 配 输 出 :PB3 引 脚 作 为 T/C2 比 较 匹 配 的 外 部 输 出 此 时,PB3 引 脚 将 设 置 为 输 出 OC2 引 脚 在 PWM 模 式 定 时 器 功 能 时 作 为 输 出 引 脚 SS/OCB 端 口 B, Bit 2 SS: 从 机 选 择 输 入 工 作 于 从 机 模 式 时, 不 论 DDB2 设 置 如 何, 这 个 引 脚 都 将 设 置 为 输 入 当 此 引 脚 为 低 时 SPI 被 激 活 工 作 于 主 机 模 式 时, 这 个 引 脚 的 数 据 方 向 由 DDB2 控 制 设 置 为 输 入 后, 上 拉 电 阻 由 PORTB2 控 制 OCB, 输 出 比 较 匹 配 输 出 :PB2 引 脚 作 为 T/C 比 较 匹 配 的 外 部 输 出 此 时,PB2 引 脚 将 设 置 为 输 出 OCB 引 脚 在 PWM 模 式 定 时 器 功 能 时 作 为 输 出 引 脚 OCA 端 口 B, Bit OCA, 输 出 比 较 匹 配 输 出 :PB 引 脚 作 为 T/C 比 较 匹 配 A 的 外 部 输 出 此 时,PB 引 脚 将 设 置 为 输 出 OCA 引 脚 在 PWM 模 式 定 时 器 功 能 时 作 为 输 出 引 脚 ICP 端 口 B, Bit ICP 输 入 捕 获 引 脚 :PB 引 脚 作 为 T/C 的 输 入 捕 获 引 脚 Table 23 与 Table 24 给 出 了 端 口 B 第 二 功 能 与 P 53Figure 25 重 载 信 号 的 对 应 关 系 SPI MSTR INPUT 和 SPI SLAVE OUTPUT 构 成 了 MISO 信 号, 而 MOSI 可 以 分 解 为 SPI MSTR OUTPUT 和 SPI SLAVE INPUT Table 23. PB7..PB4 的 第 二 功 能 重 载 信 号 信 号 名 称 PB7/XTAL2/ TOSC2 ()(2) PB6/XTAL/ TOSC () PB5/SCK PB4/MISO PUOE EXT (INTRC + AS2) INTRC + AS2 SPE MSTR SPE MSTR PUO PORTB5 PUD PORTB4 PUD DDOE EXT (INTRC + AS2) INTRC + AS2 SPE MSTR SPE MSTR DDOV PVOE SPE MSTR SPE MSTR PVOV SCK 输 出 SPI 从 机 输 出 DIEOE EXT (INTRC + AS2) INTRC + AS2 DIEOV DI SCK 输 入 SPI 主 机 输 入 AIO 振 荡 器 输 出 振 荡 器 / 时 钟 输 入 56 ATmega8(L)

57 ATmega8(L) Notes:. INTRC 表 示 选 择 片 内 RC 振 荡 器 ( 通 过 设 置 CKSEL 熔 丝 位 ) 2. EXT 表 示 选 择 外 部 RC 振 荡 器 或 外 部 时 钟 ( 通 过 设 置 CKSEL 熔 丝 位 ) Table 24. PB3..PB 的 第 二 功 能 重 载 信 号 信 号 名 称 PB3/MOSI/OC2 PB2/SS/OCB PB/OCA PB/ICP PUOE SPE MSTR SPE MSTR PUO PORTB3 PUD PORTB2 PUD DDOE SPE MSTR SPE MSTR DDOV PVOE SPE MSTR + OC2 使 能 OCB 使 能 OCA 使 能 PVOV SPI 主 机 输 出 + OC2 OCB OCA DIEOE DIEOV DI SPI 从 机 输 入 SPI SS ICP 输 入 AIO 端 口 C 的 第 二 功 能 端 口 C 的 第 二 功 能 示 于 Table 25 Table 25. 端 口 C 的 第 二 功 能 端 口 引 脚 第 二 功 能 PC6 RESET ( 复 位 引 脚 ) PC5 PC4 ADC5 (ADC 输 入 通 道 5) SCL ( 两 线 串 行 总 线 时 钟 线 ) ADC4 (ADC 输 入 通 道 4) SDA ( 两 线 串 行 总 线 数 据 输 入 / 输 出 线 ) PC3 ADC3 (ADC 输 入 通 道 3) PC2 ADC2 (ADC 输 入 通 道 2) PC ADC (ADC 输 入 通 道 ) PC ADC (ADC 输 入 通 道 ) 第 二 功 能 配 置 如 下 : RESET 端 口 C, Bit 6 RESET, 复 位 引 脚 : 当 RSTDISBL 熔 丝 位 编 程, 该 引 脚 作 为 普 通 I/O 引 脚 使 用, 且 将 上 电 复 位 与 掉 电 检 测 复 位 作 为 其 复 位 源 若 RSTDISBL 熔 丝 位 未 编 程, 复 位 电 路 与 该 引 脚 连 接, 该 引 脚 不 能 作 为 普 通 I/O 引 脚 使 用 若 PC6 作 为 时 钟 引 脚 使 用, DDC6 PORTC6 及 PINC6 的 读 出 值 为 SCL/ADC5 端 口 C, Bit 5 SCL, 两 线 串 行 接 口 时 钟 : 当 TWCR 寄 存 器 的 TWEN 位 置 使 能 两 线 串 行 接 口, 引 脚 PC5 未 与 端 口 连 接, 成 为 两 线 串 行 接 口 的 串 行 时 钟 I/O 引 脚 在 该 模 式 下, 在 引 脚 处 使 用 窄 带 滤 波 器 抑 制 低 于 5 ns 的 输 入 信 号, 且 该 引 脚 由 斜 率 限 制 的 开 漏 驱 动 器 驱 动 PC5 还 可 用 作 ADC 输 入 通 道 5 注 意, ADC 输 入 通 道 5 为 数 字 电 源 SDA/ADC4 端 口 C, Bit 4 57

58 SDA, 两 线 串 行 接 口 数 据 : 当 寄 存 器 TWCR 的 TWEN 位 置 使 能 两 线 串 行 接 口, 引 脚 PC 不 与 端 口 相 联, 且 成 为 两 线 串 行 接 口 的 串 行 数 据 I/O 引 脚 在 该 模 式 下, 在 引 脚 处 使 用 窄 带 滤 波 器 抑 制 低 于 5 ns 的 输 入 信 号, 且 该 引 脚 由 斜 率 限 制 的 开 漏 驱 动 器 驱 动 PC4 还 可 用 作 ADC 输 入 通 道 4 注 意, ADC 输 入 通 道 4 为 数 字 电 源 ADC3 端 口 C, Bit 3 PC3 还 可 用 作 ADC 输 入 通 道 3 注 意, ADC 输 入 通 道 3 为 数 字 电 源 ADC2 端 口 C, Bit 2 PC2 还 可 用 作 ADC 输 入 通 道 2 注 意, ADC 输 入 通 道 2 为 数 字 电 源 ADC 端 口 C, Bit PC 还 可 用 作 ADC 输 入 通 道 注 意, ADC 输 入 通 道 为 数 字 电 源 ADC 端 口 C, Bit PC 还 可 用 作 ADC 输 入 通 道 注 意, ADC 输 入 通 道 为 数 字 电 源 Table 26 和 Table 27 给 出 了 端 口 C 第 二 功 能 与 P 53Figure 25 重 载 信 号 的 对 应 关 系 Table 26. PC6..PC4 的 第 二 功 能 重 载 信 号 信 号 名 称 PC6/RESET PC5/SCL/ADC5 PC4/SDA/ADC4 PUOE RSTDISBL TWEN TWEN PUOV PORTC5 PUD PORTC4 PUD DDOE RSTDISBL TWEN TWEN DDOV SCL_OUT SDA_OUT PVOE TWEN TWEN PVOV DIEOE RSTDISBL DIEOV DI AIO 复 位 输 入 ADC5 输 入 / SCL 输 入 ADC4 输 入 / SDA 输 入 () Table 27. PC3..PC 的 第 二 功 能 重 载 信 号 信 号 名 称 PC3/ADC3 PC2/ADC2 PC/ADC PC/ADC PUOE PUOV DDOE DDOV PVOE PVOV DIEOE DIEOV DI AIO ADC3 输 入 ADC2 输 入 ADC 输 入 ADC 输 入 58 ATmega8(L)

59 ATmega8(L) Note:. 使 能 后, 两 线 串 行 接 口 使 能 输 出 引 脚 PC4 与 PC5 的 斜 率 控 制 这 在 图 中 并 未 示 出 另 外, 窄 带 滤 波 器 连 在 图 中 给 出 的 AIO 输 出 端 口 与 TWI 的 数 字 逻 辑 模 块 之 间 端 口 D 的 第 二 功 能 端 口 D 的 第 二 功 能 列 于 Table 28 Table 28. 端 口 D 的 第 二 功 能 端 口 引 脚 第 二 功 能 PD7 AIN ( 模 拟 比 较 器 负 输 入 ) PD6 AIN ( 模 拟 比 较 器 正 输 入 ) PD5 T (T/C 外 部 计 数 器 输 入 ) PD4 XCK (USART 外 部 时 钟 输 入 / 输 出 ) T (T/C 外 部 计 数 器 输 入 ) PD3 INT ( 外 部 中 断 输 入 ) PD2 INT ( 外 部 中 断 输 入 ) PD TXD (USART 输 出 引 脚 ) PD RXD (USART 输 入 引 脚 ) 第 二 功 能 配 置 如 下 : AIN 端 口 D, Bit 7 AIN, 模 拟 比 较 器 负 输 入 配 置 为 输 入 端 口 引 脚 时 关 闭 内 部 上 拉 电 阻, 以 避 免 模 拟 比 较 器 干 扰 数 字 端 口 功 能 AIN 端 口 D, Bit 6 AIN, 模 拟 比 较 器 正 输 入 配 置 为 输 入 端 口 引 脚 时 关 闭 内 部 上 拉 电 阻, 以 避 免 模 拟 比 较 器 干 扰 数 字 端 口 功 能 T 端 口 D, Bit 5 T, T/C 计 数 器 源 XCK/T 端 口 D, Bit 4 XCK, USART 外 部 时 钟 T, T/C 计 数 器 源 INT 端 口 D, Bit 3 INT, 外 部 中 断 源 :PD3 引 脚 作 为 外 部 中 断 源 INT 端 口 D, Bit 2 INT, 外 部 中 断 源 :PD2 引 脚 作 为 外 部 中 断 源 TXD 端 口 D, Bit TXD 是 USART 的 数 据 发 送 引 脚 当 使 能 了 USART 的 发 送 器 后, 这 个 引 脚 被 强 制 设 置 为 输 出, 此 时 DDD 不 起 作 用 RXD 端 口 D, Bit RXD 是 USART 的 数 据 接 收 引 脚 当 使 能 了 USART 的 接 收 器 后, 这 个 引 脚 被 强 制 设 置 为 输 出, 此 时 DDD 不 起 作 用 但 是 PORTD 仍 然 控 制 上 拉 电 阻 Table 29 和 Table 3 将 端 口 D 的 第 二 功 能 与 P 53Figure 25 的 重 载 信 号 关 联 在 了 一 起 59

60 Table 29. PD7..PD4 的 第 二 功 能 信 号 名 称 PD7/AIN PD6/AIN PD5/T PD4/XCK/T PUOE PUO OOE OO PVOE UMSEL PVO XCK 输 出 DIEOE DIEO DI T 输 入 XCK 输 入 / T 输 入 AIO AIN 输 入 AIN 输 入 Table 3. PD3..PD 的 第 二 功 能 信 号 名 称 PD3/INT PD2/INT PD/TXD PD/RXD PUOE TXEN RXEN PUO PORTD PUD OOE TXEN RXEN OO PVOE TXEN PVO TXD DIEOE INT 使 能 INT 使 能 DIEO DI INT 输 入 INT 输 入 RXD AIO 6 ATmega8(L)

61 ATmega8(L) I/O 端 口 寄 存 器 的 说 明 端 口 B 数 据 寄 存 器 - PORTB 端 口 B 数 据 方 向 寄 存 器 - DDRB 端 口 B 输 入 引 脚 地 址 - PINB 端 口 C 数 据 寄 存 器 - PORTC 端 口 C 数 据 方 向 寄 存 器 - DDRC 端 口 C 输 入 引 脚 地 址 - PINC 端 口 D 数 据 寄 存 器 - PORTD 端 口 D 数 据 方 向 寄 存 器 - DDRD 端 口 D 输 入 引 脚 地 址 - PIND Bit PORTB7 PORTB6 PORTB5 PORTB4 PORTB3 PORTB2 PORTB PORTB PORTB 读 / 写 R/W R/W R/W R/W R/W R/W R/W R/W 初 始 值 Bit DDB7 DDB6 DDB5 DDB4 DDB3 DDB2 DDB DDB DDRB 读 / 写 R/W R/W R/W R/W R/W R/W R/W R/W 初 始 值 Bit PINB7 PINB6 PINB5 PINB4 PINB3 PINB2 PINB PINB PINB 读 / 写 R R R R R R R R 初 始 值 N/A N/A N/A N/A N/A N/A N/A N/A Bit PORTC6 PORTC5 PORTC4 PORTC3 PORTC2 PORTC PORTC PORTC 读 / 写 R R/W R/W R/W R/W R/W R/W R/W 初 始 值 Bit DDC6 DDC5 DDC4 DDC3 DDC2 DDC DDC DDRC 读 / 写 R R/W R/W R/W R/W R/W R/W R/W 初 始 值 Bit PINC6 PINC5 PINC4 PINC3 PINC2 PINC PINC PINC 读 / 写 R R R R R R R R 初 始 值 N/A N/A N/A N/A N/A N/A N/A Bit PORTD7 PORTD6 PORTD5 PORTD4 PORTD3 PORTD2 PORTD PORTD PORTD 读 / 写 R/W R/W R/W R/W R/W R/W R/W R/W 初 始 值 Bit DDD7 DDD6 DDD5 DDD4 DDD3 DDD2 DDD DDD DDRD 读 / 写 R/W R/W R/W R/W R/W R/W R/W R/W 初 始 值 Bit PIND7 PIND6 PIND5 PIND4 PIND3 PIND2 PIND PIND PIND 读 / 写 R R R R R R R R 初 始 值 N/A N/A N/A N/A N/A N/A N/A N/A 6

62 外 部 中 断 外 部 中 断 通 过 引 脚 INT INT 触 发 只 要 使 能 了 中 断, 即 使 引 脚 INT.. 配 置 为 输 出, 只 要 电 平 发 生 了 合 适 的 变 化, 中 断 也 会 触 发 这 个 特 点 可 以 用 来 产 生 软 件 中 断 通 过 设 置 MCU 控 制 寄 存 器 MCUCR, 中 断 可 以 由 下 降 沿 上 升 沿, 或 者 是 低 电 平 触 发 当 外 部 中 断 使 能 并 且 配 置 为 电 平 触 发 ( INT/INT), 只 要 引 脚 电 平 为 低, 中 断 就 会 产 生 若 要 求 INT 与 INT 在 信 号 下 降 沿 或 上 升 沿 触 发,I/O 时 钟 必 须 工 作, 如 P 22 时 钟 系 统 及 其 分 布 说 明 的 那 样 INT/INT 的 低 电 平 中 断 检 测 是 异 步 的 也 就 是 说, 这 些 中 断 可 以 用 来 将 器 件 从 睡 眠 模 式 唤 醒 在 睡 眠 过 程 ( 除 了 空 闲 模 式 ) 中 I/O 时 钟 是 停 止 的 通 过 电 平 方 式 触 发 中 断, 从 而 将 MCU 从 掉 电 模 式 唤 醒 时, 要 保 证 电 平 保 持 一 定 的 时 间, 以 降 低 MCU 对 噪 声 的 敏 感 程 度 电 平 以 看 门 狗 的 频 率 检 测 两 次 在 5.V 25 C 的 条 件 下, 看 门 狗 的 标 称 时 钟 周 期 为 µs 看 门 狗 时 钟 受 电 压 的 影 响, 具 体 请 参 考 P 226 电 气 特 性 只 要 在 采 样 过 程 中 出 现 了 合 适 的 电 平, 或 是 信 号 持 续 到 启 动 过 程 的 末 尾, MCU 就 会 唤 醒 启 动 过 程 由 熔 丝 位 SUT 决 定, 如 P 22 系 统 时 钟 及 时 钟 选 项 所 示 若 信 号 出 现 于 两 次 采 样 过 程, 但 在 启 动 过 程 结 束 之 前 就 消 失 了, MCU 仍 将 唤 醒, 但 不 再 会 引 发 中 断 了 要 求 的 电 平 必 须 保 持 足 够 长 的 时 间 以 使 MCU 结 束 唤 醒 过 程, 然 后 触 发 电 平 中 断 MCU 控 制 寄 存 器 - MCUCR MCU 控 制 寄 存 器 包 含 中 断 触 发 控 制 位 与 通 用 MCU 功 能 Bit SE SM2 SM SM ISC ISC ISC ISC MCUCR 读 / 写 R/W R/W R/W R/W R/W R/W R/W R/W 初 始 值 Bit 3, 2 ISC, ISC: 中 断 触 发 方 式 控 制 Bit 与 Bit 如 果 SREG 寄 存 器 的 I 标 志 位 和 相 应 的 中 断 屏 蔽 位 置 位 的 话, 外 部 中 断 由 引 脚 INT 激 发 触 发 方 式 如 Table 3 所 示 在 检 测 边 沿 前 MCU 首 先 采 样 INT 引 脚 上 的 电 平 如 果 选 择 了 边 沿 触 发 方 式 或 电 平 变 化 触 发 方 式, 那 么 持 续 时 间 大 于 一 个 时 钟 周 期 的 脉 冲 将 触 发 中 断, 过 短 的 脉 冲 则 不 能 保 证 触 发 中 断 如 果 选 择 低 电 平 触 发 方 式, 那 么 低 电 平 必 须 保 持 到 当 前 指 令 执 行 完 成 Table 3. 中 断 触 发 方 式 控 制 ISC ISC 说 明 INT 为 低 电 平 时 产 生 中 断 请 求 INT 引 脚 上 任 意 的 逻 辑 电 平 变 化 都 将 引 发 中 断 INT 的 下 降 沿 产 生 中 断 请 求 INT 的 上 升 沿 产 生 中 断 请 求 62 ATmega8(L)

63 ATmega8(L) Bit, ISC, ISC: 中 断 触 发 方 式 控 制 Bit 与 Bit 如 果 SREG 寄 存 器 的 I 标 志 位 和 相 应 的 中 断 屏 蔽 位 置 位 的 话 触 发 方 式 如 Table 32 所 示, 外 部 中 断 由 引 脚 INT 激 发 在 检 测 边 沿 前 MCU 首 先 采 样 INT 引 脚 上 的 电 平 如 果 选 择 了 边 沿 触 发 方 式 或 电 平 变 化 触 发 方 式, 那 么 持 续 时 间 大 于 一 个 时 钟 周 期 的 脉 冲 将 触 发 中 断, 过 短 的 脉 冲 则 不 能 保 证 触 发 中 断 如 果 选 择 低 电 平 触 发 方 式, 那 么 低 电 平 必 须 保 持 到 当 前 指 令 执 行 完 成 Table 32. 中 断 触 发 方 式 控 制 ISC ISC 说 明 INT 为 低 电 平 时 产 生 中 断 请 求 INT 引 脚 上 任 意 的 逻 辑 电 平 变 化 都 将 引 发 中 断 INT 的 下 降 沿 产 生 中 断 请 求 INT 的 上 升 沿 产 生 中 断 请 求 通 用 中 断 控 制 寄 存 器 - GICR Bit INT INT IVSEL IVCE GICR 读 / 写 R/W R/W R R R R R/W R/W 初 始 值 Bit 7 INT: 外 部 中 断 请 求 使 能 当 INT 为 ', 而 且 状 态 寄 存 器 SREG 的 I 标 志 置 位, 相 应 的 外 部 引 脚 中 断 就 使 能 了 MCU 通 用 控 制 寄 存 器 MCUCR 的 中 断 敏 感 电 平 控 制 位 / (ISC 与 ISC) 决 定 中 断 是 由 上 升 沿 下 降 沿, 还 是 INT 电 平 触 发 的 只 要 使 能, 即 使 INT 引 脚 被 配 置 为 输 出, 只 要 引 脚 电 平 发 生 了 相 应 的 变 化, 中 断 将 产 生 Bit 6 INT: 外 部 中 断 请 求 使 能 当 INT 为 ', 而 且 状 态 寄 存 器 SREG 的 I 标 志 置 位, 相 应 的 外 部 引 脚 中 断 就 使 能 了 MCU 通 用 控 制 寄 存 器 MCUCR 的 中 断 敏 感 电 平 控 制 位 / (ISC 与 ISC) 决 定 中 断 是 由 上 升 沿 下 降 沿, 还 是 INT 电 平 触 发 的 只 要 使 能, 即 使 INT 引 脚 被 配 置 为 输 出, 只 要 引 脚 电 平 发 生 了 相 应 的 变 化, 中 断 将 产 生 63

64 通 用 中 断 标 志 寄 存 器 - GIFR Bit INTF INTF GIFR 读 / 写 R/W R/W R R R R R R 初 始 值 Bit 7 INTF: 外 部 中 断 标 志 INT 引 脚 电 平 发 生 跳 变 时 触 发 中 断 请 求, 并 置 位 相 应 的 中 断 标 志 INTF 如 果 SREG 的 位 I 以 及 GICR 寄 存 器 相 应 的 中 断 使 能 位 INT 为,MCU 即 跳 转 到 相 应 的 中 断 向 量 进 入 中 断 服 务 程 序 之 后 该 标 志 自 动 清 零 此 外, 标 志 位 也 可 以 通 过 写 入 来 清 零 Bit 6 INTF: 外 部 中 断 标 志 INT 引 脚 电 平 发 生 跳 变 时 触 发 中 断 请 求, 并 置 位 相 应 的 中 断 标 志 INTF 如 果 SREG 的 位 I 以 及 GICR 寄 存 器 相 应 的 中 断 使 能 位 INT 为,MCU 即 跳 转 到 相 应 的 中 断 向 量 进 入 中 断 服 务 程 序 之 后 该 标 志 自 动 清 零 此 外, 标 志 位 也 可 以 通 过 写 入 来 清 零 当 INT 配 置 为 电 平 中 断 时, 该 标 志 会 被 清 零 64 ATmega8(L)

65 ATmega8(L) 8 位 定 时 器 / 计 时 器 T/C 是 一 个 通 用 的 单 通 道 8 位 定 时 器 / 计 数 器 模 块 其 主 要 特 点 如 下 : 单 通 道 计 数 器 频 率 发 生 器 外 部 事 件 计 数 器 位 的 时 钟 预 分 频 器 综 述 Figure 26 为 8 位 定 时 器 / 计 数 器 的 简 化 框 图 实 际 引 脚 排 列 请 参 考 P 2 引 脚 配 置 CPU 可 以 访 问 的 I/O 寄 存 器, 包 括 位 和 引 脚, 以 粗 体 显 示 I/O 寄 存 器 和 位 的 位 置 列 于 P 68 8 位 定 时 器 / 计 数 器 寄 存 器 的 说 明 Figure 位 T/C 方 框 图 TCCRn DATA BUS count Control Logic clk Tn Clock Select Edge Detector TOVn (Int.Req.) Tn Timer/Counter TCNTn = xff ( From Prescaler ) 寄 存 器 定 义 T/C(TCNT) 和 输 出 比 较 寄 存 器 (OCR) 为 8 位 寄 存 器 中 断 请 求 ( 图 中 简 写 为 Int.Req. ) 信 号 在 定 时 器 中 断 标 志 寄 存 器 TIFR 都 有 反 映 所 有 中 断 都 可 以 通 过 定 时 器 中 断 屏 蔽 寄 存 器 TIMSK 单 独 进 行 屏 蔽 由 于 TIFR 和 TIMSK 寄 存 器 是 与 其 他 定 时 器 单 元 共 享, 因 此 图 中 没 有 给 出 T/C 可 以 通 过 预 分 频 器 由 内 部 时 钟 源 驱 动, 或 者 是 通 过 T 引 脚 的 外 部 时 钟 源 来 驱 动 时 钟 选 择 逻 辑 模 块 控 制 使 用 哪 一 个 时 钟 源 与 什 么 边 沿 来 增 加 ( 或 降 低 )T/C 的 数 值 如 果 没 有 选 择 时 钟 源 T/C 就 不 工 作 时 钟 选 择 模 块 的 输 出 定 义 为 定 时 器 时 钟 clk T 本 文 的 许 多 寄 存 器 及 其 各 个 位 以 通 用 的 格 式 表 示 小 写 的 n 取 代 了 T/C 的 序 号, 在 此 即 为 但 是 在 写 程 序 时 要 使 用 精 确 的 格 式, 例 如 使 用 TCNT 来 访 问 T/C 计 数 器 值, 等 等 Table 33 的 定 义 适 用 于 全 文 Table 33. 定 义 BOTTOM 计 数 器 计 到 x 时 即 达 到 BOTTOM MAX 计 数 器 计 到 xff ( 十 进 制 的 255) 时 即 达 到 MAX T/C 的 时 钟 源 T/C 可 以 由 内 部 同 步 时 钟 或 外 部 异 步 时 钟 驱 动 时 钟 源 是 由 时 钟 选 择 逻 辑 决 定 的, 而 时 钟 选 择 逻 辑 是 由 位 于 T/C 控 制 寄 存 器 TCCR 的 时 钟 选 择 位 CS2: 控 制 的 P 7 T/C 与 T/C 的 预 分 频 器 对 时 钟 源 与 预 分 频 有 详 尽 的 描 述 计 数 器 单 元 8 位 T/C 的 主 要 部 分 为 可 编 程 的 双 向 计 数 单 元 Figure 27 即 为 计 数 器 和 周 边 电 路 的 框 图 65

66 Figure 27. 计 数 器 单 元 方 框 图 DATA BUS TOVn (Int. Req.) Clock Select TCNTn count Control Logic clk Tn Edge Detector Tn max ( From Prescaler ) 信 号 说 明 ( 内 部 信 号 ): count 使 TCNT 加 clk Tn T/C 的 时 钟, clk T max 表 示 TCNT 已 经 达 到 了 最 大 值 计 数 器 针 对 每 一 个 clk T 实 现 加 一 操 作 clk T 可 以 由 内 部 或 外 部 时 钟 源 产 生, 具 体 由 时 钟 选 择 位 CS2: 确 定 没 有 选 择 时 钟 源 时 (CS2: = ) 定 时 器 即 停 止 但 是 不 管 有 没 有 clk T,CPU 都 可 以 访 问 TCNT CPU 写 操 作 比 计 数 器 其 他 操 作 ( 如 清 零 加 减 操 作 ) 的 优 先 级 高 操 作 计 数 方 向 始 终 向 上 ( 增 加 ), 且 没 有 计 数 器 清 除 操 作 当 计 数 器 值 超 过 最 大 8 位 值 (MAX = xff) 时, 重 新 由 x 开 始 计 数 在 正 常 工 作 时, 当 TCNT 变 为 " 时, T/C 溢 出 标 志 (TOV) 置 位 此 时 TOV 象 第 九 位, 只 会 置 位, 不 会 清 零 TOV 标 志 可 用 定 时 器 溢 出 中 断 清 零, 同 时 定 时 器 的 分 辨 率 可 通 过 软 件 提 高 可 随 时 写 入 新 的 计 数 器 值 66 ATmega8(L)

67 ATmega8(L) T/C 时 序 图 T/C 是 同 步 电 路, 因 此 其 时 钟 clk T 可 以 表 示 为 时 钟 使 能 信 号, 如 下 图 所 示 图 中 还 说 明 了 中 断 标 志 设 置 的 时 间 Figure 28 给 出 了 基 本 的 T/C 工 作 时 序, 以 及 接 近 MAX 时 的 记 数 序 列 Figure 28. T/C 时 序 图, 无 预 分 频 器 clk I/O clk Tn (clk I/O /) TCNTn MAX - MAX BOTTOM BOTTOM + TOVn Figure 29 所 示 为 相 同 的 计 时 数 据, 但 有 预 分 频 Figure 29. T/C 时 序 图, 预 分 频 器 为 f clk_i/o /8 clk I/O clk Tn (clk I/O /8) TCNTn MAX - MAX BOTTOM BOTTOM + TOVn 67

68 8 位 定 时 器 / 计 数 器 寄 存 器 的 说 明 T/C 控 制 寄 存 器 - TCCR Bit CS2 CS CS TCCR 读 / 写 R R R R R R/W R/W R/W 初 始 值 Bit 2: CS2:: 时 钟 选 择 用 于 选 择 T/C 的 时 钟 源 Table 34. 时 钟 选 择 位 说 明 CS2 CS CS 说 明 无 时 钟, T/C 不 工 作 clk I/O / ( 没 有 预 分 频 ) clk I/O /8 ( 来 自 预 分 频 器 ) clk I/O /64 ( 来 自 预 分 频 器 ) clk I/O /256 ( 来 自 预 分 频 器 ) clk I/O /24 ( 来 自 预 分 频 器 ) 时 钟 由 T 引 脚 输 入, 下 降 沿 触 发 时 钟 由 T 引 脚 输 入, 上 升 沿 触 发 如 果 T/C 使 用 外 部 时 钟, 即 使 T 被 配 置 为 输 出, 其 上 的 电 平 变 化 仍 然 会 驱 动 记 数 器 利 用 这 一 特 性 可 通 过 软 件 控 制 记 数 T/C 寄 存 器 - TCNT Bit TCNT[7:] 读 / 写 R/W R/W R/W R/W R/W R/W R/W R/W 初 始 值 通 过 T/C 寄 存 器 可 以 直 接 对 计 数 器 的 8 位 数 据 进 行 读 写 访 问 TCNT T/C 中 断 屏 蔽 寄 存 器 - TIMSK Bit OCIE2 TOIE2 TICIE OCIEA OCIEB TOIE TOIE TIMSK 读 / 写 R/W R/W R/W R/W R/W R/W R/W R/W 初 始 值 Bit TOIE: T/C 溢 出 中 断 使 能 当 TOIE 和 状 态 寄 存 器 的 全 局 中 断 使 能 位 I 都 为 时,T/C 的 溢 出 中 断 使 能 当 T/C 发 生 溢 出, 即 TIFR 中 的 TOV 位 置 位 时, 中 断 服 务 程 序 得 以 执 行 68 ATmega8(L)

69 ATmega8(L) T/C 中 断 标 志 寄 存 器 - TIFR Bit OCF2 TOV2 ICF OCFA OCFB TOV TOV TIFR 读 / 写 R/W R/W R/W R/W R/W R/W R/W R/W 初 始 值 Bit TOV:T/C 溢 出 标 志 当 T/C 溢 出 时, TOV 置 位 执 行 相 应 的 中 断 服 务 程 序 时 此 位 硬 件 清 零 此 外, TOV 也 可 以 通 过 写 来 清 零 当 SREG 中 的 位 I TOIE(T/C 溢 出 中 断 使 能 ) 和 TOV 都 置 位 时, 执 行 中 断 服 务 程 序 69

70 T/C 与 T/C 的 预 分 频 器 内 部 时 钟 源 分 频 器 复 位 外 部 时 钟 源 T/C 与 T/C 共 用 一 个 预 分 频 模 块, 但 它 们 可 以 有 不 同 的 分 频 设 置 下 述 内 容 适 用 于 T/C 与 T/C 当 CSn2: = 时, 系 统 内 部 时 钟 直 接 作 为 T/C 的 时 钟 源, 这 也 是 T/C 最 高 频 率 的 时 钟 源 f CLK_I/O, 与 系 统 时 钟 频 率 相 同 预 分 频 器 可 以 输 出 4 个 不 同 的 时 钟 信 号 f CLK_I/O /8 f CLK_I/O /64 f CLK_I/O /256 或 f CLK_I/O /24 预 分 频 器 是 独 立 运 行 的 也 就 是 说, 其 操 作 独 立 于 T/C 的 时 钟 选 择 逻 辑, 且 它 由 T/C 与 T/C 共 享 由 于 预 分 频 器 不 受 T/C 时 钟 选 择 的 影 响, 预 分 频 器 的 状 态 需 要 包 含 预 分 频 时 钟 被 用 到 何 处 这 样 的 信 息 一 个 典 型 的 例 子 发 生 在 定 时 器 使 能 并 由 预 分 频 器 驱 动 (6 > CSn2: > ) 的 时 候 : 从 计 时 器 使 能 到 第 一 次 开 始 计 数 可 能 花 费 到 N+ 个 系 统 时 钟 周 期, 其 中 N 等 于 预 分 频 因 子 ( 或 24) 通 过 复 位 预 分 频 器 来 同 步 T/C 与 程 序 运 行 是 可 能 的 但 是 必 须 注 意 另 一 个 T/C 是 否 也 在 使 用 这 一 预 分 频 器, 因 为 预 分 频 器 复 位 将 会 影 响 所 有 与 其 连 接 的 T/C 由 T/T 引 脚 提 供 的 外 部 时 钟 源 可 以 用 作 T/C 时 钟 clk T /clk T 引 脚 同 步 逻 辑 在 每 个 系 统 时 钟 周 期 对 引 脚 T/T 进 行 采 样 然 后 将 同 步 ( 采 样 ) 信 号 送 到 边 沿 检 测 器 Figure 3 给 出 了 T/T 同 步 采 样 与 边 沿 检 测 逻 辑 的 功 能 等 效 方 框 图 寄 存 器 由 内 部 系 统 时 钟 clk I/O 的 上 跳 沿 驱 动 当 内 部 时 钟 为 高 时, 锁 存 器 可 以 看 作 时 透 明 的 CSn2: = 7 时 边 沿 检 测 器 检 测 到 一 个 正 跳 变 产 生 一 个 clk T 脉 冲 ; CSn2: = 6 时 一 个 负 跳 变 就 产 生 一 个 clk T 脉 冲 Figure 3. T/T 引 脚 采 样 Tn D LE Q D Q D Q Tn_sync (To Clock Select Logic) clk I/O Synchronization Edge Detector 由 于 引 脚 上 同 步 与 边 沿 监 测 电 路 的 存 在, 引 脚 T/T 上 的 电 平 变 化 需 要 延 时 2.5 到 3.5 个 系 统 时 钟 周 期 才 能 使 计 数 器 进 行 更 新 禁 止 或 使 能 时 钟 输 入 必 须 在 T/T 保 持 稳 定 至 少 一 个 系 统 时 钟 周 期 后 才 能 进 行, 否 则 有 产 生 错 误 T/C 时 钟 脉 冲 的 危 险 为 保 证 正 确 的 采 样, 外 部 时 钟 脉 冲 宽 度 必 须 大 于 一 个 系 统 时 钟 周 期 在 占 空 比 为 5% 时 外 部 时 钟 频 率 必 须 小 于 系 统 时 钟 频 率 的 一 半 (f ExtClk < f clk_i/o /2) 由 于 边 沿 检 测 器 使 用 的 是 采 样 这 一 方 法, 它 能 检 测 到 的 外 部 时 钟 最 多 是 其 采 样 频 率 的 一 半 (Nyquist 采 样 定 理 ) 然 而, 由 于 振 荡 器 ( 晶 体 谐 振 器 与 电 容 ) 本 身 误 差 带 来 的 系 统 时 钟 频 率 及 占 空 比 的 差 异, 建 议 外 部 时 钟 的 最 高 频 率 不 要 大 于 f clk_i/o /2.5 外 部 时 钟 源 不 送 入 预 分 频 器 7 ATmega8(L)

71 ATmega8(L) () Figure 3. T/C 与 T/C 预 分 频 器 clk I/O Clear PSR T T Synchronization Synchronization clk T clk T Note:. 输 入 引 脚 (T/T) 的 同 步 逻 辑 见 Figure 3 特 殊 功 能 IO 寄 存 器 - SFIOR Bit ACME PUD PSR2 PSR SFIOR 读 / 写 R R R R R/W R/W R/W R/W 初 始 值 Bit PSR:T/C 与 T/C 预 分 频 器 复 位 置 位 时 T/C 与 T/C 的 预 分 频 器 复 位 操 作 完 成 后 这 一 位 由 硬 件 自 动 清 零 写 入 零 时 无 效 T/C 与 T/C 共 用 同 一 预 分 频 器, 且 预 分 频 器 复 位 对 两 个 定 时 器 均 有 影 响 该 位 总 是 读 为 7

72 6 位 定 时 器 / 计 数 器 6 位 的 T/C 可 以 实 现 精 确 的 程 序 定 时 ( 事 件 管 理 ) 波 形 产 生 和 信 号 测 量 其 主 要 特 点 如 下 真 正 的 6 位 设 计 ( 即 允 许 6 位 的 PWM) 2 个 独 立 的 输 出 比 较 单 元 双 缓 冲 的 输 出 比 较 寄 存 器 一 个 输 入 捕 捉 单 元 输 入 捕 捉 噪 声 抑 制 器 比 较 匹 配 发 生 时 清 除 寄 存 器 ( 自 动 重 载 ) 无 干 扰 脉 冲, 相 位 正 确 的 PWM 可 变 的 PWM 周 期 频 率 发 生 器 外 部 事 件 计 数 器 4 个 独 立 的 中 断 源 (TOV OCFA OCFB 与 ICF) 综 述 本 节 大 多 数 的 寄 存 器 和 位 定 义 以 通 用 的 方 式 表 示 小 写 n 表 示 T/C 序 号, 小 写 x 表 示 输 出 比 较 通 道 号 但 是 在 写 程 序 时 要 用 完 整 的 精 确 的 名 称 如 用 TCNT 表 示 访 问 T/C 计 数 器 值 等 6 位 T/C 的 简 化 框 图 示 于 Figure 32 I/O 引 脚 的 实 际 位 置 请 参 见 P 2 引 脚 配 置 CPU 可 访 问 的 I/O 寄 存 器, 包 括 I/O 位 和 I/O 引 脚 以 粗 体 表 示 器 件 具 体 I/O 寄 存 器 与 位 定 位 见 P 89 6 位 定 时 器 / 计 数 器 寄 存 器 的 说 明 () Figure 位 T/C 框 图 Count Clear Direction Control Logic clk Tn TOVn (Int. Req.) Clock Select Edge Detector Tn TOP BOTTOM Timer/Counter TCNTn = = ( From Prescaler ) OCFnA (Int. Req.) = Waveform Generation OCnA OCRnA DATA BUS = OCRnB Fixed TOP Values ICFn (Int.Req.) OCFnB (Int.Req.) Waveform Generation OCnB ( From Analog Comparator Ouput ) ICRn Edge Detector Noise Canceler ICPn TCCRnA TCCRnB Note:. 请 参 考 P 2 引 脚 配 置,P 55Table 22 及 P 59Table 28 T/C 中 的 引 脚 定 义 72 ATmega8(L)

73 ATmega8(L) 寄 存 器 定 时 器 / 计 数 器 TCNT 输 出 比 较 寄 存 器 OCRA/B 与 输 入 捕 捉 寄 存 器 ICR 均 为 6 位 寄 存 器 访 问 6 位 寄 存 器 必 须 通 过 特 殊 的 步 骤, 详 见 P 74 访 问 6 位 寄 存 器 T/C 控 制 寄 存 器 TCCRA/B 为 8 位 寄 存 器, 没 有 CPU 访 问 的 限 制 中 断 请 求 ( 图 中 简 写 为 Int.Req.) 信 号 在 中 断 标 志 寄 存 器 TIFR 都 有 反 映 所 有 中 断 都 可 以 由 中 断 屏 蔽 寄 存 器 TIMSK 单 独 控 制 图 中 未 给 出 TIFR 与 TIMSK T/C 可 由 内 部 时 钟 通 过 预 分 频 器 或 通 过 由 T 引 脚 输 入 的 外 部 时 钟 驱 动 引 发 T/C 数 值 增 加 ( 或 减 少 ) 的 时 钟 源 及 其 有 效 沿 由 时 钟 选 择 逻 辑 模 块 控 制 没 有 选 择 时 钟 源 时 T/C 处 于 停 止 状 态 时 钟 选 择 逻 辑 模 块 的 输 出 称 为 clk T 双 缓 冲 输 出 比 较 寄 存 器 OCRA/B 一 直 与 T/C 的 值 做 比 较 波 形 发 生 器 用 比 较 结 果 产 生 PWM 或 在 输 出 比 较 引 脚 OCA/B 输 出 可 变 频 率 的 信 号 参 见 P 79 输 出 比 较 单 元 比 较 匹 配 结 果 还 可 置 位 比 较 匹 配 标 志 OCFA/B, 用 来 产 生 输 出 比 较 中 断 请 求 当 输 入 捕 捉 引 脚 ICP 或 模 拟 比 较 器 输 入 引 脚 ( 见 P 8 模 拟 比 较 器 ) 有 输 入 捕 捉 事 件 产 生 ( 边 沿 触 发 ) 时, 当 时 的 T/C 值 被 传 输 到 输 入 捕 捉 寄 存 器 保 存 起 来 输 入 捕 捉 单 元 包 括 一 个 数 字 滤 波 单 元 ( 噪 声 消 除 器 ) 以 降 低 噪 声 干 扰 在 某 些 操 作 模 式 下, TOP 值 或 T/C 的 最 大 值 可 由 OCRA 寄 存 器 ICR 寄 存 器, 或 一 些 固 定 数 据 来 定 义 在 PWM 模 式 下 用 OCRA 作 为 TOP 值 时, OCRA 寄 存 器 不 能 用 作 PWM 输 出 但 此 时 OCRA 是 双 向 缓 冲 的, TOP 值 可 在 运 行 过 程 中 得 到 改 变 当 需 要 一 个 固 定 的 TOP 值 时 可 以 使 用 ICR 寄 存 器, 从 而 释 放 OCRA 来 用 作 PWM 的 输 出 定 义 以 下 定 义 适 用 于 本 节 : Table 35. 定 义 BOTTOM 计 数 器 计 到 x 时 即 达 到 BOTTOM MAX TOP 计 数 器 计 到 xffff ( 十 进 制 的 65535) 时 即 达 到 MAX 计 数 器 计 到 计 数 序 列 的 最 大 值 时 即 达 到 TOP TOP 值 可 以 为 固 定 值 xff xff 或 x3ff, 或 是 存 储 于 寄 存 器 OCRA 或 ICR 里 的 数 值, 具 体 有 赖 于 工 作 模 式 兼 容 性 6 位 T/C 是 从 以 前 版 本 的 6 位 AVRT/C 改 进 和 升 级 得 来 的 它 在 如 下 方 面 与 以 前 的 版 本 完 全 兼 容 : 包 括 定 时 器 中 断 寄 存 器 在 内 的 所 有 6 位 T/C 相 关 的 I/O 寄 存 器 的 地 址 包 括 定 时 器 中 断 寄 存 器 在 内 的 所 有 6 位 T/C 相 关 的 寄 存 器 位 定 位 中 断 向 量 下 列 控 制 位 名 称 已 改, 但 具 有 相 同 的 功 能 与 寄 存 器 单 元 : PWM 改 为 WGM PWM 改 为 WGM CTC 改 为 WGM2 6 位 T/C 控 制 寄 存 器 中 添 加 了 下 列 位 : TCCRA 中 加 入 FOCA 与 FOCB TCCRB 中 加 入 WGM3 6 位 T/C 的 一 些 改 进 在 某 些 特 殊 情 况 下 将 影 响 兼 容 性 73

74 访 问 6 位 寄 存 器 TCNT OCRA/B 与 ICR 是 AVR CPU 通 过 8 位 数 据 总 线 可 以 访 问 的 6 位 寄 存 器 读 写 6 位 寄 存 器 需 要 两 次 操 作 每 个 6 位 计 时 器 都 有 一 个 8 位 临 时 寄 存 器 用 来 存 放 其 高 8 位 数 据 每 个 6 位 定 时 器 所 属 的 6 位 寄 存 器 共 用 相 同 的 临 时 寄 存 器 访 问 低 字 节 会 触 发 6 位 读 或 写 操 作 当 CPU 写 入 数 据 到 6 位 寄 存 器 的 低 字 节 时, 写 入 的 8 位 数 据 与 存 放 在 临 时 寄 存 器 中 的 高 8 位 数 据 组 成 一 个 6 位 数 据, 同 步 写 入 到 6 位 寄 存 器 中 当 CPU 读 取 6 位 寄 存 器 的 低 字 节 时, 高 字 节 内 容 在 读 低 字 节 操 作 的 同 时 被 放 置 于 临 时 辅 助 寄 存 器 中 并 非 所 有 的 6 位 访 问 都 涉 及 临 时 寄 存 器 对 OCRA/B 寄 存 器 的 读 操 作 就 不 涉 及 临 时 寄 存 器 写 6 位 寄 存 器 时, 应 先 写 入 该 寄 存 器 的 高 位 字 节 而 读 6 位 寄 存 器 时 应 先 读 取 该 寄 存 器 的 低 位 字 节 下 面 的 例 程 说 明 了 如 何 访 问 6 位 定 时 器 寄 存 器 前 提 是 假 设 不 会 发 生 更 新 临 时 寄 存 器 内 容 的 中 断 同 样 的 原 则 也 适 用 于 对 OCRA/B 与 ICR 寄 存 器 的 访 问 使 用 C 语 言 时, 编 译 器 会 自 动 处 理 6 位 操 作 () 汇 编 代 码 例 程... ; 设 置 TCNT 为 xff ldi r7,x ldi r6,xff out TCNTH,r7 out TCNTL,r6 ; 将 TCNT 读 入 r7:r6 in r6,tcntl in r7,tcnth... C 代 码 例 程 () unsigned int i;... /* 设 置 TCNT 为 xff */ TCNT = xff; /* 将 TCNT 读 入 i */ i = TCNT;... Note:. 本 代 码 假 定 已 经 包 含 了 合 适 的 头 文 件 汇 编 代 码 例 程 中 TCNT 的 返 回 值 在 r7:r6 寄 存 器 对 中 注 意 到 6 位 寄 存 器 的 访 问 是 一 个 基 本 操 作 是 非 常 重 要 的 在 对 6 位 寄 存 器 操 作 时, 最 好 首 先 屏 蔽 中 断 响 应, 防 止 在 主 程 序 读 写 6 位 寄 存 器 的 两 条 指 令 之 间 发 生 这 样 的 中 断 : 它 也 访 问 同 样 的 寄 存 器 或 其 他 的 6 位 寄 存 器, 从 而 更 改 了 临 时 寄 存 器 如 果 这 种 情 况 发 生, 那 么 中 断 返 回 后 临 时 寄 存 器 中 的 内 容 已 经 改 变, 造 成 主 程 序 对 6 位 寄 存 器 的 读 写 错 误 74 ATmega8(L)

75 ATmega8(L) 下 面 的 例 程 给 出 了 读 取 TCNT 寄 存 器 内 容 的 基 本 操 作 对 OCRA/B 或 ICR 的 读 操 作 可 以 使 用 相 同 的 方 法 () 汇 编 代 码 例 程 TIM6_ReadTCNT: ; 保 存 全 局 中 断 标 志 in r8,sreg ; 禁 用 中 断 cli ; 将 TCNT 读 入 r7:r6 in r6,tcntl in r7,tcnth ; 恢 复 全 局 中 断 标 志 out SREG,r8 ret () C 代 码 例 程 unsigned int TIM6_ReadTCNT( void ) { unsigned char sreg; unsigned int i; /* 保 存 全 局 中 断 标 志 */ sreg = SREG; /* 禁 用 中 断 */ _CLI(); /* 将 TCNT 读 入 i */ i = TCNT; /* 恢 复 全 局 中 断 标 志 */ SREG = sreg; return i; } Note:. 本 代 码 假 定 已 经 包 含 了 合 适 的 头 文 件 汇 编 代 码 例 程 中 TCNT 的 返 回 值 在 r7:r6 寄 存 器 对 中 75

76 下 面 的 例 程 给 出 了 写 TCNT 寄 存 器 的 基 本 操 作 对 OCRA/B 或 ICR 的 写 操 作 可 以 使 用 相 同 的 方 法 () 汇 编 代 码 例 程 TIM6_WriteTCNT: ; 保 存 全 局 中 断 标 志 in r8,sreg ; 禁 用 中 断 cli ; 设 置 TCNT 到 r7:r6 out TCNTH,r7 out TCNTL,r6 ; 恢 复 全 局 中 断 标 志 out SREG,r8 ret () C 代 码 例 程 void TIM6_WriteTCNT ( unsigned int i ) { unsigned char sreg; unsigned int i; /* 保 存 全 局 中 断 标 志 */ sreg = SREG; /* 禁 用 中 断 */ _CLI(); /* 设 置 TCNT 到 i */ TCNT = i; /* 恢 复 全 局 中 断 标 志 */ SREG = sreg; } Note:. 本 代 码 假 定 已 经 包 含 了 合 适 的 头 文 件 汇 编 代 码 例 程 中 r7:r6 寄 存 器 对 保 存 的 是 TCNT 的 写 入 数 据 临 时 高 字 节 寄 存 器 的 重 用 如 果 对 不 只 一 个 6 位 寄 存 器 写 入 数 据 而 且 所 有 的 寄 存 器 高 字 节 相 同, 则 只 需 写 一 次 高 字 节 前 面 讲 到 的 基 本 操 作 在 这 种 情 况 下 同 样 适 用 76 ATmega8(L)

77 ATmega8(L) T/C 时 钟 源 计 数 器 单 元 T/C 时 钟 源 可 以 来 自 内 部, 也 可 来 自 外 部, 由 位 于 T/C 控 制 寄 存 器 B(TCCRB) 的 时 钟 选 择 位 (CS2:) 决 定 时 钟 源 与 预 分 频 器 的 描 述 见 P 7 T/C 与 T/C 的 预 分 频 器 6 位 T/C 的 主 要 部 分 是 可 编 程 的 6 位 双 向 计 数 器 单 元 Figure 33 给 出 了 计 数 器 与 其 外 围 电 路 方 框 图 Figure 33. 计 数 器 单 元 方 框 图 DATA BUS (8-bit) TOVn (Int. Req.) TEMP (8-bit) Clock Select TCNTnH (8-bit) TCNTnL (8-bit) TCNTn (6-bit Counter) count clear direction Control Logic clk Tn Edge Detector Tn ( From Prescaler ) TOP BOTTOM 信 号 描 述 ( 内 部 信 号 ): Count TCNT 加 或 减 Direction 确 定 是 加 操 作 还 是 减 操 作 Clear TCNT 清 零 clk T 定 时 器 / 计 数 器 时 钟 信 号 TOP 表 示 TCNT 计 数 器 到 达 最 大 值 BOTTOM 表 示 TCNT 计 数 器 到 达 最 小 值 () 6 位 计 数 器 映 射 到 两 个 8 位 I/O 存 储 器 位 置 :TCNTH 为 高 8 位,TCNTL 为 低 8 位 CPU 只 能 间 接 访 问 TCNTH 寄 存 器 CPU 访 问 TCNTH 时, 实 际 访 问 的 是 临 时 寄 存 器 (TEMP) 读 取 TCNTL 时, 临 时 寄 存 器 的 内 容 更 新 为 TCNTH 的 数 值 ; 而 对 TCNTL 执 行 写 操 作 时,TCNTH 被 临 时 寄 存 器 的 内 容 所 更 新 这 就 使 CPU 可 以 在 一 个 时 钟 周 期 里 通 过 8 位 数 据 总 线 完 成 对 6 位 计 数 器 的 读 写 操 作 此 外 还 需 要 注 意 计 数 器 在 运 行 时 的 一 些 特 殊 情 况 在 这 些 特 殊 情 况 下 对 TCNT 写 入 数 据 会 带 来 未 知 的 结 果 在 合 适 的 章 节 会 对 这 些 特 殊 情 况 进 行 具 体 描 述 根 据 工 作 模 式 的 不 同, 在 每 一 个 clk T 时 钟 到 来 时, 计 数 器 进 行 清 零 加 或 减 操 作 clk T 由 时 钟 选 择 位 CS2: 设 定 当 CS2:= 时, 计 数 器 停 止 计 数 不 过 CPU 对 TCNT 的 读 取 与 clk T 是 否 存 在 无 关 CPU 写 操 作 比 计 数 器 清 零 和 其 他 操 作 的 优 先 级 都 高 计 数 器 的 计 数 序 列 取 决 于 寄 存 器 TCCRA 和 TCCRB 中 标 志 位 WGM3: 的 设 置 计 数 器 的 运 行 ( 计 数 ) 方 式 与 通 过 OCx 输 出 的 波 形 发 生 方 式 有 很 紧 密 的 关 系 计 数 序 列 与 波 形 产 生 的 详 细 描 述 请 参 见 P 82 工 作 模 式 通 过 WGM3: 确 定 了 计 数 器 的 工 作 模 式 之 后,TOV 的 置 位 方 式 也 就 确 定 了 TOV 可 以 用 来 产 生 CPU 中 断 输 入 捕 捉 单 元 T/C 的 输 入 捕 捉 单 元 可 用 来 捕 获 外 部 事 件, 并 为 其 赋 予 时 间 标 记 以 说 明 此 时 间 的 发 生 时 刻 外 部 事 件 发 生 的 触 发 信 号 由 引 脚 ICP 输 入, 也 可 通 过 模 拟 比 较 器 单 元 来 实 现 时 间 标 记 可 用 来 计 算 频 率 占 空 比 及 信 号 的 其 它 特 征, 以 及 为 事 件 创 建 日 志 77

78 输 入 捕 捉 单 元 方 框 图 见 Figure 34 图 中 不 直 接 属 于 输 入 捕 捉 单 元 的 部 分 用 阴 影 表 示 寄 存 器 与 位 中 的 小 写 n 表 示 定 时 器 / 计 数 器 编 号 Figure 34. 输 入 捕 捉 单 元 方 框 图 DATA BUS (8-bit) TEMP (8-bit) ICRnH (8-bit) ICRnL (8-bit) TCNTnH (8-bit) TCNTnL (8-bit) WRITE ICRn (6-bit Register) TCNTn (6-bit Counter) ACO* ACIC* ICNC ICES ICPn Analog Comparator Noise Canceler Edge Detector ICFn (Int. Req.) 当 引 脚 ICP 上 的 逻 辑 电 平 ( 事 件 ) 发 生 了 变 化, 或 模 拟 比 较 器 输 出 ACO 电 平 发 生 了 变 化, 并 且 这 个 电 平 变 化 为 边 沿 检 测 器 所 证 实, 输 入 捕 捉 即 被 激 发 :6 位 的 TCNT 数 据 被 拷 贝 到 输 入 捕 捉 寄 存 器 ICR, 同 时 输 入 捕 捉 标 志 位 ICF 置 位 如 果 此 时 ICIE =, 输 入 捕 捉 标 志 将 产 生 输 入 捕 捉 中 断 中 断 执 行 时 ICF 自 动 清 零, 或 者 也 可 通 过 软 件 在 其 对 应 的 I/O 位 置 写 入 逻 辑 " 清 零 读 取 ICR 时 要 先 读 低 字 节 ICRL, 然 后 再 读 高 字 节 ICRH 读 低 字 节 时, 高 字 节 被 复 制 到 高 字 节 临 时 寄 存 器 TEMP CPU 读 取 ICRH 时 将 访 问 TEMP 寄 存 器 对 ICR 寄 存 器 的 写 访 问 只 存 在 于 波 形 产 生 模 式 此 时 ICR 被 用 作 计 数 器 的 TOP 值 写 ICR 之 前 首 先 要 设 置 WGM3: 以 允 许 这 个 操 作 对 ICR 寄 存 器 进 行 写 操 作 时 必 须 先 将 高 字 节 写 入 ICRH I/O 位 置, 然 后 再 将 低 字 节 写 入 ICRL 请 参 见 P 74 访 问 6 位 寄 存 器 以 了 解 更 多 的 关 于 如 何 访 问 6 位 寄 存 器 的 信 息 输 入 捕 捉 触 发 源 噪 声 抑 制 器 输 入 捕 捉 单 元 的 主 要 触 发 源 是 ICP T/C 还 可 用 模 拟 比 较 输 出 作 为 输 入 捕 捉 单 元 的 触 发 源 用 户 必 须 通 过 设 置 模 拟 比 较 控 制 与 状 态 寄 存 器 ACSR 的 模 拟 比 较 输 入 捕 捉 位 ACIC 来 做 到 这 一 点 要 注 意 的 是, 改 变 触 发 源 有 可 能 造 成 一 次 输 入 捕 捉 因 此 在 改 变 触 发 源 后 必 须 对 输 入 捕 捉 标 志 执 行 一 次 清 零 操 作 以 避 免 出 现 错 误 的 结 果 ICP 与 ACO 的 采 样 方 式 与 T 引 脚 是 相 同 的 (P 7Figure 3 ), 使 用 的 边 沿 检 测 器 也 一 样 但 是 使 能 噪 声 抑 制 器 后, 在 边 沿 检 测 器 前 会 加 入 额 外 的 逻 辑 电 路 并 引 入 4 个 系 统 时 钟 周 期 的 延 迟 要 注 意 的 是, 除 去 使 用 ICR 定 义 TOP 的 波 形 产 生 模 式 外, T/C 中 的 噪 声 抑 制 器 与 边 沿 检 测 器 总 是 使 能 的 输 入 捕 捉 也 可 以 通 过 软 件 控 制 引 脚 ICP 的 方 式 来 触 发 噪 声 抑 制 器 通 过 一 个 简 单 的 数 字 滤 波 方 案 提 高 系 统 抗 噪 性 它 对 输 入 触 发 信 号 进 行 4 次 采 样 只 有 当 4 次 采 样 值 相 等 时 其 输 出 才 会 送 入 边 沿 检 测 器 78 ATmega8(L)

79 ATmega8(L) 置 位 TCCRB 的 ICNC 将 使 能 噪 声 抑 制 器 使 能 噪 声 抑 制 器 后, 在 输 入 发 生 变 化 到 ICR 得 到 更 新 之 间 将 会 有 额 外 的 4 个 系 统 时 钟 周 期 的 延 时 噪 声 抑 制 器 使 用 的 是 系 统 时 钟, 因 而 不 受 预 分 频 器 的 影 响 输 入 捕 捉 单 元 的 使 用 输 出 比 较 单 元 使 用 输 入 捕 捉 单 元 的 最 大 问 题 就 是 分 配 足 够 的 处 理 器 资 源 来 处 理 输 入 事 件 事 件 的 时 间 间 隔 是 关 键 如 果 处 理 器 在 下 一 次 事 件 出 现 之 前 没 有 读 取 ICR 的 数 据, ICR 就 会 被 新 值 覆 盖, 从 而 无 法 得 到 正 确 的 捕 捉 结 果 使 用 输 入 捕 捉 中 断 时, 中 断 程 序 应 尽 可 能 早 的 读 取 ICR 寄 存 器 尽 管 输 入 捕 捉 中 断 优 先 级 相 对 较 高, 但 最 大 中 断 响 应 时 间 与 其 它 正 在 运 行 的 中 断 程 序 所 需 的 时 间 相 关 在 任 何 输 入 捕 捉 工 作 模 式 下 都 不 推 荐 在 操 作 过 程 中 改 变 TOP 值 测 量 外 部 信 号 的 占 空 比 时 要 求 每 次 捕 捉 后 都 要 改 变 触 发 沿 因 此 读 取 ICR 后 必 须 尽 快 改 变 敏 感 的 信 号 边 沿 改 变 边 沿 后,ICF 必 须 由 软 件 清 零 ( 在 对 应 的 I/O 位 置 写 " ) 若 仅 需 测 量 频 率, 且 使 用 了 中 断 发 生, 则 不 需 对 ICF 进 行 软 件 清 零 6 位 比 较 器 持 续 比 较 TCNT 与 OCRx 的 内 容, 一 旦 发 现 它 们 相 等, 比 较 器 立 即 产 生 一 个 匹 配 信 号 然 后 OCFx 在 下 一 个 定 时 器 时 钟 置 位 如 果 此 时 OCIEx =, OCFx 置 位 将 引 发 输 出 比 较 中 断 中 断 执 行 时 OCFx 标 志 自 动 清 零, 或 者 通 过 软 件 在 其 相 应 的 I/O 位 置 写 入 逻 辑 " 也 可 以 清 零 根 据 WGM3: 与 COMx: 的 不 同 设 置, 波 形 发 生 器 用 匹 配 信 号 生 成 不 同 的 波 形 波 形 发 生 器 利 用 TOP 和 BOTTOM 信 号 处 理 在 某 些 模 式 下 对 极 值 的 操 作 (P 82 工 作 模 式 ) 输 出 比 较 单 元 A 的 一 个 特 质 是 定 义 T/C 的 TOP 值 ( 即 计 数 器 的 分 辨 率 ) 此 外, TOP 值 还 用 来 定 义 通 过 波 形 发 生 器 产 生 的 波 形 的 周 期 Figure 35 给 出 输 出 比 较 单 元 的 方 框 图 寄 存 器 与 位 上 的 小 写 n 表 示 器 件 编 号 (n = 表 示 T/C), x 表 示 输 出 比 较 单 元 (A/B) 框 图 中 非 输 出 比 较 单 元 部 分 用 阴 影 表 示 Figure 35. 输 出 比 较 单 元 方 框 图 DATA BUS (8-bit) TEMP (8-bit) OCRnxH Buf. (8-bit) OCRnxL Buf. (8-bit) TCNTnH (8-bit) TCNTnL (8-bit) OCRnx Buffer (6-bit Register) TCNTn (6-bit Counter) OCRnxH (8-bit) OCRnxL (8-bit) OCRnx (6-bit Register) = (6-bit Comparator ) OCFnx (Int.Req.) TOP BOTTOM Waveform Generator OCnx WGMn3: COMnx: 79

80 当 T/C 工 作 在 2 种 PWM 模 式 种 的 任 意 一 种 时, OCRx 寄 存 器 为 双 缓 冲 寄 存 器 ; 而 在 正 常 工 作 模 式 和 匹 配 时 清 零 模 式 (CTC) 双 缓 冲 功 能 是 禁 止 的 双 缓 冲 可 以 实 现 OCRx 寄 存 器 对 TOP 或 BOTTOM 的 同 步 更 新, 防 止 产 生 不 对 称 的 PWM 波 形, 消 除 毛 刺 访 问 OCRx 寄 存 器 看 起 来 很 复 杂, 其 实 不 然 使 能 双 缓 冲 功 能 时,CPU 访 问 的 是 OCRx 缓 冲 寄 存 器 ; 禁 止 双 缓 冲 功 能 时 CPU 访 问 的 则 是 OCRx 本 身 OCRx( 缓 冲 或 比 较 ) 寄 存 器 的 内 容 只 有 写 操 作 才 能 将 其 改 变 (T/C 不 会 自 动 将 此 寄 存 器 更 新 为 TCNT 或 ICR 的 内 容 ), 所 以 OCRx 不 用 通 过 TEMP 读 取 但 是 象 其 他 6 位 寄 存 器 一 样 首 先 读 取 低 字 节 是 一 个 好 习 惯 由 于 比 较 是 连 续 进 行 的, 因 此 在 写 OCRx 时 必 须 通 过 TEMP 寄 存 器 来 实 现 首 先 需 要 写 入 的 是 高 字 节 OCRxH 当 CPU 将 数 据 写 入 高 字 节 的 I/O 地 址 时, TEMP 寄 存 器 的 内 容 即 得 到 更 新 接 下 来 写 低 字 节 OCRxL 在 此 同 时, 位 于 TEMP 寄 存 器 的 高 字 节 数 据 被 拷 贝 到 OCRx 缓 冲 器, 或 是 OCRx 比 较 寄 存 器 请 参 见 P 74 访 问 6 位 寄 存 器 以 了 解 更 多 的 关 于 如 何 访 问 6 位 寄 存 器 的 信 息 强 制 输 出 比 较 写 TCNT 操 作 阻 止 比 较 匹 配 使 用 输 出 比 较 单 元 工 作 于 非 PWM 模 式 时, 可 以 通 过 对 强 制 输 出 比 较 位 FOCx 写 的 方 式 来 产 生 比 较 匹 配 强 制 比 较 匹 配 不 会 置 位 OCFx 标 志, 也 不 会 重 载 / 清 零 定 时 器, 但 是 OCx 引 脚 将 被 更 新, 好 象 真 的 发 生 了 比 较 匹 配 一 样 (COMx: 决 定 OCx 是 置 位 清 零, 还 是 交 替 变 化 ) CPU 对 TCNT 寄 存 器 的 写 操 作 会 阻 止 比 较 匹 配 的 发 生 这 个 特 性 可 以 用 来 将 OCRx 初 始 化 为 与 TCNT 相 同 的 数 值 而 不 触 发 中 断 由 于 在 任 意 模 式 下 写 TCNT 都 将 在 下 一 个 定 时 器 时 钟 周 期 里 阻 止 比 较 匹 配, 在 使 用 输 出 比 较 时 改 变 TCNT 就 会 有 风 险, 不 管 T/C 是 否 在 运 行 若 写 入 TCNT 的 数 值 等 于 OCRx, 比 较 匹 配 就 被 忽 略 了, 造 成 不 正 确 的 波 形 发 生 结 果 在 PWM 模 式 下, 当 TOP 为 可 变 数 值 时, 不 要 赋 予 TCNT 和 TOP 相 等 的 数 值 否 则 会 丢 失 一 次 比 较 匹 配, 计 数 器 也 将 计 到 xffff 类 似 地, 在 计 数 器 进 行 降 序 计 数 时 不 要 对 TCNT 写 入 等 于 BOTTOM 的 数 据 OCx 的 设 置 应 该 在 设 置 数 据 方 向 寄 存 器 之 前 完 成 最 简 单 的 设 置 OCx 的 方 法 是 在 普 通 模 式 下 利 用 强 制 输 出 比 较 FOCx 即 使 在 改 变 波 形 发 生 模 式 时 OCx 寄 存 器 也 会 一 直 保 持 它 的 数 值 COMx: 和 比 较 数 据 都 不 是 双 缓 冲 的 COMx: 的 改 变 将 立 即 生 效 8 ATmega8(L)

81 ATmega8(L) 比 较 匹 配 输 出 单 元 比 较 匹 配 模 式 控 制 位 COMx: 具 有 双 重 功 能 波 形 发 生 器 利 用 COMx: 来 确 定 下 一 次 比 较 匹 配 发 生 时 的 输 出 比 较 OCx 状 态 ; COMx: 还 控 制 OCx 引 脚 输 出 的 来 源 Figure 36 为 受 COMx: 设 置 影 响 的 逻 辑 的 简 化 原 理 图 I/O 寄 存 器 I/O 位 和 I/O 引 脚 以 粗 体 表 示 图 中 只 给 出 了 受 COMx: 影 响 的 通 用 I/O 端 口 控 制 寄 存 器 (DDR 和 PORT) 谈 及 OCx 状 态 时 指 的 是 内 部 OCx 寄 存 器, 而 不 是 OCx 引 脚 的 状 态 系 统 复 位 时 OCx 寄 存 器 复 位 为 " Figure 36. 比 较 匹 配 输 出 单 元 原 理 图 COMnx COMnx FOCnx Waveform Generator D Q OCnx OCnx Pin D Q DATABUS PORT D Q DDR clk I/O 只 要 COMx: 不 全 为 零, 波 形 发 生 器 的 输 出 比 较 功 能 就 会 重 载 OCx 的 通 用 I/O 口 功 能 但 是 OCx 引 脚 的 方 向 仍 旧 受 控 于 数 据 方 向 寄 存 器 (DDR) 从 OCx 引 脚 输 出 有 效 信 号 之 前 必 须 通 过 数 据 方 向 寄 存 器 的 DDR_OCx 将 此 引 脚 设 置 为 输 出 一 般 情 况 下 功 能 重 载 与 波 形 发 生 器 的 工 作 模 式 无 关, 但 也 由 一 些 例 外, 详 见 Table 36 Table 37 与 Table 38 输 出 比 较 逻 辑 的 设 计 允 许 OCx 在 输 出 之 前 首 先 进 行 初 始 化 要 注 意 某 些 COMx: 设 置 在 某 些 特 定 的 工 作 模 式 下 是 保 留 的, 如 P 89 6 位 定 时 器 / 计 数 器 寄 存 器 的 说 明 COMx: 不 影 响 输 入 捕 捉 单 元 8

82 比 较 输 出 模 式 和 波 形 产 生 工 作 模 式 普 通 模 式 CTC( 比 较 匹 配 时 清 零 定 时 器 ) 模 式 波 形 发 生 器 利 用 COMx: 的 方 法 在 普 通 模 式 CTC 模 式 和 PWM 模 式 下 有 所 区 别 对 于 所 有 的 模 式, 设 置 COMx: = 表 明 比 较 匹 配 发 生 时 波 形 发 生 器 不 会 操 作 OCx 寄 存 器 非 PWM 模 式 的 比 较 输 出 请 参 见 P 89Table 36 ; 快 速 PWM 的 比 较 输 出 于 P 9Table 37 ; 相 位 修 正 PWM 的 比 较 输 出 于 to P 9Table 38 改 变 COMx: 将 影 响 写 入 数 据 后 的 第 一 次 比 较 匹 配 对 于 非 PWM 模 式, 可 以 通 过 使 用 FOCx 来 立 即 产 生 效 果 工 作 模 式 - T/C 和 输 出 比 较 引 脚 的 行 为 - 由 波 形 发 生 模 式 (WGM3:) 及 比 较 输 出 模 式 (COMx:) 的 控 制 位 决 定 比 较 输 出 模 式 对 计 数 序 列 没 有 影 响, 而 波 形 产 生 模 式 对 计 数 序 列 则 有 影 响 COMx: 控 制 PWM 输 出 是 否 为 反 极 性 非 PWM 模 式 时 COMx: 控 制 输 出 是 否 应 该 在 比 较 匹 配 发 生 时 置 位 清 零, 或 是 电 平 取 反 P 8 比 较 匹 配 输 出 单 元 具 体 的 时 序 信 息 请 参 考 P 87 定 时 器 / 计 数 器 时 序 图 普 通 模 式 (WGM3: = ) 为 最 简 单 的 工 作 模 式 在 此 模 式 下 计 数 器 不 停 地 累 加 计 到 最 大 值 后 (TOP = xffff) 由 于 数 值 溢 出 计 数 器 简 单 地 返 回 到 最 小 值 x 重 新 开 始 在 TCNT 为 零 的 同 一 个 定 时 器 时 钟 里 T/C 溢 出 标 志 TOV 置 位 此 时 TOV 有 点 象 第 7 位, 只 是 只 能 置 位, 不 会 清 零 但 由 于 定 时 器 中 断 服 务 程 序 能 够 自 动 清 零 TOV, 因 此 可 以 通 过 软 件 提 高 定 时 器 的 分 辨 率 在 普 通 模 式 下 没 有 什 么 需 要 特 殊 考 虑 的, 用 户 可 以 随 时 写 入 新 的 计 数 器 数 值 在 普 通 模 式 下 输 入 捕 捉 单 元 很 容 易 使 用 要 注 意 的 是 外 部 事 件 的 最 大 时 间 间 隔 不 能 超 过 计 数 器 的 分 辨 率 如 果 事 件 间 隔 太 长, 必 须 使 用 定 时 器 溢 出 中 断 或 预 分 频 器 来 扩 展 输 入 捕 捉 单 元 的 分 辨 率 输 出 比 较 单 元 可 以 用 来 产 生 中 断 但 是 不 推 荐 在 普 通 模 式 下 利 用 输 出 比 较 来 产 生 波 形, 因 为 会 占 用 太 多 的 CPU 时 间 在 CTC 模 式 (WGM3: = 4 或 2) 里 OCRA 或 ICR 寄 存 器 用 于 调 节 计 数 器 的 分 辨 率 当 计 数 器 的 数 值 TCNT 等 于 OCRA(WGM3: = 4) 或 等 于 ICR (WGM3: = 2) 时 计 数 器 清 零 OCRA 或 ICR 定 义 了 计 数 器 的 TOP 值, 亦 即 计 数 器 的 分 辨 率 这 个 模 式 使 得 用 户 可 以 很 容 易 地 控 制 比 较 匹 配 输 出 的 频 率, 也 简 化 了 外 部 事 件 计 数 的 操 作 CTC 模 式 的 时 序 图 为 Figure 37 计 数 器 数 值 TCNT 一 直 累 加 到 TCNT 与 OCRA 或 ICR 匹 配, 然 后 TCNT 清 零 Figure 37. CTC 模 式 的 时 序 图 OCnA Interrupt Flag Set or ICFn Interrupt Flag Set (Interrupt on TOP) TCNTn OCnA (Toggle) (COMnA: = ) Period ATmega8(L)

83 ATmega8(L) 利 用 OCFA 或 ICF 标 志 可 以 在 计 数 器 数 值 达 到 TOP 时 产 生 中 断 在 中 断 服 务 程 序 里 可 以 更 新 TOP 的 数 值 由 于 CTC 模 式 没 有 双 缓 冲 功 能, 在 计 数 器 以 无 预 分 频 器 或 很 低 的 预 分 频 器 工 作 的 时 候 将 TOP 更 改 为 接 近 BOTTOM 的 数 值 时 要 小 心 如 果 写 入 的 OCRA 或 ICR 的 数 值 小 于 当 前 TCNT 的 数 值, 计 数 器 将 丢 失 一 次 比 较 匹 配 在 下 一 次 比 较 匹 配 发 生 之 前, 计 数 器 不 得 不 先 计 数 到 最 大 值 xffff, 然 后 再 从 x 开 始 计 数 到 OCRA 或 ICR 在 许 多 情 况 下, 这 一 特 性 并 非 我 们 所 希 望 的 替 代 的 方 法 是 使 用 快 速 PWM 模 式, 该 模 式 使 用 OCRA 定 义 TOP 值 (WGM3: = 5), 因 为 此 时 OCRA 为 双 缓 冲 为 了 在 CTC 模 式 下 得 到 波 形 输 出, 可 以 设 置 OCA 在 每 次 比 较 匹 配 发 生 时 改 变 逻 辑 电 平 这 可 以 通 过 设 置 COMA: = 来 完 成 在 期 望 获 得 OCA 输 出 之 前, 首 先 要 将 其 端 口 设 置 为 输 出 (DDR_OCA = ) 波 形 发 生 器 能 够 产 生 的 最 大 频 率 为 f OCA = f clk_i/o /2 (OCRA = x) 频 率 由 如 下 公 式 确 定 : f clk_i/o f OCnA = N ( + OCRnA) 变 量 N 代 表 预 分 频 因 子 ( 或 24) 在 普 通 模 式 下,TOV 标 志 的 置 位 发 生 在 计 数 器 从 MAX 变 为 x 的 定 时 器 时 钟 周 期 快 速 PWM 模 式 快 速 PWM 模 式 (WGM3: = 或 5) 可 用 来 产 生 高 频 的 PWM 波 形 快 速 PWM 模 式 与 其 他 PWM 模 式 的 不 同 之 处 是 其 单 边 斜 坡 工 作 方 式 计 数 器 从 BOTTOM 计 到 TOP, 然 后 立 即 回 到 BOTTOM 重 新 开 始 对 于 普 通 的 比 较 输 出 模 式, 输 出 比 较 引 脚 OCx 在 TCNT 与 OCRx 匹 配 时 置 位, 在 TOP 时 清 零 ; 对 于 反 向 比 较 输 出 模 式, OCRx 的 动 作 正 好 相 反 由 于 使 用 了 单 边 斜 坡 模 式, 快 速 PWM 模 式 的 工 作 频 率 比 使 用 双 斜 坡 的 相 位 修 正 PWM 模 式 高 一 倍 此 高 频 操 作 特 性 使 得 快 速 PWM 模 式 十 分 适 合 于 功 率 调 节, 整 流 和 DAC 应 用 高 频 可 以 减 小 外 部 元 器 件 ( 电 感, 电 容 ) 的 物 理 尺 寸, 从 而 降 低 系 统 成 本 工 作 于 快 速 PWM 模 式 时,PWM 分 辨 率 可 固 定 为 8 9 或 位, 也 可 由 ICR 或 OCRA 定 义 最 小 分 辨 率 为 2 比 特 (ICR 或 OCRA 设 为 x3), 最 大 分 辨 率 为 6 位 (ICR 或 OCRA 设 为 MAX) PWM 分 辨 率 位 数 可 用 下 式 计 算 : log( TOP + ) R FPWM = log( 2) 工 作 于 快 速 PWM 模 式 时, 计 数 器 的 数 值 一 直 累 加 到 固 定 数 值 xff xff x3ff (WGM3: = 5 6 或 7) ICR (WGM3: = 4) 或 OCRA (WGM3: = 5), 然 后 在 后 面 的 一 个 时 钟 周 期 清 零 具 体 的 时 序 图 为 Figure 38 图 中 给 出 了 当 使 用 OCRA 或 ICR 来 定 义 TOP 值 时 的 快 速 PWM 模 式 图 中 柱 状 的 TCNT 表 示 这 是 单 边 斜 坡 操 作 方 框 图 同 时 包 含 了 普 通 的 PWM 输 出 以 及 反 向 PWM 输 出 TCNT 斜 坡 上 的 短 水 平 线 表 示 OCRx 和 TCNT 的 匹 配 比 较 比 较 匹 配 后 OCx 中 断 标 志 置 位 Figure 38. 快 速 PWM 模 式 时 序 图 OCRnx / TOP Update and TOVn Interrupt Flag Set and OCnA Interrupt Flag Set or ICFn Interrupt Flag Set (Interrupt on TOP) TCNTn OCnx (COMnx: = 2) OCnx (COMnx: = 3) Period

84 计 时 器 数 值 达 到 TOP 时 T/C 溢 出 标 志 TOV 置 位 另 外 若 TOP 值 是 由 OCRA 或 ICR 定 义 的, 则 OCA 或 ICF 标 志 将 与 TOV 在 同 一 个 时 钟 周 期 置 位 如 果 中 断 使 能, 可 以 在 中 断 服 务 程 序 里 来 更 新 TOP 以 及 比 较 数 据 改 变 TOP 值 时 必 须 保 证 新 的 TOP 值 不 小 于 所 有 比 较 寄 存 器 的 数 值 否 则 TCNT 与 OCRx 不 会 出 现 比 较 匹 配 使 用 固 定 的 TOP 值 时, 向 任 意 OCRx 寄 存 器 写 入 数 据 时 未 使 用 的 位 将 屏 蔽 为 " 定 义 TOP 值 时 更 新 ICR 与 OCRA 的 步 骤 时 不 同 的 ICR 寄 存 器 不 是 双 缓 冲 寄 存 器 这 意 味 着 当 计 数 器 以 无 预 分 频 器 或 很 低 的 预 分 频 工 作 的 时 候, 给 ICR 赋 予 一 个 小 的 数 值 时 存 在 着 新 写 入 的 ICR 数 值 比 TCNT 当 前 值 小 的 危 险 结 果 是 计 数 器 将 丢 失 一 次 比 较 匹 配 在 下 一 次 比 较 匹 配 发 生 之 前, 计 数 器 不 得 不 先 计 数 到 最 大 值 xffff, 然 后 再 从 x 开 始 计 数, 直 到 比 较 匹 配 出 现 而 OCRA 寄 存 器 则 是 双 缓 冲 寄 存 器 这 一 特 性 决 定 OCRA 可 以 随 时 写 入 写 入 的 数 据 被 放 入 OCRA 缓 冲 寄 存 器 在 TCNT 与 TOP 匹 配 后 的 下 一 个 时 钟 周 期,OCRA 比 较 寄 存 器 的 内 容 被 缓 冲 寄 存 器 的 数 据 所 更 新 在 同 一 个 时 钟 周 期 TCNT 被 清 零, 而 TOV 标 志 被 设 置 使 用 固 定 TOP 值 时 最 好 使 用 ICR 寄 存 器 定 义 TOP 这 样 OCRA 就 可 以 用 于 在 OCA 输 出 PWM 波 但 是, 如 果 PWM 基 频 不 断 变 化 ( 通 过 改 变 TOP 值 ),OCRA 的 双 缓 冲 特 性 使 其 更 适 合 于 这 个 应 用 工 作 于 快 速 PWM 模 式 时, 比 较 单 元 可 以 在 OCx 引 脚 上 输 出 PWM 波 形 设 置 COMx: 为 2 可 以 产 生 普 通 的 PWM 信 号 ; 为 3 则 可 以 产 生 反 向 PWM 波 形 ( 参 见 P 9Table 37 ) 此 外, 要 真 正 从 物 理 引 脚 上 输 出 信 号 还 必 须 将 OCx 的 数 据 方 向 DDR_OCx 设 置 为 输 出 产 生 PWM 波 形 的 机 理 是 OCx 寄 存 器 在 OCRx 与 TCNT 匹 配 时 置 位 ( 或 清 零 ), 以 及 在 计 数 器 清 零 ( 从 TOP 变 为 BOTTOM) 的 那 一 个 定 时 器 时 钟 周 期 清 零 ( 或 置 位 ) 输 出 的 PWM 频 率 可 以 通 过 如 下 公 式 计 算 得 到 : f clk_i/o f OCnxPWM = N ( + TOP) 变 量 N 代 表 分 频 因 子 ( 或 24) OCRx 寄 存 器 为 极 限 值 时 说 明 了 快 速 PWM 模 式 的 一 些 特 殊 情 况 若 OCRx 等 于 BOTTOM(x), 输 出 为 出 现 在 第 TOP+ 个 定 时 器 时 钟 周 期 的 窄 脉 冲 ;OCRx 为 TOP 时, 根 据 COMx: 的 设 定, 输 出 恒 为 高 电 平 或 低 电 平 通 过 设 定 OCA 在 比 较 匹 配 时 进 行 逻 辑 电 平 取 反 (COMA: = ), 可 以 得 到 占 空 比 为 5% 的 周 期 信 号 这 只 适 用 于 OCRA 用 来 定 义 TOP 值 的 情 况 (WGM3: = 5) OCRA 为 (x) 时 信 号 有 最 高 频 率 f OCA = f clk_i/o /2 这 个 特 性 类 似 于 CTC 模 式 下 的 OCA 取 反 操 作, 不 同 之 处 在 于 快 速 PWM 模 式 具 有 双 缓 冲 相 位 修 正 PWM 模 式 相 位 修 正 PWM 模 式 (WGM3: = 2 3 或 ) 为 用 户 提 供 了 一 个 获 得 高 精 度 的 相 位 准 确 的 PWM 波 形 的 方 法 与 相 位 和 频 率 修 正 模 式 类 似, 此 模 式 基 于 双 斜 坡 操 作 计 时 器 重 复 地 从 BOTTOM 计 到 TOP, 然 后 又 从 TOP 倒 退 回 到 BOTTOM 在 一 般 的 比 较 输 出 模 式 下, 当 计 时 器 往 TOP 计 数 时 若 TCNT 与 OCRx 匹 配,OCx 将 清 零 为 低 电 平 ; 而 在 计 时 器 往 BOTTOM 计 数 时 若 TCNT 与 OCRx 匹 配, OCx 将 置 位 为 高 电 平 工 作 于 反 向 比 较 输 出 时 则 正 好 相 反 与 单 斜 坡 操 作 相 比, 双 斜 坡 操 作 可 获 得 的 最 大 频 率 要 小 但 其 对 称 特 性 十 分 适 合 于 电 机 控 制 相 位 修 正 PWM 模 式 的 PWM 分 辨 率 固 定 为 8 9 或 位, 或 由 ICR 或 OCRA 定 义 最 小 分 辨 率 为 2 比 特 (ICR 或 OCRA 设 为 x3), 最 大 分 辨 率 为 6 位 (ICR 或 OCRA 设 为 MAX) PWM 分 辨 率 位 数 可 用 下 式 计 算 : log( TOP + ) R PCPWM = log( 2) 工 作 于 相 位 修 正 PWM 模 式 时, 计 数 器 的 数 值 一 直 累 加 到 固 定 值 xff xff x3ff (WGM3: = 2 或 3) ICR (WGM3: = ) 或 OCRA (WGM3: = ), 然 84 ATmega8(L)

85 ATmega8(L) 后 改 变 计 数 方 向 在 一 个 定 时 器 时 钟 里 TCNT 值 等 于 TOP 值 具 体 的 时 序 图 为 Figure 39 图 中 给 出 了 当 使 用 OCRA 或 ICR 来 定 义 TOP 值 时 的 相 位 修 正 PWM 模 式 图 中 柱 状 的 TCNT 表 示 这 是 双 边 斜 坡 操 作 方 框 图 同 时 包 含 了 普 通 的 PWM 输 出 以 及 反 向 PWM 输 出 TCNT 斜 坡 上 的 短 水 平 线 表 示 OCRx 和 TCNT 的 匹 配 比 较 比 较 匹 配 后 OCx 中 断 标 志 置 位 Figure 39. 相 位 修 正 PWM 模 式 的 时 序 图 OCRnx / TOP Update and OCnA Interrupt Flag Set or ICFn Interrupt Flag Set (Interrupt on TOP) TOVn Interrupt Flag Set (Interrupt on Bottom) TCNTn OCnx (COMnx: = 2) OCnx (COMnx: = 3) Period 计 时 器 数 值 达 到 BOTTOM 时 T/C 溢 出 标 志 TOV 置 位 若 TOP 由 OCRA 或 ICR 定 义, 在 OCRx 寄 存 器 通 过 双 缓 冲 方 式 得 到 更 新 的 同 一 个 时 钟 周 期 里 OCA 或 ICF 标 志 置 位 标 志 置 位 后 即 可 产 生 中 断 改 变 TOP 值 时 必 须 保 证 新 的 TOP 值 不 小 于 所 有 比 较 寄 存 器 的 数 值 否 则 TCNT 与 OCRx 不 会 出 现 比 较 匹 配 使 用 固 定 的 TOP 值 时, 向 任 意 OCRx 寄 存 器 写 入 数 据 时 未 使 用 的 位 将 屏 蔽 为 " 在 Figure 39 给 出 的 第 三 个 周 期 中, 在 T/C 运 行 于 相 位 修 正 模 式 时 改 变 TOP 值 导 致 了 不 对 称 输 出 其 原 因 在 于 OCRx 寄 存 器 的 更 新 时 间 由 于 OCRx 的 更 新 时 刻 为 定 时 器 / 计 数 器 达 到 TOP 之 时, 因 此 PWM 的 循 环 周 期 起 始 于 此, 也 终 止 于 此 就 是 说, 下 降 斜 坡 的 长 度 取 决 于 上 一 个 TOP 值, 而 上 升 斜 坡 的 长 度 取 决 于 新 的 TOP 值 若 这 两 个 值 不 同, 一 个 周 期 内 两 个 斜 坡 长 度 不 同, 输 出 也 就 不 对 称 了 若 要 在 T/C 运 行 时 改 变 TOP 值, 最 好 用 相 位 与 频 率 修 正 模 式 代 替 相 位 修 正 模 式 若 TOP 保 持 不 变, 那 么 这 两 种 工 作 模 式 实 际 没 有 区 别 工 作 于 相 位 修 正 PWM 模 式 时, 比 较 单 元 可 以 在 OCx 引 脚 输 出 PWM 波 形 设 置 COMx: 为 2 可 以 产 生 普 通 的 PWM, 设 置 COMx: 为 3 可 以 产 生 反 向 PWM ( 参 见 P 9Table 38 ) 要 真 正 从 物 理 引 脚 上 输 出 信 号 还 必 须 将 OCx 的 数 据 方 向 DDR_OCx 设 置 为 输 出 OCRx 和 TCNT 比 较 匹 配 发 生 时 OCx 寄 存 器 将 产 生 相 应 的 清 零 或 置 位 操 作, 从 而 产 生 PWM 波 形 工 作 于 相 位 修 正 模 式 时 PWM 频 率 可 由 如 下 公 式 获 得 : f clk_i/o f OCnxPCPWM = N TOP 变 量 N 表 示 预 分 频 因 子 ( 或 24) OCRx 寄 存 器 处 于 极 值 时 表 明 了 相 位 修 正 PWM 模 式 的 一 些 特 殊 情 况 在 普 通 PWM 模 式 下, 若 OCRx 等 于 BOTTOM, 输 出 一 直 保 持 为 低 电 平 ; 若 OCRx 等 于 TOP, 输 出 则 保 持 为 高 电 平 反 向 PWM 模 式 正 好 相 反 85

86 如 果 OCRA 用 来 定 义 TOP 值 (WGM3: = ) 且 COMA: =, OCA 输 出 占 空 比 为 5% 的 周 期 信 号 相 位 与 频 率 修 正 PWM 模 式 相 位 与 频 率 修 正 PWM 模 式 (WGM3: = 8 或 9) - 以 下 简 称 相 频 修 正 PWM 模 式 - 可 以 产 生 高 精 度 的 相 位 与 频 率 都 准 确 的 PWM 波 形 与 相 位 修 正 模 式 类 似, 相 频 修 正 PWM 模 式 基 于 双 斜 坡 操 作 计 时 器 重 复 地 从 BOTTOM 计 到 TOP, 然 后 又 从 TOP 倒 退 回 到 BOTTOM 在 一 般 的 比 较 输 出 模 式 下, 当 计 时 器 往 TOP 计 数 时 若 TCNT 与 OCRx 匹 配 OCx 将 清 零 为 低 电 平 ; 而 在 计 时 器 往 BOTTOM 计 数 时 TCNT 与 OCRx 匹 配,OCx 将 置 位 为 高 电 平 工 作 于 反 向 输 出 比 较 时 则 正 好 相 反 与 单 斜 坡 操 作 相 比, 双 斜 坡 操 作 可 获 得 的 最 大 频 率 要 小 但 其 对 称 特 性 十 分 适 合 于 电 机 控 制 相 频 修 正 修 正 PWM 模 式 与 相 位 修 正 PWM 模 式 的 主 要 区 别 在 于 OCRx 寄 存 器 的 更 新 时 间, 详 见 Figure 39 与 Figure 4 相 频 修 正 修 正 PWM 模 式 的 PWM 分 辨 率 可 由 ICR 或 OCRA 定 义 最 小 分 辨 率 为 2 比 特 (ICR 或 OCRA 设 为 x3), 最 大 分 辨 率 为 6 位 (ICR 或 OCRA 设 为 MAX) PWM 分 辨 率 位 数 可 用 下 式 计 算 : log( TOP + ) R PFCPWM = log( 2) 工 作 于 相 频 修 正 PWM 模 式 时, 计 数 器 的 数 值 一 直 累 加 到 ICR (WGM3: = 8) 或 OCRA (WGM3: = 9), 然 后 改 变 计 数 方 向 在 一 个 定 时 器 时 钟 里 TCNT 值 等 于 TOP 值 具 体 的 时 序 图 为 Figure 4 图 中 给 出 了 当 使 用 OCRA 或 ICR 来 定 义 TOP 值 时 的 相 频 修 正 PWM 模 式 图 中 柱 状 的 TCNT 表 示 这 是 双 边 斜 坡 操 作 方 框 图 同 时 包 含 了 普 通 的 PWM 输 出 以 及 反 向 PWM 输 出 TCNT 斜 坡 上 的 短 水 平 线 表 示 OCRx 和 TCNT 的 匹 配 比 较 比 较 匹 配 发 生 时, OCx 中 断 标 志 将 被 置 位 Figure 4. 相 位 与 频 率 修 正 PWM 模 式 的 时 序 图 OCnA Interrupt Flag Set or ICFn Interrupt Flag Set (Interrupt on TOP) OCRnx / TOP Update and TOVn Interrupt Flag Set (Interrupt on Bottom) TCNTn OCnx (COMnx: = 2) OCnx (COMnx: = 3) Period 在 OCRx 寄 存 器 通 过 双 缓 冲 方 式 得 到 更 新 的 同 一 个 时 钟 周 期 里 T/C 溢 出 标 志 TOV 置 位 若 TOP 由 OCRA 或 ICR 定 义, 则 当 TCNT 达 到 TOP 值 时 OCA 或 CF 置 位 这 些 中 断 标 志 位 可 用 来 在 每 次 计 数 器 达 到 TOP 或 BOTTOM 时 产 生 中 断 改 变 TOP 值 时 必 须 保 证 新 的 TOP 值 不 小 于 所 有 比 较 寄 存 器 的 数 值 否 则 TCNT 与 OCRx 不 会 产 生 比 较 匹 配 86 ATmega8(L)

87 ATmega8(L) 如 Figure 4 所 示, 与 相 位 修 正 模 式 形 成 对 照 的 是, 相 频 修 正 PWM 模 式 生 成 的 输 出 在 所 有 的 周 期 中 均 为 对 称 信 号 这 是 由 于 OCRx 在 BOTTOM 得 到 更 新, 上 升 与 下 降 斜 坡 长 度 始 终 相 等 因 此 输 出 脉 冲 为 对 称 的, 确 保 了 频 率 是 正 确 的 使 用 固 定 TOP 值 时 最 好 使 用 ICR 寄 存 器 定 义 TOP 这 样 OCRA 就 可 以 用 于 在 OCA 输 出 PWM 波 但 是, 如 果 PWM 基 频 不 断 变 化 ( 通 过 改 变 TOP 值 ),OCRA 的 双 缓 冲 特 性 使 其 更 适 合 于 这 个 应 用 工 作 于 相 频 修 正 PWM 模 式 时, 比 较 单 元 可 以 在 OCx 引 脚 上 输 出 PWM 波 形 设 置 COMx: 为 2 可 以 产 生 普 通 的 PWM 信 号 ; 为 3 则 可 以 产 生 反 向 PWM 波 形 ( 参 见 P 9Table 38 ) 要 想 真 正 输 出 信 号 还 必 须 将 OCx 的 数 据 方 向 设 置 为 输 出 产 生 PWM 波 形 的 机 理 是 OCx 寄 存 器 在 OCRx 与 升 序 记 数 的 TCNT 匹 配 时 置 位 ( 或 清 零 ), 与 降 序 记 数 的 TCNT 匹 配 时 清 零 ( 或 置 位 ) 输 出 的 PWM 频 率 可 以 通 过 如 下 公 式 计 算 得 到 : f clk_i/o f OCnxPFCPWM = N TOP 变 量 N 代 表 分 频 因 子 ( 或 24) OCRx 寄 存 器 处 于 极 值 时 说 明 了 相 频 修 正 PWM 模 式 的 一 些 特 殊 情 况 在 普 通 PWM 模 式 下, 若 OCRx 等 于 BOTTOM, 输 出 一 直 保 持 为 低 电 平 ; 若 OCRx 等 于 TOP, 则 输 出 保 持 为 高 电 平 反 向 PWM 模 式 则 正 好 相 反 如 果 OCRA 用 来 定 义 TOP 值 (WGM3: = 9) 且 COMA: =,OCA 输 出 占 空 比 为 5% 的 周 期 信 号 定 时 器 / 计 数 器 时 序 图 定 时 器 / 计 数 器 为 同 步 电 路, 因 而 时 钟 clk T 表 示 为 时 钟 使 能 信 号 图 中 说 明 了 何 时 设 置 中 断 标 志 及 何 时 使 用 OCRx 缓 冲 器 中 的 数 据 更 新 OCRx 寄 存 器 ( 工 作 于 双 缓 冲 器 模 式 时 ) Figure 4 给 出 了 置 位 OCFx 的 时 序 图 Figure 4. T/C 时 序 图, OCFx 置 位, 无 预 分 频 器 clk I/O clk Tn (clk I/O /) TCNTn OCRnx - OCRnx OCRnx + OCRnx + 2 OCRnx OCRnx Value OCFnx Figure 42 给 出 相 同 的 计 时 数 据, 但 预 分 频 使 能 87

88 Figure 42. T/C 时 序 图, 置 位 OCFx, 预 分 频 器 为 f clk_i/o /8 clk I/O clk Tn (clk I/O /8) TCNTn OCRnx - OCRnx OCRnx + OCRnx + 2 OCRnx OCRnx Value OCFnx Figure 43 给 出 工 作 在 不 同 模 式 下 接 近 TOP 值 时 的 计 数 序 列 工 作 于 相 频 修 正 PWM 模 式 时, OCRx 寄 存 器 在 BOTTOM 被 更 新 时 序 图 相 同, 但 TOP 需 要 用 BOTTOM 代 替, BOTTOM+ 代 替 TOP-, 等 等 同 样 的 命 名 规 则 也 适 用 于 那 些 在 BOTTOM 置 位 TOV 标 志 的 工 作 模 式 Figure 43. T/C 时 序 图, 无 预 分 频 器 clk I/O clk Tn (clk I/O /) TCNTn (CTC and FPWM) TOP - TOP BOTTOM BOTTOM + TCNTn (PC and PFC PWM) TOP - TOP TOP - TOP - 2 TOVn (FPWM) and ICFn (if used as TOP) OCRnx (Update at TOP) Old OCRnx Value New OCRnx Value Figure 44 给 出 相 同 的 计 时 数 据, 但 预 分 频 使 能 88 ATmega8(L)

89 ATmega8(L) Figure 44. T/C 时 序 图, 预 分 频 器 为 f clk_i/o /8 clk I/O clk Tn (clk I/O /8) TCNTn (CTC and FPWM) TOP - TOP BOTTOM BOTTOM + TCNTn (PC and PFC PWM) TOP - TOP TOP - TOP - 2 TOVn (FPWM) and ICFn (if used as TOP) OCRnx (Update at TOP) Old OCRnx Value New OCRnx Value 6 位 定 时 器 / 计 数 器 寄 存 器 的 说 明 T/C 控 制 寄 存 器 A - TCCRA Bit COMA COMA COMB COMB FOCA FOCB WGM WGM TCCRA 读 / 写 R/W R/W R/W R/W W W R/W R/W 初 始 值 Bit 7:6 COMA:: 通 道 A 的 比 较 输 出 模 式 Bit 5:4 COMB:: 通 道 B 的 比 较 输 出 模 式 COMA: 与 COMB: 分 别 控 制 OCA 与 OCB 状 态 如 果 COMA:(COMB:) 的 一 位 或 两 位 被 写 入 ",OCA(OCB) 输 出 功 能 将 取 代 I/O 端 口 功 能 此 时 OCA(OCB) 相 应 的 输 出 引 脚 数 据 方 向 控 制 必 须 置 位 以 使 能 输 出 驱 动 器 OCA(OCB) 与 物 理 引 脚 相 连 时,COMx: 的 功 能 由 WGM3: 的 设 置 决 定 Table 36 给 出 当 WGM3: 设 置 为 普 通 模 式 与 CTC 模 式 ( 非 PWM) 时 COMx: 的 功 能 定 义 Table 36. 比 较 输 出 模 式, 非 PWM COMA/ COMB COMA/ COMB 说 明 普 通 端 口 操 作, OCA/OCB 未 连 接 比 较 匹 配 时 OCA/OCB 电 平 取 反 比 较 匹 配 时 清 零 OCA/OCB( 输 出 低 电 平 ) 比 较 匹 配 时 置 位 OCA/OCB ( 输 出 高 电 平 ) 89

90 Table 37 给 出 WGM3: 设 置 为 快 速 PWM 模 式 时 COMx: 的 功 能 定 义 Table 37. 比 较 输 出 模 式, 快 速 PWM () COMA/ COMB COMA/ COMB 说 明 普 通 端 口 操 作, OCA/OCB 未 连 接 WGM3: = 5: 比 较 匹 配 时 OCA 取 反, OCB 未 连 接 WGM3: 为 其 它 值 时 为 普 通 端 口 操 作, OCA/OCB 未 连 接 比 较 匹 配 时 清 零 OCA/OCB, OCA/OCB 在 TOP 时 置 位 比 较 匹 配 时 置 位 OCA/OCB, OCA/OCB 在 TOP 时 清 零 Note:. 当 OCRA/OCRB 等 于 TOP 且 COMA/COMB 置 位 时, 比 较 匹 配 被 忽 略, 但 OCA/OCB 的 置 位 / 清 零 操 作 有 效 详 见 P 83 快 速 PWM 模 式 Table 38 给 出 当 WGM3: 设 置 为 相 位 修 正 PWM 模 式 或 相 频 修 正 PWM 模 式 时 COMx: 的 功 能 定 义 Table 38. 比 较 输 出 模 式, 相 位 修 正 及 相 频 修 正 PWM 模 式 () COMA/ COMB COMA/ COMB 说 明 普 通 端 口 操 作, OCA/OCB 未 连 接 WGM3: = 9 或 4: 比 较 匹 配 时 OCA 取 反, OCB 未 连 接 WGM3: 为 其 它 值 时 为 普 通 端 口 操 作, OCA/OCB 未 连 接 升 序 记 数 时 比 较 匹 配 将 清 零 OCA/OCB, 降 序 记 数 时 比 较 匹 配 将 置 位 OCA/OCB 升 序 记 数 时 比 较 匹 配 将 置 位 OCA/OCB, 降 序 记 数 时 比 较 匹 配 将 清 零 OCA/OCB Note:. OCRA/OCRB 等 于 TOP 且 COMA/COMB 置 位 是 一 个 特 殊 情 况 详 细 信 息 请 参 见 P 84 相 位 修 正 PWM 模 式 Bit 3 FOCA: 通 道 A 强 制 输 出 比 较 Bit 2 FOCB: 通 道 B 强 制 输 出 比 较 FOCA/FOCB 只 有 当 WGM3: 指 定 为 非 PWM 模 式 时 被 激 活 为 与 未 来 器 件 兼 容, 工 作 在 PWM 模 式 下 对 TCCRA 写 入 时, 这 两 位 必 须 清 零 当 FOCA/FOCB 位 置, 立 即 强 制 波 形 产 生 单 元 进 行 比 较 匹 配 COMx: 的 设 置 改 变 OCA/OCB 的 输 出 注 意 FOCA/FOCB 位 作 为 选 通 信 号 COMx: 位 的 值 决 定 强 制 比 较 的 效 果 在 CTC 模 式 下 使 用 OCRA 作 为 TOP 值, FOCA/FOCB 选 通 即 不 会 产 生 中 断 也 不 会 清 除 定 时 器 FOCA/FOCB 位 总 是 读 为 Bit : WGM:: 波 形 发 生 模 式 这 两 位 与 位 于 TCCRB 寄 存 器 的 WGM3:2 相 结 合, 用 于 控 制 计 数 器 的 计 数 序 列 计 数 器 计 数 的 上 限 值 和 确 定 波 形 发 生 器 的 工 作 模 式 见 Table 39 T/C 支 持 的 工 作 模 式 有 : 普 通 模 式 ( 计 数 器 ), 比 较 匹 配 时 清 零 定 时 器 (CTC) 模 式, 及 三 种 脉 宽 调 制 (PWM) 模 式, 见 P 82 工 作 模 式 9 ATmega8(L)

91 ATmega8(L) Table 39. 波 形 产 生 模 式 的 位 描 述 模 式 WGM3 WGM2 (CTC) WGM (PWM) WGM (PWM) () 定 时 器 / 计 数 器 工 作 模 式 Note:. CTC 和 PWM: 的 定 义 已 经 不 再 使 用 了, 要 使 用 WGM2: 但 是 两 个 版 本 的 功 能 和 位 置 是 兼 容 的 TOP OCRx 更 新 时 刻 普 通 模 式 xffff 立 即 更 新 MAX TOV 置 位 时 刻 8 位 相 位 修 正 PWM xff TOP BOTTOM 2 9 位 相 位 修 正 PWM xff TOP BOTTOM 3 位 相 位 修 正 PWM x3ff TOP BOTTOM 4 CTC OCRA 立 即 更 新 MAX 5 8 位 快 速 PWM xff TOP TOP 6 9 位 快 速 PWM xff TOP TOP 7 位 快 速 PWM x3ff TOP TOP 8 相 位 与 频 率 修 正 PWM ICR BOTTOM BOTTOM 9 相 位 与 频 率 修 正 PWM OCRA BOTTOM BOTTOM 相 位 修 正 PWM ICR TOP BOTTOM 相 位 修 正 PWM OCRA TOP BOTTOM 2 CTC ICR 立 即 更 新 MAX 3 保 留 4 快 速 PWM ICR TOP TOP 5 快 速 PWM OCRA TOP TOP 9

92 T/C 控 制 寄 存 器 B - TCCRB Bit ICNC ICES WGM3 WGM2 CS2 CS CS TCCRB 读 / 写 R/W R/W R R/W R/W R/W R/W R/W 初 始 值 Bit 7 ICNC: 输 入 捕 捉 噪 声 抑 制 器 置 位 ICNC 将 使 能 输 入 捕 捉 噪 声 抑 制 功 能 此 时 外 部 引 脚 ICP 的 输 入 被 滤 波 其 作 用 是 从 ICP 引 脚 连 续 进 行 4 次 采 样 如 果 4 个 采 样 值 都 相 等, 那 么 信 号 送 入 边 沿 检 测 器 因 此 使 能 该 功 能 使 得 输 入 捕 捉 被 延 迟 了 4 个 时 钟 周 期 Bit 6 ICES: 输 入 捕 捉 触 发 沿 选 择 该 位 选 择 使 用 ICP 上 的 哪 个 边 沿 触 发 捕 获 事 件 ICES 为 " 选 择 的 是 下 降 沿 触 发 输 入 捕 捉 ; ICES 为 " 选 择 的 是 逻 辑 电 平 的 上 升 沿 触 发 输 入 捕 捉 按 照 ICES 的 设 置 捕 获 到 一 个 事 件 后, 计 数 器 的 数 值 被 复 制 到 ICR 寄 存 器 捕 获 事 件 还 会 置 为 ICF 如 果 此 时 中 断 使 能, 输 入 捕 捉 事 件 即 被 触 发 当 ICR 用 作 TOP 值 ( 见 TCCRA 与 TCCRB 寄 存 器 中 WGM3: 位 的 描 述 ) 时,ICP 与 输 入 捕 捉 功 能 脱 开, 从 而 输 入 捕 捉 功 能 被 禁 用 Bit 5 保 留 位 该 位 保 留 为 保 证 与 将 来 器 件 的 兼 容 性, 写 TCCRB 时, 该 位 必 须 写 入 " Bit 4:3 WGM3:2: 波 形 发 生 模 式 见 TCCRA 寄 存 器 中 的 描 述 Bit 2: CS2:: 时 钟 选 择 这 3 位 用 于 选 择 T/C 的 时 钟 源, 见 Figure 4 与 Figure 42 Table 4. 时 钟 选 择 位 描 述 CS2 CS CS 说 明 无 时 钟 源 (T/C 停 止 ) clk I/O / ( 无 预 分 频 ) clk I/O /8 ( 来 自 预 分 频 器 ) clk I/O /64 ( 来 自 预 分 频 器 ) clk I/O /256 ( 来 自 预 分 频 器 ) clk I/O /24 ( 来 自 预 分 频 器 ) 外 部 T 引 脚, 下 降 沿 驱 动 外 部 T 引 脚, 上 升 沿 驱 动 选 择 使 用 外 部 时 钟 源 后, 即 使 T 引 脚 被 定 义 为 输 出, 引 脚 上 的 逻 辑 信 号 电 平 变 化 仍 然 会 驱 动 T/C 计 数, 这 个 特 性 允 许 用 户 通 过 软 件 来 控 制 计 数 T/C - TCNTH 与 TCNTL Bit TCNT[5:8] TCNT[7:] 读 / 写 R/W R/W R/W R/W R/W R/W R/W R/W 初 始 值 TCNTH TCNTL TCNTH 与 TCNTL 组 成 了 T/C 的 数 据 寄 存 器 TCNT 通 过 它 们 可 以 直 接 对 定 时 器 / 计 数 器 单 元 的 6 位 计 数 器 进 行 读 写 访 问 为 保 证 CPU 对 高 字 节 与 低 字 节 的 同 时 读 写, 必 须 92 ATmega8(L)

93 ATmega8(L) 使 用 一 个 8 位 临 时 高 字 节 寄 存 器 TEMP TEMP 是 所 有 的 6 位 寄 存 器 共 用 的, 详 见 P 74 访 问 6 位 寄 存 器 在 计 数 器 运 行 期 间 修 改 TCNT 的 内 容 有 可 能 丢 失 一 次 TCNT 与 OCRx 的 比 较 匹 配 操 作 写 TCNT 寄 存 器 将 在 下 一 个 定 时 器 周 期 阻 塞 比 较 匹 配 输 出 比 较 寄 存 器 A - OCRAH 与 OCRAL 输 出 比 较 寄 存 器 B - OCRBH 与 OCRBL Bit OCRA[5:8] OCRA[7:] 读 / 写 R/W R/W R/W R/W R/W R/W R/W R/W 初 始 值 Bit OCRB[5:8] OCRB[7:] 读 / 写 R/W R/W R/W R/W R/W R/W R/W R/W 初 始 值 OCRAH OCRAL OCRBH OCRBL 该 寄 存 器 中 的 6 位 数 据 与 TCNT 寄 存 器 中 的 计 数 值 进 行 连 续 的 比 较, 一 旦 数 据 匹 配, 将 产 生 一 个 输 出 比 较 中 断, 或 改 变 OCx 的 输 出 逻 辑 电 平 输 出 比 较 寄 存 器 长 度 为 6 位 为 保 证 CPU 对 高 字 节 与 低 字 节 的 同 时 读 写, 必 须 使 用 一 个 8 位 临 时 高 字 节 寄 存 器 TEMP TEMP 是 所 有 的 6 位 寄 存 器 共 用 的, 详 见 P 74 访 问 6 位 寄 存 器 93

94 输 入 捕 捉 寄 存 器 - ICRH 与 ICRL Bit ICR[5:8] ICR[7:] 读 / 写 R/W R/W R/W R/W R/W R/W R/W R/W 初 始 值 ICRH ICRL 当 外 部 引 脚 ICP( 或 T/C 的 模 拟 比 较 器 ) 有 输 入 捕 捉 触 发 信 号 产 生 时, 计 数 器 TCNT 中 的 值 写 入 ICR 中 ICR 的 设 定 值 可 作 为 计 数 器 的 TOP 值 输 入 捕 捉 寄 存 器 长 度 为 6 位 为 保 证 CPU 对 高 字 节 与 低 字 节 的 同 时 读, 必 须 使 用 一 个 8 位 临 时 高 字 节 寄 存 器 TEMP TEMP 是 所 有 的 6 位 寄 存 器 共 用 的, 详 见 P 74 访 问 6 位 寄 存 器 T/C 中 断 屏 蔽 寄 存 器 - TIMSK () Bit OCIE2 TOIE2 TICIE OCIEA OCIEB TOIE TOIE TIMSK 读 / 写 R/W R/W R/W R/W R/W R/W R R/W 初 始 值 Note:. 该 寄 存 器 包 含 几 个 T/C 的 中 断 控 制 位, 但 本 节 中 只 对 T 位 进 行 说 明, 其 余 位 将 在 各 自 的 小 节 中 加 以 说 明 Bit 5 TICIE: T/C 输 入 捕 捉 中 断 使 能 当 该 位 被 设 为 ", 且 状 态 寄 存 器 中 的 I 位 被 设 为 " 时, T/C 的 输 入 捕 捉 中 断 使 能 一 旦 TIFR 的 ICF 置 位,CPU 即 开 始 执 行 T/C 输 入 捕 捉 中 断 服 务 程 序 ( 见 P 43 中 断 ) Bit 4 OCIEA:T/C 输 出 比 较 A 匹 配 中 断 使 能 当 该 位 被 设 为 ", 且 状 态 寄 存 器 中 的 I 位 被 设 为 " 时, T/C 的 输 出 比 较 A 匹 配 中 断 使 能 一 旦 TIFR 上 的 OCFA 置 位,CPU 即 开 始 执 行 T/C 输 出 比 较 A 匹 配 中 断 服 务 程 序 ( 见 P 43 中 断 ) Bit 3 OCIEB:T/C 输 出 比 较 B 匹 配 中 断 使 能 当 该 位 被 设 为 ", 且 状 态 寄 存 器 中 的 I 位 被 设 为 " 时, 使 能 T/C 的 输 出 比 较 B 匹 配 中 断 使 能 一 旦 TIFR 上 的 OCFB 置 位,CPU 即 开 始 执 行 T/C 输 出 比 较 B 匹 配 中 断 服 务 程 序 ( 见 P 43 中 断 ) Bit 2 TOIE:T/C 溢 出 中 断 使 能 当 该 位 被 设 为 ", 且 状 态 寄 存 器 中 的 I 位 被 设 为 时, T/C 的 溢 出 中 断 使 能 一 旦 TIFR 上 的 TOV 置 位, CPU 即 开 始 执 行 T/C 溢 出 中 断 服 务 程 序 ( 见 P 43 中 断 ) T/C 中 断 标 志 寄 存 器 - TIFR () Bit OCF2 TOV2 ICF OCFA OCFB TOV TOV TIFR 读 / 写 R/W R/W R/W R/W R/W R/W R R/W 初 始 值 Note:. 该 寄 存 器 包 含 几 个 T/C 的 标 志 位, 但 本 节 中 只 对 T 位 进 行 说 明, 其 余 位 将 在 各 自 的 小 节 中 加 以 说 明 Bit 5 ICF: T/C 输 入 捕 捉 标 志 外 部 引 脚 ICP 出 现 捕 捉 事 件 时 ICF 置 位 此 外, 当 ICR 作 为 计 数 器 的 TOP 值 时, 一 旦 计 数 器 值 达 到 TOP, ICF 也 置 位 执 行 输 入 捕 捉 中 断 服 务 程 序 时 ICF 自 动 清 零 也 可 以 对 其 写 入 逻 辑 " 来 清 除 该 标 志 位 Bit 4 OCFA: T/C 输 出 比 较 A 匹 配 标 志 当 TCNT 与 OCRA 匹 配 成 功 时, 该 位 被 设 为 " 94 ATmega8(L)

95 ATmega8(L) 强 制 输 出 比 较 (FOCA) 不 会 置 位 OCFA 执 行 强 制 输 出 比 较 匹 配 A 中 断 服 务 程 序 时 OCFA 自 动 清 零 也 可 以 对 其 写 入 逻 辑 " 来 清 除 该 标 志 位 Bit 3 OCFB: T/C 输 出 比 较 B 匹 配 标 志 当 TCNT 与 OCRB 匹 配 成 功 时, 该 位 被 设 为 " 强 制 输 出 比 较 (FOCB) 不 会 置 位 OCFB 执 行 强 制 输 出 比 较 匹 配 B 中 断 服 务 程 序 时 OCFB 自 动 清 零 也 可 以 对 其 写 入 逻 辑 " 来 清 除 该 标 志 位 Bit 2 TOV: T/C 溢 出 标 志 该 位 的 设 置 与 T/C 的 工 作 方 式 有 关 工 作 于 普 通 模 式 和 CTC 模 式 时,T/C 溢 出 时 TOV 置 位 对 工 作 在 其 它 模 式 下 的 TOV 标 志 位 置 位, 见 P 9Table 39 执 行 溢 出 中 断 服 务 程 序 时 TOV 自 动 清 零 也 可 以 对 其 写 入 逻 辑 " 来 清 除 该 标 志 位 95

96 8 位 有 PWM 与 异 步 操 作 的 定 时 器 / 计 数 器 2 综 述 T/C2 是 一 个 通 用 单 通 道 8 位 定 时 / 计 数 器, 其 主 要 特 点 如 下 : 单 通 道 计 数 器 比 较 匹 配 时 清 零 定 时 器 ( 自 动 重 载 ) 无 干 扰 脉 冲, 相 位 正 确 的 脉 宽 调 制 器 (PWM) 频 率 发 生 器 位 时 钟 预 分 频 器 溢 出 与 比 较 匹 配 中 断 源 (TOV2 与 OCF2) 允 许 使 用 外 部 的 32 khz 手 表 晶 振 作 为 独 立 的 I/O 时 钟 源 Figure 45 为 8 位 T/C 的 方 框 图 实 际 的 引 脚 图 请 参 见 P 2 引 脚 配 置 CPU 可 访 问 的 I/O 寄 存 器, 包 括 I/O 位 和 I/O 引 脚 以 粗 体 表 示 器 件 具 体 I/O 寄 存 器 与 位 定 义 见 P 8 8 位 T/C 寄 存 器 说 明 Figure 位 T/C 方 框 图 TCCRn count clear direction Control Logic clk Tn TOVn (Int. Req.) TOSC BOTTOM TOP Prescaler T/C Oscillator Timer/Counter TCNTn = = xff TOSC2 OCn (Int. Req.) clk I/O = Waveform Generation OCn OCRn DATA BUS Synchronized Status Flags Synchronization Unit clk I/O clk ASY Status Flags ASSRn asynchronous Mode Select (ASn) 寄 存 器 定 时 器 / 计 数 器 TCNT2 输 出 比 较 寄 存 器 OCR2 为 8 位 寄 存 器 中 断 请 求 ( 图 中 简 写 为 Int.Req.) 信 号 在 定 时 器 中 断 标 志 寄 存 器 TIFR 都 有 反 映 所 有 中 断 都 可 以 通 过 定 时 器 中 断 屏 蔽 寄 存 器 TIMSK 单 独 进 行 屏 蔽 图 中 未 给 出 TIFR 与 TIMSK 96 ATmega8(L)

97 ATmega8(L) T/C 的 时 钟 可 以 为 通 过 预 分 频 器 的 内 部 时 钟 或 通 过 由 TOSC/2 引 脚 接 入 的 异 步 时 钟, 详 见 本 节 后 续 部 分 异 步 操 作 由 异 步 状 态 寄 存 器 ASSR 控 制 时 钟 选 择 逻 辑 模 块 控 制 引 起 T/C 计 数 值 增 加 ( 或 减 少 ) 的 时 钟 源 没 有 选 择 时 钟 源 时 T/C 处 于 停 止 状 态 时 钟 选 择 逻 辑 模 块 的 输 出 称 为 clk T2 双 缓 冲 的 输 出 比 较 寄 存 器 OCR2 一 直 与 TCNT2 的 数 值 进 行 比 较 波 形 发 生 器 利 用 比 较 结 果 产 生 PWM 波 形 或 在 比 较 输 出 引 脚 OC2 输 出 可 变 频 率 的 信 号 参 见 P 99 输 出 比 较 单 元 比 较 匹 配 结 果 还 会 置 位 比 较 匹 配 标 志 OCF2, 用 来 产 生 输 出 比 较 中 断 请 求 定 义 本 文 的 许 多 寄 存 器 及 其 各 个 位 以 通 用 的 格 式 表 示 小 写 的 n 表 示 定 时 器 / 计 数 器 的 序 号, 在 此 即 为 2 但 是 在 写 程 序 时 要 使 用 精 确 的 格 式 ( 例 如 使 用 TCNT2 来 访 问 T/C2 计 数 器 值 ) Table 4 中 定 义 适 用 于 本 节 Table 4. 说 明 BOTTOM MAX TOP 计 数 器 计 到 x 时 即 达 到 BOTTOM 计 数 器 计 到 xff ( 十 进 制 的 255) 时 即 达 到 MAX 计 数 器 计 到 计 数 序 列 的 最 大 值 时 即 达 到 TOP TOP 值 可 以 为 固 定 值 xff (MAX), 或 是 存 储 于 寄 存 器 OCR2 里 的 数 值, 具 体 由 工 作 模 式 确 定 T/C 的 时 钟 源 T/C 可 以 由 内 部 同 步 时 钟 或 外 部 异 步 时 钟 驱 动 clk T2 的 缺 省 设 置 为 MCU 时 钟 clk I/O 当 ASSR 寄 存 器 的 AS2 置 位 时, 时 钟 源 来 自 于 TOSC 和 TOSC2 连 接 的 振 荡 器 详 细 的 异 步 操 作 可 以 参 考 P 异 步 状 态 寄 存 器 - ASSR ; 详 细 的 时 钟 源 与 预 分 频 器 的 内 容 请 参 考 P 3 定 时 器 / 计 数 器 预 分 频 器 97

98 计 数 器 单 元 8 位 T/C 的 主 要 部 分 为 可 编 程 的 双 向 计 数 单 元 Figure 46 即 为 计 数 器 和 它 周 边 电 路 的 方 框 图 Figure 46. 计 数 器 单 元 方 框 图 DATA BUS TOVn (Int. Req.) TCNTn count clear direction Control Logic clk Tn Prescaler T/C Oscillator TOSC TOSC2 BOTTOM TOP clk I/O 信 号 说 明 ( 内 部 信 号 ): count 使 TCNT2 加 或 减 direction 选 择 加 操 作 或 减 操 作 clear 清 零 TCNT2 ( 将 所 有 的 位 清 零 ) clk T2 T/C 的 时 钟 top 表 示 TCNT2 已 经 达 到 了 最 大 值 bottom 表 示 TCNT2 已 经 达 到 了 最 小 值 () 根 据 不 同 的 工 作 模 式, 计 数 器 针 对 每 一 个 clk T2 实 现 清 零 加 一 或 减 一 操 作 clk T2 可 以 由 内 部 时 钟 源 或 外 部 时 钟 源 产 生, 具 体 由 时 钟 选 择 位 CS22: 确 定 没 有 选 择 时 钟 源 时 (CS22: = ) 定 时 器 停 止 但 是 不 管 有 没 有 clk T2,CPU 都 可 以 访 问 TCNT2 CPU 写 操 作 比 计 数 器 其 他 操 作 ( 清 零 加 减 操 作 ) 的 优 先 级 高 计 数 序 列 由 T/C 控 制 寄 存 器 (TCCR2) 的 WGM2 和 WGM2 决 定 计 数 器 计 数 行 为 与 输 出 比 较 OC2 的 波 形 有 紧 密 的 关 系 有 关 计 数 序 列 和 波 形 产 生 的 详 细 信 息 请 参 考 P 2 工 作 模 式 T/C 溢 出 中 断 标 志 TOV2 根 据 WGM2: 设 定 的 工 作 模 式 来 设 置 TOV2 可 以 用 于 产 生 CPU 中 断 98 ATmega8(L)

99 ATmega8(L) 输 出 比 较 单 元 8 位 比 较 器 持 续 对 TCNT2 和 输 出 比 较 匹 配 寄 存 器 OCR2 进 行 比 较 一 旦 TCNT2 等 于 OCR2, 比 较 器 就 给 出 匹 配 信 号 在 匹 配 发 生 的 下 一 个 定 时 器 时 钟 周 期 里 输 出 比 较 标 志 OCF2 置 位 若 OCIE2 = 还 将 引 发 输 出 比 较 中 断 执 行 中 断 服 务 程 序 时 OCF2 将 自 动 清 零, 也 可 以 通 过 软 件 写 的 方 式 进 行 清 零 根 据 WGM2: 和 COM2: 设 定 的 不 同 工 作 模 式, 波 形 发 生 器 可 以 利 用 匹 配 信 号 产 生 不 同 的 波 形 同 时, 波 形 发 生 器 还 利 用 max 和 bottom 信 号 来 处 理 极 值 条 件 下 的 特 殊 情 况 ( 见 P 2 工 作 模 式 ) Figure 47 为 输 出 比 较 单 元 的 方 框 图 Figure 47. 输 出 比 较 单 元 方 框 图 DATA BUS OCRn TCNTn = (8-bit Comparator ) OCFn (Int. Req.) TOP BOTTOM FOCn Waveform Generator OCxy WGMn: COMn: 使 用 PWM 模 式 时 OCR2 寄 存 器 为 双 缓 冲 寄 存 器 ; 而 在 正 常 工 作 模 式 和 匹 配 时 清 零 模 式 双 缓 冲 功 能 是 禁 止 的 双 缓 冲 可 以 将 更 新 OCR2 寄 存 器 与 top 或 bottom 时 刻 同 步 起 来, 从 而 防 止 产 生 不 对 称 的 PWM 脉 冲, 消 除 毛 刺 访 问 OCR2 寄 存 器 看 起 来 很 复 杂, 其 实 不 然 使 能 双 缓 冲 功 能 时, CPU 访 问 的 是 OCR2 缓 冲 寄 存 器 ; 禁 止 双 缓 冲 功 能 时 CPU 访 问 的 则 是 OCR2 本 身 99

100 强 制 输 出 比 较 写 TCNT2 操 作 阻 止 比 较 匹 配 使 用 输 出 比 较 单 元 工 作 于 非 PWM 模 式 时, 可 以 对 强 制 输 出 比 较 位 FOC2 写 来 产 生 比 较 匹 配 强 制 比 较 匹 配 不 会 置 位 OCF2 标 志, 也 不 会 重 载 / 清 零 定 时 器, 但 是 OC2 引 脚 将 被 更 新, 好 象 真 的 发 生 了 比 较 匹 配 一 样 (COM2: 决 定 OC2 是 置 位 清 零, 还 是 交 替 变 化 ) CPU 对 TCNT2 寄 存 器 的 写 操 作 会 在 下 一 个 定 时 器 时 钟 周 期 阻 止 比 较 匹 配 的 发 生, 即 使 此 时 定 时 器 已 经 停 止 了 这 个 特 性 可 以 用 来 将 OCR2 初 始 化 为 与 TCNT2 相 同 的 数 值 而 不 触 发 中 断 由 于 在 任 意 模 式 下 写 TCNT2 都 将 在 下 一 个 定 时 器 时 钟 周 期 里 阻 止 比 较 匹 配, 在 使 用 输 出 比 较 时 改 变 TCNT2 就 会 有 风 险, 不 管 T/C 是 否 在 运 行 如 果 写 入 的 TCNT2 的 数 值 等 于 OCR2, 比 较 匹 配 就 被 忽 略 了, 造 成 不 正 确 的 波 形 发 生 结 果 类 似 地, 在 计 数 器 进 行 降 序 计 数 时 不 要 对 TCNT2 写 入 BOTTOM OC2 的 设 置 应 该 在 设 置 数 据 方 向 寄 存 器 之 前 完 成 最 简 单 的 设 置 OC2 的 方 法 是 在 普 通 模 式 下 利 用 强 制 输 出 比 较 FOC2 即 使 在 改 变 波 形 发 生 模 式 时 OC2 寄 存 器 也 会 一 直 保 持 它 的 数 值 注 意 COM2: 和 比 较 数 据 都 不 是 双 缓 冲 的 COM2: 的 改 变 将 立 即 生 效 ATmega8(L)

101 ATmega8(L) 比 较 匹 配 输 出 单 元 比 较 匹 配 模 式 控 制 位 COM2: 具 有 双 重 功 能 波 形 发 生 器 利 用 COM2: 来 确 定 下 一 次 比 较 匹 配 发 生 时 的 输 出 比 较 状 态 (OC2) ; COM2: 还 控 制 OC2 引 脚 输 出 信 号 的 来 源 Figure 48 为 受 COM2: 设 置 影 响 的 逻 辑 的 简 化 原 理 图 I/O 寄 存 器 I/O 位 和 I/O 引 脚 以 粗 体 表 示 图 中 只 给 出 了 受 COM2: 影 响 的 通 用 I/O 端 口 控 制 寄 存 器 (DDR 和 PORT) 谈 及 OC2 状 态 时 指 的 是 内 部 OC2 寄 存 器, 而 不 是 OC2 引 脚 Figure 48. 比 较 匹 配 输 出 单 元 原 理 图 COMn COMn FOCn Waveform Generator D Q OCn OCn Pin D Q DATABUS PORT D Q DDR clk I/O 只 要 COM2: 的 一 个 或 两 个 置 位, 波 形 发 生 器 的 输 出 比 较 功 能 OC2 就 会 取 代 通 用 I/O 口 功 能 但 是 OC2 引 脚 的 方 向 仍 然 受 控 于 数 据 方 向 寄 存 器 (DDR) 在 使 用 OC2 功 能 之 前 首 先 要 通 过 数 据 方 向 寄 存 器 的 DDR_OC2 位 将 此 引 脚 设 置 为 输 出 端 口 功 能 与 波 形 发 生 器 的 工 作 模 式 无 关 输 出 比 较 逻 辑 的 设 计 允 许 OC2 状 态 在 输 出 之 前 首 先 进 行 初 始 化 要 注 意 某 些 COM2: 设 置 保 留 给 了 其 他 操 作 类 型, 详 见 P 8 8 位 T/C 寄 存 器 说 明

102 比 较 输 出 模 式 和 波 形 产 生 工 作 模 式 波 形 发 生 器 利 用 COM2: 的 方 式 在 普 通 CTC 和 PWM 三 种 模 式 下 有 所 区 别 对 于 所 有 的 模 式,COM2: = 表 明 比 较 匹 配 发 生 时 波 形 发 生 器 不 会 操 作 OC2 寄 存 器 非 PWM 模 式 的 比 较 输 出 请 参 见 P 8Table 43 ; 快 速 PWM 的 比 较 输 出 于 P 9Table 44 ; 相 位 修 正 PWM 的 比 较 输 出 于 P 9Table 45 改 变 COM2: 将 影 响 写 入 数 据 后 的 第 一 次 比 较 匹 配 对 于 非 PWM 模 式, 可 以 通 过 使 用 FOC2 来 强 制 立 即 产 生 效 果 工 作 模 式 - T/C 和 输 出 比 较 引 脚 的 行 为 - 由 波 形 发 生 模 式 (WGM2:) 及 比 较 输 出 模 式 (COM2:) 的 控 制 位 决 定 比 较 输 出 模 式 对 计 数 序 列 没 有 影 响, 而 波 形 产 生 模 式 对 计 数 序 列 则 有 影 响 COM2: 控 制 PWM 输 出 是 否 反 极 性 非 PWM 模 式 时 COM2: 控 制 输 出 是 否 应 该 在 比 较 匹 配 发 生 时 置 位 清 零, 或 是 电 平 取 反 (P 比 较 匹 配 输 出 单 元 ) 具 体 的 时 序 信 息 请 参 考 P 6 T/C 时 序 图 普 通 模 式 普 通 模 式 (WGM2: = ) 为 最 简 单 的 工 作 模 式 在 此 模 式 下 计 数 器 不 停 地 累 加 计 到 8 比 特 的 最 大 值 后 (TOP = xff), 由 于 数 值 溢 出 计 数 器 简 单 地 返 回 到 最 小 值 x 重 新 开 始 在 TCNT 为 零 的 同 一 个 定 时 器 时 钟 里 T/C 溢 出 标 志 TOV2 置 位 此 时 TOV2 有 点 象 第 9 位, 只 是 只 能 置 位, 不 会 清 零 但 由 于 定 时 器 中 断 服 务 程 序 能 够 自 动 清 零 TOV2, 因 此 可 以 通 过 软 件 提 高 定 时 器 的 分 辨 率 在 普 通 模 式 下 没 有 什 么 需 要 特 殊 考 虑 的, 用 户 可 以 随 时 写 入 新 的 计 数 器 数 值 输 出 比 较 单 元 可 以 用 来 产 生 中 断 但 是 不 推 荐 在 普 通 模 式 下 利 用 输 出 比 较 产 生 波 形, 因 为 会 占 用 太 多 的 CPU 时 间 2 ATmega8(L)

103 ATmega8(L) CTC( 比 较 匹 配 时 清 除 定 时 器 ) 模 式 在 CTC 模 式 (WGM2: = 2) 里 OCR2 寄 存 器 用 于 调 节 计 数 器 的 分 辨 率 当 计 数 器 的 数 值 TCNT2 等 于 OCR2 时 计 数 器 清 零 OCR2 定 义 了 计 数 器 的 TOP 值, 亦 即 计 数 器 的 分 辨 率 这 个 模 式 使 得 用 户 可 以 很 容 易 地 控 制 比 较 匹 配 输 出 的 频 率, 也 简 化 了 外 部 事 件 计 数 的 操 作 CTC 模 式 的 时 序 图 为 Figure 49 计 数 器 数 值 TCNT2 一 直 累 加 到 TCNT2 与 OCR2 匹 配, 然 后 TCNT2 清 零 Figure 49. CTC 模 式 的 时 序 图 OCn Interrupt Flag Set TCNTn OCn (Toggle) (COMn: = ) Period 利 用 OCF2 标 志 可 以 在 计 数 器 数 值 达 到 TOP 即 产 生 中 断 在 中 断 服 务 程 序 里 可 以 更 新 TOP 的 数 值 由 于 CTC 模 式 没 有 双 缓 冲 功 能, 在 计 数 器 以 无 预 分 频 器 或 很 低 的 预 分 频 器 工 作 的 时 候 将 TOP 更 改 为 接 近 BOTTOM 的 数 值 时 要 小 心 如 果 写 入 OCR2 的 数 值 小 于 当 前 TCNT2 的 数 值, 计 数 器 将 丢 失 一 次 比 较 匹 配 在 下 一 次 比 较 匹 配 发 生 之 前, 计 数 器 不 得 不 先 计 数 到 最 大 值 xff, 然 后 再 从 x 开 始 计 数 到 OCR2 为 了 在 CTC 模 式 下 得 到 波 形 输 出, 可 以 设 置 OC2 在 每 次 比 较 匹 配 发 生 时 改 变 逻 辑 电 平 这 可 以 通 过 设 置 COM2: = 来 完 成 在 期 望 获 得 OC2 输 出 之 前, 首 先 要 将 其 端 口 设 置 为 输 出 波 形 发 生 器 能 够 产 生 的 最 大 频 率 为 f OC2 = f clk_i/o /2 (OCR2 = x) 频 率 由 如 下 公 式 确 定 : f clk_i/o f OCn = N ( + OCRn) 变 量 N 代 表 预 分 频 因 子 ( 或 24) 在 普 通 模 式 下, TOV2 标 志 的 置 位 发 生 在 计 数 器 从 MAX 变 为 x 的 定 时 器 时 钟 周 期 3

104 快 速 PWM 模 式 快 速 PWM 模 式 (WGM2: = 3) 可 用 来 产 生 高 频 的 PWM 波 形 快 速 PWM 模 式 与 其 他 PWM 模 式 的 不 同 之 处 是 其 单 边 斜 坡 工 作 方 式 计 数 器 从 BOTTOM 计 到 MAX, 然 后 立 即 回 到 BOTTOM 重 新 开 始 对 于 普 通 的 比 较 输 出 模 式, 输 出 比 较 引 脚 OC2 在 TCNT2 与 OCR2 匹 配 时 清 零, 在 BOTTOM 时 置 位 ; 对 于 反 向 比 较 输 出 模 式, OC2 的 动 作 正 好 相 反 由 于 使 用 了 单 边 斜 坡 模 式, 快 速 PWM 模 式 的 工 作 频 率 比 使 用 双 斜 坡 的 相 位 修 正 PWM 模 式 高 一 倍 此 高 频 操 作 特 性 使 得 快 速 PWM 模 式 十 分 适 合 于 功 率 调 节, 整 流 和 DAC 应 用 高 频 可 以 减 小 外 部 元 器 件 ( 电 感, 电 容 ) 的 物 理 尺 寸, 从 而 降 低 系 统 成 本 工 作 于 快 速 PWM 模 式 时, 计 数 器 的 数 值 一 直 增 加 到 MAX, 然 后 在 后 面 的 一 个 时 钟 周 期 清 零 具 体 的 时 序 图 为 Figure 5 图 中 柱 状 的 TCNT 表 示 这 是 单 边 斜 坡 操 作 方 框 图 同 时 包 含 了 普 通 的 PWM 输 出 以 及 方 向 PWM 输 出 TCNT2 斜 坡 上 的 短 水 平 线 表 示 OCR2 和 TCNT2 的 比 较 匹 配 Figure 5. 快 速 PWM 模 式 时 序 图 OCRn Interrupt Flag Set OCRn Update and TOVn Interrupt Flag Set TCNTn OCn (COMn: = 2) OCn (COMn: = 3) Period 计 时 器 数 值 达 到 MAX 时 T/C 溢 出 标 志 TOV2 置 位 如 果 中 断 使 能, 在 中 断 服 务 程 序 中 断 服 务 程 序 可 以 更 新 比 较 值 工 作 于 快 速 PWM 模 式 时, 比 较 单 元 可 以 在 OC2 引 脚 上 输 出 PWM 波 形 设 置 COM2: 为 2 可 以 产 生 普 通 的 PWM 信 号 ; 为 3 则 可 以 产 生 反 向 PWM 波 形 ( 参 见 P 9Table 44 ) 要 想 在 引 脚 上 得 到 输 出 信 号 还 必 须 将 OC2 的 数 据 方 向 设 置 为 输 出 产 生 PWM 波 形 的 机 理 是 OC2 寄 存 器 在 OCR2 与 TCNT2 匹 配 时 置 位 ( 或 清 零 ), 以 及 在 计 数 器 清 零 ( 从 MAX 变 为 BOTTOM) 的 那 一 个 定 时 器 时 钟 周 期 清 零 ( 或 置 位 ) 输 出 的 PWM 频 率 可 以 通 过 如 下 公 式 计 算 得 到 : f clk_i/o f OCnPWM = N 256 变 量 N 代 表 分 频 因 子 ( 或 24) OCR2 寄 存 器 为 极 限 值 时 表 示 快 速 PWM 模 式 的 一 些 特 殊 情 况 若 OCR2A 等 于 BOTTOM, 输 出 为 出 现 在 第 MAX+ 个 定 时 器 时 钟 周 期 的 窄 脉 冲 ; OCR2 为 MAX 时, 根 据 COM2: 的 设 定, 输 出 恒 为 高 电 平 或 低 电 平 4 ATmega8(L)

105 ATmega8(L) 通 过 设 定 OC2 在 比 较 匹 配 时 进 行 逻 辑 电 平 取 反 (COM2: = ), 可 以 得 到 占 空 比 为 5% 的 周 期 信 号 OCR2 为 时 信 号 有 最 高 频 率 f oc2 = f clk_i/o /2 这 个 特 性 类 似 于 CTC 模 式 下 的 OC2 取 反 操 作, 不 同 之 处 在 于 快 速 PWM 模 式 具 有 双 缓 冲 相 位 修 正 PWM 模 式 相 位 修 正 PWM 模 式 (WGM2: = ) 为 用 户 提 供 了 一 个 获 得 高 精 度 相 位 修 正 PWM 波 形 的 方 法 此 模 式 基 于 双 斜 坡 操 作 计 时 器 重 复 地 从 BOTTOM 计 到 MAX, 然 后 又 从 MAX 倒 退 回 到 BOTTOM 在 一 般 的 比 较 输 出 模 式 下, 当 计 时 器 往 MAX 计 数 时 若 发 生 了 TCNT2 于 OCR2 的 匹 配,OC2 将 清 零 为 低 电 平 ; 而 在 计 时 器 往 BOTTOM 计 数 时 若 发 生 了 TCNT2 于 OCR2 的 匹 配, OC2 将 置 位 为 高 电 平 工 作 于 反 向 输 出 比 较 时 则 正 好 相 反 与 单 斜 坡 操 作 相 比, 双 斜 坡 操 作 可 获 得 的 最 大 频 率 要 小 但 由 于 其 对 称 的 特 性, 十 分 适 合 于 电 机 控 制 相 位 修 正 PWM 模 式 的 PWM 精 度 固 定 为 8 比 特 计 时 器 不 断 地 累 加 直 到 MAX, 然 后 开 始 减 计 数 在 一 个 定 时 器 时 钟 周 期 里 TCNT2 的 值 等 于 MAX 时 序 图 可 参 见 Figure 5 图 中 TCNT2 的 数 值 用 柱 状 图 表 示, 以 说 明 双 斜 坡 操 作 本 图 同 时 说 明 了 普 通 PWM 的 输 出 和 反 向 PWM 的 输 出 TCNT2 斜 坡 上 的 小 横 条 表 示 OCR2 和 TCNT2 的 比 较 匹 配 Figure 5. 相 位 修 正 PWM 模 式 的 时 序 图 OCn Interrupt Flag Set OCRn Update TOVn Interrupt Flag Set TCNTn OCn (COMn: = 2) OCn (COMn: = 3) Period 2 3 当 计 时 器 达 到 BOTTOM 时 T/C 溢 出 标 志 位 TOV2 置 位 此 标 志 位 可 用 来 产 生 中 断 工 作 于 相 位 修 正 PWM 模 式 时, 比 较 单 元 可 以 在 OC2 引 脚 产 生 PWM 波 形 : 将 COM2: 设 置 为 2 产 生 普 通 相 位 的 PWM, 设 置 COM2: 为 3 产 生 反 向 PWM 信 号 ( 参 见 P 9Table 45 ) 要 想 在 引 脚 上 得 到 输 出 信 号 还 必 须 将 OC2 的 数 据 方 向 设 置 为 输 出 OCR2 和 TCNT2 比 较 匹 配 发 生 时 OC2 寄 存 器 将 产 生 相 应 的 清 零 或 置 位 操 作, 从 而 产 生 PWM 波 形 工 作 于 相 位 修 正 模 式 时 PWM 频 率 可 由 下 式 公 式 获 得 : f clk_i/o f OCnPCPWM = N 5 变 量 N 表 示 预 分 频 因 子 ( 或 24) OCR2 寄 存 器 处 于 极 值 代 表 了 相 位 修 正 PWM 模 式 的 一 些 特 殊 情 况 在 普 通 PWM 模 式 下, 若 OCR2 等 于 BOTTOM, 输 出 一 直 保 持 为 低 电 平 ; 若 OCR2 等 于 MAX, 则 输 出 保 持 为 高 电 平 反 向 PWM 模 式 则 正 好 相 反 5

106 在 Figure 5 的 第 2 个 周 期, 虽 然 没 有 发 生 比 较 匹 配, OCn 也 出 现 了 一 个 从 高 到 低 的 跳 变 其 目 的 是 保 证 波 形 在 BOTTOM 两 侧 的 对 称 没 有 比 较 匹 配 时 有 两 种 情 况 会 出 现 跳 变 如 Figure 5 所 示,OCR2A 的 值 从 MAX 改 变 为 其 他 数 据 当 OCR2A 值 为 MAX 时, 引 脚 OCn 的 输 出 应 该 与 前 面 降 序 记 数 比 较 匹 配 的 结 果 相 同 为 保 证 波 形 在 BOTTOM 两 侧 的 对 称, 当 T/C 的 数 值 为 MAX 时, 引 脚 OCn 的 输 出 又 必 须 符 合 后 面 升 序 记 数 比 较 匹 配 的 结 果 此 时 就 出 现 了 虽 然 没 有 比 较 匹 配 发 生 OCn 却 仍 然 有 跳 变 的 现 象 定 时 器 从 一 个 比 OCR2A 大 的 值 开 始 记 数, 并 因 而 丢 失 了 一 次 比 较 匹 配 因 此 引 入 了 没 有 比 较 匹 配 发 生 OCn 却 仍 然 有 跳 变 的 现 象 T/C 时 序 图 下 面 图 中 给 出 的 T/C 为 同 步 电 路, 因 此 其 时 钟 clk T2 可 以 表 示 为 时 钟 使 能 信 号 在 异 步 模 式 下, clk I/O 由 T/C 振 荡 器 时 钟 所 取 代 图 中 还 说 明 了 中 断 标 志 设 置 的 时 间 Figure 52 包 含 了 T/C 的 基 本 时 序 图 中 给 出 了 除 相 位 修 正 PWM 模 式 的 接 近 MAX 值 的 计 数 序 列 Figure 52. T/C 时 序 图, 无 预 分 频 器 clk I/O clk Tn (clk I/O /) TCNTn MAX - MAX BOTTOM BOTTOM + TOVn Figure 53 给 出 相 同 的 计 时 数 据, 但 预 分 频 器 使 能 Figure 53. T/C 时 序 图, 预 分 频 器 为 f clk_i/o /8 clk I/O clk Tn (clk I/O /8) TCNTn MAX - MAX BOTTOM BOTTOM + TOVn Figure 54 给 出 了 各 种 模 式 下 ( 除 了 CTC 模 式 )OCF2 的 置 位 情 况 6 ATmega8(L)

107 ATmega8(L) Figure 54. T/C 时 序 图, OCF2 置 位, 预 分 频 器 为 f clk_i/o /8 clk I/O clk Tn (clk I/O /8) TCNTn OCRn - OCRn OCRn + OCRn + 2 OCRn OCRn Value OCFn Figure 55 给 出 了 CTC 模 式 下 OCF2 置 位 和 TCNT2 清 除 的 情 况 Figure 55. T/C 时 序 图, CTC 模 式, 预 分 频 器 为 f clk_i/o /8 clk I/O clk Tn (clk I/O /8) TCNTn (CTC) TOP - TOP BOTTOM BOTTOM + OCRn TOP OCFn 7

108 8 位 T/C 寄 存 器 说 明 T/C 控 制 寄 存 器 - TCCR2 Bit FOC2 WGM2 COM2 COM2 WGM2 CS22 CS2 CS2 TCCR2 读 / 写 W R/W R/W R/W R/W R/W R/W R/W 初 始 值 Bit 7 FOC2: 强 制 输 出 比 较 FOC2 仅 在 WGM 指 明 非 PWM 模 式 时 才 有 效 但 是, 为 了 保 证 与 未 来 器 件 的 兼 容 性, 使 用 PWM 时, 写 TCCR2 要 对 其 清 零 写 后, 波 形 发 生 器 将 立 即 进 行 比 较 操 作 比 较 匹 配 输 出 引 脚 OC2 将 按 照 COM2: 的 设 置 输 出 相 应 的 电 平 要 注 意 FOC2 类 似 一 个 锁 存 信 号, 真 正 对 强 制 输 出 比 较 起 作 用 的 是 COM2: 的 设 置 FOC2 不 会 引 发 任 何 中 断, 也 不 会 在 使 用 OCR2 作 为 TOP 的 CTC 模 式 下 对 定 时 器 进 行 清 零 读 FOC2 的 返 回 值 永 远 为 Bit 6,3 WGM2:: 波 形 产 生 模 式 这 几 位 控 制 计 数 器 的 计 数 序 列, 计 数 器 最 大 值 TOP 的 来 源, 以 及 产 生 何 种 波 形 T/C 支 持 的 模 式 有 : 普 通 模 式, 比 较 匹 配 发 生 时 清 除 计 数 器 模 式 (CTC), 以 及 两 种 PWM 模 式, 详 见 Table 42 and P 2 工 作 模 式 Table 42. 波 形 产 生 模 式 的 位 定 义 模 式 WGM2 (CTC2) WGM2 (PWM2) T/C 的 工 作 模 式 TOP OCR2 的 更 新 时 间 TOV2 的 置 位 时 刻 普 通 xff 立 即 更 新 MAX 相 位 修 正 PWM xff TOP BOTTOM 2 CTC OCR2 立 即 更 新 MAX 3 快 速 PWM xff TOP MAX Note:. 位 定 义 CTC2 和 PWM2 已 经 不 再 使 用 了, 要 使 用 WGM2: 但 是 功 能 和 位 置 与 以 前 版 本 兼 容 Bit 5:4 COM2:: 比 较 匹 配 输 出 模 式 这 些 位 决 定 了 比 较 匹 配 发 生 时 输 出 引 脚 OC 的 电 平 如 果 COM: 中 的 一 位 或 全 部 都 置 位, OC 以 比 较 匹 配 输 出 的 方 式 进 行 工 作 同 时 其 方 向 控 制 位 要 设 置 为 以 使 能 输 出 驱 动 当 OC 连 接 到 物 理 引 脚 上 时, COM: 的 功 能 依 赖 于 WGM: 的 设 置 Table 43 给 出 了 当 WGM: 设 置 为 普 通 模 式 或 CTC 模 式 时 COM: 的 功 能 Table 43. 比 较 输 出 模 式, 非 PWM 模 式 COM2 COM2 说 明 正 常 的 端 口 操 作, OC2 未 连 接 比 较 匹 配 发 生 时 OC2 取 反 比 较 匹 配 发 生 时 OC2 清 零 比 较 匹 配 发 生 时 OC2 置 位 Table 44 给 出 了 当 WGM2: 设 置 为 快 速 PWM 模 式 时 COM2: 的 功 能 8 ATmega8(L)

109 ATmega8(L) Table 44. 比 较 输 出 模 式, 快 速 PWM 模 式 () COM2 COM2 说 明 正 常 的 端 口 操 作, OC2 未 连 接 保 留 比 较 匹 配 发 生 时 OC2 清 零, 计 数 到 TOP 时 OC 置 位 比 较 匹 配 发 生 时 OC2 置 位, 计 数 到 TOP 时 OC 清 零 Note:. 一 个 特 殊 情 况 是 OCR2 等 于 TOP, 且 COM2 置 位 此 时 比 较 匹 配 将 被 忽 略, 而 计 数 到 TOP 时 的 动 作 继 续 有 效 详 细 信 息 请 参 见 P 4 快 速 PWM 模 式 Table 45 给 出 了 当 WGM2: 设 置 为 相 位 修 正 PWM 模 式 时 COM2: 的 功 能 Table 45. 比 较 输 出 模 式, 相 位 修 正 PWM 模 式 () COM2 COM2 说 明 正 常 的 端 口 操 作, OC2 未 连 接 保 留 在 升 序 计 数 时 发 生 比 较 匹 配 将 清 零 OC2 ; 降 序 计 数 时 发 生 比 较 匹 配 将 置 位 OC2 在 升 序 计 数 时 发 生 比 较 匹 配 将 置 位 OC2 ; 降 序 计 数 时 发 生 比 较 匹 配 将 清 零 OC2 Note:. 一 个 特 殊 情 况 是 OCR2 等 于 TOP, 且 COM2 置 位 此 时 比 较 匹 配 将 被 忽 略, 而 计 数 到 TOP 时 的 动 作 继 续 有 效 详 细 信 息 请 参 见 P 5 相 位 修 正 PWM 模 式 9

110 Bit 2: CS22:: 时 钟 选 择 这 三 位 时 钟 选 择 位 用 于 选 择 T/C 的 时 钟 源, 见 Table 46 Table 46. 时 钟 选 择 位 说 明 CS22 CS2 CS2 说 明 无 时 钟, T/C 不 工 作 clk T2S /( 没 有 预 分 频 ) clk T2S /8 ( 来 自 预 分 频 器 ) clk T2S /32 ( 来 自 预 分 频 器 ) clk T2S /64 ( 来 自 预 分 频 器 ) clk T2S /28 ( 来 自 预 分 频 器 ) clk T2S /256 ( 来 自 预 分 频 器 ) clk T2S /24 ( 来 自 预 分 频 器 ) 定 时 器 / 计 数 器 寄 存 器 - TCNT2 Bit TCNT2[7:] 读 / 写 R/W R/W R/W R/W R/W R/W R/W R/W 初 始 值 TCNT2 通 过 T/C 寄 存 器 可 以 直 接 对 计 数 器 的 8 位 数 据 进 行 读 写 访 问 对 TCNT2 寄 存 器 的 写 访 问 将 在 下 一 个 时 钟 阻 止 比 较 匹 配 在 计 数 器 运 行 的 过 程 中 修 改 TCNT2 的 数 值 有 可 能 丢 失 一 次 TCNT2 和 OCR2 的 比 较 匹 配 输 出 比 较 寄 存 器 - OCR2 Bit OCR2[7:] 读 / 写 R/W R/W R/W R/W R/W R/W R/W R/W 初 始 值 OCR2 输 出 比 较 寄 存 器 包 含 一 个 8 位 的 数 据, 不 间 断 地 与 计 数 器 数 值 TCNT2 进 行 比 较 匹 配 事 件 可 以 用 来 产 生 输 出 比 较 中 断, 或 者 用 来 在 OC2 引 脚 上 产 生 波 形 定 时 器 / 计 数 器 的 异 步 操 作 异 步 状 态 寄 存 器 - ASSR Bit AS2 TCN2UB OCR2UB TCR2UB ASSR 读 / 写 R R R R R/W R R R 初 始 值 ATmega8(L) Bit 3 AS2: 异 步 T/C2 AS2 为 " 时 T/C2 由 I/O 时 钟 clk I/O 驱 动 ;AS2 为 " 时 T/C2 由 连 接 到 TOSC 引 脚 的 晶 体 振 荡 器 驱 动 改 变 AS2 有 可 能 破 坏 TCNT2 OCR2 与 TCCR2 的 内 容 Bit 2 TCN2UB:T/C2 更 新 中 T/C2 工 作 于 异 步 模 式 时, 写 TCNT2 将 引 起 TCN2UB 置 位 当 TCNT2 从 暂 存 寄 存 器 更 新 完 毕 后 TCN2UB 由 硬 件 清 零 TCN2UB 为 表 明 TCNT2 可 以 写 入 新 值 了 Bit OCR2UB: 输 出 比 较 寄 存 器 2 更 新 中 T/C2 工 作 于 异 步 模 式 时, 写 OCR2 将 引 起 OCR2UB 置 位 当 OCR2 从 暂 存 寄 存 器 更 新 完 毕 后 OCR2UB 由 硬 件 清 零 OCR2UB 为 表 明 OCR2 可 以 写 入 新 值 了

111 ATmega8(L) Bit TCR2UB:T/C2 控 制 寄 存 器 更 新 中 T/C2 工 作 于 异 步 模 式 时, 写 TCCR2 将 引 起 TCR2UB 置 位 当 TCCR2 从 暂 存 寄 存 器 更 新 完 毕 后 TCR2UB 由 硬 件 清 零 TCR2UB 为 表 明 TCCR2 可 以 写 入 新 值 了 如 果 在 更 新 忙 标 志 置 位 的 时 候 写 上 述 任 何 一 个 寄 存 器 都 将 引 起 数 据 的 破 坏, 并 引 发 不 必 要 的 中 断 读 取 TCNT2 OCR2 和 TCCR2 的 机 制 是 不 同 的 读 取 TCNT2 得 到 的 是 实 际 的 值, 而 OCR2 和 TCCR2 则 是 从 暂 存 寄 存 器 中 读 取 的 定 时 器 / 计 数 器 2 的 异 步 操 作 T/C2 工 作 于 异 步 模 式 时 要 考 虑 如 下 几 点 : 警 告 : 在 同 步 和 异 步 模 式 之 间 的 转 换 有 可 能 造 成 TCNT2 OCR2 和 TCCR2 数 据 的 损 毁 安 全 的 步 骤 应 该 是 :. 清 零 OCIE2 和 TOIE2 以 关 闭 T/C2 的 中 断 2. 设 置 AS2 以 选 择 合 适 的 时 钟 源 3. 对 TCNT2 OCR2 和 TCCR2 写 入 新 的 数 据 4. 切 换 到 异 步 模 式 : 等 待 TCN2UB OCR2UB 和 TCR2UB 清 零 5. 清 除 T/C2 的 中 断 标 志 6. 需 要 的 话 使 能 中 断 振 荡 器 最 好 使 用 khz 手 表 晶 振 给 TOSC 提 供 外 部 时 钟, 可 能 会 造 成 T/C2 工 作 错 误 系 统 主 时 钟 必 须 比 晶 振 高 4 倍 以 上 写 TCNT2,OCR2 和 TCCR2 时 数 据 首 先 送 入 暂 存 器, 两 个 TOSC 时 钟 正 跳 变 后 才 锁 存 到 对 应 到 的 寄 存 器 在 数 据 从 暂 存 器 写 入 目 的 寄 存 器 之 前 不 能 执 行 新 的 数 据 写 入 操 作 3 个 寄 存 器 具 有 各 自 独 立 的 暂 存 器, 因 此 写 TCNT2 并 不 会 干 扰 OCR2 的 写 操 作 异 步 状 态 寄 存 器 ASSR 用 来 检 查 数 据 是 否 已 经 写 入 到 目 的 寄 存 器 如 果 要 用 T/C2 作 为 MCU 省 电 模 式 或 扩 展 Standby 模 式 的 唤 醒 条 件, 则 在 TCNT2, OCR2A 和 TCCR2A 更 新 结 束 之 前 不 能 进 入 这 些 休 眠 模 式, 否 则 MCU 可 能 会 在 T/C2 设 置 生 效 之 前 进 入 休 眠 模 式 这 对 于 用 T/C2 的 比 较 匹 配 中 断 唤 醒 MCU 尤 其 重 要, 因 为 在 更 新 OCR2 或 TCNT2 时 比 较 匹 配 是 禁 止 的 如 果 在 更 新 完 成 之 前 (OCR2UB 为 )MCU 就 进 入 了 休 眠 模 式, 那 么 比 较 匹 配 中 断 永 远 不 会 发 生, MCU 也 永 远 无 法 唤 醒 了 如 果 要 用 T/C2 作 为 省 电 模 式 或 扩 展 Standby 模 式 的 唤 醒 条 件, 必 须 注 意 重 新 进 入 这 些 休 眠 模 式 的 过 程 中 断 逻 辑 需 要 一 个 TOSC 周 期 进 行 复 位 如 果 从 唤 醒 到 重 新 进 入 休 眠 的 时 间 小 于 一 个 TOSC 周 期, 中 断 将 不 再 发 生, 器 件 也 无 法 唤 醒 如 果 用 户 怀 疑 自 己 程 序 是 否 满 足 这 一 条 件, 可 以 采 取 如 下 方 法 :. 对 TCCR2 TCNT2 或 OCR2 写 入 合 适 的 数 据 2. 等 待 ASSR 相 应 的 更 新 忙 标 志 清 零 3. 进 入 省 电 模 式 或 扩 展 Standby 模 式 若 选 择 了 异 步 工 作 模 式,T/C2 的 khz 振 荡 器 将 一 直 工 作, 除 非 进 入 掉 电 模 式 或 Standby 模 式 用 户 应 该 注 意, 此 振 荡 器 的 稳 定 时 间 可 能 长 达 秒 钟 因 此, 建 议 用 户 在 器 件 上 电 复 位, 或 从 掉 电 /Standby 模 式 唤 醒 时 至 少 等 待 秒 钟 后 再 使 用 T/C2 同 时, 由 于 启 动 过 程 时 钟 的 不 稳 定 性, 唤 醒 时 所 有 的 T/C2 寄 存 器 的 内 容 都 可 能 不 正 确, 不 论 使 用 的 是 晶 体 还 是 外 部 时 钟 信 号 使 用 异 步 时 钟 时 省 电 模 式 或 扩 展 Standby 模 式 的 唤 醒 过 程 : 中 断 条 件 满 足 后, 在 下 一 个 定 时 器 时 钟 唤 醒 过 程 启 动 也 就 是 说, 在 处 理 器 可 以 读 取 计 数 器 的 数 值 之 前 计 数 器 至 少 又 累 加 了 一 个 时 钟 唤 醒 后 MCU 停 止 4 个 时 钟, 接 着 执 行 中 断 服 务 程 序 中 断 服 务 程 序 结 束 之 后 开 始 执 行 SLEEP 语 句 之 后 的 程 序 从 省 电 模 式 唤 醒 之 后 的 短 时 间 内 读 取 TCNT2 可 能 返 回 不 正 确 的 数 据 因 为 TCNT2 是 由 异 步 的 TOSC 时 钟 驱 动 的, 而 读 取 TCNT2 必 须 通 过 一 个 与 内 部 I/O 时 钟 同 步 的 寄 存 器 来 完 成 同 步 发 生 于 每 个 TOSC 的 上 升 沿 从 省 电 模 式 唤 醒 后 I/O 时 钟 重 新 激

112 活, 而 读 到 的 TCNT2 数 值 为 进 入 休 眠 模 式 前 的 值, 直 到 下 一 个 TOSC 上 升 沿 的 到 来 从 省 电 模 式 唤 醒 时 TOSC 的 相 位 是 完 全 不 可 预 测 的, 而 且 与 唤 醒 时 间 有 关 因 此, 读 取 TCNT2 的 推 荐 序 列 为 :. 写 一 个 任 意 数 值 到 OCR2 或 TCCR2 2. 等 待 相 应 的 更 新 忙 标 志 清 零 3. 读 TCNT2 在 异 步 模 式 下, 中 断 标 志 的 同 步 需 要 3 个 处 理 器 周 期 加 一 个 定 时 器 周 期 在 处 理 器 可 以 读 取 引 起 中 断 标 志 置 位 的 计 数 器 数 值 之 前 计 数 器 至 少 又 累 加 了 一 个 时 钟 输 出 比 较 引 脚 的 变 化 与 定 时 器 时 钟 同 步, 而 不 是 处 理 器 时 钟 2 ATmega8(L)

113 ATmega8(L) 定 时 器 / 计 数 器 中 断 屏 蔽 寄 存 器 -TIMSK Bit OCIE2 TOIE2 TICIE OCIEA OCIEB TOIE TOIE TIMSK 读 / 写 R/W R/W R/W R/W R/W R/W R R/W 初 始 值 Bit 7 OCIE2:T/C2 输 出 比 较 匹 配 中 断 使 能 当 OCIE2 和 状 态 寄 存 器 的 全 局 中 断 使 能 位 I 都 为 " 时,T/C2 的 输 出 比 较 匹 配 A 中 断 使 能 当 T/C2 的 比 较 匹 配 发 生, 即 TIFR 中 的 OCF2 置 位 时, 中 断 服 务 程 序 得 以 执 行 Bit 6 TOIE2: T/C2 溢 出 中 断 使 能 当 TOIE2 和 状 态 寄 存 器 的 全 局 中 断 使 能 位 I 都 为 " 时,T/C2 的 溢 出 中 断 使 能 当 T/C2 发 生 溢 出, 即 TIFR 中 的 TOV2 位 置 位 时, 中 断 服 务 程 序 得 以 执 行 定 时 器 / 计 数 器 中 断 标 志 寄 存 器 -TIFR Bit OCF2 TOV2 ICF OCFA OCFB TOV TOV TIFR 读 / 写 R/W R/W R/W R/W R/W R/W R R/W 初 始 值 Bit 7 OCF2: 输 出 比 较 标 志 2 当 T/C2 与 OCR2( 输 出 比 较 寄 存 器 2) 的 值 匹 配 时, OCF2 置 位 此 位 在 中 断 服 务 程 序 里 硬 件 清 零, 也 可 以 通 过 对 其 写 来 清 零 当 SREG 中 的 位 I OCIE2 和 OCF2 都 置 位 时, 中 断 服 务 程 序 得 到 执 行 Bit 6 TOV2: T/C2 溢 出 标 志 当 T/C2 溢 出 时, TOV2 置 位 执 行 相 应 的 中 断 服 务 程 序 时 此 位 硬 件 清 零 此 外, TOV2 也 可 以 通 过 写 来 清 零 当 SREG 中 的 位 I TOIE2 和 TOV2 都 置 位 时, 中 断 服 务 程 序 得 到 执 行 在 PWM 模 式 中, 当 T/C2 在 x 改 变 记 数 方 向 时, TOV2 置 位 定 时 器 / 计 数 器 预 分 频 器 Figure 56. T/C2 的 预 分 频 器 clk I/O TOSC AS2 clkt2s Clear clk T2S /8 -BIT T/C PRESCALER clk T2S /32 clk T2S /64 clk T2S /28 clk T2S /256 clk T2S /24 PSR2 CS2 CS2 CS22 TIMER/COUNTER2 CLOCK SOURCE clk T2 3

114 T/C2 预 分 频 器 的 输 入 时 钟 称 为 clk T2S 缺 省 地, clk T2S 与 系 统 主 时 钟 clk I/O 连 接 若 置 位 ASSR 的 AS2,T/C2 将 由 引 脚 TOSC 异 步 驱 动, 使 得 T/C2 可 以 作 为 一 个 实 时 时 钟 RTC 此 时 TOSC 和 TOSC2 从 端 口 C 脱 离, 引 脚 上 可 外 接 一 个 时 钟 晶 振 ( 内 部 振 荡 器 针 对 khz 的 钟 表 晶 体 进 行 了 优 化 ) 不 推 荐 在 TOSC 上 直 接 施 加 外 部 时 钟 信 号 T/C2 的 可 能 预 分 频 选 项 有 : clk T2S /8 clk T2S /32 clk T2S /64 clk T2S /28 clk T2S /256 和 clk T2S /24 此 外 还 可 以 选 择 clk T2S 和 ( 停 止 工 作 ) 置 位 SFIOR 寄 存 器 的 PSR2 将 复 位 预 分 频 器, 从 而 允 许 用 户 从 可 预 测 的 预 分 频 器 开 始 工 作 特 殊 功 能 IO 寄 存 器 - SFIOR Bit ACME PUD PSR2 PSR SFIOR 读 / 写 R R R R R/W R/W R/W R/W 初 始 值 Bit PSR2: 预 分 频 复 位 T/C2 当 该 位 置, T/C2 预 分 频 器 复 位 操 作 完 成 后, 该 位 被 硬 件 清 零 该 位 写 无 效 若 内 部 CPU 时 钟 作 为 T/C2 时 钟, 该 位 读 为 当 T/C2 工 作 在 异 步 模 式 时, 直 到 预 分 频 器 复 位 该 位 保 持 为 4 ATmega8(L)

115 ATmega8(L) 串 行 外 设 接 口 - SPI 串 行 外 设 接 口 SPI 允 许 ATmega8 和 外 设 或 其 他 AVR 器 件 进 行 高 速 的 同 步 数 据 传 输 ATmega8 SPI 的 特 点 如 下 : 全 双 工, 3 线 同 步 数 据 传 输 主 机 或 从 机 操 作 LSB 首 先 发 送 或 MSB 首 先 发 送 7 种 可 编 程 的 比 特 率 传 输 结 束 中 断 标 志 写 冲 突 标 志 检 测 可 以 从 闲 置 模 式 唤 醒 作 为 主 机 时 具 有 倍 速 模 式 (CK/2) () Figure 57. SPI 方 框 图 DIVIDER /2/4/8/6/32/64/28 SPI2X SPI2X Note:. SPI 的 引 脚 排 列 请 参 见 P 2 引 脚 配 置 与 P 55Table 22 主 机 和 从 机 之 间 的 SPI 连 接 如 Figure 58 所 示 系 统 包 括 两 个 移 位 寄 存 器 和 一 个 主 机 时 钟 发 生 器 通 过 将 需 要 的 从 机 的 SS 引 脚 拉 低, 主 机 启 动 一 次 通 讯 过 程 主 机 和 从 机 将 需 要 发 送 的 数 据 放 入 相 应 的 移 位 寄 存 器 主 机 在 SCK 引 脚 上 产 生 时 钟 脉 冲 以 交 换 数 据 主 机 的 数 据 从 主 机 的 MOSI 移 出, 从 从 机 的 MOSI 移 入 ; 从 机 的 数 据 由 从 机 的 MISO 移 出, 从 主 机 的 MISO 移 入 主 机 通 过 将 从 机 的 SS 拉 高 实 现 与 从 机 的 同 步 配 置 为 SPI 主 机 时, SPI 接 口 不 自 动 控 制 SS 引 脚, 必 须 由 用 户 软 件 来 处 理 对 SPI 数 据 寄 存 器 写 入 数 据 即 启 动 SPI 时 钟, 将 8 比 特 的 数 据 移 入 从 机 传 输 结 束 后 SPI 时 钟 停 止, 传 输 结 束 标 志 SPIF 置 位 如 果 此 时 SPCR 寄 存 器 的 SPI 中 断 使 能 位 SPIE 置 位, 中 断 就 会 发 生 主 机 可 以 继 续 往 SPDR 写 入 数 据 以 移 位 到 从 机 中 去, 或 者 是 将 从 机 的 SS 拉 高 以 说 明 数 据 包 发 送 完 成 最 后 进 来 的 数 据 将 一 直 保 存 于 缓 冲 寄 存 器 里 5

116 配 置 为 从 机 时, 只 要 SS 为 高, SPI 接 口 将 一 直 保 持 睡 眠 状 态, 并 保 持 MISO 为 三 态 在 这 个 状 态 下 软 件 可 以 更 新 SPI 数 据 寄 存 器 SPDR 的 内 容 即 使 此 时 SCK 引 脚 有 输 入 时 钟,SPDR 的 数 据 也 不 会 移 出, 直 至 SS 被 拉 低 一 个 字 节 完 全 移 出 之 后, 传 输 结 束 标 志 SPIF 置 位 如 果 此 时 SPCR 寄 存 器 的 SPI 中 断 使 能 位 SPIE 置 位, 就 会 产 生 中 断 请 求 在 读 取 移 入 的 数 据 之 前 从 机 可 以 继 续 往 SPDR 写 入 数 据 最 后 进 来 的 数 据 将 一 直 保 存 于 缓 冲 寄 存 器 里 Figure 58. SPI 主 机 - 从 机 的 互 连 MSB MASTER LSB 8 BIT SHIFT REGISTER MISO MISO MSB SLAVE LSB 8 BIT SHIFT REGISTER MOSI MOSI SHIFT ENABLE SPI CLOCK GENERATOR SCK SS V CC SCK SS SPI 系 统 的 发 送 方 向 只 有 一 个 缓 冲 器, 而 在 接 收 方 向 有 两 个 缓 冲 器 也 就 是 说, 在 发 送 时 一 定 要 等 到 移 位 过 程 全 部 结 束 后 才 能 对 SPI 数 据 寄 存 器 执 行 写 操 作 而 在 接 收 数 据 时, 需 要 在 下 一 个 字 符 移 位 过 程 结 束 之 前 通 过 访 问 SPI 数 据 寄 存 器 读 取 当 前 接 收 到 的 字 符 否 则 第 一 个 字 节 将 丢 失 工 作 于 SPI 从 机 模 式 时, 控 制 逻 辑 对 SCK 引 脚 的 输 入 信 号 进 行 采 样 为 了 保 证 对 时 钟 信 号 的 正 确 采 样, SPI 时 钟 不 能 超 过 f osc /4 SPI 使 能 后,MOSI MISO SCK 和 SS 引 脚 的 数 据 方 向 将 按 照 Table 47 所 示 自 动 进 行 配 置 更 多 自 动 重 载 信 息 请 参 考 P 53 端 口 的 第 二 功 能 Table 47. SPI 引 脚 重 载 () 引 脚 方 向, SPI 主 机 方 向, SPI 从 机 MOSI 用 户 定 义 输 入 MISO 输 入 用 户 定 义 SCK 用 户 定 义 输 入 SS 用 户 定 义 输 入 Note:. 请 参 考 P 55 端 口 B 的 第 二 功 能 以 了 解 如 何 定 义 由 用 户 定 义 的 SPI 引 脚 下 面 的 例 程 说 明 如 何 将 SPI 初 始 化 为 主 机, 以 及 如 何 进 行 简 单 的 数 据 发 送 例 子 中 DDR_SPI 必 须 由 实 际 的 数 据 方 向 寄 存 器 代 替 ;DD_MOSI DD_MISO 和 DD_SCK 必 须 由 6 ATmega8(L)

117 ATmega8(L) 实 际 的 数 据 方 向 代 替 比 如 说, MOSI 为 PB5 引 脚, 则 DD_MOSI 要 用 DDB5 取 代, DDR_SPI 则 用 DDRB 取 代 () 汇 编 代 码 例 程 SPI_MasterInit: ; 设 置 MOSI 和 SCK 为 输 出, 其 他 为 输 入 ldi out r7,(<<dd_mosi) (<<DD_SCK) DDR_SPI,r7 ; 使 能 SPI 主 机 模 式, 设 置 时 钟 速 率 为 fck/6 ldi out ret r7,(<<spe) (<<MSTR) (<<SPR) SPCR,r7 SPI_MasterTransmit: ; 启 动 数 据 传 输 (r6) out SPDR,r6 Wait_Transmit: ; 等 待 传 输 结 束 sbis SPSR,SPIF rjmp Wait_Transmit ret () C 代 码 例 程 void SPI_MasterInit(void) { /* 设 置 MOSI 和 SCK 为 输 出, 其 他 为 输 入 */ DDR_SPI = (<<DD_MOSI) (<<DD_SCK); /* 使 能 SPI 主 机 模 式, 设 置 时 钟 速 率 为 fck/6 */ SPCR = (<<SPE) (<<MSTR) (<<SPR); } void SPI_MasterTransmit(char cdata) { /* 启 动 数 据 传 输 */ SPDR = cdata; /* 等 待 传 输 结 束 */ while(!(spsr & (<<SPIF))) ; } Note:. 程 序 假 定 已 经 包 含 了 正 确 的 头 文 件 7

118 下 面 的 例 子 说 明 如 何 将 SPI 初 始 化 为 从 机, 以 及 如 何 进 行 简 单 的 数 据 接 收 () 汇 编 代 码 例 程 SPI_SlaveInit: ; 设 置 MISO 为 输 出, 其 他 为 输 入 ldi out ; 使 能 SPI ldi out ret r7,(<<dd_miso) DDR_SPI,r7 r7,(<<spe) SPCR,r7 SPI_SlaveReceive: ; 等 待 接 收 结 束 sbis SPSR,SPIF rjmp SPI_SlaveReceive ; 读 取 接 收 到 的 数 据, 然 后 返 回 in r6,spdr ret () C 代 码 例 程 void SPI_SlaveInit(void) { /* 设 置 MISO 为 输 出, 其 他 为 输 入 */ DDR_SPI = (<<DD_MISO); /* 使 能 SPI */ SPCR = (<<SPE); } char SPI_SlaveReceive(void) { /* 等 待 接 收 结 束 */ while(!(spsr & (<<SPIF))) ; /* 返 回 数 据 */ return SPDR; } Note:. 例 程 假 定 已 经 包 含 了 正 确 的 头 文 件 8 ATmega8(L)

119 ATmega8(L) SS 引 脚 的 功 能 从 机 模 式 当 SPI 配 置 为 从 机 时, 从 机 选 择 引 脚 SS 总 是 为 输 入 SS 为 低 将 激 活 SPI 接 口, MISO 成 为 输 出 ( 用 户 必 须 进 行 相 应 的 端 口 配 置 ) 引 脚, 其 他 引 脚 成 为 输 入 引 脚 当 SS 为 高 时 所 有 的 引 脚 成 为 输 入, SPI 逻 辑 复 位, 不 再 接 收 数 据 SS 引 脚 对 于 数 据 包 / 字 节 的 同 步 非 常 有 用, 可 以 使 从 机 的 位 计 数 器 与 主 机 的 时 钟 发 生 器 同 步 当 SS 拉 高 时 SPI 从 机 立 即 复 位 接 收 和 发 送 逻 辑, 并 丢 弃 移 位 寄 存 器 里 不 完 整 的 数 据 主 机 模 式 当 SPI 配 置 为 主 机 时 (MSTR 的 SPCR 置 位 ), 用 户 可 以 决 定 SS 引 脚 的 方 向 SPI 控 制 寄 存 器 - SPCR 若 SS 配 置 为 输 出, 则 此 引 脚 可 以 用 作 普 通 的 I/O 口 而 不 影 响 SPI 系 统 典 型 应 用 是 用 来 驱 动 从 机 的 SS 引 脚 如 果 SS 配 置 为 输 入, 必 须 保 持 为 高 以 保 证 SPI 的 正 常 工 作 若 系 统 配 置 为 主 机, SS 为 输 入, 但 被 外 设 拉 低, 则 SPI 系 统 会 将 此 低 电 平 解 释 为 有 一 个 外 部 主 机 将 自 己 选 择 为 从 机 为 了 防 止 总 线 冲 突, SPI 系 统 将 实 现 如 下 动 作 :. 清 零 SPCR 的 MSTR 位, 使 SPI 成 为 从 机, 从 而 MOSI 和 SCK 变 为 输 入 2. SPSR 的 SPIF 置 位 若 SPI 中 断 和 全 局 中 断 开 放, 则 中 断 服 务 程 序 将 得 到 执 行 因 此, 使 用 中 断 方 式 处 理 SPI 主 机 的 数 据 传 输, 并 且 存 在 SS 被 拉 低 的 可 能 性 时, 中 断 服 务 程 序 应 该 检 查 MSTR 是 否 为 " 若 被 清 零, 用 户 必 须 将 其 置 位, 以 重 新 使 能 SPI 主 机 模 式 Bit Bit 7 SPIE: SPI 中 断 使 能 置 位 后, 只 要 SPSR 寄 存 器 的 SPIF 和 SREG 寄 存 器 的 全 局 中 断 使 能 位 置 位, 就 会 引 发 SPI 中 断 Bit 6 SPE: SPI 使 能 SPE 置 位 将 使 能 SPI 进 行 任 何 SPI 操 作 之 前 必 须 置 位 SPE Bit 5 DORD: 数 据 次 序 DORD 置 位 时 数 据 的 LSB 首 先 发 送 ; 否 则 数 据 的 MSB 首 先 发 送 Bit 4 MSTR: 主 / 从 选 择 MSTR 置 位 时 选 择 主 机 模 式, 否 则 为 从 机 如 果 MSTR 为 ",SS 配 置 为 输 入, 但 被 拉 低, 则 MSTR 被 清 零, 寄 存 器 SPSR 的 SPIF 置 位 用 户 必 须 重 新 设 置 MSTR 进 入 主 机 模 式 Bit 3 CPOL: 时 钟 极 性 CPOL 置 位 表 示 空 闲 时 SCK 为 高 电 平 ; 否 则 空 闲 时 SCK 为 低 电 平 请 参 考 Figure 59 与 Figure 6 CPOL 功 能 总 结 如 下 : Bit 2 CPHA: 时 钟 相 位 SPIE SPE DORD MSTR CPOL CPHA SPR SPR SPCR 读 / 写 R/W R/W R/W R/W R/W R/W R/W R/W 初 始 值 Table 48. CPOL 功 能 CPOL 起 始 沿 结 束 沿 上 升 沿 下 降 沿 下 降 沿 上 升 沿 9

120 CPHA 决 定 数 据 是 在 SCK 的 起 始 沿 采 样 还 是 在 SCK 的 结 束 沿 采 样 请 参 考 Figure 59 与 Figure 6 Table 49. CPHA 功 能 CPHA 起 始 沿 结 束 沿 采 样 设 置 设 置 采 样 Bits, SPR, SPR: SPI 时 钟 速 率 选 择 与 确 定 主 机 的 SCK 速 率 SPR 和 SPR 对 从 机 没 有 影 响 SCK 和 振 荡 器 的 时 钟 频 率 f osc 关 系 如 下 表 所 示 : Table 5. SCK 和 振 荡 器 频 率 的 关 系 SPI2X SPR SPR SCK 频 率 f osc /4 f osc /6 f osc /64 f osc /28 f osc /2 f osc /8 f osc /32 f osc /64 2 ATmega8(L)

121 ATmega8(L) SPI 状 态 寄 存 器 - SPSR Bit SPIF WCOL SPI2X SPSR 读 / 写 R R R R R R R R/W 初 始 值 Bit 7 SPIF: SPI 中 断 标 志 串 行 发 送 结 束 后,SPIF 置 位 若 此 时 寄 存 器 SPCR 的 SPIE 和 全 局 中 断 使 能 位 置 位,SPI 中 断 即 产 生 如 果 SPI 为 主 机, SS 配 置 为 输 入, 且 被 拉 低, SPIF 也 将 置 位 进 入 中 断 服 务 程 序 后 SPIF 自 动 清 零 或 者 可 以 通 过 先 读 SPSR, 紧 接 着 访 问 SPDR 来 对 SPIF 清 零 Bit 6 WCOL: 写 冲 突 标 志 在 发 送 当 中 对 SPI 数 据 寄 存 器 SPDR 写 数 据 将 置 位 WCOL WCOL 可 以 通 过 先 读 SPSR, 紧 接 着 访 问 SPDR 来 清 零 Bit 5.. Res: 保 留 保 留 位, 读 操 作 返 回 值 为 零 Bit SPI2X: SPI 倍 速 置 位 后 SPI 的 速 度 加 倍 若 为 主 机 ( 见 Table 5), 则 SCK 频 率 可 达 CPU 频 率 的 一 半 若 为 从 机, 只 能 保 证 f osc /4 ATmega8 的 SPI 接 口 同 时 还 用 来 实 现 程 序 和 EEPROM 的 下 载 和 上 载 请 参 见 SPI 串 行 编 程 和 校 验 SPI 数 据 寄 存 器 - SPDR Bit MSB LSB SPDR 读 / 写 R/W R/W R/W R/W R/W R/W R/W R/W 初 始 值 X X X X X X X X 未 定 义 SPI 数 据 寄 存 器 为 读 / 写 寄 存 器, 用 来 在 寄 存 器 文 件 和 SPI 移 位 寄 存 器 之 间 传 输 数 据 写 寄 存 器 将 启 动 数 据 传 输, 读 寄 存 器 将 读 取 寄 存 器 的 接 收 缓 冲 器 2

122 数 据 模 式 相 对 于 串 行 数 据, SCK 的 相 位 和 极 性 有 4 种 组 合 CPHA 和 CPOL 控 制 组 合 的 方 式 SPI 数 据 传 输 格 式 见 Figure 59 与 Figure 6 每 一 位 数 据 的 移 出 和 移 入 发 生 于 SCK 不 同 的 信 号 跳 变 沿, 以 保 证 有 足 够 的 时 间 使 数 据 稳 定 这 个 过 程 在 Table 48 与 Table 49 有 清 楚 的 说 明 : Table 5. CPOL 与 CPHA 功 能 Figure 59. CPHA = 时 SPI 的 传 输 格 式 起 始 沿 结 束 沿 SPI 模 式 CPOL =, CPHA = 采 样 ( 上 升 沿 ) 设 置 ( 下 降 沿 ) CPOL =, CPHA = 设 置 ( 上 升 沿 ) 采 样 ( 下 降 沿 ) CPOL =, CPHA = 采 样 ( 下 降 沿 ) 设 置 ( 上 升 沿 ) 2 CPOL =, CPHA = 设 置 ( 下 降 沿 ) 采 样 ( 上 升 沿 ) 3 SCK (CPOL = ) mode SCK (CPOL = ) mode 2 SAMPLE I MOSI/MISO CHANGE MOSI PIN CHANGE MISO PIN SS MSB first (DORD = ) LSB first (DORD = ) MSB LSB Bit 6 Bit Bit 5 Bit 2 Bit 4 Bit 3 Bit 3 Bit 4 Bit 2 Bit 5 Bit Bit 6 LSB MSB Figure 6. CPHA = 时 SPI 的 传 输 格 式 SCK (CPOL = ) mode SCK (CPOL = ) mode 3 SAMPLE I MOSI/MISO CHANGE MOSI PIN CHANGE MISO PIN SS MSB first (DORD = ) LSB first (DORD = ) MSB LSB Bit 6 Bit Bit 5 Bit 2 Bit 4 Bit 3 Bit 3 Bit 4 Bit 2 Bit 5 Bit Bit 6 LSB MSB 22 ATmega8(L)

123 ATmega8(L) USART 通 用 同 步 和 异 步 串 行 接 收 器 和 转 发 器 (USART) 是 一 个 高 度 灵 活 的 串 行 通 讯 设 备 主 要 特 点 为 : 全 双 工 操 作 ( 独 立 的 串 行 接 收 和 发 送 寄 存 器 ) 异 步 或 同 步 操 作 主 机 或 从 机 提 供 时 钟 的 同 步 操 作 高 精 度 的 波 特 率 发 生 器 支 持 5, 6, 7, 8, 或 9 个 数 据 位 和 个 或 2 个 停 止 位 硬 件 支 持 的 奇 偶 校 验 操 作 数 据 过 速 检 测 帧 错 误 检 测 噪 声 滤 波, 包 括 错 误 的 起 始 位 检 测, 以 及 数 字 低 通 滤 波 器 三 个 独 立 的 中 断 : 发 送 结 束 中 断, 发 送 数 据 寄 存 器 空 中 断, 以 及 接 收 结 束 中 断 多 处 理 器 通 讯 模 式 倍 速 异 步 通 讯 模 式 综 述 Figure 6 为 USART 的 简 化 框 图 CPU 可 以 访 问 的 I/O 寄 存 器 和 I/O 引 脚 以 粗 体 表 示 () Figure 6. USART 方 框 图 Clock Generator UBRR[H:L] OSC BAUD RATE GENERATOR SYNC LOGIC PIN CONTROL XCK Transmitter DATABUS UDR (Transmit) TRANSMIT SHIFT REGISTER PARITY GENERATOR TX CONTROL PIN CONTROL Receiver TxD CLOCK RECOVERY RX CONTROL RECEIVE SHIFT REGISTER DATA RECOVERY PIN CONTROL RxD UDR (Receive) PARITY CHECKER UCSRA UCSRB UCSRC Note:. 请 参 考 P 2 引 脚 配 置 P 6Table 3 与 P 6Table 29 了 解 USART 的 引 脚 分 布 虚 线 框 将 USART 分 为 了 三 个 主 要 部 分 : 时 钟 发 生 器, 发 送 器 和 接 收 器 控 制 寄 存 器 由 三 个 单 元 共 享 时 钟 发 生 器 包 含 同 步 逻 辑, 通 过 它 将 波 特 率 发 生 器 及 为 从 机 同 步 操 作 所 使 用 23

124 的 外 部 输 入 时 钟 同 步 起 来 XCK ( 发 送 器 时 钟 ) 引 脚 只 用 于 同 步 传 输 模 式 发 送 器 包 括 一 个 写 缓 冲 器, 串 行 移 位 寄 存 器, 奇 偶 发 生 器 以 及 处 理 不 同 的 帧 格 式 所 需 的 控 制 逻 辑 写 缓 冲 器 可 以 保 持 连 续 发 送 数 据 而 不 会 在 数 据 帧 之 间 引 入 延 迟 由 于 接 收 器 具 有 时 钟 和 数 据 恢 复 单 元, 它 是 USART 模 块 中 最 复 杂 的 恢 复 单 元 用 于 异 步 数 据 的 接 收 除 了 恢 复 单 元, 接 收 器 还 包 括 奇 偶 校 验, 控 制 逻 辑, 移 位 寄 存 器 和 一 个 两 级 接 收 缓 冲 器 UDR 接 收 器 支 持 与 发 送 器 相 同 的 帧 格 式, 而 且 可 以 检 测 帧 错 误, 数 据 过 速 和 奇 偶 校 验 错 误 AVR USART 和 AVR UART 兼 容 性 时 钟 产 生 USART 在 如 下 方 面 与 AVR UART 完 全 兼 容 : 所 有 USART 寄 存 器 的 位 定 义 波 特 率 发 生 器 发 送 器 操 作 发 送 缓 冲 器 的 功 能 接 收 器 操 作 然 而, 接 收 器 缓 冲 器 有 两 个 方 面 的 改 进, 在 某 些 特 殊 情 况 下 会 影 响 兼 容 性 : 增 加 了 一 个 缓 冲 器 两 个 缓 冲 器 的 操 作 好 象 是 一 个 循 环 的 FIFO 因 此 对 于 每 个 接 收 到 的 数 据 只 能 读 一 次! 更 重 要 的 是 错 误 标 志 FE 和 DOR, 以 及 第 9 个 数 据 位 RXB8 与 数 据 一 起 存 放 于 接 收 缓 冲 器 因 此 必 须 在 读 取 UDR 寄 存 器 之 前 访 问 状 态 标 志 位 否 则 将 丢 失 错 误 状 态 接 收 移 位 寄 存 器 可 以 作 为 第 三 级 缓 冲 在 两 个 缓 冲 器 都 没 有 空 的 时 候, 数 据 可 以 保 存 于 串 行 移 位 寄 存 器 之 中 ( 参 见 Figure 6), 直 到 检 测 到 新 的 起 始 位 从 而 增 强 了 USART 抵 抗 数 据 过 速 (DOR) 的 能 力 下 面 的 控 制 位 的 名 称 做 了 改 动, 但 其 功 能 和 在 寄 存 器 中 的 位 置 并 没 有 改 变 : CHR9 改 为 UCSZ2 OR 改 为 DOR 时 钟 产 生 逻 辑 为 发 送 器 和 接 收 器 产 生 基 础 时 钟 USART 支 持 4 种 模 式 的 时 钟 : 正 常 的 异 步 模 式, 倍 速 的 异 步 模 式, 主 机 同 步 模 式, 以 及 从 机 同 步 模 式 USART 控 制 位 UMSEL 和 状 态 寄 存 器 C (UCSRC) 用 于 选 择 异 步 模 式 和 同 步 模 式 倍 速 模 式 ( 只 适 用 于 异 步 模 式 ) 受 控 于 UCSRA 寄 存 器 的 U2X 使 用 同 步 模 式 (UMSEL = ) 时,XCK 的 数 据 方 向 寄 存 器 (DDR_XCK) 决 定 时 钟 源 是 由 内 部 产 生 ( 主 机 模 式 ) 还 是 由 外 部 生 产 ( 从 机 模 式 ) 仅 在 同 步 模 式 下 XCK 有 效 Figure 62 为 时 钟 产 生 逻 辑 的 框 图 24 ATmega8(L)

125 ATmega8(L) Figure 62. 时 钟 产 生 逻 辑 框 图 UBRR fosc U2X Prescaling Down-Counter UBRR+ / 2 / 4 / 2 OSC DDR_XCK txclk XCK Pin xcki xcko Sync Register Edge Detector UMSEL DDR_XCK UCPOL rxclk 信 号 说 明 : txclk 发 送 器 时 钟 ( 内 部 信 号 ) rxclk 接 收 器 基 础 时 钟 ( 内 部 信 号 ) xcki XCK 引 脚 输 入 ( 内 部 信 号 ), 用 于 同 步 从 机 操 作 xcko 输 出 到 XCK 引 脚 的 时 钟 ( 内 部 信 号 ), 用 于 同 步 主 机 操 作 fosc XTAL 频 率 ( 系 统 时 钟 ) 片 内 时 钟 产 生 - 波 特 率 发 生 器 内 部 时 钟 用 于 异 步 模 式 与 同 步 主 机 模 式, 请 参 见 Figure 62 USART 的 波 特 率 寄 存 器 UBRR 和 降 序 计 数 器 相 连 接, 一 起 构 成 可 编 程 的 预 分 频 器 或 波 特 率 发 生 器 降 序 计 数 器 对 系 统 时 钟 计 数, 当 其 计 数 到 零 或 UBRRL 寄 存 器 被 写 时, 会 自 动 装 入 UBRR 寄 存 器 的 值 当 计 数 到 零 时 产 生 一 个 时 钟, 该 时 钟 作 为 波 特 率 发 生 器 的 输 出 时 钟, 输 出 时 钟 的 频 率 为 f osc /(UBRR+) 发 生 器 对 波 特 率 发 生 器 的 输 出 时 钟 进 行 2 8 或 6 的 分 频, 具 体 情 况 取 决 于 工 作 模 式 波 特 率 发 生 器 的 输 出 被 直 接 用 于 接 收 器 与 数 据 恢 复 单 元 数 据 恢 复 单 元 使 用 了 一 个 有 2 8 或 6 个 状 态 的 状 态 机, 具 体 状 态 数 由 UMSEL U2X 与 DDR_XCK 位 设 定 的 工 作 模 式 决 定 Table 52 给 出 了 计 算 波 特 率 ( 位 / 秒 ) 以 及 计 算 每 一 种 使 用 内 部 时 钟 源 工 作 模 式 的 UBRR 值 的 公 式 Table 52. 波 特 率 计 算 公 式 使 用 模 式 异 步 正 常 模 式 (U2X = ) 异 步 倍 速 模 式 (U2X = ) 同 步 主 机 模 式 Equation for Calculating Baud Rate () Note:. 波 特 率 定 义 为 每 秒 的 位 传 输 速 度 (bps) f OSC BAUD = UBRR = 6( UBRR + ) f OSC BAUD = UBRR = 8( UBRR + ) f OSC BAUD = UBRR = 2( UBRR + ) Equation for Calculating UBRR Value f OSC BAUD f OSC BAUD f OSC BAUD 25

126 BAUD 波 特 率 ( bps) f OSC 系 统 时 钟 频 率 UBRR UBRRH 与 UBRRL 的 数 值 (-495) Table 6 给 出 了 在 某 些 系 统 时 钟 频 率 下 对 应 的 UBRR 数 值 倍 速 工 作 模 式 (U2X) 通 过 设 定 UCSRA 寄 存 器 的 U2X 可 以 使 传 输 速 率 加 倍 该 位 只 对 异 步 工 作 模 式 有 效 当 工 作 在 同 步 模 式 时, 设 置 该 位 为 " 设 置 该 位 把 波 特 率 分 频 器 的 分 频 值 从 6 降 到 8, 使 异 步 通 信 的 传 输 速 率 加 倍 此 时 接 收 器 只 使 用 一 半 的 采 样 数 对 数 据 进 行 采 样 及 时 钟 恢 复, 因 此 在 该 模 式 下 需 要 更 精 确 的 系 统 时 钟 与 更 精 确 的 波 特 率 设 置 发 送 器 则 没 有 这 个 要 求 外 部 时 钟 同 步 从 机 操 作 模 式 由 外 部 时 钟 驱 动, 如 Figure 62 所 示 输 入 到 XCK 引 脚 的 外 部 时 钟 由 同 步 寄 存 器 进 行 采 样, 用 以 提 高 稳 定 性 同 步 寄 存 器 的 输 出 通 过 一 个 边 沿 检 测 器, 然 后 应 用 于 发 送 器 与 接 收 器 这 一 过 程 引 入 了 两 个 CPU 时 钟 周 期 的 延 时, 因 此 外 部 XCK 的 最 大 时 钟 频 率 由 以 下 公 式 限 制 : f OSC f XCK < 要 注 意 f osc 由 系 统 时 钟 的 稳 定 性 决 定, 为 了 防 止 因 频 率 漂 移 而 丢 失 数 据, 建 议 保 留 足 够 的 裕 量 26 ATmega8(L)

127 ATmega8(L) 同 步 时 钟 操 作 使 用 同 步 模 式 时 (UMSEL = )XCK 引 脚 被 用 于 时 钟 输 入 ( 从 机 模 式 ) 或 时 钟 输 出 ( 主 机 模 式 ) 时 钟 的 边 沿 数 据 的 采 样 与 数 据 的 变 化 之 间 的 关 系 的 基 本 规 律 是 : 在 改 变 数 据 输 出 端 TxD 的 XCK 时 钟 的 相 反 边 沿 对 数 据 输 入 端 RxD 进 行 采 样 Figure 63. 同 步 模 式 时 的 XCK 时 序 UCPOL = XCK RxD / TxD Sample UCPOL = XCK RxD / TxD Sample UCRSC 寄 存 器 的 UCPOL 位 确 定 使 用 XCK 时 钟 的 哪 个 边 沿 对 数 据 进 行 采 样 和 改 变 输 出 数 据 如 Figure 63 所 示, 当 UCPOL= 时, 在 XCK 的 上 升 沿 改 变 输 出 数 据, 在 XCK 的 下 降 沿 进 行 数 据 采 样 ; 当 UCPOL= 时, 在 XCK 的 下 降 沿 改 变 输 出 数 据, 在 XCK 的 上 升 沿 进 行 数 据 采 样 帧 格 式 串 行 数 据 帧 由 数 据 字 加 上 同 步 位 ( 开 始 位 与 停 止 位 ) 以 及 用 于 纠 错 的 奇 偶 校 验 位 构 成 USART 接 受 以 下 3 种 组 合 的 数 据 帧 格 式 : 个 起 始 位 或 9 个 数 据 位 无 校 验 位 奇 校 验 或 偶 校 验 位 或 2 个 停 止 位 数 据 帧 以 起 始 位 开 始 ; 紧 接 着 是 数 据 字 的 最 低 位, 数 据 字 最 多 可 以 有 9 个 数 据 位, 以 数 据 的 最 高 位 结 束 如 果 使 能 了 校 验 位, 校 验 位 将 紧 接 着 数 据 位, 最 后 是 结 束 位 当 一 个 完 整 的 数 据 帧 传 输 后, 可 以 立 即 传 输 下 一 个 新 的 数 据 帧, 或 使 传 输 线 处 于 空 闲 状 态 Figure 64 所 示 为 可 能 的 数 据 帧 结 构 组 合 括 号 中 的 位 是 可 选 的 Figure 64. 帧 格 式 FRAME (IDLE) St [5] [6] [7] [8] [P] Sp [Sp2] (St / IDLE) St 起 始 位, 总 是 为 低 电 平 (n) 数 据 位 ( ~ 8) P 校 验 位, 可 以 为 奇 校 验 或 偶 校 验 Sp 停 止 位, 总 是 为 高 电 平 IDLE 通 讯 线 上 没 有 数 据 传 输 (RxD 或 TxD), 线 路 空 闲 时 必 须 为 高 电 平 数 据 帧 的 结 构 由 UCSRB 和 UCSRC 寄 存 器 中 的 UCSZ2: UPM: USBS 设 定 接 收 与 发 送 使 用 相 同 的 设 置 设 置 的 任 何 改 变 都 可 能 破 坏 正 在 进 行 的 数 据 传 送 与 接 收 27

128 USART 的 字 长 位 UCSZ2: 确 定 了 数 据 帧 的 数 据 位 数 ; 校 验 模 式 位 UPM: 用 于 使 能 与 决 定 校 验 的 类 型 ; USBS 位 设 置 帧 有 一 位 或 两 位 结 束 位 接 收 器 忽 略 第 二 个 停 止 位, 因 此 帧 错 误 (FE) 只 在 第 一 个 结 束 位 为 " 时 被 检 测 到 校 验 位 的 计 算 USART 的 初 始 化 校 验 位 的 计 算 是 对 数 据 的 各 个 位 进 行 异 或 运 算 如 果 选 择 了 奇 校 验, 则 异 或 结 果 还 需 要 取 反 校 验 位 与 数 据 位 的 关 系 如 下 : P even = d n d 3 d 2 d d P odd = d n d 3 d 2 d d P even P odd d n 偶 校 验 结 果 奇 校 验 位 结 果 第 n 个 数 据 位 校 验 位 处 于 最 后 一 个 数 据 位 与 第 一 个 停 止 位 之 间 进 行 通 信 之 前 首 先 要 对 USART 进 行 初 始 化 初 始 化 过 程 通 常 包 括 波 特 率 的 设 定, 帧 结 构 的 设 定, 以 及 根 据 需 要 使 能 接 收 器 或 发 送 器 对 于 中 断 驱 动 的 USART 操 作, 在 初 始 化 时 首 先 要 清 零 全 局 中 断 标 志 位 ( 全 局 中 断 被 屏 蔽 ) 重 新 改 变 USART 的 设 置 应 该 在 没 有 数 据 传 输 的 情 况 下 进 行 TXC 标 志 位 可 以 用 来 检 验 一 个 数 据 帧 的 发 送 是 否 已 经 完 成, RXC 标 志 位 可 以 用 来 检 验 接 收 缓 冲 器 中 是 否 还 有 数 据 未 读 出 在 每 次 发 送 数 据 之 前 ( 在 写 发 送 数 据 寄 存 器 UDR 前 )TXC 标 志 位 必 须 清 零 以 下 是 USART 初 始 化 程 序 示 例 例 程 采 用 了 轮 询 ( 中 断 被 禁 用 ) 的 异 步 操 作, 而 且 帧 结 构 是 固 定 的 波 特 率 作 为 函 数 参 数 给 出 在 汇 编 程 序 里 波 特 率 参 数 保 存 于 寄 存 器 r7:r6 当 写 入 UCSRC 寄 存 器 时, 由 于 UBRRH 与 UCSRC 共 用 I/O 地 址,URSEL 位 (MSB) 必 须 置 位 28 ATmega8(L)

129 ATmega8(L) () 汇 编 代 码 例 程 USART_Init: ; 设 置 波 特 率 out UBRRH, r7 out UBRRL, r6 ; 接 收 器 与 发 送 器 使 能 ldi r6, (<<RXEN) (<<TXEN) out UCSRB,r6 ; 设 置 帧 格 式 : 8 个 数 据 位, 2 个 停 止 位 ldi r6, (<<URSEL) (<<USBS) (3<<UCSZ) out UCSRC,r6 ret C 代 码 例 程 () void USART_Init( unsigned int baud ) { /* 设 置 波 特 率 */ UBRRH = (unsigned char)(baud>>8); UBRRL = (unsigned char)baud; /* 接 收 器 与 发 送 器 使 能 */ UCSRB = (<<RXEN) (<<TXEN); /* 设 置 帧 格 式 : 8 个 数 据 位, 2 个 停 止 位 */ UCSRC = (<<URSEL) (<<USBS) (3<<UCSZ); } Note:. 本 代 码 假 定 已 经 包 含 了 合 适 的 头 文 件 更 高 级 的 初 始 化 程 序 可 将 帧 格 式 作 为 参 数 禁 止 中 断 等 等 然 而 许 多 应 用 程 序 使 用 固 定 的 波 特 率 与 控 制 寄 存 器 此 时 初 始 化 代 码 可 以 直 接 放 在 主 程 序 中, 或 与 其 它 I/O 模 块 的 初 始 化 代 码 组 合 到 一 起 29

130 数 据 发 送 - USART 发 送 器 发 送 5 到 8 位 数 据 位 的 帧 置 位 UCSRB 寄 存 器 的 发 送 允 许 位 TXEN 将 使 能 USART 的 数 据 发 送 使 能 后 TxD 引 脚 的 通 用 I/O 功 能 即 被 USART 功 能 所 取 代, 成 为 发 送 器 的 串 行 输 出 引 脚 发 送 数 据 之 前 要 设 置 好 波 特 率 工 作 模 式 与 帧 结 构 如 果 使 用 同 步 发 送 模 式, 施 加 于 XCK 引 脚 上 的 时 钟 信 号 即 为 数 据 发 送 的 时 钟 将 需 要 发 送 的 数 据 加 载 到 发 送 缓 存 器 将 启 动 数 据 发 送 加 载 过 程 即 为 CPU 对 UDR 寄 存 器 的 写 操 作 当 移 位 寄 存 器 可 以 发 送 新 一 帧 数 据 时, 缓 冲 的 数 据 将 转 移 到 移 位 寄 存 器 当 移 位 寄 存 器 处 于 空 闲 状 态 ( 没 有 正 在 进 行 的 数 据 传 输 ), 或 前 一 帧 数 据 的 最 后 一 个 停 止 位 传 送 结 束, 它 将 加 载 新 的 数 据 一 旦 移 位 寄 存 器 加 载 了 新 的 数 据, 就 会 按 照 设 定 的 波 特 率 完 成 数 据 的 发 送 以 下 程 序 给 出 一 个 对 UDRE 标 志 采 用 轮 询 方 式 发 送 数 据 的 例 子 当 发 送 的 数 据 少 于 8 位 时, 写 入 UDR 相 应 位 置 的 高 几 位 将 被 忽 略 当 然, 执 行 本 段 代 码 之 前 首 先 要 初 始 化 USART 在 汇 编 代 码 中 要 发 送 的 数 据 存 放 于 R6 () 汇 编 代 码 例 程 USART_Transmit: ; 等 待 发 送 缓 冲 器 为 空 sbis UCSRA,UDRE rjmp USART_Transmit ; 将 数 据 放 入 缓 冲 器, 发 送 数 据 out UDR,r6 ret () C 代 码 例 程 void USART_Transmit( unsigned char data ) { /* 等 待 发 送 缓 冲 器 为 空 */ while (!( UCSRA & (<<UDRE)) ) ; /* 将 数 据 放 入 缓 冲 器, 发 送 数 据 */ UDR = data; } Note:. 本 代 码 假 定 已 经 包 含 了 合 适 的 头 文 件 这 个 程 序 只 是 在 载 入 新 的 要 发 送 的 数 据 前, 通 过 检 测 UDRE 标 志 等 待 发 送 缓 冲 器 为 空 如 果 使 用 了 数 据 寄 存 器 空 中 断, 则 数 据 写 入 缓 冲 器 的 操 作 在 中 断 程 序 中 进 行 3 ATmega8(L)

131 ATmega8(L) 发 送 9 位 数 据 位 的 帧 如 果 发 送 9 位 数 据 的 数 据 帧 (UCSZ = 7), 应 先 将 数 据 的 第 9 位 写 入 寄 存 器 UCSRB 的 TXB8, 然 后 再 将 低 8 位 数 据 写 入 发 送 数 据 寄 存 器 UDR 以 下 程 序 给 出 发 送 9 位 数 据 的 数 据 帧 例 子 在 汇 编 代 码 中 要 发 送 的 数 据 存 放 在 R7:R6 寄 存 器 中 () 汇 编 代 码 例 程 USART_Transmit: ; 等 待 发 送 缓 冲 器 为 空 sbis UCSRA,UDRE rjmp USART_Transmit ; 将 第 9 位 从 r7 中 复 制 到 TXB8 cbi UCSRB,TXB8 sbrc r7, sbi UCSRB,TXB8 ; 将 低 8 位 数 据 放 入 缓 冲 器, 发 送 数 据 out UDR,r6 ret C 代 码 例 程 () void USART_Transmit( unsigned int data ) { /* 等 待 发 送 缓 冲 器 为 空 */ while (!( UCSRA & (<<UDRE))) ) ; /* 将 第 9 位 复 制 到 TXB8 */ UCSRB &= ~(<<TXB8); if ( data & x ) UCSRB = (<<TXB8); /* 将 数 据 放 入 缓 冲 器, 发 送 数 据 */ UDR = data; } Note:. 这 些 函 数 均 为 通 用 函 数 如 果 UCSRB 的 内 容 在 应 用 中 是 固 定 的, 函 数 可 以 进 一 步 优 化 例 如, 初 始 化 后 只 使 用 UCSRB 寄 存 器 的 TXB8 位 第 9 位 数 据 在 多 机 通 信 中 用 于 表 示 地 址 帧, 在 同 步 通 信 中 可 以 用 于 协 议 处 理 传 送 标 志 位 与 中 断 USART 发 送 器 有 两 个 标 志 位 :USART 数 据 寄 存 器 空 标 志 UDRE 及 传 输 结 束 标 志 TXC, 两 个 标 志 位 都 可 以 产 生 中 断 数 据 寄 存 器 空 UDRE 标 志 位 表 示 发 送 缓 冲 器 是 否 可 以 接 受 一 个 新 的 数 据 该 位 在 发 送 缓 冲 器 空 时 被 置 " ; 当 发 送 缓 冲 器 包 含 需 要 发 送 的 数 据 时 清 零 为 与 将 来 的 器 件 兼 容, 写 UCSRA 寄 存 器 时 该 位 要 写 " 当 UCSRB 寄 存 器 中 的 数 据 寄 存 器 空 中 断 使 能 位 UDRIE 为 " 时, 只 要 UDRE 被 置 位 ( 且 全 局 中 断 使 能 ), 就 将 产 生 USART 数 据 寄 存 器 空 中 断 请 求 对 寄 存 器 UDR 执 行 写 操 作 将 清 零 UDRE 当 采 用 中 断 方 式 的 传 输 数 据 时, 在 数 据 寄 存 器 空 中 断 服 务 程 序 中 必 须 写 一 个 新 的 数 据 到 UDR 以 清 零 UDRE ; 或 者 是 禁 止 数 据 寄 存 器 空 中 断 否 则 一 旦 该 中 断 程 序 结 束, 一 个 新 的 中 断 将 再 次 产 生 当 整 个 数 据 帧 移 出 发 送 移 位 寄 存 器, 同 时 发 送 缓 冲 器 中 又 没 有 新 的 数 据 时, 发 送 结 束 标 志 TXC 置 位 TXC 在 传 送 结 束 中 断 执 行 时 自 动 清 零, 也 可 在 该 位 写 " 来 清 零 TXC 标 志 位 对 于 采 用 如 RS-485 标 准 的 半 双 工 通 信 接 口 十 分 有 用 在 这 些 应 用 里, 一 旦 传 送 完 毕, 应 用 程 序 必 须 释 放 通 信 总 线 并 进 入 接 收 状 态 3

132 当 UCSRB 上 的 发 送 结 束 中 断 使 能 位 TXCIE 与 全 局 中 断 使 能 位 均 被 置 为 " 时, 随 着 TXC 标 志 位 的 置 位, USART 发 送 结 束 中 断 将 被 执 行 一 旦 进 入 中 断 服 务 程 序, TXC 标 志 位 即 被 自 动 清 零, 中 断 处 理 程 序 不 必 执 行 TXC 清 零 操 作 奇 偶 校 验 产 生 电 路 禁 止 发 送 器 奇 偶 校 验 产 生 电 路 为 串 行 数 据 帧 生 成 相 应 的 校 验 位 校 验 位 使 能 (UPM = ) 时, 发 送 控 制 逻 辑 电 路 会 在 数 据 的 最 后 一 位 与 第 一 个 停 止 位 之 间 插 入 奇 偶 校 验 位 TXEN 清 零 后, 只 有 等 到 所 有 的 数 据 发 送 完 成 后 发 送 器 才 能 够 真 正 禁 止, 即 发 送 移 位 寄 存 器 与 发 送 缓 冲 寄 存 器 中 没 有 要 传 送 的 数 据 发 送 器 禁 止 后,TxD 引 脚 恢 复 其 通 用 I/O 功 能 32 ATmega8(L)

133 ATmega8(L) 数 据 接 收 - USART 接 收 器 以 5 到 8 个 数 据 位 的 方 式 接 收 数 据 帧 置 位 UCSRB 寄 存 器 的 接 收 允 许 位 (RXEN) 即 可 启 动 USART 接 收 器 接 收 器 使 能 后 RxD 的 普 通 引 脚 功 能 被 USART 功 能 所 取 代, 成 为 接 收 器 的 串 行 输 入 口 进 行 数 据 接 收 之 前 首 先 要 设 置 好 波 特 率 操 作 模 式 及 帧 格 式 如 果 使 用 同 步 操 作, XCK 引 脚 上 的 时 钟 被 用 为 传 输 时 钟 一 旦 接 收 器 检 测 到 一 个 有 效 的 起 始 位, 便 开 始 接 收 数 据 起 始 位 后 的 每 一 位 数 据 都 将 以 所 设 定 的 波 特 率 或 XCK 时 钟 进 行 接 收, 直 到 收 到 一 帧 数 据 的 第 一 个 停 止 位 接 收 到 的 数 据 被 送 入 接 收 移 位 寄 存 器 第 二 个 停 止 位 会 被 接 收 器 忽 略 接 收 到 第 一 个 停 止 位 后, 接 收 移 位 寄 存 器 就 包 含 了 一 个 完 整 的 数 据 帧 这 时 移 位 寄 存 器 中 的 内 容 将 被 转 移 到 接 收 缓 冲 器 中 通 过 读 取 UDR 就 可 以 获 得 接 收 缓 冲 器 的 内 容 的 以 下 程 序 给 出 一 个 对 RXC 标 志 采 用 轮 询 方 式 接 收 数 据 的 例 子 当 数 据 帧 少 于 8 位 时, 从 UDR 读 取 的 相 应 的 高 几 位 为 当 然, 执 行 本 段 代 码 之 前 首 先 要 初 始 化 USART 汇 编 代 码 例 子 () USART_Receive: ; 等 待 接 收 数 据 sbis UCSRA, RXC rjmp USART_Receive ; 从 缓 冲 器 中 获 取 并 返 回 数 据 in r6, UDR ret () C 代 码 例 子 unsigned char USART_Receive( void ) { /* 等 待 接 收 数 据 */ while (!(UCSRA & (<<RXC)) ) ; /* 从 缓 冲 器 中 获 取 并 返 回 数 据 */ return UDR; } Note:. 本 代 码 假 定 已 经 包 含 了 相 应 的 头 文 件 在 读 缓 冲 器 并 返 回 之 前, 函 数 通 过 检 查 RXC 标 志 来 等 待 数 据 送 入 接 收 缓 冲 器 33

134 以 9 个 数 据 位 的 方 式 接 收 帧 如 果 设 定 了 9 位 数 据 的 数 据 帧 (UCSZ=7), 在 从 UDR 读 取 低 8 位 之 前 必 须 首 先 读 取 寄 存 器 UCSRB 的 RXB8 以 获 得 第 9 位 数 据 这 个 规 则 同 样 适 用 于 状 态 标 志 位 FE DOR 及 UPE 状 态 通 过 读 取 UCSRA 获 得, 数 据 通 过 UDR 获 得 读 取 UDR 存 储 单 元 会 改 变 接 收 缓 冲 器 FIFO 的 状 态, 进 而 改 变 同 样 存 储 在 FIFO 中 的 TXB8 FE DOR 及 UPE 位 接 下 来 的 代 码 示 例 展 示 了 一 个 简 单 的 USART 接 收 函 数, 说 明 如 何 处 理 9 位 数 据 及 状 态 位 () 汇 编 代 码 例 程 34 ATmega8(L) USART_Receive: ; 等 待 接 收 数 据 sbis rjmp UCSRA, RXC USART_Receive ; 从 缓 冲 器 中 获 得 状 态 第 9 位 及 数 据 in in in r8, UCSRA r7, UCSRB r6, UDR ; 如 果 出 错, 返 回 - andi breq ldi ldi r8,(<<fe) (<<DOR) (<<PE) USART_ReceiveNoError r7, HIGH(-) r6, LOW(-) USART_ReceiveNoError: ; 过 滤 第 9 位 数 据, 然 后 返 回 lsr andi ret Note:. 本 代 码 假 定 已 经 包 含 了 相 应 的 头 文 件 上 述 例 子 在 进 行 任 何 计 算 之 前 将 所 有 的 I/O 寄 存 器 的 内 容 读 到 寄 存 器 文 件 中 这 种 方 法 优 化 了 对 接 收 缓 冲 器 的 利 用 它 尽 可 能 早 地 释 放 了 缓 冲 器 以 接 收 新 的 数 据 接 收 结 束 标 志 及 中 断 USART 接 收 器 有 一 个 标 志 用 来 指 明 接 收 器 的 状 态 r7 () C 代 码 例 程 r7, x unsigned int USART_Receive( void ) { unsigned char status, resh, resl; /* 等 待 接 收 数 据 */ while (!(UCSRA & (<<RXC)) ) ; /* 从 缓 冲 器 中 获 得 状 态 第 9 位 及 数 据 */ /* from buffer */ status = UCSRA; resh = UCSRB; resl = UDR; /* 如 果 出 错, 返 回 - */ if ( status & (<<FE) (<<DOR) (<<PE) ) return -; /* 过 滤 第 9 位 数 据, 然 后 返 回 */ resh = (resh >> ) & x; return ((resh << 8) resl); }

135 ATmega8(L) 接 收 结 束 标 志 (RXC) 用 来 说 明 接 收 缓 冲 器 中 是 否 有 未 读 出 的 数 据 当 接 收 缓 冲 器 中 有 未 读 出 的 数 据 时, 此 位 为, 当 接 收 缓 冲 器 空 时 为 ( 即 不 包 含 未 读 出 的 数 据 ) 如 果 接 收 器 被 禁 止 (RXEN = ), 接 收 缓 冲 器 会 被 刷 新, 从 而 使 RXC 清 零 置 位 UCSRB 的 接 收 结 束 中 断 使 能 位 (RXCIE) 后, 只 要 RXC 标 志 置 位 ( 且 全 局 中 断 只 能 ) 就 会 产 生 USART 接 收 结 束 中 断 使 用 中 断 方 式 进 行 数 据 接 收 时, 数 据 接 收 结 束 中 断 服 务 程 序 程 序 必 须 从 UDR 读 取 数 据 以 清 RXC 标 志, 否 则 只 要 中 断 处 理 程 序 一 结 束, 一 个 新 的 中 断 就 会 产 生 接 收 器 错 误 标 志 USART 接 收 器 有 三 个 错 误 标 志 :: 帧 错 误 (FE) 数 据 溢 出 (DOR) 及 奇 偶 校 验 错 (UPE) 它 们 都 位 于 寄 存 器 UCSRA 错 误 标 志 与 数 据 帧 一 起 保 存 在 接 收 缓 冲 器 中 由 于 读 取 UDR 会 改 变 缓 冲 器, UCSRA 的 内 容 必 须 在 读 接 收 缓 冲 器 (UDR) 之 前 读 入 错 误 标 志 的 另 一 个 同 一 性 是 它 们 都 不 能 通 过 软 件 写 操 作 来 修 改 但 是 为 了 保 证 与 将 来 产 品 的 兼 容 性, 对 执 行 写 操 作 是 必 须 对 这 些 错 误 标 志 所 在 的 位 置 写 " 所 有 的 错 误 标 志 都 不 能 产 生 中 断 帧 错 误 标 志 (FE) 表 明 了 存 储 在 接 收 缓 冲 器 中 的 下 一 个 可 读 帧 的 第 一 个 停 止 位 的 状 态 停 止 位 正 确 ( 为 ) 则 FE 标 志 为, 否 则 FE 标 志 为 这 个 标 志 可 用 来 检 测 同 步 丢 失 传 输 中 断, 也 可 用 于 协 议 处 理 UCSRC 中 USBS 位 的 设 置 不 影 响 FE 标 志 位, 因 为 除 了 第 一 位, 接 收 器 忽 略 所 有 其 他 的 停 止 位 为 了 与 以 后 的 器 件 相 兼 容, 写 UCSRA 时 这 一 位 必 须 置 数 据 溢 出 标 志 (DOR) 表 明 由 于 接 收 缓 冲 器 满 造 成 了 数 据 丢 失 当 接 收 缓 冲 器 满 ( 包 含 了 两 个 数 据 ), 接 收 移 位 寄 存 器 又 有 数 据, 若 此 时 检 测 到 一 个 新 的 起 始 位, 数 据 溢 出 就 产 生 了 DOR 标 志 位 置 位 即 表 明 在 最 近 一 次 读 取 UDR 和 下 一 次 读 取 UDR 之 间 丢 失 了 一 个 或 更 多 的 数 据 帧 为 了 与 以 后 的 器 件 相 兼 容, 写 UCSRA 时 这 一 位 必 须 置 当 数 据 帧 成 功 地 从 移 位 寄 存 器 转 入 接 收 缓 冲 器 后, DOR 标 志 被 清 零 奇 偶 校 验 错 标 志 (PE) 指 出, 接 收 缓 冲 器 中 的 下 一 帧 数 据 在 接 收 时 有 奇 偶 错 误 如 果 不 使 能 奇 偶 校 验, 那 么 UPE 位 应 清 零 为 了 与 以 后 的 器 件 相 兼 容, 写 UCSRA 时 这 一 位 必 须 置 细 节 请 参 照 P 28 校 验 位 的 计 算 与 P 36 奇 偶 校 验 器 35

136 奇 偶 校 验 器 禁 止 接 收 器 刷 新 接 收 缓 冲 器 奇 偶 校 验 模 式 位 UPM 置 位 将 启 动 奇 偶 校 验 器 校 验 的 模 式 ( 偶 校 验 还 是 奇 校 验 ) 由 UPM 确 定 奇 偶 校 验 使 能 后, 校 验 器 将 计 算 输 入 数 据 的 奇 偶 并 把 结 果 与 数 据 帧 的 奇 偶 位 进 行 比 较 校 验 结 果 将 与 数 据 和 停 止 位 一 起 存 储 在 接 收 缓 冲 器 中 这 样 就 可 以 通 过 读 取 奇 偶 校 验 错 误 标 志 位 (UPE) 来 检 查 接 收 的 帧 中 是 否 有 奇 偶 错 误 如 果 下 一 个 从 接 收 缓 冲 器 中 读 出 的 数 据 有 奇 偶 错 误, 并 且 奇 偶 校 验 使 能 (UPM = ), 则 UPE 置 位 直 到 接 收 缓 冲 器 (UDR) 被 读 取, 这 一 位 一 直 有 效 与 发 送 器 对 比, 禁 止 接 收 器 即 刻 起 作 用 正 在 接 收 的 数 据 将 丢 失 禁 止 接 收 器 (RXEN 清 零 ) 后, 接 收 器 将 不 再 占 用 RxD 引 脚 ; 接 收 缓 冲 器 FIFO 也 会 被 刷 新 缓 冲 器 中 的 数 据 将 丢 失 禁 止 接 收 器 时 缓 冲 器 FIFO 被 刷 新, 缓 冲 器 被 清 空 导 致 未 读 出 的 数 据 丢 失 如 果 由 于 出 错 而 必 须 在 正 常 操 作 下 刷 新 缓 冲 器, 则 需 要 一 直 读 取 UDR 直 到 RXC 标 志 清 零 下 面 的 代 码 展 示 了 如 何 刷 新 接 收 缓 冲 器 () 汇 编 代 码 例 程 USART_Flush: sbis UCSRA, RXC ret in r6, UDR rjmp USART_Flush () C 代 码 例 程 void USART_Flush( void ) { unsigned char dummy; while ( UCSRA & (<<RXC) ) dummy = UDR; } Note:. 本 代 码 假 定 已 经 包 含 了 相 应 的 头 文 件 异 步 数 据 接 收 恢 复 异 步 时 钟 USART 有 一 个 时 钟 恢 复 单 元 和 数 据 恢 复 单 元 用 来 处 理 异 步 数 据 接 收 时 钟 恢 复 逻 辑 用 于 同 步 从 RxD 引 脚 输 入 的 异 步 串 行 数 据 和 内 部 的 波 特 率 时 钟 数 据 恢 复 逻 辑 采 集 数 据, 并 通 过 一 低 通 滤 波 器 过 滤 所 输 入 的 每 一 位 数 据, 从 而 提 高 接 收 器 的 抗 干 扰 性 能 异 步 接 收 的 工 作 范 围 依 赖 于 内 部 波 特 率 时 钟 的 精 度 帧 输 入 的 速 率 及 一 帧 所 包 含 的 位 数 时 钟 恢 复 逻 辑 将 输 入 的 串 行 数 据 帧 与 内 部 时 钟 同 步 起 来 Figure 65 展 示 了 对 输 入 数 据 帧 起 始 位 的 采 样 过 程 普 通 工 作 模 式 下 采 样 率 是 波 特 率 的 6 倍, 倍 速 工 作 模 式 下 则 为 波 特 率 的 8 倍 水 平 箭 头 表 示 由 于 采 样 而 造 成 的 同 步 的 变 化 使 用 倍 速 模 式 (U2X = ) 时 同 步 变 化 时 间 更 长 RxD 线 空 闲 ( 即 没 有 任 何 通 讯 活 动 ) 时, 采 样 值 为 Figure 65. 起 始 位 采 样 RxD IDLE START BIT Sample (U2X = ) Sample (U2X = ) ATmega8(L) 当 时 钟 恢 复 电 路 检 测 到 RxD 线 上 一 个 由 高 ( 空 闲 ) 到 低 ( 开 始 ) 的 电 平 跳 变 时, 起 始 位 检 测 序 列 即 被 启 动 如 图 所 示, 我 们 用 采 样 表 示 第 一 个 采 样 然 后, 时 钟 恢 复 逻 辑 用 采

137 ATmega8(L) 样 8 9 ( 普 通 模 式 ), 或 采 样 4 5 6( 倍 速 模 式 ), 来 判 断 是 否 接 收 到 一 个 正 确 的 起 始 位 如 果 这 三 个 采 样 中 的 两 个 或 更 多 个 是 逻 辑 高 电 平 ( 多 数 表 决 ), 起 始 位 会 被 视 为 毛 刺 噪 声 而 被 拒 绝 接 受, 接 收 器 等 待 下 一 个 由 高 到 低 的 电 平 转 换 如 果 检 测 到 一 个 有 效 的 起 始 位, 时 钟 恢 复 逻 辑 即 被 同 步 并 开 始 接 收 数 据 每 一 个 起 始 位 都 会 引 发 同 样 的 同 步 过 程 恢 复 异 步 数 据 接 收 时 钟 与 起 始 位 同 步 之 后, 数 据 恢 复 工 作 可 开 始 了 数 据 恢 复 单 元 使 用 一 个 状 态 机 来 接 收 每 一 个 数 据 位 这 个 状 态 机 在 普 通 模 式 下 具 有 6 个 状 态, 在 倍 速 模 式 下 具 有 8 个 状 态 Figure 66 演 示 了 对 数 据 位 和 奇 偶 位 的 采 样 每 个 采 样 点 都 被 赋 予 了 一 个 数 字, 这 个 数 字 等 于 数 据 恢 复 单 元 当 前 的 状 态 序 号 Figure 66. 数 据 及 奇 偶 位 的 采 样 RxD BIT n Sample (U2X = ) Sample (U2X = ) 确 定 接 收 到 的 数 据 位 的 逻 辑 电 平 的 方 法 为 多 数 表 决 法 表 决 对 象 即 为 三 个 在 数 据 位 中 心 获 得 的 采 样 为 了 强 调 这 些 采 样, 图 中 采 样 序 号 被 包 含 小 方 框 中 多 数 表 决 是 这 样 工 作 的 : 如 果 有 2 个 或 所 有 3 个 采 样 值 都 是 高 电 平, 那 么 接 收 位 就 为 逻 辑 如 果 2 个 或 所 有 3 个 采 样 值 都 是 低 电 平, 那 么 接 收 位 就 被 为 逻 辑 对 从 RxD 引 脚 输 入 的 信 号 来 说, 多 数 表 决 的 作 用 就 象 是 一 个 低 通 滤 波 数 据 恢 复 过 程 重 复 进 行, 直 到 接 收 到 一 个 完 整 的 数 据 帧 其 中 也 包 含 了 第 一 个 停 止 位 接 收 器 将 忽 略 其 他 的 停 止 位 Figure 67 说 明 了 停 止 位 的 采 样, 以 及 下 一 帧 信 号 起 始 位 最 早 可 能 出 现 的 情 况 Figure 67. 停 止 位 及 下 一 个 起 始 位 采 样 RxD STOP (A) (B) (C) Sample (U2X = ) Sample (U2X = ) / / / / 多 数 表 决 对 停 止 位 同 样 有 效 若 停 止 位 为 逻 辑, 那 么 帧 错 误 标 志 FE 置 位 如 果 电 平 再 一 次 出 现 了 从 高 到 低 的 跳 变, 说 明 紧 接 着 上 一 个 数 据 帧 来 了 新 的 数 据 帧 在 普 通 模 式 中, 第 一 个 低 电 平 的 采 样 点 可 以 发 生 在 Figure 67 的 A 点 在 倍 速 工 作 模 式 下 第 一 个 低 电 平 采 样 点 必 须 延 迟 到 B 点, C 点 则 为 完 整 停 止 位 的 结 束 位 置 对 起 始 位 的 及 早 检 测 将 影 响 接 收 器 的 工 作 范 围 异 步 工 作 范 围 接 收 器 的 工 作 范 围 取 决 于 接 收 到 的 数 据 速 率 及 内 部 波 特 率 之 间 的 不 匹 配 程 度 如 果 发 送 器 以 过 快 或 过 慢 的 比 特 率 传 输 数 据 帧, 或 者 接 收 器 内 部 产 生 的 波 特 率 没 有 相 同 的 频 率 ( 见 Table 53), 那 么 接 收 器 就 无 法 与 起 始 位 同 步 37

138 下 面 的 公 式 可 用 来 计 算 数 据 输 入 速 率 与 内 部 接 收 器 波 特 率 的 比 值 ( D + )S ( D + 2)S R slow = R S + D S + S fast = F ( D + )S + S M D 字 符 长 度 及 奇 偶 位 长 度 的 总 和 (D = 5 到 位 ) S 每 一 位 的 采 样 数 普 通 模 式 下 S = 6, 倍 速 模 式 下 S = 8 S F 用 于 多 数 表 决 的 第 一 个 采 样 序 号 普 通 模 式 下 S F = 8, 倍 速 模 式 下 S F = 4 S M 用 于 多 数 表 决 的 中 间 采 样 序 号 普 通 模 式 下 S M = 9, 倍 速 模 式 下 S M =5 R slow 是 可 接 受 的 最 慢 的 数 据 输 入 速 率 与 接 收 器 波 特 率 的 比 值 ; R fast 是 可 接 受 的 最 快 的 数 据 输 入 速 率 与 接 收 器 波 特 率 的 比 值 Table 53 和 Table 54 列 出 了 容 许 的 最 大 接 收 器 波 特 率 误 差 需 要 注 意 的 是, 普 通 模 式 下 波 特 率 允 许 有 更 大 的 变 化 范 围 Table 53. 普 通 模 式 下 推 荐 的 最 大 接 收 器 波 特 率 误 差 范 围 (U2X = ) D # ( 数 据 + 奇 偶 位 ) R slow % R fast % 最 大 的 总 误 差 (%) 推 荐 的 最 大 接 收 器 误 差 (%) 5 93,2 6, /-6.8 ± ,2 5, /-5.88 ± ,8 5, +5./-5.9 ± ,36 4, /-4.54 ± ,8 4,4 +4.4/-4.9 ±.5 96,7 3, /-3.83 ±.5 Table 54. 速 率 模 式 下 推 荐 的 最 大 接 收 器 波 特 率 误 差 范 围 (U2X = ) D # 数 据 + 奇 偶 位 R slow (%) R fast (%) 最 大 的 总 误 差 (%) 推 荐 的 最 大 接 收 器 误 差 (%) 5 94,2 5, /-5.88 ± ,92 4, /-5.8 ± ,52 4, /-4.48 ± , 3,9 +3.9/-4. ± ,39 3, /-3.6 ±.5 96,7 3, /-3.3 ±. 上 述 推 荐 的 最 大 接 收 波 特 率 误 差 是 在 假 定 接 收 器 和 发 送 器 对 最 大 总 误 差 具 有 同 等 贡 献 的 前 提 下 得 出 的 产 生 接 收 器 波 特 率 误 差 的 可 能 原 因 有 两 个 首 先, 接 收 器 系 统 时 钟 (XTAL) 的 稳 定 性 于 电 压 范 围 及 工 作 温 度 有 关 使 用 晶 振 来 产 生 系 统 时 钟 时 一 般 不 会 有 此 问 题, 但 对 于 谐 振 器 而 言, 根 据 谐 振 器 不 同 的 误 差 容 限, 系 统 时 钟 可 能 有 超 过 2% 的 偏 差 第 二 个 误 差 的 原 因 就 好 控 制 多 了 波 特 率 发 生 器 不 一 定 能 够 通 过 对 系 统 时 钟 的 分 频 得 到 恰 好 的 波 特 率 此 时 可 以 调 整 UBRR 值, 使 得 误 差 低 至 可 以 接 受 38 ATmega8(L)

139 ATmega8(L) 多 处 理 器 通 讯 模 式 使 用 MPCM 置 位 UCSRA 的 多 处 理 器 通 信 模 式 位 (MPCM) 可 以 对 USART 接 收 器 接 收 到 的 数 据 帧 进 行 过 滤 那 些 没 有 地 址 信 息 的 帧 将 被 忽 略, 也 不 会 存 入 接 收 缓 冲 器 在 一 个 多 处 理 器 系 统 中, 处 理 器 通 过 同 样 的 串 行 总 线 进 行 通 信, 这 种 过 滤 有 效 的 减 少 了 需 要 CPU 处 理 的 数 据 帧 的 数 量 MPCM 位 的 设 置 不 影 响 发 送 器 的 工 作, 但 在 使 用 多 处 理 器 通 信 模 式 的 系 统 中, 它 的 使 用 方 法 会 有 所 不 同 如 果 接 收 器 所 接 收 的 数 据 帧 长 度 为 5 到 8 位, 那 么 第 一 个 停 止 位 表 示 这 一 帧 包 含 的 是 数 据 还 是 地 址 信 息 如 果 接 收 器 所 接 收 的 数 据 帧 长 度 为 9 位, 那 么 由 第 9 位 (RXB8) 来 确 定 是 数 据 还 是 地 址 信 息 如 果 确 定 帧 类 型 的 位 ( 第 一 个 停 止 位 或 第 9 个 数 据 位 ) 为, 那 么 这 是 地 址 帧, 否 则 为 数 据 帧 在 多 处 理 器 通 信 模 式 下, 多 个 从 处 理 器 可 以 从 一 个 主 处 理 器 接 收 数 据 首 先 要 通 过 解 码 地 址 帧 来 确 定 所 寻 址 的 是 哪 一 个 处 理 器 如 果 寻 址 到 某 一 个 处 理 器, 它 将 正 常 接 收 后 续 的 数 据, 而 其 他 的 从 处 理 器 会 忽 略 这 些 帧 直 到 接 收 到 另 一 个 地 址 帧 对 于 一 个 作 为 主 机 的 处 理 器 来 说, 它 可 以 使 用 9 位 数 据 帧 格 式 (UCSZ = 7) 如 果 传 输 的 是 一 个 地 址 帧 (TXB8 = ) 就 将 第 9 位 (TXB8) 置, 如 果 是 一 个 数 据 帧 (TXB = ) 就 将 它 清 零 在 这 种 帧 格 式 下, 从 处 理 器 必 须 工 作 于 9 位 数 据 帧 格 式 下 面 即 为 在 多 处 理 器 通 信 模 式 下 进 行 数 据 交 换 的 步 骤 :. 所 有 从 处 理 器 都 工 作 在 多 处 理 器 通 信 模 式 (UCSRA 寄 存 器 的 MPCM 置 位 ) 2. 主 处 理 器 发 送 地 址 帧 后, 所 有 从 处 理 器 都 会 接 收 并 读 取 此 帧 从 处 理 器 UCSRA 寄 存 器 的 RXC 正 常 置 位 3. 每 一 个 从 处 理 器 都 会 读 取 UDR 寄 存 器 的 内 容 已 确 定 自 己 是 否 被 选 中 如 果 选 中, 就 清 零 UCSRA 的 MPCM 位, 否 则 它 将 等 待 下 一 个 地 址 字 节 的 到 来, 并 保 持 MPCM 为 4. 被 寻 址 的 从 处 理 器 将 接 收 所 有 的 数 据 帧, 直 到 收 到 一 个 新 的 地 址 帧 而 那 些 保 持 MPCM 位 为 的 从 处 理 器 将 忽 略 这 些 数 据 5. 被 寻 址 的 处 理 器 接 收 到 最 后 一 个 数 据 帧 后, 它 将 置 位 MPCM, 并 等 待 主 处 理 器 发 送 下 一 个 地 址 帧 然 后 第 2 步 之 后 的 步 骤 重 复 进 行 使 用 5 至 8 比 特 的 帧 格 式 是 可 以 的, 但 是 不 实 际, 因 为 接 收 器 必 须 在 使 用 n 和 n+ 帧 格 式 之 间 进 行 切 换 由 于 接 收 器 和 发 送 器 使 用 相 同 的 字 符 长 度 设 置, 这 种 设 置 使 得 全 双 工 操 作 变 得 很 困 难 如 果 使 用 5 至 8 比 特 的 帧 格 式, 发 送 器 应 该 设 置 两 个 停 止 位 (USBS = ), 其 中 的 第 一 个 停 止 位 被 用 于 判 断 帧 类 型 不 要 使 用 读 - 修 改 - 写 指 令 (SBI 和 CBI) 来 操 作 MPCM 位 MPCM 和 TXC 标 志 使 用 相 同 的 I/O 单 元, 使 用 SBI 或 CBI 指 令 可 能 会 不 小 心 将 它 清 零 39

140 访 问 UBRRH/ UCSRC 寄 存 器 写 访 问 UBRRH 与 寄 存 器 UCSRC 共 用 I/O 地 址 因 此 访 问 该 地 址 时 需 注 意 以 下 问 题 当 在 该 地 址 执 行 写 访 问 时, USART 寄 存 器 选 择 位 (URSEL) 控 制 被 写 入 的 寄 存 器 若 URSEL 为, 对 UBRRH 值 更 新 ; 若 URSEL 为, 对 UCSRC 设 置 更 新 下 面 代 码 给 出 如 何 访 问 这 两 个 寄 存 器 () 汇 编 代 码 例 程... ; 设 置 UBRRH 为 2 ldi r6,x2 out UBRRH,r6... ; 设 置 USBS 与 UCSZ 位 为, 且 其 余 位 为 ldi r6,(<<ursel) (<<USBS) (<<UCSZ) out UCSRC,r6... () C 代 码 例 程... /* 设 置 UBRRH 为 2*/ UBRRH = x2;... /* 设 置 USBS 与 UCSZ 位 为, 且 其 余 位 为 */ UCSRC = (<<URSEL) (<<USBS) (<<UCSZ);... Note:. 本 代 码 假 定 已 经 包 含 了 相 应 的 头 文 件 如 例 中 所 示, 对 两 寄 存 器 的 写 访 问 不 影 响 共 用 I/O 地 址 4 ATmega8(L)

141 ATmega8(L) 读 访 问 对 UBRRH 或 UCSRC 寄 存 器 的 读 访 问 则 较 为 复 杂 但 在 大 多 数 应 用 中, 基 本 不 需 要 读 这 些 寄 存 器 读 访 问 由 时 序 控 制 一 旦 返 回 UBRRH 寄 存 器 内 容 则 读 I/O 地 址 若 寄 存 器 地 址 在 前 一 个 系 统 时 钟 周 期 中 读 入, 当 前 时 钟 下 对 寄 存 器 的 读 入 将 返 回 UCSRC 内 容 中 注 意, 读 UCSRC 的 时 钟 序 列 为 自 动 工 作 在 读 操 作 中 的 中 断 ( 例 如 禁 止 全 局 中 断 ) 必 须 人 为 控 制 下 面 代 码 给 出 如 何 读 UCSRC 寄 存 器 内 容 () 汇 编 代 码 例 程 USART_ReadUCSRC: ; 读 UCSRC in r6,ubrrh in r6,ucsrc ret () C 代 码 例 程 unsigned char USART_ReadUCSRC( void ) { unsigned char ucsrc; /* 读 UCSRC */ ucsrc = UBRRH; ucsrc = UCSRC; return ucsrc; } Note:. 本 代 码 假 定 已 经 包 含 了 相 应 的 头 文 件 汇 编 代 码 在 r6 中 返 回 UCSRC 值 对 UBRRH 内 容 的 读 操 作 不 是 自 动 完 成, 且 当 前 一 条 指 令 没 有 访 问 该 寄 存 器 地 址 时, 该 寄 存 器 作 为 普 通 寄 存 器 使 用 USART 寄 存 器 描 述 USART I/O 数 据 寄 存 器 - UDR Bit RXB[7:] UDR ( 读 ) TXB[7:] UDR ( 写 ) 读 / 写 R/W R/W R/W R/W R/W R/W R/W R/W 初 始 值 USART 发 送 数 据 缓 冲 寄 存 器 和 USART 接 收 数 据 缓 冲 寄 存 器 共 享 相 同 的 I/O 地 址, 称 为 USART 数 据 寄 存 器 或 UDR 将 数 据 写 入 UDR 时 实 际 操 作 的 是 发 送 数 据 缓 冲 器 存 器 (TXB), 读 UDR 时 实 际 返 回 的 是 接 收 数 据 缓 冲 寄 存 器 (RXB) 的 内 容 在 比 特 字 长 模 式 下, 未 使 用 的 高 位 被 发 送 器 忽 略, 而 接 收 器 则 将 它 们 设 置 为 只 有 当 UCSRA 寄 存 器 的 UDRE 标 志 置 位 后 才 可 以 对 发 送 缓 冲 器 进 行 写 操 作 如 果 UDRE 没 有 置 位, 那 么 写 入 UDR 的 数 据 会 被 USART 发 送 器 忽 略 当 数 据 写 入 发 送 缓 冲 器 后, 若 移 位 寄 存 器 为 空, 发 送 器 将 把 数 据 加 载 到 发 送 移 位 寄 存 器 然 后 数 据 串 行 地 从 TxD 引 脚 输 出 接 收 缓 冲 器 包 括 一 个 两 级 FIFO, 一 旦 接 收 缓 冲 器 被 寻 址 FIFO 就 会 改 变 它 的 状 态 因 此 不 要 对 这 一 存 储 单 元 使 用 读 - 修 改 - 写 指 令 (SBI 和 CBI) 使 用 位 查 询 指 令 (SBIC 和 SBIS) 时 也 要 小 心, 因 为 这 也 有 可 能 改 变 FIFO 的 状 态 4

142 USART 控 制 和 状 态 寄 存 器 A - UCSRA Bit RXC TXC UDRE FE DOR PE U2X MPCM UCSRA 读 / 写 R R/W R R R R R/W R/W 初 始 值 Bit 7 RXC: USART 接 收 结 束 接 收 缓 冲 器 中 有 未 读 出 的 数 据 时 RXC 置 位, 否 则 清 零 接 收 器 禁 止 时, 接 收 缓 冲 器 被 刷 新, 导 致 RXC 清 零 RXC 标 志 可 用 来 产 生 接 收 结 束 中 断 ( 见 对 RXCIE 位 的 描 述 ) Bit 6 TXC: USART 发 送 结 束 发 送 移 位 缓 冲 器 中 的 数 据 被 送 出, 且 当 发 送 缓 冲 器 (UDR) 为 空 时 TXC 置 位 执 行 发 送 结 束 中 断 时 TXC 标 志 自 动 清 零, 也 可 以 通 过 写 进 行 清 除 操 作 TXC 标 志 可 用 来 产 生 发 送 结 束 中 断 ( 见 对 TXCIE 位 的 描 述 ) Bit 5 UDRE: USART 数 据 寄 存 器 空 UDRE 标 志 指 出 发 送 缓 冲 器 (UDR) 是 否 准 备 好 接 收 新 数 据 UDRE 为 说 明 缓 冲 器 为 空, 已 准 备 好 进 行 数 据 接 收 UDRE 标 志 可 用 来 产 生 数 据 寄 存 器 空 中 断 ( 见 对 UDRIE 位 的 描 述 ) 复 位 后 UDRE 置 位, 表 明 发 送 器 已 经 就 绪 Bit 4 FE: 帧 错 误 如 果 接 收 缓 冲 器 接 收 到 的 下 一 个 字 符 有 帧 错 误, 即 接 收 缓 冲 器 中 的 下 一 个 字 符 的 第 一 个 停 止 位 为, 那 么 FE 置 位 这 一 位 一 直 有 效 直 到 接 收 缓 冲 器 (UDR) 被 读 取 当 接 收 到 的 停 止 位 为 时, FE 标 志 为 对 UCSRA 进 行 写 入 时, 这 一 位 要 写 Bit 3 DOR: 数 据 溢 出 数 据 溢 出 时 DOR 置 位 当 接 收 缓 冲 器 满 ( 包 含 了 两 个 数 据 ), 接 收 移 位 寄 存 器 又 有 数 据, 若 此 时 检 测 到 一 个 新 的 起 始 位, 数 据 溢 出 就 产 生 了 这 一 位 一 直 有 效 直 到 接 收 缓 冲 器 (UDR) 被 读 取 对 UCSRA 进 行 写 入 时, 这 一 位 要 写 Bit 2 PE: 奇 偶 校 验 错 误 当 奇 偶 校 验 使 能 (UPM = ), 且 接 收 缓 冲 器 中 所 接 收 到 的 下 一 个 字 符 有 奇 偶 校 验 错 误 时 UPE 置 位 这 一 位 一 直 有 效 直 到 接 收 缓 冲 器 (UDR) 被 读 取 对 UCSRA 进 行 写 入 时, 这 一 位 要 写 Bit U2X: 倍 速 发 送 这 一 位 仅 对 异 步 操 作 有 影 响 使 用 同 步 操 作 时 将 此 位 清 零 此 位 置 可 将 波 特 率 分 频 因 子 从 6 降 到 8, 从 而 有 效 的 将 异 步 通 信 模 式 的 传 输 速 率 加 倍 Bit MPCM: 多 处 理 器 通 信 模 式 设 置 此 位 将 启 动 多 处 理 器 通 信 模 式 MPCM 置 位 后, USART 接 收 器 接 收 到 的 那 些 不 包 含 地 址 信 息 的 输 入 帧 都 将 被 忽 略 发 送 器 不 受 MPCM 设 置 的 影 响 详 细 信 息 请 参 考 P 39 多 处 理 器 通 讯 模 式 USART 控 制 和 状 态 寄 存 器 B - UCSRB Bit RXCIE TXCIE UDRIE RXEN TXEN UCSZ2 RXB8 TXB8 UCSRB 读 / 写 R/W R/W R/W R/W R/W R/W R R/W 初 始 值 Bit 7 RXCIE: 接 收 结 束 中 断 使 能 置 位 后 使 能 RXC 中 断 当 RXCIE 为, 全 局 中 断 标 志 位 SREG 置 位, UCSRA 寄 存 器 的 RXC 亦 为 时 可 以 产 生 USART 接 收 结 束 中 断 42 ATmega8(L)

143 ATmega8(L) Bit 6 TXCIE: 发 送 结 束 中 断 使 能 置 位 后 使 能 TXC 中 断 当 TXCIE 为, 全 局 中 断 标 志 位 SREG 置 位,UCSRA 寄 存 器 的 TXC 亦 为 时 可 以 产 生 USART 发 送 结 束 中 断 Bit 5 UDRIE: USART 数 据 寄 存 器 空 中 断 使 能 置 位 后 使 能 UDRE 中 断 当 UDRIE 为, 全 局 中 断 标 志 位 SREG 置 位,UCSRA 寄 存 器 的 UDRE 亦 为 时 可 以 产 生 USART 数 据 寄 存 器 空 中 断 Bit 4 RXEN: 接 收 使 能 置 位 后 将 启 动 USART 接 收 器 RxD 引 脚 的 通 用 端 口 功 能 被 USART 功 能 所 取 代 禁 止 接 收 器 将 刷 新 接 收 缓 冲 器, 并 使 FE DOR 及 PE 标 志 无 效 Bit 3 TXEN: 发 送 使 能 置 位 后 将 启 动 USART 发 送 器 TxD 引 脚 的 通 用 端 口 功 能 被 USART 功 能 所 取 代 TXEN 清 零 后, 只 有 等 到 所 有 的 数 据 发 送 完 成 后 发 送 器 才 能 够 真 正 禁 止, 即 发 送 移 位 寄 存 器 与 发 送 缓 冲 寄 存 器 中 没 有 要 传 送 的 数 据 发 送 器 禁 止 后, TxD 引 脚 恢 复 其 通 用 I/O 功 能 Bit 2 UCSZ2: 字 符 长 度 UCSZ2 与 UCSRC 寄 存 器 的 UCSZ: 结 合 在 一 起 可 以 设 置 数 据 帧 所 包 含 的 数 据 位 数 ( 字 符 长 度 ) Bit RXB8: 接 收 数 据 位 8 对 9 位 串 行 帧 进 行 操 作 时,RXB8 是 第 9 个 数 据 位 读 取 UDR 包 含 的 低 位 数 据 之 前 首 先 要 读 取 RXB8 Bit TXB8: 发 送 数 据 位 8 对 9 位 串 行 帧 进 行 操 作 时,TXB8 是 第 9 个 数 据 位 写 UDR 之 前 首 先 要 对 它 进 行 写 操 作 USART 控 制 和 状 态 寄 存 器 C - UCSRC Bit URSEL UMSEL UPM UPM USBS UCSZ UCSZ UCPOL UCSRC 读 / 写 R/W R/W R/W R/W R/W R/W R/W R/W 初 始 值 UCSRC 寄 存 器 与 UBRRH 寄 存 器 共 用 相 同 的 I/O 地 址 对 该 寄 存 器 的 访 问, 请 参 见 P 4 访 问 UBRRH/ UCSRC 寄 存 器 Bit 7 URSEL: 寄 存 器 选 择 通 过 该 位 选 择 访 问 UCSRC 寄 存 器 或 UBRRH 寄 存 器 当 读 UCSRC 时, 该 位 为 ; 当 写 UCSRC 时, URSEL 为 Bit 6 UMSEL: USART 模 式 选 择 通 过 这 一 位 来 选 择 同 步 或 异 步 工 作 模 式 Table 55. UMSEL 设 置 UMSEL 模 式 异 步 操 作 同 步 操 作 43

144 Bit 5:4 UPM:: 奇 偶 校 验 模 式 这 两 位 设 置 奇 偶 校 验 的 模 式 并 使 能 奇 偶 校 验 如 果 使 能 了 奇 偶 校 验, 那 么 在 发 送 数 据, 发 送 器 都 会 自 动 产 生 并 发 送 奇 偶 校 验 位 对 每 一 个 接 收 到 的 数 据, 接 收 器 都 会 产 生 一 奇 偶 值, 并 与 UPM 所 设 置 的 值 进 行 比 较 如 果 不 匹 配, 那 么 就 将 UCSRA 中 的 PE 置 位 Table 56. UPM 设 置 UPM UPM 奇 偶 模 式 禁 止 保 留 偶 校 验 奇 校 验 Bit 3 USBS: 停 止 位 选 择 通 过 这 一 位 可 以 设 置 停 止 位 的 位 数 接 收 器 忽 略 这 一 位 的 设 置 Table 57. USBS 设 置 USBS Bit 2: UCSZ:: 字 符 长 度 UCSZ: 与 UCSRB 寄 存 器 的 UCSZ2 结 合 在 一 起 可 以 设 置 数 据 帧 包 含 的 数 据 位 数 ( 字 符 长 度 ) Table 58. UCSZ 设 置 Bit UCPOL: 时 钟 极 性 停 止 位 位 数 位 2 位 UCSZ2 UCSZ UCSZ 字 符 长 度 5 位 6 位 7 位 8 位 保 留 保 留 保 留 9 位 这 一 位 仅 用 于 同 步 工 作 模 式 使 用 异 步 模 式 时, 将 这 一 位 清 零 UCPOL 设 置 了 输 出 数 据 的 改 变 和 输 入 数 据 采 样, 以 及 同 步 时 钟 XCK 之 间 的 关 系 Table 59. UCPOL 设 置 UCPOL 发 送 数 据 的 改 变 (TxD 引 脚 的 输 出 ) 接 收 数 据 的 采 样 (RxD 引 脚 的 输 入 ) XCK 上 升 沿 XCK 下 降 沿 XCK 下 降 沿 XCK 上 升 沿 44 ATmega8(L)

145 ATmega8(L) USART 波 特 率 寄 存 器 - UBRRL 和 UBRRH Bit URSEL UBRR[:8] UBRRH UBRR[7:] UBRRL 读 / 写 R/W R R R R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 初 始 值 UCSRC 寄 存 器 与 UBRRH 寄 存 器 共 用 相 同 的 I/O 地 址 对 该 寄 存 器 的 访 问, 请 参 见 P 4 访 问 UBRRH/ UCSRC 寄 存 器 Bit 5 URSEL: 寄 存 器 选 择 通 过 该 位 选 择 访 问 UCSRC 寄 存 器 或 UBRRH 寄 存 器 当 读 UBRRH 时, 该 位 为 ; 当 写 UBRRH 时, URSEL 为 Bit 4:2 保 留 这 些 位 是 为 以 后 的 使 用 而 保 留 的 为 了 与 以 后 的 器 件 兼 容, 写 UBRRH 时 将 这 些 位 清 零 Bit : UBRR:: USART 波 特 率 寄 存 器 这 个 2 位 的 寄 存 器 包 含 了 USART 的 波 特 率 信 息 其 中 UBRRH 包 含 了 USART 波 特 率 高 4 位,UBRRL 包 含 了 低 8 位 波 特 率 的 改 变 将 造 成 正 在 进 行 的 数 据 传 输 受 到 破 坏 写 UBRRL 将 立 即 更 新 波 特 率 分 频 器 45

146 波 特 率 设 置 的 例 子 对 标 准 晶 振 及 谐 振 器 频 率 来 说, 异 步 模 式 下 最 常 用 的 波 特 率 可 通 过 Table 6 中 UBRR 的 设 置 来 产 生 表 中 的 粗 体 数 据 表 示 由 此 产 生 的 波 特 率 与 目 标 波 特 率 的 偏 差 不 超 过.5% 更 高 的 误 差 也 是 可 以 接 受 的, 但 发 送 器 的 抗 噪 性 会 降 低, 特 别 是 需 要 传 输 大 量 数 据 时 ( 参 看 P 37 异 步 工 作 范 围 ) 误 差 可 以 通 过 如 下 公 式 计 算 : Error[%] = BaudRate Closest Match BaudRate % Table 6. 通 用 振 荡 器 频 率 下 设 置 UBRR 的 例 子 波 特 率 (bps) f osc =. MHz f osc =.8432 MHz f osc = 2. MHz U2X = U2X = U2X = U2X = U2X = U2X = UBRR 误 差 UBRR 误 差 UBRR 误 差 UBRR 误 差 UBRR 误 差 UBRR 误 差 % 5.2% 47.% 95.% 5.2% 3.2% % 25.2% 23.% 47.% 25.2% 5.2% % 2.2%.% 23.% 2.2% 25.2% 4.4k 3 8.5% 8-3.5% 7.% 5.% 8-3.5% 6 2.% 9.2k 2 8.5% 6-7.% 5.%.% 6-7.% 2.2% 28.8k 8.5% 3 8.5% 3.% 7.% 3 8.5% 8-3.5% 38.4k -8.6% 2 8.5% 2.% 5.% 2 8.5% 6-7.% 57.6k 8.5% 8.5%.% 3.% 8.5% 3 8.5% 76.8k -8.6% -25.% 2.% -8.6% 2 8.5% 5.2k 8.5%.%.% 8.5% 8.5% 23.4k.% - 25k.% () 最 大 62.5 kbps 25 kbps 5.2 kbps 23.4 kbps 25 kbps 25 kbps. UBRR =, 误 差 =.% 46 ATmega8(L)

147 ATmega8(L) Table 6. 通 用 振 荡 器 频 率 下 设 置 UBRR 的 例 子 波 特 率 (bps) f osc = MHz f osc = 4. MHz f osc = MHz U2X = U2X = U2X = U2X = U2X = U2X = UBRR 误 差 UBRR 误 差 UBRR 误 差 UBRR 误 差 UBRR 误 差 UBRR 误 差 % 9.% 3.2% 27.2% 9.% 383.% % 95.% 5.2% 3.2% 95.% 9.% % 47.% 25.2% 5.2% 47.% 95.% 4.4k 5.% 3.% 6 2.% % 3.% 63.% 9.2k.% 23.% 2.2% 25.2% 23.% 47.% 28.8k 7.% 5.% 8-3.5% 6 2.% 5.% 3.% 38.4k 5.%.% 6-7.% 2.2%.% 23.% 57.6k 3.% 7.% 3 8.5% 8-3.5% 7.% 5.% 76.8k 2.% 5.% 2 8.5% 6-7.% 5.%.% 5.2k.% 3.% 8.5% 3 8.5% 3.% 7.% 23.4k.%.% 8.5% 8.5%.% 3.% 25k -7.8% -7.8%.%.% -7.8% 3-7.8%.5M -7.8%.% -7.8% -7.8% M -7.8% () 最 大 23.4 kbps 46.8 kbps 25 kbps.5 Mbps 46.8 kbps 92.6 kbps. UBRR =, 误 差 =.% 47

148 Table 62. 通 用 振 荡 器 频 率 下 设 置 UBRR 的 例 子 波 特 率 (bps) f osc = 8. MHz f osc =.592 MHz f osc = MHz U2X = U2X = U2X = U2X = U2X = U2X = UBRR 误 差 UBRR 误 差 UBRR 误 差 UBRR 误 差 UBRR 误 差 UBRR 误 差 % 46 -.% 287.% 575.% 383.% 767.% % 27.2% 43.% 287.% 9.% 383.% % 3.2% 7.% 43.% 95.% 9.% 4.4k % 68.6% 47.% 95.% 63.% 27.% 9.2k 25.2% 5.2% 35.% 7.% 47.% 95.% 28.8k 6 2.% % 23.% 47.% 3.% 63.% 38.4k 2.2% 25.2% 7.% 35.% 23.% 47.% 57.6k 8-3.5% 6 2.%.% 23.% 5.% 3.% 76.8k 6-7.% 2.2% 8.% 7.%.% 23.% 5.2k 3 8.5% 8-3.5% 5.%.% 7.% 5.% 23.4k 8.5% 3 8.5% 2.% 5.% 3.% 7.% 25k.% 3.% 2-7.8% 5-7.8% 3-7.8% 6 5.3%.5M.%.% 2-7.8% -7.8% 3-7.8% M.% -7.8% -7.8% () 最 大.5 Mbps Mbps 69.2 kbps.3824 Mbps 92.6 kbps.8432 Mbps. UBRR =, 误 差 =.% 48 ATmega8(L)

149 ATmega8(L) Table 63. 通 用 振 荡 器 频 率 下 设 置 UBRR 的 例 子 波 特 率 (bps) f osc = 6. MHz f osc = MHz f osc = 2. MHz U2X = U2X = U2X = U2X = U2X = U2X = UBRR 误 差 UBRR 误 差 UBRR 误 差 UBRR 误 差 UBRR 误 差 UBRR 误 差 % 832.% 479.% 959.% 52.% 4.% % 46 -.% 239.% 479.% 259.2% 52.% % 27.2% 9.% 239.% 29.2% 259.2% 4.4k 68.6% 38 -.% 79.% 59.% % % 9.2k 5.2% 3.2% 59.% 9.% 64.2% 29.2% 28.8k % 68.6% 39.% 79.% 42.9% % 38.4k 25.2% 5.2% 29.% 59.% % 64.2% 57.6k 6 2.% % 9.% 39.% 2 -.4% 42.9% 76.8k 2.2% 25.2% 4.% 29.% 5.7% % 5.2k 8-3.5% 6 2.% 9.% 9.% -.4% 2 -.4% 23.4k 3 8.5% 8-3.5% 4.% 9.% 4 8.5% -.4% 25k 3.% 7.% 4-7.8% 8 2.4% 4.% 9.%.5M.% 3.% 4-7.8% 4.% M.%.% () 最 大 Mbps 2 Mbps.52 Mbps 2.34 Mbps.25 Mbps 2.5 Mbps. UBRR =, 误 差 =.% 49

150 两 线 串 行 接 口 TWI 特 点 两 线 串 行 接 口 总 线 定 义 简 单, 但 是 强 大 而 灵 活 的 通 讯 接 口, 只 需 要 两 根 线 支 持 主 机 和 从 机 操 作 器 件 可 以 工 作 于 发 送 器 模 式 或 接 收 器 模 式 7 位 地 址 空 间 允 许 有 28 个 从 机 支 持 多 主 机 仲 裁 高 达 4 khz 的 数 据 传 输 率 斜 率 受 控 的 输 出 驱 动 器 可 以 抑 制 总 线 尖 峰 的 噪 声 抑 制 器 完 全 可 编 程 的 从 机 地 址 以 及 公 共 地 址 睡 眠 时 地 址 匹 配 可 以 唤 醒 AVR 两 线 接 口 TWI 很 适 合 于 典 型 的 处 理 器 应 用 TWI 协 议 允 许 系 统 设 计 者 只 用 两 根 双 向 传 输 线 就 可 以 将 28 个 不 同 的 设 备 互 连 到 一 起 这 两 根 线 一 是 时 钟 SCL, 一 是 数 据 SDA 外 部 硬 件 只 需 要 两 个 上 拉 电 阻, 每 根 线 上 一 个 所 有 连 接 到 总 线 上 的 设 备 都 有 自 己 的 地 址 TWI 协 议 解 决 了 总 线 仲 裁 的 问 题 Figure 68. TWI 总 线 的 连 接 V CC Device Device 2 Device 3... Device n R R2 SDA SCL TWI 词 汇 以 下 定 义 将 在 本 节 频 繁 出 现 Table 64. TWI 词 汇 单 词 主 机 从 机 发 送 器 接 收 器 说 明 启 动 和 停 止 传 输 的 设 备 主 机 同 时 要 产 生 SCL 时 钟 被 主 机 寻 址 的 设 备 将 数 据 放 到 总 线 上 的 设 备 从 总 线 读 取 数 据 的 设 备 5 ATmega8(L)

151 ATmega8(L) 电 气 连 接 从 Figure 68 可 以 看 出, 两 根 线 都 通 过 上 拉 电 阻 与 正 电 源 连 接 所 有 TWI 兼 容 的 器 件 的 总 线 驱 动 都 是 漏 极 开 路 或 集 电 极 开 路 的 这 样 就 实 现 了 对 接 口 操 作 非 常 关 键 的 线 与 功 能 TWI 器 件 输 出 为 " 时,TWI 总 线 会 产 生 低 电 平 当 所 有 的 TWI 器 件 输 出 为 三 态 时, 总 线 会 输 出 高 电 平, 允 许 上 拉 电 阻 将 电 压 拉 高 注 意, 为 保 证 所 有 的 总 线 操 作, 凡 是 与 TWI 总 线 连 接 的 AVR 器 件 必 须 上 电 与 总 线 连 接 的 器 件 数 目 受 如 下 条 件 限 制 : 总 线 电 容 要 低 于 4 pf, 而 且 可 以 用 7 位 从 机 地 址 进 行 寻 址 TWI 详 细 的 电 气 特 性 说 明 请 见 P 229 两 线 串 行 接 口 特 性 这 儿 给 出 了 两 个 不 同 的 规 范, 一 种 是 总 线 速 度 低 于 khz, 而 另 外 一 种 是 总 线 速 度 高 达 4 khz 数 据 传 输 和 帧 格 式 传 输 数 据 ( 位 ) TWI 总 线 上 数 据 位 的 传 送 与 时 钟 脉 冲 同 步 时 钟 线 为 高 时, 数 据 线 电 压 必 须 保 持 稳 定, 除 非 在 启 动 与 停 止 的 状 态 下 Figure 69. 数 据 有 效 性 SDA SCL Data Stable Data Stable Data Change START/STOP 状 态 主 机 启 动 与 停 止 数 据 传 输 主 机 在 总 线 上 发 出 START 信 号 以 启 动 数 据 传 输 ; 在 总 线 上 发 出 STOP 信 号 以 停 止 数 据 传 输 在 START 与 STOP 状 态 之 间, 需 要 假 定 总 线 忙, 不 允 许 其 它 主 机 控 制 总 线 特 例 是 在 START 与 STOP 状 态 之 间 发 出 一 个 新 的 START 状 态 这 被 称 为 REPEATED START 状 态, 适 用 于 主 机 在 不 放 弃 总 线 控 制 的 情 况 下 启 动 新 的 传 送 在 REPEATED START 之 后, 直 到 下 一 个 STOP, 需 要 假 定 总 线 处 于 忙 的 状 态 这 与 START 是 完 全 一 样 的, 因 此 在 本 手 册 中, 如 果 没 有 特 殊 说 明,START 与 REPEATED START 均 用 START 表 述 如 下 所 示,START 与 STOP 状 态 是 在 SCL 线 为 高 时, 通 过 改 变 SDA 电 平 来 实 现 的 Figure 7. START REPEATED START 与 STOP 状 态 SDA SCL START STOP START REPEATED START STOP 5

152 地 址 数 据 包 格 式 所 有 在 TWI 总 线 上 传 送 的 地 址 包 均 为 9 位, 包 括 7 位 地 址 位 位 READ/WRITE 控 制 位 与 位 应 答 位 如 果 READ/WRITE 为, 则 执 行 读 操 作 ; 否 则 执 行 写 操 作 从 机 被 寻 址 后, 必 须 在 第 九 个 SCL (ACK) 周 期 通 过 拉 低 SDA 作 出 应 答 若 该 从 机 忙 或 有 其 它 原 因 无 法 响 应 主 机, 则 应 该 在 ACK 周 期 保 持 SDA 为 高 然 后 主 机 可 以 发 出 STOP 状 态 或 REPEATED START 状 态 重 新 开 始 发 送 地 址 包 包 括 从 机 地 址 与 分 别 称 为 SLA+R 或 SLA+W 的 READ 或 WRITE 位 地 址 字 节 的 MSB 首 先 被 发 送 从 机 地 址 由 设 计 者 自 由 分 配, 但 需 要 保 留 地 址 作 为 广 播 地 址 当 发 送 广 播 呼 叫 时, 所 有 的 从 机 应 在 ACK 周 期 通 过 拉 低 SDA 作 出 应 答 当 主 机 需 要 发 送 相 同 的 信 息 给 多 个 从 机 时 可 以 使 用 广 播 功 能 当 Write 位 在 广 播 呼 叫 之 后 发 送, 所 有 的 从 机 通 过 在 ACK 周 期 通 过 拉 低 SDA 作 出 响 应 所 有 的 从 机 接 收 到 紧 跟 的 数 据 包 注 意 在 整 体 访 问 中 发 送 Read 位 没 有 意 义, 因 为 如 果 几 个 从 机 发 送 不 同 的 数 据 会 带 来 总 线 冲 突 所 有 形 如 xxx 格 式 的 地 址 都 需 要 保 留, 以 便 将 来 使 用 Figure 7. 地 址 包 格 式 SDA Addr MSB Addr LSB R/W ACK SCL START ATmega8(L)

153 ATmega8(L) 数 据 包 格 式 所 有 在 TWI 总 线 上 传 送 的 数 据 包 为 9 位 长, 包 括 8 位 数 据 位 及 位 应 答 位 在 数 据 传 送 中, 主 机 产 生 时 钟 及 START 与 STOP 状 态, 而 接 收 器 响 应 接 收 应 答 是 由 从 机 在 第 9 个 SCL 周 期 拉 低 SDA 实 现 的 如 果 接 收 器 使 SDA 为 高, 则 发 出 NACK 信 号 接 收 器 完 成 接 收, 或 者 由 于 某 些 原 因 无 法 接 收 更 多 的 数 据, 应 该 在 收 到 最 后 的 字 节 后 发 出 NACK 来 告 知 发 送 器 数 据 的 MSB 首 先 发 送 Figure 72. 数 据 包 格 式 Aggregate SDA Data MSB Data LSB ACK SDA from Transmitter SDA from Receiver SCL from Master SLA+R/W Data Byte STOP, REPEATED START or Next Data Byte 将 地 址 包 和 数 据 包 组 合 为 一 个 完 整 的 传 输 过 程 发 送 主 要 由 START 状 态 SLA+R/W 至 少 一 个 数 据 包 及 STOP 状 态 组 成 只 有 START 与 STOP 状 态 的 空 信 息 是 非 法 的 可 以 利 用 SCL 的 线 与 功 能 来 实 现 主 机 与 从 机 的 握 手 从 机 可 通 过 拉 低 SCL 来 延 长 SCL 低 电 平 的 时 间 当 主 机 设 定 的 时 钟 速 度 相 对 于 从 机 太 快, 或 从 机 需 要 额 外 的 时 间 来 处 理 数 据 时, 这 一 特 性 是 非 常 有 用 的 从 机 延 长 SCL 低 电 平 的 时 间 不 会 影 响 SCL 高 电 平 的 时 间, 因 为 SCL 高 电 平 时 间 是 由 主 机 决 定 的 由 上 述 可 知, 通 过 改 变 SCL 的 占 空 比 可 降 低 TWI 数 据 传 送 速 度 Figure 73 说 明 了 典 型 的 数 据 传 送 注 意 SLA+R/W 与 STOP 之 间 传 送 的 字 节 数 由 应 用 程 序 的 协 议 决 定 Figure 73. 典 型 的 数 据 传 送 Addr MSB Addr LSB R/W ACK Data MSB Data LSB ACK SDA SCL START SLA+R/W Data Byte STOP 53

154 多 主 机 总 线 系 统, 仲 裁 和 同 步 TWI 协 议 允 许 总 线 上 由 多 个 主 机 特 别 要 注 意 的 是 即 使 有 多 个 主 机 同 时 开 始 发 生 数 据, 也 要 保 证 发 送 正 常 进 行 多 主 机 系 统 中 有 两 个 问 题 : 算 法 必 须 只 能 允 许 一 个 主 机 完 成 传 送 当 其 余 主 机 发 现 它 们 失 去 选 择 权 后 应 停 止 传 送 这 个 选 择 过 程 称 为 仲 裁 当 竞 争 中 的 主 机 发 现 其 仲 裁 失 败, 应 立 即 转 换 到 从 机 模 式 检 测 是 否 被 获 得 总 线 控 制 权 的 的 主 机 寻 址 事 实 上 多 主 机 同 时 传 送 时 不 应 该 让 从 机 检 测 到, 即 不 许 破 坏 数 据 在 总 线 上 的 传 送 不 同 的 主 机 可 能 使 用 不 同 的 SCL 频 率 为 保 证 传 送 的 一 致 性, 必 须 设 计 一 种 同 步 主 机 时 钟 的 方 案 这 会 简 化 仲 裁 过 程 总 线 的 线 与 功 能 用 来 解 决 上 述 问 题 将 所 有 的 主 机 时 钟 进 行 与 操 作, 会 生 成 组 合 的 时 钟, 其 高 电 平 时 间 等 于 所 有 主 机 中 最 短 的 一 个 ; 低 电 平 时 间 则 等 于 所 有 主 机 中 最 长 的 一 个 所 有 的 主 机 都 监 听 SCL, 使 其 可 以 有 效 地 计 算 本 身 高 / 低 电 平 与 组 合 SCL 信 号 高 / 低 电 平 的 时 间 差 异 Figure 74. 多 主 机 SCL 的 同 步 TA low TA high SCL from Master A SCL from Master B SCL Bus Line TB low TB high Masters Start Counting Low Period Masters Start Counting High Period 输 出 数 据 之 后 所 有 的 主 机 都 持 续 监 听 SDA 来 实 现 仲 裁 如 果 从 SDA 读 回 的 数 值 与 主 机 输 出 的 数 值 不 匹 配, 该 主 机 即 失 去 仲 裁 要 注 意 只 有 当 一 个 主 机 输 出 高 电 平 的 SDA, 而 其 它 主 机 输 出 为 低, 该 主 机 才 会 失 去 仲 裁, 并 立 即 转 为 从 机 模 式, 检 测 是 否 被 胜 出 的 主 机 寻 址 失 去 仲 裁 的 主 机 必 须 将 SDA 置 高, 但 在 当 前 的 数 据 或 地 址 包 结 束 之 前 还 可 以 产 生 时 钟 信 号 仲 裁 将 会 持 续 到 系 统 只 有 一 个 主 机 这 可 能 会 占 用 许 多 比 特 如 果 几 个 主 机 对 相 同 的 从 机 寻 址, 仲 裁 将 会 持 续 到 数 据 包 54 ATmega8(L)

155 ATmega8(L) Figure 75. 两 主 机 之 间 的 仲 裁 SDA from Master A START Master A Loses Arbitration, SDA A SDA SDA from Master B SDA Line Synchronized SCL Line 注 意 不 允 许 在 以 下 情 况 进 行 仲 裁 : 一 个 REPEATED START 状 态 与 一 个 数 据 位 一 个 STOP 状 态 与 一 个 数 据 位 一 个 REPEATED START 状 态 与 一 个 STOP 状 态 应 用 软 件 应 考 虑 上 述 情 况, 保 证 不 会 出 现 这 些 非 法 仲 裁 状 态 这 意 味 着 在 多 主 机 系 统 中, 所 有 的 数 据 传 输 必 须 由 相 同 的 SLA+R/W 与 数 据 包 组 合 组 成 换 句 话 说 : 所 有 的 传 送 必 须 包 含 相 同 数 目 的 数 据 包, 否 则 仲 裁 结 果 无 法 定 义 55

156 TWI 模 块 综 述 TWI 模 块 由 几 个 子 模 块 组 成, 如 Figure 76 所 示 所 有 位 于 粗 线 之 中 的 寄 存 器 可 以 通 过 AVR 数 据 总 线 进 行 访 问 Figure 76. TWI 模 块 概 述 SCL SDA Slew-rate Control Spike Filter Slew-rate Control Spike Filter Bus Interface Unit Bit Rate Generator START / STOP Control Spike Suppression Prescaler Arbitration detection Address/Data Shift Register (TWDR) Ack Bit Rate Register (TWBR) Address Match Unit Control Unit Address Register (TWAR) Address Comparator Status Register (TWSR) State Machine and Status control Control Register (TWCR) TWI Unit SCL 和 SDA 引 脚 SCL 与 SDA 为 MCU 的 TWI 接 口 引 脚 引 脚 的 输 出 驱 动 器 包 含 一 个 波 形 斜 率 限 制 器 以 满 足 TWI 规 范 引 脚 的 输 入 部 分 包 括 尖 峰 抑 制 单 元 以 去 除 小 于 5 ns 的 毛 刺 当 相 应 的 端 口 设 置 为 SCL 与 SDA 引 脚 时, 可 以 使 能 I/O 口 内 部 的 上 拉 电 阻, 这 样 可 省 掉 外 部 的 上 拉 电 阻 56 ATmega8(L)

157 ATmega8(L) 比 特 率 发 生 器 单 元 TWI 工 作 于 主 机 模 式 时, 比 特 率 发 生 器 控 制 时 钟 信 号 SCL 的 周 期 具 体 由 TWI 状 态 寄 存 器 TWSR 的 预 分 频 系 数 以 及 比 特 率 寄 存 器 TWBR 设 定 当 TWI 工 作 在 从 机 模 式 时, 不 需 要 对 比 特 率 或 预 分 频 进 行 设 定, 但 从 机 的 CPU 时 钟 频 率 必 须 大 于 TWI 时 钟 线 SCL 频 率 的 6 倍 注 意, 从 机 可 能 会 延 长 SCL 低 电 平 的 时 间, 从 而 降 低 TWI 总 线 的 平 均 时 钟 周 期 SCL 的 频 率 根 据 以 下 的 公 式 产 生 : SCL frequency CPU Clock frequency = (TWBR) 4 TWPS TWBR = TWI 比 特 率 寄 存 器 的 数 值 TWPS = TWI 状 态 寄 存 器 预 分 频 的 数 值 Note: TWI 工 作 在 主 机 模 式 时,TWBR 值 应 该 不 小 于 否 则 主 机 会 在 SDA 与 SCL 产 生 错 误 输 出 作 为 提 示 信 号 问 题 出 现 于 TWI 工 作 在 主 机 模 式 下, 向 从 机 发 送 Start + SLA + R/W 的 时 候 ( 不 需 要 真 的 有 从 机 与 总 线 连 接 ) 总 线 接 口 单 元 该 单 元 包 括 数 据 与 地 址 移 位 寄 存 器 TWDR, START/STOP 控 制 器 和 总 线 仲 裁 判 定 硬 件 电 路 TWDR 寄 存 器 用 于 存 放 发 送 或 接 收 的 数 据 或 地 址 除 了 8 位 的 TWDR, 总 线 接 口 单 元 还 有 一 个 寄 存 器, 包 含 了 用 于 发 送 或 接 收 应 答 的 (N)ACK 这 个 (N)ACK 寄 存 器 不 能 由 程 序 直 接 访 问 当 接 收 数 据 时, 它 可 以 通 过 TWI 控 制 寄 存 器 TWCR 来 置 位 或 清 零 ; 在 发 送 数 据 时, (N)ACK 值 由 TWCR 的 设 置 决 定 START/STOP 控 制 器 负 责 产 生 和 检 测 TWI 总 线 上 的 START REPEATED START 与 STOP 状 态 即 使 在 MCU 处 于 休 眠 状 态 时,START/STOP 控 制 器 仍 然 能 够 检 测 TWI 总 线 上 的 START/STOP 条 件, 当 检 测 到 自 己 被 TWI 总 线 上 的 主 机 寻 址 时, 将 MCU 从 休 眠 状 态 唤 醒 如 果 TWI 以 主 机 模 式 启 动 了 数 据 传 输, 仲 裁 检 测 电 路 将 持 续 监 听 总 线, 以 确 定 是 否 可 以 通 过 仲 裁 获 得 总 线 控 制 权 如 果 总 线 仲 裁 单 元 检 测 到 自 己 在 总 线 仲 裁 中 丢 失 了 总 线 控 制 权, 则 通 知 TWI 控 制 单 元 执 行 正 确 的 动 作, 并 产 生 合 适 的 状 态 码 地 址 匹 配 单 元 地 址 匹 配 单 元 将 检 测 从 总 线 上 接 收 到 的 地 址 是 否 与 TWAR 寄 存 器 中 的 7 位 地 址 相 匹 配 如 果 TWAR 寄 存 器 的 TWI 广 播 应 答 识 别 使 能 位 TWGCE 为 ", 从 总 线 接 收 到 的 地 址 也 会 与 广 播 地 址 进 行 比 较 一 旦 地 址 匹 配 成 功, 控 制 单 元 将 得 到 通 知 以 进 行 正 确 地 响 应 TWI 可 以 响 应, 也 可 以 不 响 应 主 机 的 寻 址, 这 取 决 于 TWCR 寄 存 器 的 设 置 即 使 MCU 处 于 休 眠 状 态 时, 地 址 匹 配 单 元 仍 可 继 续 工 作 一 旦 主 机 寻 址 到 这 个 器 件, 就 可 以 将 MCU 从 休 眠 状 态 唤 醒 控 制 单 元 控 制 单 元 监 听 TWI 总 线, 并 根 据 TWI 控 制 寄 存 器 TWCR 的 设 置 作 出 相 应 的 响 应 当 TWI 总 线 上 产 生 需 要 应 用 程 序 干 预 处 理 的 事 件 时,TWI 中 断 标 志 位 TWINT 置 位 在 下 一 个 时 钟 周 期, TWI 状 态 寄 存 器 TWSR 被 表 示 这 个 事 件 的 状 态 码 字 所 更 新 在 其 它 时 间 里, TWSR 的 内 容 为 一 个 表 示 无 事 件 发 生 的 特 殊 状 态 字 一 旦 TWINT 标 志 位 置 ", 时 钟 线 SCL 即 被 拉 低, 暂 停 TWI 总 线 上 的 数 据 传 输, 让 用 户 程 序 处 理 事 件 在 下 列 状 况 出 现 时, TWINT 标 志 位 置 位 : 在 TWI 传 送 完 START/REPEATED START 信 号 之 后 在 TWI 传 送 完 SLA+R/W 数 据 之 后 在 TWI 传 送 完 地 址 字 节 之 后 在 TWI 总 线 仲 裁 失 败 之 后 在 TWI 被 主 机 寻 址 之 后 ( 广 播 方 式 或 从 机 地 址 匹 配 ) 在 TWI 接 收 到 一 个 数 据 字 节 之 后 作 为 从 机 工 作 时, TWI 接 收 到 STOP 或 REPEATED START 信 号 之 后 由 于 非 法 的 START 或 STOP 信 号 造 成 总 线 错 误 时 57

158 TWI 寄 存 器 说 明 TWI 比 特 率 寄 存 器 - TWBR Bit TWBR7 TWBR6 TWBR5 TWBR4 TWBR3 TWBR2 TWBR TWBR TWBR 读 / 写 R/W R/W R/W R/W R/W R/W R/W R/W 初 始 值 Bits 7.. TWI 比 特 率 寄 存 器 TWBR 为 比 特 率 发 生 器 分 频 因 子 比 特 率 发 生 器 是 一 个 分 频 器, 在 主 机 模 式 下 产 生 SCL 时 钟 频 率 比 特 率 计 算 公 式 请 见 P 57 比 特 率 发 生 器 单 元 TWI 控 制 寄 存 器 - TWCR Bit TWINT TWEA TWSTA TWSTO TWWC TWEN TWIE TWCR 读 / 写 R/W R/W R/W R/W R R/W R R/W 初 始 值 TWCR 用 来 控 制 TWI 操 作 它 用 来 使 能 TWI, 通 过 施 加 START 到 总 线 上 来 启 动 主 机 访 问, 产 生 接 收 器 应 答, 产 生 STOP 状 态, 以 及 在 写 入 数 据 到 TWDR 寄 存 器 时 控 制 总 线 的 暂 停 等 这 个 寄 存 器 还 可 以 给 出 在 TWDR 无 法 访 问 期 间, 试 图 将 数 据 写 入 到 TWDR 而 引 起 的 写 入 冲 突 信 息 Bit 7 TWINT: TWI 中 断 标 志 当 TWI 完 成 当 前 工 作, 希 望 应 用 程 序 介 入 时 TWINT 置 位 若 SREG 的 I 标 志 以 及 TWCR 寄 存 器 的 TWIE 标 志 也 置 位, 则 MCU 执 行 TWI 中 断 例 程 当 TWINT 置 位 时, SCL 信 号 的 低 电 平 被 延 长 TWINT 标 志 的 清 零 必 须 通 过 软 件 写 " 来 完 成 执 行 中 断 时 硬 件 不 会 自 动 将 其 改 写 为 " 要 注 意 的 是, 只 要 这 一 位 被 清 零, TWI 立 即 开 始 工 作 因 此, 在 清 零 TWINT 之 前 一 定 要 首 先 完 成 对 地 址 寄 存 器 TWAR, 状 态 寄 存 器 TWSR, 以 及 数 据 寄 存 器 TWDR 的 访 问 Bit 6 TWEA: TWI 使 能 应 答 TWEA 标 志 控 制 应 答 脉 冲 的 产 生 若 TWEA 置 位, 出 现 如 下 条 件 时 接 口 发 出 ACK 脉 冲 :. 芯 片 的 从 机 地 址 与 主 机 发 出 的 地 址 相 符 合 2. TWAR 的 TWGCE 置 位 时 接 收 到 广 播 呼 叫 3. 在 主 机 / 从 机 接 收 模 式 下 接 收 到 一 个 字 节 的 数 据 将 TWEA 清 零 可 以 使 器 件 暂 时 脱 离 总 线 置 位 后 器 件 重 新 恢 复 地 址 识 别 Bit 5 TWSTA: TWI START 状 态 标 志 当 CPU 希 望 自 己 成 为 总 线 上 的 主 机 时 需 要 置 位 TWSTA TWI 硬 件 检 测 总 线 是 否 可 用 若 总 线 空 闲, 接 口 就 在 总 线 上 产 生 START 状 态 若 总 线 忙, 接 口 就 一 直 等 待, 直 到 检 测 到 一 个 STOP 状 态, 然 后 产 生 START 以 声 明 自 己 希 望 成 为 主 机 发 送 START 之 后 软 件 必 须 清 零 TWSTA Bit 4 TWSTO: TWI STOP 状 态 位 在 主 机 模 式 下, 如 果 置 位 TWSTO,TWI 接 口 将 在 总 线 上 产 生 STOP 状 态, 然 后 TWSTO 自 动 清 零 在 从 机 模 式 下, 置 位 TWSTO 可 以 使 接 口 从 错 误 状 态 恢 复 到 未 被 寻 址 的 状 态 此 时 总 线 上 不 会 有 STOP 状 态 产 生, 但 TWI 返 回 一 个 定 义 好 的 未 被 寻 址 的 从 机 模 式 且 释 放 SCL 与 SDA 为 高 阻 态 Bit 3 TWWC:TWI 写 冲 突 标 志 当 TWINT 为 低 时 写 数 据 寄 存 器 TWDR 将 置 位 TWWC 当 TWINT 为 高 时, 每 一 次 对 TWDR 的 写 访 问 都 将 更 新 此 标 志 58 ATmega8(L)

159 ATmega8(L) Bit 2 TWEN: TWI 使 能 TWEN 位 用 于 使 能 TWI 操 作 与 激 活 TWI 接 口 当 TWEN 位 被 写 为 " 时,TWI 引 脚 将 I/O 引 脚 切 换 到 SCL 与 SDA 引 脚, 使 能 波 形 斜 率 限 制 器 与 尖 峰 滤 波 器 如 果 该 位 清 零, TWI 接 口 模 块 将 被 关 闭, 所 有 TWI 传 输 将 被 终 止 Bit Res: 保 留 保 留, 读 返 回 值 为 Bit TWIE: TWI 中 断 使 能 当 SREG 的 I 以 及 TWIE 置 位 时, 只 要 TWINT 为 ", TWI 中 断 就 激 活 59

160 TWI 状 态 寄 存 器 - TWSR Bit TWS7 TWS6 TWS5 TWS4 TWS3 TWPS TWPS TWSR 读 / 写 R R R R R R R/W R/W 初 始 值 Bits 7..3 TWS: TWI 状 态 这 5 位 用 来 反 映 TWI 逻 辑 和 总 线 的 状 态 不 同 的 状 态 代 码 将 会 在 后 面 的 部 分 描 述 注 意 从 TWSR 读 出 的 值 包 括 5 位 状 态 值 与 2 位 预 分 频 值 检 测 状 态 位 时 设 计 者 应 屏 蔽 预 分 频 位 为 " 这 使 状 态 检 测 独 立 于 预 分 频 器 设 置 在 无 特 殊 声 明 的 情 况 下, 在 手 册 中 使 用 该 方 法 Bit 2 Res: 保 留 保 留, 读 返 回 值 为 " Bits.. TWPS: TWI 预 分 频 位 这 两 位 可 读 / 写, 用 于 控 制 比 特 率 预 分 频 因 子 Table 65. TWI 比 特 率 预 分 频 器 TWPS TWPS 预 分 频 器 值 如 何 计 算 比 特 率 请 见 P 57 比 特 率 发 生 器 单 元 TWPS.. 值 在 该 公 式 中 使 用 TWI 数 据 寄 存 器 - TWDR Bit TWD7 TWD6 TWD5 TWD4 TWD3 TWD2 TWD TWD TWDR 读 / 写 R/W R/W R/W R/W R/W R/W R/W R/W 初 始 值 在 发 送 模 式, TWDR 包 含 了 要 发 送 的 字 节 ; 在 接 收 模 式, TWDR 包 含 了 接 收 到 的 数 据 当 TWI 接 口 没 有 进 行 移 位 工 作 (TWINT 置 位 ) 时 这 个 寄 存 器 是 可 写 的 在 第 一 次 中 断 发 生 之 前 用 户 不 能 够 初 始 化 数 据 寄 存 器 只 要 TWINT 置 位,TWDR 的 数 据 就 是 稳 定 的 在 数 据 移 出 时, 总 线 上 的 数 据 同 时 移 入 寄 存 器 TWDR 总 是 包 含 了 总 线 上 出 现 的 最 后 一 个 字 节, 除 非 MCU 是 从 掉 电 或 省 电 模 式 被 TWI 中 断 唤 醒 此 时 TWDR 的 内 容 没 有 定 义 总 线 仲 裁 失 败 时, 主 机 将 切 换 为 从 机, 但 总 线 上 出 现 的 数 据 不 会 丢 失 ACK 的 处 理 由 TWI 逻 辑 自 动 管 理, CPU 不 能 直 接 访 问 ACK Bits 7.. TWD: TWI 数 据 寄 存 器 根 据 状 态 的 不 同, 其 内 容 为 要 发 送 的 下 一 个 字 节, 或 是 接 收 到 的 数 据 TWI( 从 机 ) 地 址 寄 存 器 - TWAR Bit TWA6 TWA5 TWA4 TWA3 TWA2 TWA TWA TWGCE TWAR 读 / 写 R/W R/W R/W R/W R/W R/W R/W R/W 初 始 值 TWAR 的 高 7 位 为 从 机 地 址 工 作 于 从 机 模 式 时,TWI 将 根 据 这 个 地 址 进 行 响 应 主 机 模 式 不 需 要 此 地 址 在 多 主 机 系 统 中, TWAR 需 要 进 行 设 置 以 便 其 他 主 机 访 问 自 己 6 ATmega8(L)

161 ATmega8(L) TWAR 的 LSB 用 于 识 别 广 播 地 址 (x) 芯 片 内 有 一 个 地 址 比 较 器 一 旦 接 收 到 的 地 址 和 本 机 地 址 一 致, 芯 片 就 请 求 中 断 Bits 7.. TWA: TWI 从 机 地 址 寄 存 器 其 值 为 从 机 地 址 Bit TWGCE: TWI 广 播 识 别 使 能 置 位 后 MCU 可 以 识 别 TWI 总 线 广 播 使 用 TWI AVR 的 TWI 接 口 是 面 向 字 节 和 基 于 中 断 的 所 有 的 总 线 事 件, 如 接 收 到 一 个 字 节 或 发 送 了 一 个 START 信 号 等, 都 会 产 生 一 个 TWI 中 断 由 于 TWI 接 口 是 基 于 中 断 的, 因 此 TWI 接 口 在 字 节 发 送 和 接 收 过 程 中, 不 需 要 应 用 程 序 的 干 预 TWCR 寄 存 器 的 TWI 中 断 允 许 TWIE 位 和 SREG 寄 存 器 的 全 局 中 断 允 许 位 一 起 决 定 了 应 用 程 序 是 否 响 应 TWINT 标 志 位 产 生 的 中 断 请 求 如 果 TWIE 被 清 零, 应 用 程 序 只 能 采 用 轮 询 TWINT 标 志 位 的 方 法 来 检 测 TWI 总 线 状 态 当 TWINT 标 志 位 置 " 时, 表 示 TWI 接 口 完 成 了 当 前 的 操 作, 等 待 应 用 程 序 的 响 应 在 这 种 情 况 下,TWI 状 态 寄 存 器 TWSR 包 含 了 表 明 当 前 TWI 总 线 状 态 的 值 应 用 程 序 可 以 读 取 TWCR 的 状 态 码, 判 别 此 时 的 状 态 是 否 正 确, 并 通 过 设 置 TWCR 与 TWDR 寄 存 器, 决 定 在 下 一 个 TWI 总 线 周 期 TWI 接 口 应 该 如 何 工 作 Figure 77 给 出 应 用 程 序 与 TWI 接 口 连 接 的 例 子 该 例 中, 主 机 发 送 一 个 数 据 字 节 给 从 机 这 里 只 是 简 述, 本 节 的 后 面 会 有 更 多 的 解 释, 还 有 简 单 的 代 码 例 程 Figure 77. 典 型 数 据 传 输 中 应 用 程 序 与 TWI 的 接 口 Application Action. Application writes to TWCR to initiate transmission of START 3. Check TWSR to see if START was sent. Application loads SLA+W into TWDR, and loads appropriate control signals into TWCR, makin sure that TWINT is written to one, and TWSTA is written to zero. 5. Check TWSR to see if SLA+W was sent and ACK received. Application loads data into TWDR, and loads appropriate control signals into TWCR, making sure that TWINT is written to one 7. Check TWSR to see if data was sent and ACK received. Application loads appropriate control signals to send STOP into TWCR, making sure that TWINT is written to one TWI bus START SLA+W A Data A STOP TWI Hardware Action 2. TWINT set. Status code indicates START condition sent 4. TWINT set. Status code indicates SLA+W sent, ACK received 6. TWINT set. Status code indicates data sent, ACK received Indicates TWINT set. TWI 传 输 的 第 一 步 是 发 送 START 信 号 通 过 对 TWCR 写 入 特 定 值, 指 示 TWI 硬 件 发 送 START 信 号 写 入 的 值 将 在 后 面 说 明 在 写 入 值 时 TWINT 位 要 置 位, 这 非 常 重 要 给 TWINT 写 " 清 除 此 标 志 TWCR 寄 存 器 的 TWINT 置 位 期 间 TWI 不 会 启 动 任 何 操 作 一 旦 TWINT 清 零, TWI 由 START 信 号 启 动 数 据 传 输 2. START 信 号 被 发 送 后,TWCR 寄 存 器 的 TWINT 标 志 位 置 位, TWCR 更 新 为 新 的 状 态 码, 表 示 START 信 号 成 功 发 送 3. 应 用 程 序 应 检 验 TWSR, 确 定 START 信 号 已 成 功 发 送 如 果 TWSR 显 示 为 其 它, 应 用 程 序 可 以 执 行 一 些 指 定 操 作, 比 如 调 用 错 误 处 理 程 序 如 果 状 态 码 与 预 期 一 致, 应 用 程 序 必 须 将 SLA+W 载 入 TWDR TWDR 可 同 时 在 地 址 与 数 据 中 使 用 TWDR 载 入 SLA+W 后,TWCR 必 须 写 入 特 定 值 指 示 TWI 硬 件 发 送 SLA+W 信 号 写 入 的 值 将 在 后 面 说 明 在 写 入 值 时 TWINT 位 要 置 位, 这 非 常 重 要 给 TWINT 写 6

162 " 清 除 此 标 志 TWCR 寄 存 器 的 TWINT 置 位 期 间 TWI 不 会 启 动 任 何 操 作 一 旦 TWINT 清 零, TWI 启 动 地 址 包 的 传 送 4. 地 址 包 发 送 后,TWCR 寄 存 器 的 TWINT 标 志 位 置 位, TWDR 更 新 为 新 的 状 态 码, 表 示 地 址 包 成 功 发 送 状 态 代 码 还 会 反 映 从 机 是 否 响 应 包 5. 应 用 程 序 应 检 验 TWSR, 确 定 地 址 包 已 成 功 发 送 ACK 为 期 望 值 如 果 TWSR 显 示 为 其 它, 应 用 程 序 可 能 执 行 一 些 指 定 操 作, 比 如 调 用 错 误 处 理 程 序 如 果 状 态 码 与 预 期 一 致, 应 用 程 序 必 须 将 数 据 包 载 入 TWDR 随 后, TWCR 必 须 写 入 特 定 值 指 示 TWI 硬 件 发 送 TWDR 中 的 数 据 包 写 入 的 值 将 在 后 面 说 明 在 写 入 值 时 TWINT 位 要 置 位, 这 非 常 重 要 TWCR 寄 存 器 中 的 TWINT 置 位 期 间 TWI 不 会 启 动 任 何 操 作 一 旦 TWINT 清 零, TWI 启 动 数 据 包 的 传 输 6. 数 据 包 发 送 后,TWCR 寄 存 器 的 TWINT 标 志 位 置 位, TWSR 更 新 为 新 的 状 态 码, 表 示 数 据 包 成 功 发 送 状 态 代 码 还 会 反 映 从 机 是 否 响 应 包 7. 应 用 程 序 应 检 验 TWSR, 确 定 地 址 包 已 成 功 发 送 ACK 为 期 望 值 如 果 TWSR 显 示 为 其 它, 应 用 程 序 可 能 执 行 一 些 指 定 操 作, 比 如 调 用 错 误 处 理 程 序 如 果 状 态 码 与 预 期 一 致, TWCR 必 须 写 入 特 定 值 指 示 TWI 硬 件 发 送 STOP 信 号 写 入 的 值 将 在 后 面 说 明 在 写 入 值 时 TWINT 位 要 置 位, 这 非 常 重 要 给 TWINT 写 " 清 除 此 标 志 TWCR 寄 存 器 中 的 TWINT 置 位 期 间 TWI 不 会 启 动 任 何 操 作 一 旦 TWINT 清 零,TWI 启 动 STOP 信 号 的 传 送 注 意 TWINT 在 STOP 状 态 发 送 后 不 会 置 位 尽 管 示 例 比 较 简 单, 但 它 包 含 了 TWI 数 据 传 输 过 程 中 的 所 有 规 则 总 结 如 下 : 当 TWI 完 成 一 次 操 作 并 等 待 反 馈 时, TWINT 标 志 置 位 直 到 TWINT 清 零, 时 钟 线 SCL 才 会 拉 低 TWINT 标 志 置 位 时, 用 户 必 须 用 与 下 一 个 TWI 总 线 周 期 相 关 的 值 更 新 TWI 寄 存 器 例 如, TWDR 寄 存 器 必 须 载 入 下 一 个 总 线 周 期 中 要 发 送 的 值 当 所 有 的 TWI 寄 存 器 得 到 更 新, 而 且 其 它 挂 起 的 应 用 程 序 也 已 经 结 束, TWCR 被 写 入 数 据 写 TWCR 时, TWINT 位 应 置 位 对 TWINT 写 " 清 除 此 标 志 TWI 将 开 始 执 行 由 TWCR 设 定 的 操 作 下 面 给 出 了 汇 编 与 C 语 言 例 程 注 意 假 设 下 面 代 码 均 已 给 出 定 义 62 ATmega8(L)

163 ATmega8(L) 汇 编 代 码 例 程 C 代 码 例 程 说 明 ldi r6, (<<TWINT) (<<TWSTA) (<<TWEN) out TWCR, r6 2 wait: in r6,twcr sbrs r6,twint rjmp wait 3 in r6,twsr andi r6, xf8 cpi r6, START brne ERROR ldi r6, SLA_W out TWDR, r6 ldi r6, (<<TWINT) (<<TWEN) out TWCR, r6 4 wait2: in r6,twcr sbrs r6,twint rjmp wait2 5 in r6,twsr andi r6, xf8 cpi r6, MT_SLA_ACK brne ERROR ldi r6, DATA out TWDR, r6 ldi r6, (<<TWINT) (<<TWEN) out TWCR, r6 6 wait3: in r6,twcr sbrs r6,twint rjmp wait3 7 in r6,twsr andi r6, xf8 cpi r6, MT_DATA_ACK brne ERROR ldi r6, (<<TWINT) (<<TWEN) (<<TWSTO) out TWCR, r6 TWCR = (<<TWINT) (<<TWSTA) (<<TWEN) while (!(TWCR & (<<TWINT))) ; if ((TWSR & xf8)!= START) ERROR(); TWDR = SLA_W; TWCR = (<<TWINT) (<<TWEN); while (!(TWCR & (<<TWINT))) ; if ((TWSR & xf8)!= MT_SLA_ACK) ERROR(); TWDR = DATA; TWCR = (<<TWINT) (<<TWEN); while (!(TWCR & (<<TWINT))) ; if ((TWSR & xf8)!= MT_DATA_ACK) ERROR(); TWCR = (<<TWINT) (<<TWEN) (<<TWSTO); 发 出 START 信 号 等 待 TWINT 置 位, TWINT 置 位 表 示 START 信 号 已 发 出 检 验 TWI 状 态 寄 存 器, 屏 蔽 预 分 频 位, 如 果 状 态 字 不 是 START 转 出 错 处 理 将 SLA_W 载 入 TWDR 寄 存 器, TWINT 位 清 零, 启 动 发 送 地 址 等 待 TWINT 置 位, TWINT 置 位 表 示 总 线 命 令 SLA+W 已 发 出, 及 收 到 应 答 信 号 ACK/NACK 检 验 TWI 状 态 寄 存 器, 屏 蔽 预 分 频 位, 如 果 状 态 字 不 是 MT_SLA_ACK 转 出 错 处 理 将 数 据 载 入 TWDR 寄 存 器, TWINT 清 零, 启 动 发 送 数 据 等 待 TWINT 置 位, TWINT 置 位 表 示 总 线 数 据 DATA 已 发 送, 及 收 到 应 答 信 号 ACK/NACK 检 验 TWI 状 态 寄 存 器, 屏 蔽 预 分 频 器, 如 果 状 态 字 不 是 MT_DATA_ACK 转 出 错 处 理 发 送 STOP 信 号 63

164 传 输 模 式 TWI 可 以 工 作 于 4 个 不 同 的 模 式 : 主 机 发 送 器 (MT) 主 机 接 收 器 (MR) 从 机 发 送 器 (ST) 及 从 机 接 收 器 (SR) 同 一 应 用 程 序 可 以 使 用 几 种 模 式 例 如, TWI 可 用 MT 模 式 给 TWI EEPROM 写 入 数 据, 用 MR 模 式 从 EEPROM 读 取 数 据 如 果 系 统 中 有 其 它 主 机 存 在, 它 们 可 能 给 TWI 发 送 数 据, 此 时 就 可 以 用 SR 模 式 应 用 程 序 决 定 采 用 何 种 模 式 下 面 对 每 种 模 式 进 行 具 体 说 明 每 种 模 式 的 状 态 码 在 详 细 说 明 数 据 发 送 的 图 中 进 行 描 述 这 些 图 包 含 了 如 下 的 缩 写 : S: START 状 态 Rs:REPEATED START 状 态 R: 读 一 个 比 特 (SDA 为 高 电 平 ) W: 写 一 个 比 特 (SDA 为 低 电 平 ) A: 应 答 位 (SDA 为 低 电 平 ) A: 无 应 答 位 (SDA 为 高 电 平 ) Data:8 位 数 据 P: STOP 状 态 SLA: 从 机 地 址 在 Figure 79 到 Figure 85 中, 圆 圈 用 来 说 明 TWINT 标 志 已 经 置 位 圆 圈 中 的 数 字 用 来 表 示 预 TWSR 的 数 值, 其 中 分 频 位 屏 蔽 为 在 这 些 地 方 应 用 程 序 必 须 执 行 合 适 的 工 作 以 继 续 / 完 成 TWI 传 输 TWI 传 输 被 挂 起, 一 直 到 TWINT 标 志 被 软 件 清 零 TWINT 标 志 置 位 后,TWSR 的 状 态 码 用 来 决 定 适 当 的 软 件 操 作 Table 66 到 Table 69. 给 出 了 每 一 个 状 态 码 所 需 的 软 件 工 作 和 后 续 串 行 传 输 的 细 节 注 意 在 这 些 表 中 预 分 频 位 屏 蔽 为 64 ATmega8(L)

165 ATmega8(L) 主 机 发 送 模 式 在 主 机 发 送 模 式, 主 机 可 以 向 从 机 发 送 数 据, 如 Figure 78 所 示 为 进 入 主 机 模 式, 必 须 发 送 START 信 号 紧 接 着 的 地 址 包 格 式 决 定 进 入 MT 或 MR 模 式 如 果 发 送 SLA+W 进 入 MT 模 式 ; 如 果 发 送 SLA+R 则 进 入 MR 模 式 本 节 所 提 到 的 状 态 字 均 假 设 其 预 分 频 位 为 " Figure 78. 主 机 发 送 模 式 下 的 数 据 传 输 V CC Device MASTER TRANSMITTER Device 2 SLAVE RECEIVER Device 3... Device n R R2 SDA SCL 通 过 在 TWCR 寄 存 器 中 写 入 下 列 数 值 发 出 START 信 号 : TWCR TWINT TWEA TWSTA TWSTO TWWC TWEN TWIE 值 X X X TWEN 必 须 置 位 以 使 能 两 线 接 口,TWSTA 必 须 置 " 来 发 出 START 信 号 且 TWINT 必 须 置 " 来 对 TWINT 标 志 清 零 TWI 逻 辑 开 始 检 测 串 行 总 线, 一 旦 总 线 空 闲 就 发 送 START 接 着 中 断 标 志 TWINT 置 位,TWSR 的 状 态 码 为 x8 ( 见 Table 66) 为 进 入 MT 模 式, 必 须 发 送 SLA+W 这 可 通 过 对 TWDR 写 入 SLA+W 来 实 现 完 成 此 操 作 后 软 件 清 零 TWINT 标 志, TWI 传 输 继 续 进 行 这 通 过 在 TWCR 寄 存 器 中 写 入 下 述 值 完 成 : TWCR TWINT TWEA TWSTA TWSTO TWWC TWEN TWIE 值 X X X 当 SLA+W 发 送 完 毕 并 接 收 到 确 认 信 号, 主 机 的 TWINT 标 志 再 次 置 位 此 时 主 机 的 TWSR 状 态 码 可 能 是 x8 x2 或 x38 对 各 状 态 码 的 正 确 响 应 列 于 Table 66 SLA+W 发 送 成 功 后 可 以 开 始 发 送 数 据 包 通 过 对 TWDR 写 入 数 据 实 现 TWDR 只 有 在 TWINT 为 高 时 方 可 写 入 否 则, 访 问 被 忽 略, 寄 存 器 TWCR 的 写 碰 撞 位 TWWC 置 位 TWDR 更 新 后,TWINT 位 应 清 零 来 继 续 传 送 这 通 过 在 TWCR 寄 存 器 中 写 入 下 述 值 完 成 TWCR TWINT TWEA TWSTA TWSTO TWWC TWEN TWIE 值 X X X 这 过 程 会 一 直 重 复 下 去, 直 到 最 后 的 字 节 发 送 完 且 发 送 器 产 生 STOP 或 REPEATED START 信 号 STOP 信 号 通 过 在 TWCR 中 写 入 下 述 值 实 现 : TWCR TWINT TWEA TWSTA TWSTO TWWC TWEN TWIE 值 X X X REPEATED START 信 号 通 过 在 TWCR 中 写 入 下 述 值 实 现 : TWCR TWINT TWEA TWSTA TWSTO TWWC TWEN TWIE 值 X X X 65

166 在 REPEATED START ( 状 态 x) 后, 两 线 接 口 可 以 再 次 访 问 相 同 的 从 机, 或 不 发 送 STOP 信 号 来 访 问 新 的 从 机 REPEATED START 使 得 主 机 可 以 在 不 丢 失 总 线 控 制 的 条 件 下 在 从 机 主 机 发 送 器 及 主 机 接 收 器 模 式 间 进 行 切 换 Table 66. 主 机 发 送 模 式 的 状 态 码 应 用 软 件 的 响 应 状 态 码 (TWSR) 预 分 频 位 为 " 2 线 串 行 总 线 和 2 线 串 行 硬 件 的 状 态 读 / 写 TWDR STA 对 TWCR 的 操 作 STO TWIN T TWE A 2 线 串 行 硬 件 下 一 步 应 采 取 的 动 作 x8 START 已 发 送 加 载 SLA+W X 将 发 送 SLA+W 将 接 收 到 ACK 或 NOT ACK x 重 复 START 已 发 送 加 载 SLA+W 或 加 载 SLA+R X X 将 发 送 SLA+W 将 接 收 到 ACK 或 NOT ACK 将 发 送 SLA+R 切 换 到 主 机 接 收 模 式 x8 SLA+W 已 发 送 ; 接 收 到 ACK 加 载 数 据 ( 字 节 ) 或 不 操 作 TWDR 或 不 操 作 TWDR 或 X X X X 将 发 送 数 据, 接 收 ACK 或 NOT ACK 将 发 送 重 复 START 将 发 送 STOP, TWSTO 将 复 位 将 发 送 STOP, 然 后 发 送 START, TWSTO 将 复 位 不 操 作 TWDR x2 SLA+W 已 发 送 接 收 到 NOT ACK 加 载 数 据 ( 字 节 ) 或 不 操 作 TWDR 或 不 操 作 TWDR 或 X X X X 将 发 送 数 据, 接 收 ACK 或 NOT ACK 将 发 送 重 复 START 将 发 送 STOP, TWSTO 将 复 位 将 发 送 STOP, 然 后 发 送 START, TWSTO 将 复 位 不 操 作 TWDR x28 数 据 已 发 送 接 收 到 ACK 加 载 数 据 ( 字 节 ) 或 不 操 作 TWDR 或 不 操 作 TWDR 或 X X X X 将 发 送 数 据, 接 收 ACK 或 NOT ACK 将 发 送 重 复 START 将 发 送 STOP, TWSTO 将 复 位 将 发 送 STOP, 然 后 发 送 START, TWSTO 将 复 位 不 操 作 TWDR x3 数 据 已 发 送 接 收 到 NOT ACK 加 载 数 据 ( 字 节 ) 或 不 操 作 TWDR 或 不 操 作 TWDR 或 X X X X 将 发 送 数 据, 接 收 ACK 或 NOT ACK 将 发 送 重 复 START 将 发 送 STOP, TWSTO 将 复 位 将 发 送 STOP, 然 后 发 送 START, TWSTO 将 复 位 不 操 作 TWDR x38 SLA+W 或 数 据 的 仲 裁 失 败 不 操 作 TWDR 或 不 操 作 TWDR X X 2 线 串 行 总 线 将 被 释 放, 并 进 入 未 寻 址 从 机 模 式 总 线 空 闲 后 将 发 送 START 66 ATmega8(L)

167 ATmega8(L) Figure 79. 主 机 发 送 模 式 的 格 式 和 状 态 MT Successfull transmission to a slave receiver S SLA W A DATA A P $8 $8 $28 Next transfer started with a repeated start condition RS SLA W $ Not acknowledge received after the slave address A P R $2 Not acknowledge received after a data byte A P MR $3 Arbitration lost in slave address or data byte A or A Other master continues A or A Other master continues $38 $38 Arbitration lost and addressed as slave A Other master continues $68 $78 $B To corresponding states in slave mode From master to slave DATA A Any number of data bytes and their associated acknowledge bits From slave to master n This number (contained in TWSR) corresponds to a defined state of the Two-Wire Serial Bus. The prescaler bits are zero or masked to zero 67

168 主 机 接 收 模 式 在 主 机 接 收 模 式, 主 机 可 以 从 从 机 接 收 数 据, 如 Figure 8 所 示 为 进 入 主 机 模 式, 必 须 发 送 START 信 号 紧 接 着 的 地 址 包 格 式 决 定 进 入 MT 或 MR 模 式 如 果 发 送 SLA+W 进 入 MT 模 式 ; 如 果 发 送 SLA+R 则 进 入 MR 模 式 本 节 所 提 到 的 状 态 字 均 假 设 其 预 分 频 位 为 " Figure 8. 主 机 接 收 模 式 下 的 数 据 传 输 V CC Device MASTER RECEIVER Device 2 SLAVE TRANSMITTER Device 3... Device n R R2 SDA SCL 通 过 在 TWCR 寄 存 器 中 写 入 下 列 数 值 发 出 START 信 号 : TWCR TWINT TWEA TWSTA TWSTO TWWC TWEN TWIE 值 X X X TWEN 必 须 置 位 以 使 能 两 线 接 口,TWSTA 必 须 置 " 来 发 出 START 信 号 且 TWINT 必 须 置 " 来 对 TWINT 标 志 清 零 TWI 逻 辑 开 始 检 测 串 行 总 线, 一 旦 总 线 空 闲 就 发 送 START 接 着 中 断 标 志 TWINT 置 位,TWSR 的 状 态 码 为 x8 ( 见 Table 66) 为 进 入 MR 模 式, 必 须 发 送 SLA+R 这 可 通 过 对 TWDR 写 入 SLA+R 来 实 现 完 成 此 操 作 后 软 件 清 零 TWINT 标 志, TWI 传 输 继 续 进 行 这 通 过 在 TWCR 寄 存 器 中 写 入 下 述 值 完 成 : TWCR TWINT TWEA TWSTA TWSTO TWWC TWEN TWIE 值 X X X 当 SLA+R 发 送 完 毕 并 接 收 到 确 认 信 号, 主 机 的 TWINT 标 志 再 次 置 位 此 时 主 机 的 TWSR 状 态 码 可 能 是 x38 x4 或 x48 对 各 状 态 码 的 正 确 响 应 列 于 Table 67 TWDR 只 有 在 TWINT 为 高 时 才 能 读 收 到 的 数 据 这 过 程 会 一 直 重 复 下 去, 直 到 最 后 的 字 节 接 收 结 束 接 收 完 成 后, MR 应 通 过 在 接 收 到 最 后 的 字 节 后 发 送 NACK 信 号 发 送 器 产 生 STOP 或 REPEATED START 信 号 结 束 传 送 STOP 信 号 通 过 在 TWCR 中 写 入 下 述 值 实 现 : TWCR TWINT TWEA TWSTA TWSTO TWWC TWEN TWIE 值 X X X REPEATED START 信 号 通 过 在 TWCR 中 写 入 下 述 值 实 现 : TWCR TWINT TWEA TWSTA TWSTO TWWC TWEN TWIE 值 X X X 在 REPEATED START ( 状 态 x) 后, 两 线 接 口 可 以 再 次 访 问 相 同 的 从 机, 或 不 发 送 STOP 信 号 来 访 问 新 的 从 机 REPEATED START 使 得 主 机 可 以 在 不 丢 失 总 线 控 制 的 条 件 下 在 从 机 主 机 发 送 器 及 主 机 接 收 器 模 式 间 进 行 切 换 Table 67. 主 机 接 收 模 式 的 状 态 码 应 用 软 件 的 响 应 状 态 码 (TWSR) 预 分 频 位 为 " 2 线 串 行 总 线 和 2 线 串 行 硬 件 的 状 态 读 / 写 TWDR STA 对 TWCR 的 操 作 STO TWIN T TWE A 2 线 串 行 硬 件 下 一 步 应 采 取 的 动 作 68 ATmega8(L)

169 ATmega8(L) Table 67. 主 机 接 收 模 式 的 状 态 码 x8 START 已 发 送 加 载 SLA+R X 将 发 送 SLA+R 将 接 收 到 ACK 或 NOT ACK x 重 复 START 已 发 送 加 载 SLA+R 或 加 载 SLA+W X X 将 发 送 SLA+R 将 接 收 到 ACK 或 NOT ACK 将 发 送 SLA+W 逻 辑 切 换 到 主 机 发 送 模 式 x38 SLA+R 或 NOT ACK 的 仲 裁 失 败 不 操 作 TWDR 或 不 操 作 TWDR X X 2 线 串 行 总 线 将 被 释 放, 并 进 入 未 寻 址 从 机 模 式 总 线 空 闲 后 将 发 送 START x4 SLA+R 已 发 送 接 收 到 ACK 不 操 作 TWDR 或 不 操 作 TWDR 接 收 数 据, 返 回 NOT ACK 接 收 数 据, 返 回 ACK x48 SLA+R 已 发 送 接 收 到 NOT ACK 不 操 作 TWDR 或 不 操 作 TWDR 或 X X X 将 发 送 重 复 START 将 发 送 STOP, TWSTO 将 复 位 不 操 作 TWDR 将 发 送 STOP, 然 后 发 送 START, TWSTO 将 复 位 x5 接 收 到 数 据 ACK 已 返 回 读 数 据 或 读 数 据 接 收 数 据, 返 回 NOT ACK 接 收 数 据, 返 回 ACK x58 接 收 到 数 据 NOT ACK 已 返 回 读 数 据 或 读 数 据 或 X X X 将 发 送 重 复 START 将 发 送 STOP, TWSTO 将 复 位 读 数 据 将 发 送 STOP, 然 后 发 送 START, TWSTO 将 复 位 69

170 Figure 8. 主 机 接 收 模 式 的 格 式 和 状 态 MR Successfull reception from a slave receiver S SLA R A DATA A DATA A P $8 $4 $5 $58 Next transfer started with a repeated start condition R S SLA R $ Not acknowledge received after the slave address A P W $48 Arbitration lost in slave address or data byte A or A Other master continues A Other master continues MT $38 $38 Arbitration lost and addressed as slave A Other master continues $68 $78 $B To corresponding states in slave mode From master to slave DATA A Any number of data bytes and their associated acknowledge bits From slave to master n This number (contained in TWSR) corresponds to a defined state of the Two-Wire Serial Bus. The prescaler bits are zero or masked to zero 从 机 接 收 模 式 在 从 机 接 收 模 式, 从 机 自 主 机 接 收 数 据, 如 Figure 82 所 示 本 节 所 提 到 的 状 态 字 均 假 设 其 预 分 频 位 为 " Figure 82. 从 机 接 收 模 式 下 的 数 据 传 输 V CC Device SLAVE RECEIVER Device 2 MASTER TRANSMITTER Device 3... Device n R R2 SDA SCL 为 启 动 从 机 接 收 模 式, TWAR 与 TWCR 设 置 如 下 : TWAR TWA6 TWA5 TWA4 TWA3 TWA2 TWA TWA TWGCE 值 芯 片 本 身 从 机 地 址 7 ATmega8(L)

171 ATmega8(L) 前 7 位 是 主 机 寻 址 时 从 机 响 应 的 TWI 接 口 地 址 若 LSB 置 位, 则 TWI 接 口 响 应 广 播 地 址 x 否 则 忽 略 广 播 地 址 TWCR TWINT TWEA TWSTA TWSTO TWWC TWEN TWIE 值 X TWEN 必 须 置 位 以 使 能 TWI 接 口 TWEA 也 要 置 位 以 使 主 机 寻 址 到 自 己 ( 从 机 地 址 或 广 播 ) 时 返 回 确 认 信 息 ACK TWSTA 和 TWSTO 必 须 清 零 初 始 化 TWAR 和 TWCR 之 后, TWI 接 口 即 开 始 等 待, 直 到 自 己 的 从 机 地 址 ( 或 广 播 地 址, 如 果 TWAR 的 TWGCE 置 位 的 话 ) 出 现 在 主 机 寻 址 地 址 当 中, 并 且 数 据 方 向 位 为 ( 写 ) 然 后 TWINT 标 志 置 位, TWSR 则 包 含 了 相 应 的 状 态 码 对 各 状 态 码 的 正 确 响 应 列 于 Table 68 当 TWI 接 口 处 于 主 机 模 式 ( 状 态 x68 或 x78) 并 发 生 仲 裁 失 败 时 CPU 将 进 入 从 机 接 收 模 式 如 果 在 传 输 过 程 中 TWEA 复 位, TWI 接 口 在 接 收 到 下 一 个 字 节 后 将 向 SDA 返 回 无 应 答 TWEA 复 位 时 TWI 接 口 不 再 响 应 自 己 的 从 机 地 址, 但 是 会 继 续 监 视 总 线 一 旦 TWEA 置 位 就 可 以 恢 复 地 址 识 别 和 响 应 也 就 是 说, 可 以 利 用 TWEA 暂 时 将 TWI 接 口 从 总 线 中 隔 离 出 来 在 除 空 闲 模 式 外 的 其 它 休 眠 模 式 时, TWI 接 口 的 时 钟 被 关 闭 若 使 能 了 从 机 接 收 模 式, 接 口 将 利 用 总 线 时 钟 继 续 响 应 广 播 地 址 / 从 机 地 址 地 址 匹 配 将 唤 醒 CPU 在 唤 醒 期 间, TWI 接 口 将 保 持 SCL 为 低 电 平, 直 至 TWCINT 标 志 清 零 当 AVR 时 钟 恢 复 正 常 运 行 后 TWI 可 以 接 收 更 多 的 数 据 显 然 如 果 AVR 设 置 为 长 启 动 时 间, 时 钟 线 SCL 可 能 会 长 时 间 保 持 低, 阻 塞 其 它 数 据 的 传 送 当 MCU 从 这 些 休 眠 模 式 唤 醒 时, 和 正 常 工 作 模 式 不 同 的 是, 数 据 寄 存 器 TWDR 的 数 据 并 不 反 映 总 线 上 出 现 的 最 后 一 个 字 节 7

172 Table 68. 从 机 接 收 模 式 的 状 态 码 应 用 软 件 的 响 应 状 态 码 (TWSR) 预 分 频 位 为 " 2 线 串 行 总 线 和 2 线 串 行 硬 件 的 状 态 读 / 写 TWDR STA 对 TWCR 的 操 作 STO TWIN T TWE A 2 线 串 行 硬 件 下 一 步 应 采 取 的 动 作 x6 自 己 的 SLA+W 已 经 被 接 收 ACK 已 返 回 不 操 作 TWDR 或 不 操 作 TWDR X X 接 收 数 据, 返 回 NOT ACK 接 收 数 据, 返 回 ACK x68 SLA+R/W 作 为 主 机 的 仲 裁 失 败 ; 自 己 的 SLA+W 已 经 被 接 收 ACK 已 返 回 不 操 作 TWDR 或 不 操 作 TWDR X X 接 收 数 据, 返 回 NOT ACK 接 收 数 据, 返 回 ACK x7 接 收 到 广 播 地 址 ACK 已 返 回 不 操 作 TWDR 或 不 操 作 TWDR X X 接 收 数 据, 返 回 NOT ACK 接 收 数 据, 返 回 ACK x78 SLA+R/W 作 为 主 机 的 仲 裁 失 败 ; 接 收 到 广 播 地 址 ACK 已 返 回 不 操 作 TWDR 或 不 操 作 TWDR X X 接 收 数 据, 返 回 NOT ACK 接 收 数 据, 返 回 ACK x8 以 前 以 自 己 的 SLA+W 被 寻 址 ; 数 据 已 经 被 接 收 ACK 已 返 回 不 操 作 TWDR 或 不 操 作 TWDR X X 接 收 数 据, 返 回 NOT ACK 接 收 数 据, 返 回 ACK x88 以 前 以 自 己 的 SLA+W 被 寻 址 ; 数 据 已 经 被 接 收 NOT ACK 已 返 回 读 数 据 或 读 数 据 或 切 换 到 未 寻 址 从 机 模 式 ; 不 再 识 别 自 己 的 SLA 或 GCA 切 换 到 未 寻 址 从 机 模 式 ; 能 够 识 别 自 己 的 SLA ; 若 TWGCE =, GCA 也 可 以 识 别 切 换 到 未 寻 址 从 机 模 式 ; 不 再 识 别 自 己 的 SLA 或 GCA ; 总 线 空 闲 时 发 送 START 读 数 据 或 切 换 到 未 寻 址 从 机 模 式 ; 能 够 识 别 自 己 的 SLA ; 若 TWGCE =, GCA 也 可 以 识 别 ; 总 线 空 闲 时 发 送 START 读 数 据 72 ATmega8(L)

173 ATmega8(L) Table 68. 从 机 接 收 模 式 的 状 态 码 x9 以 前 以 广 播 方 式 被 寻 址 ; 数 据 已 经 被 接 收 ACK 已 返 回 读 数 据 或 读 数 据 X X 接 收 数 据, 返 回 NOT ACK 接 收 数 据, 返 回 ACK x98 以 前 以 广 播 方 式 被 寻 址 ; 数 据 已 经 被 接 收 NOT ACK 已 返 回 读 数 据 或 读 数 据 或 r 切 换 到 未 寻 址 从 机 模 式 ; 不 再 识 别 自 己 的 SLA 或 GCA 切 换 到 未 寻 址 从 机 模 式 ; 能 够 识 别 自 己 的 SLA ; 若 TWGCE =, GCA 也 可 以 识 别 读 数 据 或 切 换 到 未 寻 址 从 机 模 式 ; 不 再 识 别 自 己 的 SLA 或 GCA ; 总 线 空 闲 时 发 送 START 读 数 据 切 换 到 未 寻 址 从 机 模 式 ; 能 够 识 别 自 己 的 SLA ; 若 TWGCE =, GCA 也 可 以 识 别 ; 总 线 空 闲 时 发 送 START xa 在 以 从 机 工 作 时 接 收 到 STOP 或 重 复 START 无 操 作 切 换 到 未 寻 址 从 机 模 式 ; 不 再 识 别 自 己 的 SLA 或 GCA 切 换 到 未 寻 址 从 机 模 式 ; 能 够 识 别 自 己 的 SLA ; 若 TWGCE =, GCA 也 可 以 识 别 切 换 到 未 寻 址 从 机 模 式 ; 不 再 识 别 自 己 的 SLA 或 GCA ; 总 线 空 闲 时 发 送 START 切 换 到 未 寻 址 从 机 模 式 ; 能 够 识 别 自 己 的 SLA ; 若 TWGCE =, GCA 也 可 以 识 别 ; 总 线 空 闲 时 发 送 START 73

174 Figure 83. 从 机 接 收 模 式 的 格 式 和 状 态 Reception of the own slave address and one or more data bytes. All are acknowledged S SLA W A DATA A DATA A P or S $6 $8 $8 $A Last data byte received is not acknowledged A P or S $88 Arbitration lost as master and addressed as slave A $68 Reception of the general call address and one or more data bytes General Call A DATA A DATA A P or S $7 $9 $9 $A Last data byte received is not acknowledged A P or S $98 Arbitration lost as master and addressed as slave by general call A $78 From master to slave DATA A Any number of data bytes and their associated acknowledge bits From slave to master n This number (contained in TWSR) corresponds to a defined state of the Two-Wire Serial Bus. The prescaler bits are zero or masked to zero 74 ATmega8(L)

175 ATmega8(L) 从 机 发 送 模 式 在 从 机 发 送 模 式, 从 机 可 以 向 主 机 发 送 数 据, 如 Figure 84 所 示 本 节 所 提 到 的 状 态 字 均 假 设 其 预 分 频 位 为 " Figure 84. 从 机 发 送 模 式 下 的 数 据 传 输 V CC Device SLAVE TRANSMITTER Device 2 MASTER RECEIVER Device 3... Device n R R2 SDA SCL 为 启 动 从 机 发 送 模 式, TWAR 与 TWCR 设 置 如 下 : TWAR TWA6 TWA5 TWA4 TWA3 TWA2 TWA TWA TWGCE 值 芯 片 本 身 从 机 地 址 前 7 位 是 主 机 寻 址 时 从 机 响 应 的 TWI 接 口 地 址 若 LSB 置 位, 则 TWI 接 口 响 应 广 播 地 址 x 否 则 忽 略 广 播 地 址 TWCR TWINT TWEA TWSTA TWSTO TWWC TWEN TWIE 值 X TWEN 必 须 置 位 以 使 能 TWI 接 口 TWEA 也 要 置 位 以 便 主 机 寻 址 到 自 己 ( 从 机 地 址 或 广 播 ) 时 返 回 确 认 信 息 ACK TWSTA 和 TWSTO 必 须 清 零 初 始 化 TWAR 和 TWCR 之 后, TWI 接 口 即 开 始 等 待, 直 到 自 己 的 从 机 地 址 ( 或 广 播 地 址, 如 果 TWAR 的 TWGCE 置 位 的 话 ) 出 现 在 主 机 寻 址 地 址 当 中, 并 且 数 据 方 向 位 为 " ( 读 ) 然 后 TWI 中 断 标 志 置 位,TWSR 则 包 含 了 相 应 的 状 态 码 对 各 状 态 码 的 正 确 响 应 列 于 Table 69 当 TWI 接 口 处 于 主 机 模 式 ( 状 态 xb) 并 发 生 仲 裁 失 败 时 CPU 将 进 入 从 机 发 送 模 式 如 果 在 传 输 过 程 中 TWEA 复 位,TWI 接 口 发 送 完 数 据 之 后 进 入 状 态 xc 或 xc8 接 口 也 切 换 到 未 寻 址 从 机 模 式, 忽 略 任 何 后 续 总 线 传 输 从 而 主 机 接 收 到 的 数 据 全 为 如 果 主 机 需 要 附 加 数 据 位 ( 通 过 发 送 ACK), 即 使 从 机 已 经 传 送 结 束, 也 进 入 状 态 xc8 TWEA 复 位 时 TWI 接 口 不 再 响 应 自 己 的 从 机 地 址, 但 是 会 继 续 监 视 总 线 一 旦 TWEA 置 位 就 可 以 恢 复 地 址 识 别 和 响 应 也 就 是 说, 可 以 利 用 TWEA 暂 时 将 TWI 接 口 从 总 线 中 隔 离 出 来 在 除 空 闲 模 式 外 的 其 它 休 眠 模 式 时, TWI 接 口 的 时 钟 被 关 闭 若 使 能 了 从 机 接 收 模 式, 接 口 将 利 用 总 线 时 钟 继 续 响 应 广 播 地 址 / 从 机 地 址 地 址 匹 配 将 唤 醒 CPU 在 唤 醒 期 间, TWI 接 口 将 保 持 SCL 为 低 电 平, 直 至 TWCINT 标 志 清 零 当 AVR 时 钟 恢 复 正 常 运 行 后 可 以 发 送 更 多 的 数 据 显 然 如 果 AVR 设 置 为 长 启 动 时 间, 时 钟 线 SCL 可 能 会 长 时 间 保 持 低, 阻 塞 其 它 数 据 的 传 送 当 MCU 从 这 些 休 眠 模 式 唤 醒 时, 和 正 常 工 作 模 式 不 同 的 是, 数 据 寄 存 器 TWDR 的 数 据 并 不 反 映 总 线 上 出 现 的 最 后 一 个 字 节 75

176 Table 69. 从 机 发 送 模 式 的 状 态 码 应 用 软 件 的 响 应 状 态 码 (TWSR) 预 分 频 位 为 " 2 线 串 行 总 线 和 2 线 串 行 硬 件 的 状 态 读 / 写 TWDR STA 对 TWCR 的 操 作 STO TWIN T TWE A 2 线 串 行 硬 件 下 一 步 应 采 取 的 动 作 xa8 自 己 的 SLA+R 已 经 被 接 收 ACK 已 返 回 加 载 一 字 节 的 数 据 或 加 载 一 字 节 的 数 据 X X 发 送 一 字 节 的 数 据, 接 收 NOT ACK 发 送 数 据, 接 收 ACK xb SLA+R/W 作 为 主 机 的 仲 裁 失 败 ; 自 己 的 SLA+R 已 经 被 接 收 ACK 已 返 回 加 载 一 字 节 的 数 据 或 加 载 一 字 节 的 数 据 X X 发 送 一 字 节 的 数 据, 接 收 NOT ACK 发 送 数 据, 接 收 ACK xb8 TWDR 里 数 据 已 经 发 送 接 收 到 ACK 加 载 一 字 节 的 数 据 或 加 载 一 字 节 的 数 据 X X 发 送 一 字 节 的 数 据, 接 收 NOT ACK 发 送 数 据, 接 收 ACK xc TWDR 里 数 据 已 经 发 送 接 收 到 NOT ACK 不 操 作 TWDR 或 不 操 作 TWDR 或 切 换 到 未 寻 址 从 机 模 式 ; 不 再 识 别 自 己 的 SLA 或 GCA 切 换 到 未 寻 址 从 机 模 式 ; 能 够 识 别 自 己 的 SLA ; 若 TWGCE =, GCA 也 可 以 识 别 不 操 作 TWDR 或 切 换 到 未 寻 址 从 机 模 式 ; 不 再 识 别 自 己 的 SLA 或 GCA ; 总 线 空 闲 时 发 送 START 不 操 作 TWDR 切 换 到 未 寻 址 从 机 模 式 ; 能 够 识 别 自 己 的 SLA ; 若 TWGCE =, GCA 也 可 以 识 别 ; 总 线 空 闲 时 发 送 START xc8 TWDR 的 一 字 节 数 据 已 经 发 送 (TWAE = ); 接 收 到 ACK 不 操 作 TWDR 或 不 操 作 TWDR 或 切 换 到 未 寻 址 从 机 模 式 ; 不 再 识 别 自 己 的 SLA 或 GCA 切 换 到 未 寻 址 从 机 模 式 ; 能 够 识 别 自 己 的 SLA ; 若 TWGCE =, GCA 也 可 以 识 别 不 操 作 TWDR 或 切 换 到 未 寻 址 从 机 模 式 ; 不 再 识 别 自 己 的 SLA 或 GCA ; 总 线 空 闲 时 发 送 START 不 操 作 TWDR 切 换 到 未 寻 址 从 机 模 式 ; 能 够 识 别 自 己 的 SLA ; 若 TWGCE =, GCA 也 可 以 识 别 ; 总 线 空 闲 时 发 送 START 76 ATmega8(L)

177 ATmega8(L) Figure 85. 从 机 发 送 模 式 的 格 式 和 状 态 Reception of the own slave address and one or more data bytes S SLA R A DATA A DATA A P or S $A8 $B8 $C Arbitration lost as master and addressed as slave A $B Last data byte transmitted. Switched to not addressed slave (TWEA = '') A All 's P or S $C8 From master to slave DATA A Any number of data bytes and their associated acknowledge bits From slave to master n This number (contained in TWSR) corresponds to a defined state of the Two-Wire Serial Bus. The prescaler bits are zero or masked to zero 其 他 状 态 有 两 个 状 态 码 没 有 相 应 的 TWI 状 态 定 义, 见 Table 7 Table 7. 其 它 状 态 码 状 态 xf8 表 明 当 前 没 有 相 关 信 息, 因 为 中 断 标 志 TWINT 为 " 这 种 状 态 可 能 发 生 在 自 己 的 TWI 接 口 没 有 参 与 串 行 传 输 的 时 候 状 态 x 表 示 在 串 行 传 输 过 程 中 发 生 了 总 线 错 误 当 START 或 STOP 出 现 在 错 误 的 位 置 时 总 线 错 误 就 会 发 生 比 如 说 在 地 址 和 数 据 地 址 和 ACK 之 间 出 现 了 START 或 STOP 总 线 错 误 将 导 致 TWINT 置 位 为 了 从 错 误 中 恢 复 出 来, 必 须 置 位 标 志 TWSTO, 并 通 过 写 " 以 清 零 TWINT 这 将 导 致 TWI 接 口 进 入 未 寻 址 从 机 模 式 标 志 TWSTO 被 清 零 (TWCR 的 其 他 位 不 受 影 响 ), 以 及 SDA 和 SCL 被 释 放, 但 是 不 会 产 生 STOP 应 用 软 件 的 响 应 状 态 码 (TWSR) 预 分 频 位 为 2 线 串 行 总 线 和 2 线 串 行 硬 件 的 状 态 读 / 写 TWDR STA 对 TWCR 的 操 作 STO TWIN T TWE A 2 线 串 行 硬 件 下 一 步 应 采 取 的 动 作 xf8 没 有 相 关 的 状 态 信 息 ; TWINT = x 由 于 非 法 的 START 或 STOP 引 起 的 总 线 错 误 不 操 作 TWDR No TWCR action 等 待 或 进 行 当 前 传 输 不 操 作 TWDR X 只 影 响 内 部 硬 件 ; 不 会 发 送 STOP 到 总 线 上 总 线 将 释 放 并 清 零 TWSTO 77

178 将 几 个 TWI 模 式 组 合 到 一 起 在 某 些 情 况 下, 为 完 成 期 望 的 工 作, 必 须 将 几 种 TWI 模 式 组 合 起 来 例 如 从 串 行 EEPROM 读 取 数 据 典 型 的 这 种 传 输 包 括 以 下 步 骤 :. 传 输 必 须 启 动 2. 必 须 告 诉 EEPROM 读 取 的 位 置 3. 必 须 完 成 读 操 作 4. 传 送 必 须 结 束 注 意 数 据 可 从 主 机 传 到 从 机, 反 之 也 可 首 先 主 机 必 须 告 诉 从 机 读 取 实 际 的 位 置, 因 此 需 要 使 用 MT 模 式 ; 然 后 数 据 必 须 由 从 机 读 出, 需 要 使 用 MR 模 式, 但 传 送 方 向 必 须 改 变 在 上 述 步 骤 中, 主 机 必 须 保 持 对 总 线 的 控 制, 且 以 上 各 步 骤 应 该 自 动 进 行 如 果 在 多 主 机 系 统 中 违 反 这 一 规 则, 即 在 第 二 步 与 第 三 步 之 间 其 它 主 机 改 变 EEPROM 中 的 数 据 指 针, 则 主 机 读 取 的 数 据 位 置 是 错 误 的 传 送 方 向 改 变 是 通 过 在 发 送 地 址 字 节 与 接 收 数 据 之 间 发 送 REPEATED START 信 号 来 实 现 的 在 发 送 REPEATED START 信 号 后, 主 机 继 续 保 持 总 线 的 控 制 权 下 图 给 出 传 送 的 流 程 图 Figure 86. 几 种 TWI 模 式 联 合 访 问 串 行 EEPROM Master Transmitter Master Receiver S SLA+W A ADDRESS A Rs SLA+R A DATA A P S = START Rs = REPEATED START P = STOP Transmitted from master to slave Transmitted from slave to master 多 主 机 系 统 和 仲 裁 如 果 有 多 个 主 机 连 接 在 同 一 总 线 上, 它 们 中 的 一 个 或 多 个 也 许 会 同 时 开 始 一 个 数 据 传 送 TWI 协 议 确 保 在 这 种 情 况 下, 通 过 一 个 仲 裁 过 程, 允 许 其 中 的 一 个 主 机 进 行 传 送 而 不 会 丢 失 数 据 总 线 仲 裁 的 例 子 如 下 所 述, 该 例 中 有 两 个 主 机 试 图 向 从 接 收 器 发 送 数 据 Figure 87. 仲 裁 示 例 V CC Device MASTER TRANSMITTER Device 2 MASTER TRANSMITTER Device 3 SLAVE RECEIVER... Device n R R2 SDA SCL 有 几 种 不 同 的 情 况 会 产 生 总 线 仲 裁 过 程 : 两 个 或 更 多 的 主 机 同 时 与 一 个 从 机 进 行 通 信 在 这 种 情 况 下, 无 论 主 机 或 从 机 都 不 知 道 有 总 线 的 竞 争 两 个 或 更 多 的 主 机 同 时 对 同 一 个 从 机 进 行 不 同 的 数 据 或 方 向 的 访 问 在 这 种 情 况 下, 会 在 READ/WRITE 位 或 数 据 间 发 生 仲 裁 主 机 试 图 在 SDA 线 上 输 出 一 个 高 电 平 时, 如 果 其 他 主 机 已 经 输 出 ", 则 该 主 机 在 总 线 仲 裁 中 失 败 失 败 的 主 机 将 转 换 成 未 被 寻 址 的 从 机 模 式, 或 等 待 总 线 空 闲 后 发 送 一 个 新 的 START 信 号, 这 由 应 用 程 序 决 定 78 ATmega8(L)

179 ATmega8(L) 两 个 或 更 多 的 主 机 访 问 不 同 的 从 机 在 这 种 情 况 下, 总 线 仲 裁 在 SLA 发 生 主 机 试 图 在 SDA 线 上 输 出 一 个 高 电 平 时, 如 有 其 它 主 机 已 经 输 出 ", 则 该 主 机 将 在 总 线 仲 裁 中 失 败 在 SLA 总 线 仲 裁 失 败 的 主 机 将 切 换 到 从 机 模 式, 并 检 查 自 己 是 否 被 获 得 总 线 控 制 权 的 主 机 寻 址 如 果 被 寻 址, 它 将 进 入 SR 或 ST 模 式, 这 取 决 于 SLA 的 READ/WRITE 位 的 值 如 果 它 未 被 寻 址, 将 转 换 到 未 被 寻 址 的 从 机 模 式 或 等 待 总 线 空 闲, 发 送 一 个 新 的 START 信 号, 这 由 应 用 程 序 决 定 Figure 88 描 述 了 总 线 仲 裁 的 过 程, 图 中 的 数 字 为 TWI 的 状 态 值 Figure 88. 总 线 仲 裁 过 程 START SLA Data STOP Arbitration lost in SLA Arbitration lost in Data Own Address / General Call received No 38 TWI bus will be released and not addressed slave mode will be entered A START condition will be transmitted when the bus becomes free Yes Direction Write 68/78 Data byte will be received and NOT ACK will be returned Data byte will be received and ACK will be returned Read B Last data byte will be transmitted and NOT ACK should be received Data byte will be transmitted and ACK should be received 79

180 模 拟 比 较 器 模 拟 比 较 器 对 正 极 AIN 的 值 与 负 极 AIN 的 值 进 行 比 较 当 AIN 上 的 电 压 比 负 极 AIN 上 的 电 压 要 高 时, 模 拟 比 较 器 的 输 出 ACO 即 置 位 比 较 器 的 输 出 可 用 来 触 发 定 时 器 / 计 数 器 的 输 入 捕 捉 功 能 此 外, 比 较 器 还 可 触 发 自 己 专 有 的 独 立 的 中 断 用 户 可 以 选 择 比 较 器 是 以 上 升 沿 下 降 沿 还 是 交 替 变 化 的 边 沿 来 触 发 中 断 Figure 89 为 比 较 器 及 其 外 围 逻 辑 电 路 的 框 图 Figure 89. 模 拟 比 较 器 框 图 (2) BANDGAP REFERENCE ACBG ACME ADEN ADC MULTIPLEXER OUTPUT() Notes:. 见 P 82Table 模 拟 比 较 器 的 管 脚 分 布 见 P 2 引 脚 配 置 及 P 59Table 28 特 殊 功 能 IO 寄 存 器 - SFIOR Bit ACME PUD PSR2 PSR SFIOR 读 / 写 R R R R R/W R/W R/W R/W 初 始 值 Bit 3 ACME: 模 拟 比 较 器 多 路 复 用 器 使 能 当 此 位 为 逻 辑 ", 且 ADC 处 于 关 闭 状 态 (ADCSRA 寄 存 器 的 ADEN 为 " ) 时,ADC 多 路 复 用 器 为 模 拟 比 较 器 选 择 负 极 输 入 当 此 位 为 " 时, AIN 连 接 到 比 较 器 的 负 极 输 入 端 更 详 细 描 述 的 请 参 见 P 8 模 拟 比 较 器 多 工 输 入 8 ATmega8(L)

181 ATmega8(L) 模 拟 比 较 器 控 制 和 状 态 寄 存 器 - ACSR Bit ACD ACBG ACO ACI ACIE ACIC ACIS ACIS ACSR 读 / 写 R/W R/W R R/W R/W R/W R/W R/W 初 始 值 N/A Bit 7 ACD: 模 拟 比 较 器 禁 用 ACD 置 位 时, 模 拟 比 较 器 的 电 源 被 切 断 可 以 在 任 何 时 候 设 置 此 位 来 关 掉 模 拟 比 较 器 这 可 以 减 少 器 件 工 作 模 式 及 空 闲 模 式 下 的 功 耗 改 变 ACD 位 时, 必 须 清 零 ACSR 寄 存 器 的 ACIE 位 来 禁 止 模 拟 比 较 器 中 断 否 则 ACD 改 变 时 可 能 会 产 生 中 断 Bit 6 ACBG: 选 择 模 拟 比 较 器 的 能 隙 基 准 源 ACBG 置 位 后, 模 拟 比 较 器 的 正 极 输 入 由 能 隙 基 准 源 所 取 代 否 则, AIN 连 接 到 模 拟 比 较 器 的 正 极 输 入 见 P 39 片 内 基 准 电 压 Bit 5 ACO: 模 拟 比 较 器 输 出 模 拟 比 较 器 的 输 出 经 过 同 步 后 直 接 连 到 ACO 同 步 机 制 引 入 了 -2 个 时 钟 周 期 的 延 时 Bit 4 ACI: 模 拟 比 较 器 中 断 标 志 当 比 较 器 的 输 出 事 件 触 发 了 由 ACIS 及 ACIS 定 义 的 中 断 模 式 时,ACI 置 位 如 果 ACIE 和 SREG 寄 存 器 的 全 局 中 断 标 志 I 也 置 位, 那 么 模 拟 比 较 器 中 断 服 务 程 序 即 得 以 执 行, 同 时 ACI 被 硬 件 清 零 ACI 也 可 以 通 过 写 " 来 清 除 Bit 3 ACIE: 模 拟 比 较 器 中 断 使 能 当 ACIE 位 被 置 " 且 状 态 寄 存 器 中 的 全 局 中 断 标 志 I 也 被 置 位 时, 模 拟 比 较 器 中 断 被 激 活 否 则 中 断 被 禁 止 Bit 2 ACIC: 模 拟 比 较 器 输 入 捕 捉 使 能 ACIC 置 位 后 允 许 通 过 模 拟 比 较 器 来 触 发 T/C 的 输 入 捕 捉 功 能 此 时 比 较 器 的 输 出 被 直 接 连 接 到 输 入 捕 捉 的 前 端 逻 辑, 从 而 使 得 比 较 器 可 以 利 用 T/C 输 入 捕 捉 中 断 逻 辑 的 噪 声 抑 制 器 及 触 发 沿 选 择 功 能 ACIC 为 " 时 模 拟 比 较 器 及 输 入 捕 捉 功 能 之 间 没 有 任 何 联 系 为 了 使 比 较 器 可 以 触 发 T/C 的 输 入 捕 捉 中 断, 定 时 器 中 断 屏 蔽 寄 存 器 TIMSK 的 TICIE 必 须 置 位 Bits, ACIS, ACIS: 模 拟 比 较 器 中 断 模 式 选 择 这 两 位 确 定 触 发 模 拟 比 较 器 中 断 的 事 件 Table 7 给 出 了 不 同 的 设 置 Table 7. ACIS/ACIS 设 置 ACIS ACIS 中 断 模 式 比 较 器 输 出 变 化 即 可 触 发 中 断 保 留 比 较 器 输 出 的 下 降 沿 产 生 中 断 比 较 器 输 出 的 上 升 沿 产 生 中 断 需 要 改 变 ACIS/ACIS 时, 必 须 清 零 ACSR 寄 存 器 的 中 断 使 能 位 来 禁 止 模 拟 比 较 器 中 断 否 则 有 可 能 在 改 变 这 两 位 时 产 生 中 断 模 拟 比 较 器 多 工 输 入 可 以 选 择 ADC7.. 之 中 的 任 意 一 个 来 代 替 模 拟 比 较 器 的 负 极 输 入 端 ADC 复 用 器 可 用 来 完 成 这 个 功 能 当 然, 为 了 使 用 这 个 功 能 首 先 必 须 关 掉 ADC 如 果 模 拟 比 较 器 复 用 器 使 能 位 (SFIOR 中 的 ACME) 被 置 位, 且 ADC 也 已 经 关 掉 (ADCSRA 寄 存 器 的 ADEN 为 ), 8

182 则 可 以 通 过 ADMUX 寄 存 器 的 MUX2.. 来 选 择 替 代 模 拟 比 较 器 负 极 输 入 的 管 脚, 详 见 Table 72 如 果 ACME 清 零 或 ADEN 置 位, 则 模 拟 比 较 器 的 负 极 输 入 为 AIN () Table 72. 模 拟 比 较 器 复 用 输 入 ACME ADEN MUX2.. 模 拟 比 较 器 负 极 输 入 x xxx AIN xxx AIN ADC ADC ADC2 ADC3 ADC4 ADC5 ADC6 ADC7 Note:. 只 有 在 TQFP 与 MLF 封 装 下 ADC7..6 可 用 82 ATmega8(L)

183 ATmega8(L) 模 数 转 换 器 特 点 位 精 度.5 LSB 的 非 线 性 度 ± 2 LSB 的 绝 对 精 度 3-26 µs 的 转 换 时 间 最 高 分 辨 率 时 采 样 率 高 达 5 ksps 6 路 复 用 的 单 端 输 入 通 道 2 路 附 加 复 用 的 单 端 输 入 通 道 (TQFP 与 MLF 封 装 ) 可 选 的 左 对 齐 ADC 读 数 - V CC 的 ADC 输 入 电 压 范 围 可 选 的 2.56V ADC 参 考 电 压 连 续 转 换 或 单 次 转 换 模 式 ADC 转 换 结 束 中 断 基 于 睡 眠 模 式 的 噪 声 抑 制 器.ATmega8 有 一 个 位 的 逐 次 逼 近 型 ADC ADC 与 一 个 8 通 道 的 模 拟 多 路 复 用 器 连 接, 能 对 来 自 端 口 C 的 8 路 单 端 输 入 电 压 进 行 采 样 单 端 电 压 输 入 以 V (GND) 为 基 准 ADC 包 括 一 个 采 样 保 持 电 路, 以 确 保 在 转 换 过 程 中 输 入 到 ADC 的 电 压 保 持 恒 定 ADC 的 框 图 如 Figure 9 所 示 ADC 由 AVCC 引 脚 单 独 提 供 电 源 AVCC 与 V CC 之 间 的 偏 差 不 能 超 过 ±.3V 请 参 考 P 88 ADC 噪 声 抑 制 器 来 了 解 如 何 连 接 这 个 引 脚 标 称 值 为 2.56V 的 基 准 电 压, 以 及 AVCC, 都 位 于 器 件 之 内 基 准 电 压 可 以 通 过 在 AREF 引 脚 上 加 一 个 电 容 进 行 解 耦, 以 更 好 地 抑 制 噪 声 83

184 Figure 9. 模 数 转 换 器 方 框 图 ADC CONVERSION COMPLETE IRQ 8-BIT DATA BUS REFS ADC MULTIPLEXER SELECT (ADMUX) REFS ADLAR MUX3 MUX2 MUX MUX ADEN ADFR ADIF ADIF ADIE ADC CTRL. & STATUS REGISTER (ADCSRA) ADSC ADPS2 ADPS ADPS 5 ADC DATA REGISTER (ADCH/ADCL) ADC[9:] MUX DECODER PRESCALER AVCC AREF INTERNAL 2.56V REFERENCE CHANNEL SELECTION -BIT DAC CONVERSION LOGIC SAMPLE & HOLD COMPARATOR - + GND BANDGAP REFERENCE ADC7 ADC6 ADC5 ADC4 INPUT MUX ADC MULTIPLEXER OUTPUT ADC3 ADC2 ADC ADC ADC 通 过 逐 次 逼 近 的 方 法 将 输 入 的 模 拟 电 压 转 换 成 一 个 位 的 数 字 量 最 小 值 代 表 GND, 最 大 值 代 表 AREF 引 脚 上 的 电 压 再 减 去 LSB 通 过 写 ADMUX 寄 存 器 的 REFSn 位 可 以 把 AVCC 或 内 部 2.56V 的 参 考 电 压 连 接 到 AREF 引 脚 在 AREF 上 外 加 电 容 可 以 对 片 内 参 考 电 压 进 行 解 耦 以 提 高 噪 声 抑 制 性 能 模 拟 输 入 通 道 与 差 分 增 益 可 以 通 过 写 ADMUX 寄 存 器 的 MUX 位 来 选 择 任 何 ADC 输 入 引 脚, 像 GND 及 固 定 能 隙 参 考 电 压, 都 可 以 作 为 ADC 的 单 端 输 入 通 过 设 置 ADCSRA 寄 存 器 的 ADEN 即 可 启 动 ADC 只 有 当 ADEN 置 位 时 参 考 电 压 及 输 入 通 道 选 择 才 生 效 ADEN 清 零 时 ADC 并 不 耗 电, 因 此 建 议 在 进 入 节 能 睡 眠 模 式 之 前 关 闭 ADC ADC 转 换 结 果 为 位, 存 放 于 ADC 数 据 寄 存 器 ADCH 及 ADCL 中 默 认 情 况 下 转 换 结 果 为 右 对 齐, 但 可 通 过 设 置 ADMUX 寄 存 器 的 ADLAR 变 为 左 对 齐 如 果 要 求 转 换 结 果 左 对 齐, 且 最 高 只 需 8 位 的 转 换 精 度, 那 么 只 要 读 取 ADCH 就 足 够 了 否 则 要 先 读 ADCL, 再 读 ADCH, 以 保 证 数 据 寄 存 器 中 的 内 容 是 同 一 次 转 换 的 结 果 一 旦 读 出 ADCL, ADC 对 数 据 寄 存 器 的 寻 址 就 被 阻 止 了 也 就 是 说, 读 取 ADCL 之 后, 即 使 84 ATmega8(L)

185 ATmega8(L) 在 读 ADCH 之 前 又 有 一 次 ADC 转 换 结 束, 数 据 寄 存 器 的 数 据 也 不 会 更 新, 从 而 保 证 了 转 换 结 果 不 丢 失 ADCH 被 读 出 后, ADC 即 可 再 次 访 问 ADCH 及 ADCL 寄 存 器 ADC 转 换 结 束 可 以 触 发 中 断 即 使 由 于 转 换 发 生 在 读 取 ADCH 与 ADCL 之 间 而 造 成 ADC 无 法 访 问 数 据 寄 存 器, 并 因 此 丢 失 了 转 换 数 据, 中 断 仍 将 触 发 启 动 一 次 转 换 预 分 频 及 ADC 转 换 时 序 向 ADC 启 动 转 换 位 ADSC 位 写 " 可 以 启 动 单 次 转 换 在 转 换 过 程 中 此 位 保 持 为 高, 直 到 转 换 结 束, 然 后 被 硬 件 清 零 如 果 在 转 换 过 程 中 选 择 了 另 一 个 通 道, 那 么 ADC 会 在 改 变 通 道 前 完 成 这 一 次 转 换 使 用 ADC 中 断 标 志 作 为 触 发 源, 可 以 在 正 在 进 行 的 转 换 结 束 后 即 开 始 下 一 次 ADC 转 换 之 后 ADC 便 工 作 在 连 续 转 换 模 式, 持 续 地 进 行 采 样 并 对 ADC 数 据 寄 存 器 进 行 更 新 第 一 次 转 换 通 过 向 ADCSRA 寄 存 器 的 ADSC 写 来 启 动 在 此 模 式 下, 后 续 的 ADC 转 换 不 依 赖 于 ADC 中 断 标 志 ADIF 是 否 置 位 Figure 9. ADC 预 分 频 器 ADEN START CK Reset 7-BIT ADC PRESCALER CK/2 CK/4 CK/8 CK/6 CK/32 CK/64 CK/28 ADPS ADPS ADPS2 ADC CLOCK SOURCE 在 默 认 条 件 下, 逐 次 逼 近 电 路 需 要 一 个 从 5 khz 到 2 khz 的 输 入 时 钟 以 获 得 最 大 精 度 如 果 所 需 的 转 换 精 度 低 于 比 特, 那 么 输 入 时 钟 频 率 可 以 高 于 2 khz, 以 达 到 更 高 的 采 样 率 ADC 模 块 包 括 一 个 预 分 频 器, 它 可 以 由 任 何 超 过 khz 的 CPU 时 钟 来 产 生 可 接 受 的 ADC 时 钟 预 分 频 器 通 过 ADCSRA 寄 存 器 的 ADPS 进 行 设 置 置 位 ADCSRA 寄 存 器 的 ADEN 将 使 能 ADC, 预 分 频 器 开 始 计 数 只 要 ADEN 为, 预 分 频 器 就 持 续 计 数, 直 到 ADEN 清 零 ADCSRA 寄 存 器 的 ADSC 置 位 后, 单 端 转 换 在 下 一 个 ADC 时 钟 周 期 的 上 升 沿 开 始 启 动 正 常 转 换 需 要 3 个 ADC 时 钟 周 期 为 了 初 始 化 模 拟 电 路, ADC 使 能 (ADCSRA 寄 存 器 的 ADEN 置 位 ) 后 的 第 一 次 转 换 需 要 25 个 ADC 时 钟 周 期 在 普 通 的 ADC 转 换 过 程 中, 采 样 保 持 在 转 换 启 动 之 后 的.5 个 ADC 时 钟 开 始 ; 而 第 一 次 ADC 转 换 的 采 样 保 持 则 发 生 在 转 换 启 动 之 后 的 3.5 个 ADC 时 钟 转 换 结 束 后,ADC 结 果 被 送 入 ADC 数 据 寄 存 器, 且 ADIF 标 志 置 位 ADSC 同 时 清 零 ( 单 次 转 换 模 式 ) 之 后 软 件 可 以 再 次 置 位 ADSC 标 志, 从 而 在 ADC 的 第 一 个 上 升 沿 启 动 一 次 新 的 转 换 在 连 续 转 换 模 式 下, 当 ADSC 为 高 时, 只 要 转 换 一 结 束, 下 一 次 转 换 马 上 开 始 转 换 时 间 请 见 Table 73 85

186 Figure 92. ADC 时 序 图, 第 一 次 转 换 ( 单 次 转 换 模 式 ) First Conversion Next Conversion Cycle Number ADC Clock ADEN ADSC ADIF ADCH MSB of Result ADCL LSB of Result MUX and REFS Update Sample & Hold Conversion Complete MUX and REFS Update Figure 93. ADC 时 序 图, 单 次 转 换 One Conversion Next Conversion Cycle Number ADC Clock ADSC ADIF ADCH MSB of Result ADCL LSB of Result MUX and REFS Update Sample & Hold Conversion Complete MUX and REFS Update Figure 94. ADC 时 序 图, 连 续 转 换 One Conversion Next Conversion Cycle Number ADC Clock ADSC ADIF ADCH MSB of Result ADCL LSB of Result Conversion Complete MUX and REFS Update Sample &Hold 86 ATmega8(L)

187 ATmega8(L) Table 73. ADC 转 换 时 间 条 件 采 样 & 保 持 ( 启 动 转 换 后 的 时 钟 周 期 数 ) 转 换 时 间 ( 周 期 ) 第 一 次 转 换 正 常 转 换, 单 端.5 3 改 变 通 道 或 基 准 源 ADMUX 寄 存 器 中 的 MUXn 及 REFS: 通 过 临 时 寄 存 器 实 现 了 单 缓 冲 CPU 可 对 此 临 时 寄 存 器 进 行 随 机 访 问 这 保 证 了 在 转 换 过 程 中 通 道 和 基 准 源 的 切 换 发 生 于 安 全 的 时 刻 在 转 换 启 动 之 前 通 道 及 基 准 源 的 选 择 可 随 时 进 行 一 旦 转 换 开 始 就 不 允 许 再 选 择 通 道 和 基 准 源 了, 从 而 保 证 ADC 有 充 足 的 采 样 时 间 在 转 换 完 成 (ADCSRA 寄 存 器 的 ADIF 置 位 ) 之 前 的 最 后 一 个 时 钟 周 期, 通 道 和 基 准 源 的 选 择 又 可 以 重 新 开 始 转 换 的 开 始 时 刻 为 ADSC 置 位 后 的 下 一 个 时 钟 的 上 升 沿 因 此, 建 议 用 户 在 置 位 ADSC 之 后 的 一 个 ADC 时 钟 周 期 里, 不 要 操 作 ADMUX 以 选 择 新 的 通 道 及 基 准 源 若 ADFR 及 ADEN 都 置 位, 则 中 断 事 件 可 以 在 任 意 时 刻 发 生 如 果 在 此 期 间 改 变 ADMUX 寄 存 器 的 内 容, 那 么 用 户 就 无 法 判 别 下 一 次 转 换 是 基 于 旧 的 设 置 还 是 最 新 的 设 置 在 以 下 时 刻 可 以 安 全 地 对 ADMUX 进 行 更 新 :. ADFR 或 ADEN 为 2. 在 转 换 过 程 中, 但 是 在 触 发 事 件 发 生 后 至 少 一 个 ADC 时 钟 周 期 3. 转 换 结 束 之 后, 但 是 在 作 为 触 发 源 的 中 断 标 志 清 零 之 前 如 果 在 上 面 提 到 的 任 一 种 情 况 下 更 新 ADMUX, 那 么 新 设 置 将 在 下 一 次 ADC 时 生 效 87

188 ADC 输 入 通 道 选 择 模 拟 通 道 时 请 注 意 以 下 指 导 方 针 : 工 作 于 单 次 转 换 模 式 时, 总 是 在 启 动 转 换 之 前 选 定 通 道 在 ADSC 置 位 后 的 一 个 ADC 时 钟 周 期 就 可 以 选 择 新 的 模 拟 输 入 通 道 了 但 是 最 简 单 的 办 法 是 等 待 转 换 结 束 后 再 改 变 通 道 在 连 续 转 换 模 式 下, 总 是 在 第 一 次 转 换 开 始 之 前 选 定 通 道 在 ADSC 置 位 后 的 一 个 ADC 时 钟 周 期 就 可 以 选 择 新 的 模 拟 输 入 通 道 了 但 是 最 简 单 的 办 法 是 等 待 转 换 结 束 后 再 改 变 通 道 然 而, 此 时 新 一 次 转 换 已 经 自 动 开 始 了, 下 一 次 的 转 换 结 果 反 映 的 是 以 前 选 定 的 模 拟 输 入 通 道 以 后 的 转 换 才 是 针 对 新 通 道 的 ADC 基 准 电 压 源 ADC 噪 声 抑 制 器 ADC 的 参 考 电 压 源 (V REF ) 反 映 了 ADC 的 转 换 范 围 若 单 端 通 道 电 平 超 过 了 V REF, 其 结 果 将 接 近 x3ff V REF 可 以 是 AVCC 内 部 2.56V 基 准 或 外 接 于 AREF 引 脚 的 电 压 AVCC 通 过 一 个 无 源 开 关 与 ADC 相 连 片 内 的 2.56V 参 考 电 压 由 能 隙 基 准 源 (V BG ) 通 过 内 部 放 大 器 产 生 无 论 是 哪 种 情 况, AREF 都 直 接 与 ADC 相 连, 通 过 在 AREF 与 地 之 间 外 加 电 容 可 以 提 高 参 考 电 压 的 抗 噪 性 V REF 可 通 过 高 输 入 内 阻 的 伏 特 表 在 AREF 引 脚 测 得 由 于 V REF 的 阻 抗 很 高, 因 此 只 能 连 接 容 性 负 载 如 果 将 一 个 固 定 电 源 接 到 AREF 引 脚, 那 么 用 户 就 不 能 选 择 其 他 的 基 准 源 了, 因 为 这 会 导 致 片 内 基 准 源 与 外 部 参 考 源 的 短 路 如 果 AREF 引 脚 没 有 联 接 任 何 外 部 参 考 源, 用 户 可 以 选 择 AVCC 或 2.56V 作 为 基 准 源 参 考 源 改 变 后 的 第 一 次 ADC 转 换 结 果 可 能 不 准 确, 建 议 用 户 不 要 使 用 这 一 次 的 转 换 结 果 ADC 的 噪 声 抑 制 器 使 其 可 以 在 睡 眠 模 式 下 进 行 转 换, 从 而 降 低 由 于 CPU 及 外 围 I/O 设 备 噪 声 引 入 的 影 响 噪 声 抑 制 器 可 在 ADC 降 噪 模 式 及 空 闲 模 式 下 使 用 为 了 使 用 这 一 特 性, 应 采 用 如 下 步 骤 :. 确 定 ADC 已 经 使 能, 且 没 有 处 于 转 换 状 态 工 作 模 式 应 该 为 单 次 转 换, 并 且 ADC 转 换 结 束 中 断 使 能 2. 进 入 ADC 降 噪 模 式 ( 或 空 闲 模 式 ) 一 旦 CPU 被 挂 起, ADC 便 开 始 转 换 3. 如 果 在 ADC 转 换 结 束 之 前 没 有 其 他 中 断 产 生, 那 么 ADC 中 断 将 唤 醒 CPU 并 执 行 ADC 转 换 结 束 中 断 服 务 程 序 如 果 在 ADC 转 换 结 束 之 前 有 其 他 的 中 断 源 唤 醒 了 CPU, 对 应 的 中 断 服 务 程 序 得 到 执 行 ADC 转 换 结 束 后 产 生 ADC 转 换 结 束 中 断 请 求 CPU 将 工 作 到 新 的 休 眠 指 令 得 到 执 行 进 入 除 空 闲 模 式 及 ADC 降 噪 模 式 之 外 的 其 他 休 眠 模 式 时, ADC 不 会 自 动 关 闭 在 进 入 这 些 休 眠 模 式 时, 建 议 将 ADEN 清 零 以 降 低 功 耗 88 ATmega8(L)

189 ATmega8(L) 模 拟 输 入 电 路 单 端 通 道 的 模 拟 输 入 电 路 见 Figure 95. 不 论 是 否 用 作 ADC 的 输 入 通 道, 输 入 到 ADCn 的 模 拟 信 号 都 受 到 引 脚 电 容 及 输 入 泄 露 的 影 响 用 作 ADC 的 输 入 通 道 时, 模 拟 信 号 源 必 须 通 过 一 个 串 联 电 阻 ( 输 入 通 道 的 组 合 电 阻 ) 驱 动 采 样 保 持 (S/H) 电 容 ADC 针 对 那 些 输 出 阻 抗 接 近 于 kω 或 更 小 的 模 拟 信 号 做 了 优 化 对 于 这 样 的 信 号 采 样 时 间 可 以 忽 略 不 计 若 信 号 具 有 更 高 的 阻 抗, 那 么 采 样 时 间 就 取 决 于 对 S/H 电 容 充 电 的 时 间 这 个 时 间 可 能 变 化 很 大 建 议 用 户 使 用 输 出 阻 抗 低 且 变 化 缓 慢 的 模 拟 信 号, 因 为 这 可 以 减 少 对 S/H 电 容 的 电 荷 传 输 频 率 高 于 奈 奎 斯 特 频 率 (f ADC /2) 的 信 号 源 不 能 用 于 任 何 一 个 通 道, 这 样 可 以 避 免 不 可 预 知 的 信 号 卷 积 造 成 的 失 真 在 把 信 号 输 入 到 ADC 之 前 最 好 使 用 一 个 低 通 滤 波 器 来 滤 掉 高 频 信 号 Figure 95. 模 拟 输 入 电 路 I IH ADCn.. kω C S/H = 4 pf I IL V CC /2 模 拟 噪 声 抑 制 技 术 设 备 内 部 及 外 部 的 数 字 电 路 都 会 产 生 电 磁 干 扰 (EMI), 从 而 影 响 模 拟 测 量 的 精 度 如 果 转 换 精 度 要 求 较 高, 那 么 可 以 通 过 以 下 方 法 来 减 少 噪 声 :. 模 拟 通 路 越 短 越 好 保 证 模 拟 信 号 线 位 于 模 拟 地 之 上, 并 使 它 们 与 高 速 切 换 的 数 字 信 号 线 分 开 2. 如 Figure 96 所 示, AVCC 应 通 过 一 个 LC 网 络 与 数 字 电 压 源 V CC 连 接 3. 使 用 ADC 噪 声 抑 制 器 来 降 低 来 自 CPU 的 干 扰 噪 声 4. 如 果 有 ADC[3..] 端 口 被 用 作 数 字 输 出, 那 么 必 须 保 证 在 转 换 进 行 过 程 中 它 们 不 会 有 电 平 的 切 换 而 使 用 两 线 接 口 (ADC4 与 ADC5) 将 影 响 ADC4 与 ADC5 的 转 换, 但 不 影 响 其 他 ADC 通 道 89

190 Figure 96. ADC 电 源 连 接 图 GND VCC PC5 (ADC5/SCL) PC4 (ADC4/SDA) PC3 (ADC3) PC2 (ADC2) PC (ADC) PC (ADC) ADC7 GND AREF ADC6 AVCC nf µh Analog Ground Plane PB5 ADC 精 度 定 义 一 个 n 位 的 单 端 ADC 将 GND 与 V REF 之 间 的 线 性 电 压 转 换 成 2 n 个 (LSBs) 不 同 的 数 字 量 最 小 的 转 换 码 为, 最 大 的 转 换 码 为 2 n - 以 下 几 个 参 数 描 述 了 与 理 想 情 况 之 间 的 偏 差 : 偏 移 : 第 一 次 转 换 (x 到 x) 与 理 想 转 换 (.5 LSB) 之 间 的 偏 差 理 想 情 况 : LSB Figure 97. 偏 移 误 差 Output Code Ideal ADC Actual ADC Offset Error V REF Input Voltage 9 ATmega8(L)

191 INL ATmega8(L) 增 益 误 差 : 调 整 偏 差 之 后, 最 后 一 次 转 换 (x3fe 到 x3ff) 与 理 想 情 况 ( 最 大 值 以 下.5 LSB) 之 间 的 偏 差 即 为 增 益 误 差 理 想 值 为 LSB Figure 98. 增 益 误 差 Output Code Gain Error Ideal ADC Actual ADC V REF Input Voltage 整 体 非 线 性 (INL): 调 整 偏 移 及 增 益 误 差 之 后, 所 有 实 际 转 换 与 理 想 转 换 之 间 的 最 大 误 差 即 为 INL 理 想 值 : LSB Figure 99. 整 体 非 线 性 (INL) Output Code Ideal ADC Actual ADC V REF Input Voltage 差 分 非 线 性 (DNL): 实 际 码 宽 ( 两 个 邻 近 转 换 之 间 的 码 间 距 ) 与 理 论 码 宽 ( LSB) 之 间 的 偏 差 理 论 值 : LSB 9

192 Figure. 差 分 非 线 性 (DNL) Output Code x3ff LSB x DNL V REF Input Voltage 量 化 误 差 : 由 于 输 入 电 压 被 量 化 成 有 限 位 的 数 码, 某 个 范 围 的 输 入 电 压 ( LSB) 被 转 换 为 相 同 的 数 码 量 化 误 差 总 是 为 ±.5 LSB 绝 对 精 度 : 所 有 实 际 转 换 ( 未 经 调 整 ) 与 理 论 转 换 之 间 的 最 大 偏 差 由 偏 移 增 益 误 差 差 分 误 差 非 线 性 及 量 化 误 差 构 成 理 想 值 为 ±.5 LSB ADC 转 换 结 果 转 换 结 束 后 (ADIF 为 高 ), 转 换 结 果 被 存 入 ADC 结 果 寄 存 器 (ADCL, ADCH) 单 次 转 换 的 结 果 如 下 : ADC = V IN V REF 式 中,V IN 为 被 选 中 引 脚 的 输 入 电 压,V REF 为 参 考 电 压 ( 参 见 P 92Table 74 与 P 93Table 75 ) x 代 表 模 拟 地 电 平, x3ff 代 表 所 选 参 考 电 压 的 数 值 减 去 LSB ADC 多 工 选 择 寄 存 器 - ADMUX Bit REFS REFS ADLAR MUX3 MUX2 MUX MUX ADMUX 读 / 写 R/W R/W R/W R R/W R/W R/W R/W 初 始 值 Bit 7:6 REFS:: 参 考 电 压 选 择 如 Table 74 所 示, 通 过 这 几 位 可 以 选 择 参 考 电 压 如 果 在 转 换 过 程 中 改 变 了 它 们 的 设 置, 只 有 等 到 当 前 转 换 结 束 (ADCSRA 寄 存 器 的 ADIF 置 位 ) 之 后 改 变 才 会 起 作 用 如 果 在 AREF 引 脚 上 施 加 了 外 部 参 考 电 压, 内 部 参 考 电 压 就 不 能 被 选 用 了 Table 74. ADC 参 考 电 压 选 择 REFS REFS 参 考 电 压 选 择 AREF, 内 部 Vref 关 闭 AVCC, AREF 引 脚 外 加 滤 波 电 容 保 留 2.56V 的 片 内 基 准 电 压 源, AREF 引 脚 外 加 滤 波 电 容 Bit 5 ADLAR: ADC 转 换 结 果 左 对 齐 92 ATmega8(L)

193 ATmega8(L) ADLAR 影 响 ADC 转 换 结 果 在 ADC 数 据 寄 存 器 中 的 存 放 形 式 ADLAR 置 位 时 转 换 结 果 为 左 对 齐, 否 则 为 右 对 齐 ADLAR 的 改 变 将 立 即 影 响 ADC 数 据 寄 存 器 的 内 容, 不 论 是 否 有 转 换 正 在 进 行 关 于 这 一 位 的 完 整 描 述 请 见 P 95 ADC 数 据 寄 存 器 - ADCL 及 ADCH Bits 3: MUX3:: 模 拟 通 道 选 择 位 通 过 这 几 位 的 设 置, 可 以 对 连 接 到 ADC 的 模 拟 输 入 进 行 选 择, 详 见 Table 75 如 果 在 转 换 过 程 中 改 变 这 几 位 的 值, 那 么 只 有 到 转 换 结 束 (ADCSRA 寄 存 器 的 ADIF 置 位 ) 后 新 的 设 置 才 有 效 Table 75. 输 入 通 道 选 择 MUX3.. 单 端 输 入 ADC ADC ADC2 ADC3 ADC4 ADC5 ADC6 ADC7.23V (V BG ) V (GND) 93

194 ADC 控 制 和 状 态 寄 存 器 A - ADCSRA Bit ADEN ADSC ADFR ADIF ADIE ADPS2 ADPS ADPS ADCSRA 读 / 写 R/W R/W R/W R/W R/W R/W R/W R/W 初 始 值 Bit 7 ADEN: ADC 使 能 ADEN 置 位 即 启 动 ADC, 否 则 ADC 功 能 关 闭 在 转 换 过 程 中 关 闭 ADC 将 立 即 终 止 正 在 进 行 的 转 换 Bit 6 ADSC: ADC 开 始 转 换 在 单 次 转 换 模 式 下,ADSC 置 位 将 启 动 一 次 ADC 转 换 在 连 续 转 换 模 式 下,ADSC 置 位 将 启 动 首 次 转 换 第 一 次 转 换 ( 在 ADC 启 动 之 后 置 位 ADSC, 或 者 在 使 能 ADC 的 同 时 置 位 ADSC) 需 要 25 个 ADC 时 钟 周 期, 而 不 是 正 常 情 况 下 的 3 个 第 一 次 转 换 执 行 ADC 初 始 化 的 工 作 在 转 换 进 行 过 程 中 读 取 ADSC 的 返 回 值 为 ", 直 到 转 换 结 束 ADSC 清 零 不 产 生 任 何 动 作 Bit 5 ADFR: ADC 连 续 转 换 选 择 该 位 置 位 时, 运 行 在 连 续 转 换 模 式 该 模 式 下,ADC 不 断 对 数 据 寄 存 器 进 行 采 样 与 更 新 该 位 清 零, 终 止 连 续 转 换 模 式 Bit 4 ADIF: ADC 中 断 标 志 在 ADC 转 换 结 束, 且 数 据 寄 存 器 被 更 新 后, ADIF 置 位 如 果 ADIE 及 SREG 中 的 全 局 中 断 使 能 位 I 也 置 位,ADC 转 换 结 束 中 断 服 务 程 序 即 得 以 执 行, 同 时 ADIF 硬 件 清 零 此 外, 还 可 以 通 过 向 此 标 志 写 来 清 ADIF 要 注 意 的 是, 如 果 对 ADCSRA 进 行 读 - 修 改 - 写 操 作, 那 么 待 处 理 的 中 断 会 被 禁 止 这 也 适 用 于 SBI 及 CBI 指 令 Bit 3 ADIE: ADC 中 断 使 能 若 ADIE 及 SREG 的 位 I 置 位, ADC 转 换 结 束 中 断 即 被 使 能 94 ATmega8(L)

195 ATmega8(L) Bits 2: ADPS2:: ADC 预 分 频 器 选 择 位 由 这 几 位 来 确 定 XTAL 与 ADC 输 入 时 钟 之 间 的 分 频 因 子 Table 76. ADC 预 分 频 选 择 ADPS2 ADPS ADPS 分 频 因 子 ADC 数 据 寄 存 器 - ADCL 及 ADCH ADLAR = ADLAR = Bit ADC9 ADC8 ADCH ADC7 ADC6 ADC5 ADC4 ADC3 ADC2 ADC ADC ADCL 读 / 写 R R R R R R R R R R R R R R R R 初 始 值 Bit ADC9 ADC8 ADC7 ADC6 ADC5 ADC4 ADC3 ADC2 ADCH ADC ADC ADCL 读 / 写 R R R R R R R R R R R R R R R R 初 始 值 ADC 转 换 结 束 后, 转 换 结 果 存 于 这 两 个 寄 存 器 之 中 如 果 采 用 差 分 通 道, 结 果 由 2 的 补 码 形 式 表 示 读 取 ADCL 之 后,ADC 数 据 寄 存 器 一 直 要 等 到 ADCH 也 被 读 出 才 可 以 进 行 数 据 更 新 因 此, 如 果 转 换 结 果 为 左 对 齐, 且 要 求 的 精 度 不 高 于 8 比 特, 那 么 仅 需 读 取 ADCH 就 足 够 了 否 则 必 须 先 读 出 ADCL 再 读 ADCH ADMUX 寄 存 器 的 ADLAR 及 MUXn 会 影 响 转 换 结 果 在 数 据 寄 存 器 中 的 表 示 方 式 如 果 ADLAR 为, 那 么 结 果 为 左 对 齐 ; 反 之 ( 系 统 缺 省 设 置 ), 结 果 为 右 对 齐 ADC9:: ADC 转 换 结 果 ADC 转 换 的 结 果, 细 节 见 P 92 ADC 转 换 结 果 95

196 支 持 引 导 装 入 程 序 - 在 写 的 同 时 可 以 读 (RWW, Read-While- Write) 的 自 我 编 程 能 力 特 点 应 用 程 序 Flash 区 以 及 引 导 程 序 Flash 区 应 用 程 序 区 引 导 程 序 区 (Boot Loader Section) - BLS RWW Flash 区 及 非 RWW Flash 区 Boot Loader 为 通 过 MCU 本 身 来 下 载 和 上 载 程 序 代 码 提 供 了 一 个 真 正 的 同 时 读 - 写 (Read- While-Write, 以 下 简 称 RWW) 自 编 程 机 制 这 一 特 点 使 得 系 统 可 以 在 MCU 的 控 制 下, 通 过 驻 留 于 程 序 Flash 的 Boot Loader, 灵 活 地 进 行 应 用 软 件 升 级 Boot Loader 可 以 使 用 任 何 器 件 具 有 的 数 据 接 口 和 相 关 的 协 议 获 得 代 码 并 把 代 码 ( 程 序 ) 写 入 Flash, 或 者 从 程 序 存 储 器 读 取 代 码 Boot Loader 区 的 程 序 可 以 写 整 个 Flash, 包 括 Boot Loader 区 本 身 因 而 Boot Loader 可 以 对 其 自 身 进 行 修 改, 甚 至 将 自 己 擦 除 Boot Loader 存 储 器 空 间 的 大 小 可 以 通 过 熔 丝 位 进 行 配 置 Boot Loader 具 有 两 套 程 序 加 密 位, 各 自 可 以 独 立 设 置, 给 用 户 提 供 了 选 择 保 护 级 的 灵 活 性 RWW 自 编 程 灵 活 的 Boot 存 储 区 配 置 高 度 的 安 全 性 ( 有 单 独 的 Boot 锁 定 位 实 现 灵 活 的 程 序 保 护 ) 有 独 立 的 熔 丝 位 用 于 选 择 复 位 向 量 () 优 化 的 页 大 小 代 码 优 化 的 算 法 有 效 的 RWW 支 持 Note:. 页 是 Flash 的 一 个 部 分, 由 数 个 字 节 组 成 ( 见 P 23Table 93 ), 在 编 程 过 程 中 使 用 页 的 组 织 结 构 不 影 响 正 常 的 操 作 Flash 由 两 个 区 构 成, 应 用 区 和 Boot Loader 区 ( 见 Figure 2) 两 个 区 的 存 储 空 间 大 小 由 BOOTSZ 熔 丝 位 配 置, 如 P 27Table 82 和 Figure 2 所 示 由 于 两 个 区 使 用 不 同 的 锁 定 位, 所 以 可 以 具 有 不 同 的 加 密 级 别 应 用 区 是 Flash 用 来 存 储 应 用 代 码 的 区 域 应 用 区 的 保 护 级 别 通 过 应 用 Boot 锁 定 位 (Boot 锁 定 位 ) 确 定, 详 见 P 99Table 78 由 于 SPM 指 令 在 应 用 区 执 行 时 是 无 效 的, 所 以 应 用 区 不 能 用 来 存 储 Boot Loader 代 码 应 用 区 用 来 存 储 应 用 代 码, 而 Boot Loader 软 件 必 须 保 存 在 BLS 这 是 因 为 只 有 在 BLS 运 行 时 SPM 指 令 才 有 效 SPM 指 令 可 以 访 问 整 个 Flash, 包 括 BLS 本 身 Boot Loader 区 的 保 护 级 别 通 过 Boot Loader 锁 定 位 (Boot 锁 定 位 ) 确 定, 详 见 P 99Table 79 CPU 是 否 支 持 RWW, 或 者 CPU 是 否 在 利 用 Boot Loader 软 件 进 行 代 码 更 新 时 停 止, 取 决 于 被 编 程 的 是 哪 个 地 址 除 了 前 面 所 述 的 通 过 BOOTSZ 熔 丝 位 配 置 的 两 个 区 之 外,Flash 还 可 以 分 成 两 个 固 定 的 区 同 时 读 - 写 (RWW) 区 和 非 同 时 读 - 写 (NRWW) 区 RWW- 和 NRWW 的 分 界 在 P 27Table 83 和 P 98Figure 2 给 出 两 个 区 的 主 要 区 别 是 : 对 RWW 区 内 的 页 进 行 擦 除 或 写 操 作 时 可 以 读 NRWW 区 对 NRWW 区 内 的 页 进 行 擦 除 或 写 操 作 时, CPU 停 止 注 意,Boot Loader 软 件 工 作 时, 用 户 软 件 不 能 读 取 位 于 RWW 区 内 的 任 何 代 码 "RWW 区 指 的 是 被 编 程 ( 擦 除 或 写 ) 的 那 个 存 储 区, 而 不 是 利 用 Boot Loader 软 件 进 行 代 码 更 新 过 程 中 实 际 被 读 取 的 那 部 分 RWW 区 如 果 Boot Loader 软 件 是 对 RWW 区 内 的 某 一 页 进 行 编 程, 则 可 以 从 Flash 中 读 取 代 码, 但 只 限 于 NRWW 区 内 的 代 码 在 Flash 编 程 期 间, 用 户 软 件 必 须 保 证 没 有 对 RWW 区 的 读 访 问 如 果 用 户 软 件 在 编 程 过 程 中 试 图 读 取 位 于 RWW 区 的 代 码 ( 如 通 过 call/jmp/lpm 指 令 或 中 断 ), 软 件 可 能 会 终 止 于 一 个 未 知 状 态 为 了 避 免 这 种 情 况 的 发 生, 需 要 禁 止 中 断 或 将 其 转 移 到 Boot Loader 区 Boot Loader 总 是 位 于 NRWW 存 储 区 只 要 RWW 区 处 于 不 能 读 访 问 的 状 态, 存 储 程 序 存 储 器 控 制 和 状 态 寄 存 器 (SPMCSR) 的 RWW 区 忙 标 志 位 RWWSB 置 位 编 程 结 束 后, 要 在 读 取 位 于 RWW 区 的 代 码 之 前 通 过 软 件 清 除 RWWSB 具 体 如 何 清 除 RWWSB 请 参 见 P 2 保 存 程 序 存 储 器 控 制 寄 存 器 -SPMCR 96 ATmega8(L)

197 ATmega8(L) 非 RWW 区 -NRWW 在 Boot Loader 软 件 更 新 RWW 区 的 某 一 页 时, 可 以 读 取 位 于 NRWW 区 的 代 码 当 Boot Loader 代 码 更 新 NRWW 区 时, 在 整 个 页 擦 除 或 写 操 作 过 程 中 CPU 被 挂 起 Table 77. RWW 的 特 点 编 程 过 程 中 Z 指 针 寻 址 哪 个 区? 编 程 过 程 中 可 以 读 取 哪 个 区? CPU 挂 起 吗? 支 持 RWW 吗? RWW 区 NRWW 区 不 是 NRWW 区 无 是 不 Figure. RWW 与 NRWW Read-While-Write (RWW) Section Z-pointer Addresses RWW section Code Located in NRWW Section Can be Read during the Operation No Read-While-Write (NRWW) Section Z-pointer Addresses NRWW section CPU is Halted during the Operation 97

198 () Figure 2. 存 储 器 区 Program Memory BOOTSZ = '' $ Program Memory BOOTSZ = '' $ No Read-While-Write Section Read-While-Write Section No Read-While-Write Section Read-While-Write Section Application Flash Section Application Flash Section Boot Loader Flash Section Program Memory BOOTSZ = '' Application Flash Section Application Flash Section Boot Loader Flash Section End RWW Start NRWW End Application Start Boot Loader Flashend $ End RWW Start NRWW End Application Start Boot Loader Flashend No Read-While-Write Section Read-While-Write Section No Read-While-Write Section Read-While-Write Section Application Flash Section Application Flash Section Boot Loader Flash Section Program Memory BOOTSZ = '' Application flash Section Boot Loader Flash Section End RWW Start NRWW End Application Start Boot Loader Flashend $ End RWW, End Application Start NRWW, Start Boot Loader Flashend Note:. 上 图 中 的 参 数 在 P 27Table 82 中 给 出 引 导 程 序 区 锁 定 位 如 果 不 需 要 Boot Loader 功 能, 则 整 个 Flash 都 可 以 为 应 用 代 码 所 用 Boot Loader 具 有 两 套 可 以 独 立 设 置 的 Boot 锁 定 位 用 户 可 以 灵 活 地 选 择 不 同 的 代 码 保 护 方 式 用 户 可 以 选 择 : 保 护 整 个 Flash 区, 不 让 MCU 进 行 软 件 升 级 不 允 许 MCU 升 级 Boot Loader Flash 区 不 允 许 MCU 升 级 应 用 Flash 区 允 许 MCU 升 级 整 个 Flash 区 详 细 内 容 请 参 见 Table 78 与 Table 79 Boot 锁 定 位 可 以 通 过 软 件 串 行 或 并 行 编 程 进 行 设 置, 但 只 能 通 过 芯 片 擦 除 命 令 清 除 通 用 的 写 锁 定 位 ( 锁 定 位 模 式 2) 不 限 制 通 过 SPM 指 令 对 Flash 进 行 编 程 与 此 类 似, 通 用 的 读 / 写 锁 定 位 ( 锁 定 位 模 式 3) 也 不 限 制 通 过 LPM/SPM 指 令 对 Flash 进 行 读 / 写 访 问 98 ATmega8(L)

199 ATmega8(L) Table 78. Boot 锁 定 位 保 护 模 式 ( 应 用 区 ) () BLB 模 式 BLB2 BLB 保 护 允 许 SPM/LPM 指 令 访 问 应 用 区 2 不 允 许 SPM 指 令 对 应 用 区 进 行 写 操 作 3 4 不 允 许 SPM 指 令 对 应 用 区 进 行 写 操 作, 也 不 允 许 运 行 于 Boot Loader 区 的 LPM 指 令 从 应 用 区 读 取 数 据 若 中 断 向 量 位 于 Boot Loader 区, 那 么 执 行 应 用 区 代 码 时 中 断 是 禁 止 的 不 允 许 运 行 于 Boot Loader 区 的 LPM 指 令 从 应 用 区 读 取 数 据 若 中 断 向 量 位 于 Boot Loader 区, 那 么 执 行 应 用 区 代 码 时 中 断 是 禁 止 的 Note:. 表 示 未 被 编 程, 表 示 已 编 程 Table 79. Boot 锁 定 位 保 护 模 式 (Boot Loader 区 ) () BLB 模 式 BLB2 BLB 保 护 允 许 SPM/LPM 指 令 访 问 Boot Loader 区 2 不 允 许 SPM 指 令 对 Boot Loader 区 进 行 写 操 作 3 4 不 允 许 SPM 指 令 对 Boot Loader 区 进 行 写 操 作, 也 不 允 许 运 行 于 应 用 区 的 LPM 指 令 从 Boot Loader 区 读 取 数 据 若 中 断 向 量 位 于 应 用 区, 那 么 执 行 Boot Loader 区 代 码 时 中 断 是 禁 止 的 不 允 许 运 行 于 应 用 区 的 LPM 指 令 从 Boot Loader 区 读 取 数 据 若 中 断 向 量 位 于 应 用 区, 那 么 执 行 Boot Loader 区 代 码 时 中 断 是 禁 止 的 Note:. 表 示 未 被 编 程, 表 示 已 编 程 进 入 引 导 程 序 通 过 跳 转 指 令 或 从 应 用 区 调 用 的 方 式 可 以 进 入 Boot Loader 这 些 操 作 可 以 由 一 些 触 发 信 号 启 动, 比 如 通 过 USART 或 SPI 接 口 接 收 到 了 相 关 的 命 令 另 外, 可 以 通 过 编 程 Boot 复 位 熔 丝 位 使 得 复 位 向 量 指 向 Boot 区 的 起 始 地 址 这 样, 复 位 后 Boot Loader 立 即 就 启 动 了 加 载 了 应 用 代 码 后, 程 序 开 始 执 行 应 用 代 码 MCU 本 身 不 能 改 变 熔 丝 位 的 设 置 也 就 是 说, 一 旦 Boot 复 位 熔 丝 位 被 编 程, 复 位 向 量 将 一 直 指 向 Boot 区 的 起 始 地 址 熔 丝 位 只 能 通 过 串 行 或 并 行 编 程 的 方 法 来 改 变 99

200 Table 8. Boot 复 位 熔 丝 位 () BOOTRST 复 位 地 址 复 位 向 量 = 应 用 区 复 位 ( 地 址 x) 复 位 向 量 =Boot Loader 复 位 ( 见 P 27Table 82 ) Note:. 表 示 未 编 程, 表 示 已 编 程 保 存 程 序 存 储 器 控 制 寄 存 器 - SPMCR 存 贮 程 序 存 储 控 制 器 和 状 态 寄 存 器 包 括 了 控 制 Boot Loader 操 作 所 需 的 控 制 位 Bit SPMIE RWWSB RWWSRE BLBSET PGWRT PGERS SPMEN SPMCR 读 / 写 R/W R R R/W R/W R/W R/W R/W 初 始 值 Bit 7 SPMIE: SPM 中 断 使 能 SPMIE 置 位 后, 如 果 状 态 寄 存 器 的 I 位 也 置 位,SPM 中 断 即 被 使 能 只 要 SPMCSR 寄 存 器 的 SPMEN 清 零, SPM 中 断 将 被 执 行 Bit 6 RWWSB:RWW 区 忙 标 志 启 动 对 RWW 区 的 自 编 程 ( 页 擦 除 或 页 写 入 ) 操 作 时, RWWSB 被 硬 件 置 RWWSB 置 位 时 不 能 访 问 RWW 区 自 编 程 操 作 完 成 后, 如 果 RWWSRE 位 为, RWWSB 位 将 被 清 除 另 外, 启 动 页 加 载 操 作 将 使 RWWSB 位 自 动 清 零 Bit 5 Res: 保 留 在 ATmega8 中 为 保 留 位, 读 返 回 值 为 " Bit 4 RWWSRE:RWW 区 读 使 能 RWW 区 处 于 编 程 ( 页 擦 除 或 页 写 入 ) 状 态 时,RWW 区 的 读 操 作 (RWWSB 被 硬 件 置 " ) 将 被 阻 塞 用 户 软 件 必 须 等 到 编 程 结 束 (SPMEN 清 零 ) 才 能 重 新 使 能 RWW 区 如 果 RWWSRE 位 和 SPMEN 同 时 被 写 入 ", 则 在 紧 接 着 的 四 个 时 钟 周 期 内 的 SPM 指 令 将 再 次 使 能 RWW 区 如 果 Flash 忙 于 页 擦 除 或 页 写 入 (SPMEN 置 位 ),RWW 区 不 能 被 使 能 如 果 Flash 加 载 与 RWWSRE 写 操 作 同 时 发 生, 则 Flash 加 载 操 作 终 止, 加 载 的 数 据 亦 将 丢 失 Bit 3 BLBSET: Boot 锁 定 位 设 置 如 果 这 一 位 和 SPMEN 同 时 置 位, 发 生 于 紧 接 着 的 四 个 时 钟 周 期 内 的 SPM 指 令 会 根 据 R 中 的 数 据 设 置 Boot 锁 定 位 R 中 的 数 据 和 Z 指 针 的 地 址 信 息 被 忽 略 锁 定 位 设 置 完 成, 或 在 四 个 时 钟 周 期 内 没 有 SPM 指 令 被 执 行 时, BLBSET 自 动 清 零 在 SPMCSR 寄 存 器 的 BLBSET 和 SPMEN 置 位 后 的 三 个 周 期 内 运 行 的 LPM 指 令 将 读 取 锁 定 位 或 熔 丝 位 ( 取 决 于 Z 指 针 的 Z) 并 送 到 目 的 寄 存 器 详 见 P 24 以 软 件 方 式 读 取 熔 丝 位 和 锁 定 位 Bit 2 PGWRT: 页 写 入 如 果 这 一 位 和 SPMEN 同 时 置 位, 发 生 于 紧 接 着 的 四 个 时 钟 周 期 内 的 SPM 指 令 执 行 页 写 功 能, 将 临 时 缓 冲 器 中 存 储 的 数 据 写 入 Flash 页 地 址 取 自 Z 指 针 的 高 位 部 分 R 和 R 的 数 据 则 被 忽 略 页 写 操 作 完 成, 或 在 四 个 时 钟 周 期 内 没 有 SPM 指 令 被 执 行 时,PGWRT 自 动 清 零 如 果 页 写 对 象 为 NRWW 区, 在 整 个 页 写 操 作 过 程 中 CPU 停 止 Bit PGERS: 页 擦 除 如 果 这 一 位 和 SPMEN 同 时 置 位, 发 生 于 紧 接 着 的 四 个 时 钟 周 期 内 的 SPM 指 令 执 行 页 擦 除 功 能 页 地 址 取 自 Z 指 针 的 高 位 部 分 R 和 R 的 数 据 则 被 忽 略 页 擦 除 操 作 完 成, 或 在 四 个 时 钟 周 期 内 没 有 SPM 指 令 被 执 行 时,PGERS 自 动 清 零 如 果 页 写 对 象 为 NRWW 区, 在 整 个 页 擦 除 操 作 过 程 中 CPU 停 止 Bit SPMEN: 存 贮 程 序 存 储 器 使 能 2 ATmega8(L)

201 ATmega8(L) 这 一 位 在 紧 接 着 的 四 个 时 钟 周 期 内 使 能 SPM 指 令 如 果 将 这 一 位 和 RWWSRE BLBSET PGWRT 或 PGERS 之 一 同 时 置 位, 则 如 上 所 述, 接 下 来 的 SPM 指 令 将 有 特 殊 的 含 义 如 果 只 有 SPMEN 置 位, 那 么 接 下 来 的 SPM 指 令 将 把 R:R 中 的 数 据 存 储 到 由 Z 指 针 确 定 的 临 时 页 缓 冲 器 Z 指 针 的 LSB 被 忽 略 SPM 指 令 完 成, 或 在 四 个 时 钟 周 期 内 没 有 SPM 指 令 被 执 行 时, SPMEN 自 动 清 零 在 页 擦 除 和 页 写 过 程 中 SPMEN 保 持 为 直 到 操 作 完 成 在 低 五 位 中 写 入 除 或 之 外 的 任 何 组 合 都 无 效 在 自 编 程 时 访 问 Flash Z 指 针 用 于 SPM 命 令 的 寻 址 Bit ZH (R3) Z5 Z4 Z3 Z2 Z Z Z9 Z8 ZL (R3) Z7 Z6 Z5 Z4 Z3 Z2 Z Z 由 于 Flash 存 储 器 是 以 页 的 形 式 组 织 ( P 23Table 93 ) 起 来 的, 程 序 计 数 器 可 看 作 由 两 个 部 分 构 成 : 其 一 为 实 现 页 内 寻 址 的 低 位 部 分 ; 其 次 为 实 现 页 寻 址 的 高 位 部 分, 如 Figure 3 所 示 由 于 页 擦 除 和 页 写 操 作 的 寻 址 是 相 互 独 立 的, 因 此 保 证 Boot Loader 软 件 在 页 擦 除 和 页 写 操 作 时 寻 址 相 同 的 页 是 最 重 要 的 一 旦 编 程 操 作 开 始 启 动, 地 址 就 被 锁 存, 然 后 Z 指 针 可 以 用 作 其 他 用 途 了 唯 一 不 使 用 Z 指 针 的 SPM 操 作 是 设 置 Boot Loader 锁 定 位 Z 指 针 的 内 容 被 忽 略 LPM 指 令 也 使 用 Z 指 针 来 保 存 地 址 由 于 这 个 指 令 的 寻 址 逐 字 节 地 进 行, 所 以 Z 指 针 的 LSB 位 ( 位 Z) 也 使 用 到 了 () Figure 3. SPM 的 寻 址 BIT 5 Z - REGISTER ZPCMSB ZPAGEMSB PROGRAM COUNTER PCMSB PCPAGE PAGEMSB PCWORD PROGRAM MEMORY PAGE PAGE ADDRESS WITHIN THE FLASH WORD ADDRESS WITHIN A PAGE PAGE INSTRUCTION WORD PCWORD[PAGEMSB:]: 2 PAGEEND Notes:. 图 中 所 用 的 不 同 的 变 量 在 P 28Table 84 中 列 出 2. PCPAGE 与 PCWORD 列 于 P 23Table 93 2

202 Flash 的 自 编 程 通 过 SPM 执 行 页 擦 除 装 载 临 时 缓 冲 器 ( 页 加 载 ) 执 行 页 写 操 作 利 用 SPM 中 断 在 更 新 BLS 时 需 要 考 虑 的 问 题 在 自 编 程 时 防 止 读 取 RWW 区 程 序 存 储 器 的 更 新 以 页 的 方 式 进 行 在 用 临 时 页 缓 冲 器 存 储 的 数 据 对 一 页 存 储 器 进 行 编 程 时, 首 先 要 将 这 一 页 擦 除 SPM 指 令 以 一 次 一 个 字 的 方 式 将 数 据 写 入 临 时 页 缓 冲 器 临 时 页 缓 冲 器 的 写 入 可 以 在 页 擦 除 命 令 之 前 完 成, 也 可 以 在 页 擦 除 和 页 写 操 作 之 间 完 成 方 案, 在 页 擦 除 前 写 缓 冲 器 : 写 临 时 页 缓 冲 器 执 行 页 擦 除 操 作 执 行 页 写 操 作 方 案 2, 在 页 擦 除 后 写 缓 冲 器 : 执 行 页 擦 除 操 作 写 临 时 页 缓 冲 器 执 行 页 写 操 作 如 果 只 需 要 改 变 页 的 一 部 分, 则 在 页 擦 除 之 前 必 须 将 页 中 其 他 部 分 存 储 起 来 ( 如 保 存 于 临 时 页 缓 冲 区 中 ), 然 后 再 写 回 Flash 使 用 方 案 时, Boot Loader 提 供 了 一 个 有 效 的 读 - 修 改 - 写 特 性, 允 许 用 户 软 件 首 先 读 取 页 中 的 内 容, 然 后 对 内 容 做 必 要 的 改 变, 接 着 把 修 改 后 的 数 据 写 回 Flash 如 果 使 用 方 案 2, 则 无 法 读 取 旧 数 据, 因 为 页 已 经 被 擦 除 了 临 时 页 缓 冲 区 可 以 随 机 寻 址 保 证 在 页 擦 除 和 页 写 操 作 中 寻 址 相 同 的 页 是 很 关 键 的 汇 编 代 码 的 例 子 请 参 见 P 26 一 个 简 单 的 引 导 程 序 汇 编 代 码 执 行 页 擦 除 操 作 首 先 需 要 设 置 Z 指 针 与 RAMPZ 的 地 址 信 息, 然 后 将 X 写 入 SPMCSR, 最 后 在 其 后 的 四 个 时 钟 周 期 内 执 行 SPM R 和 R 中 的 数 据 被 忽 略 页 地 址 必 须 写 入 Z 寄 存 器 的 PCPAGE Z 指 针 的 其 他 位 被 忽 略 擦 除 RWW 区 的 页 : 在 页 擦 除 过 程 中 可 以 读 取 NRWW 区 擦 除 NRWW 区 的 页 : 在 操 作 过 程 中 CPU 停 止 写 一 个 指 令 字 首 先 需 要 设 置 Z 指 针 的 地 址 信 息, 以 及 将 指 令 字 写 入 R:R, 然 后 将 写 入 SPMCSR, 最 后 在 其 后 的 四 个 时 钟 周 期 内 执 行 SPM Z 寄 存 器 中 PCWORD 的 内 容 用 来 寻 址 临 时 缓 冲 区 页 写 操 作 完 成, 或 置 位 SPMCSR 寄 存 器 的 RWWSRE 将 使 临 时 缓 冲 区 自 动 擦 除 系 统 复 位 也 会 擦 除 临 时 缓 冲 区 但 是 如 果 不 清 除 临 时 缓 冲 区 就 只 能 对 每 个 地 址 进 行 一 次 写 操 作 Note: 如 果 EEPROM 在 SPM 页 下 载 中 间 写 操 作, 所 有 下 载 数 据 丢 失 执 行 页 写 操 作 首 先 需 要 设 置 Z 指 针 与 RAMPZ 的 地 址 信 息, 然 后 将 X 写 入 SPMCSR, 最 后 在 其 后 的 四 个 时 钟 周 期 内 执 行 SPM R 和 R 中 的 数 据 被 忽 略 页 地 址 必 须 写 入 Z 寄 存 器 的 PCPAGE Z 指 针 的 其 他 位 被 忽 略 擦 除 RWW 区 的 页 : 在 页 擦 除 过 程 中 可 以 读 取 NRWW 区 擦 除 NRWW 区 的 页 : 在 页 写 过 程 中 CPU 停 止 如 果 SPM 中 断 使 能, 则 SPMCSR 寄 存 器 的 SPMEN 清 零 将 产 生 中 断 这 意 味 着 软 件 可 以 利 用 中 断 来 代 替 对 SPMCSR 寄 存 器 的 查 询 使 用 SPM 中 断 时, 要 将 中 断 向 量 移 到 BLS, 以 避 免 RWW 区 读 禁 止 时 中 断 程 序 却 访 问 它 如 何 移 动 中 断 向 量 请 见 P 43 中 断 通 过 不 编 程 Boot 锁 定 位 的 方 式 来 更 新 Boot Loader 区 时 需 要 给 予 格 外 关 注 对 Boot Loader 本 身 进 行 的 误 操 作 会 破 坏 整 个 Boot Loader, 造 成 软 件 无 法 更 新 如 果 程 序 不 需 要 改 变 Boot Loader, 建 议 对 Boot 锁 定 位 编 程, 以 防 止 不 小 心 改 变 了 Boot Loader 在 自 编 程 过 程 中 ( 页 擦 除 或 页 写 ), 对 RWW 区 的 访 问 被 阻 塞 用 户 软 件 要 避 免 此 情 况 发 生 RWW 区 忙 将 使 SPMCSR 寄 存 器 的 RWWSB 置 位 在 自 编 程 时, 如 P 43 中 断 所 述, 中 断 向 量 表 应 该 移 到 BLS 中, 或 者 禁 止 中 断 编 程 结 束 后, 在 寻 址 RWW 区 之 前 用 22 ATmega8(L)

203 ATmega8(L) 户 软 件 必 须 对 RWWSRE 写 来 清 零 RWWSB 例 子 请 见 P 26 一 个 简 单 的 引 导 程 序 汇 编 代 码 23

204 通 过 SPM 设 置 引 导 程 序 锁 定 位 设 置 Boot Loader 锁 定 位 首 先 要 给 R 赋 予 期 望 的 数 据, 然 后 将 X 写 入 SPMCSR 寄 存 器, 并 在 紧 接 着 的 四 个 时 钟 周 期 内 执 行 SPM 指 令 唯 一 可 访 问 的 锁 定 位 是 Boot Loader 锁 定 位 利 用 这 个 锁 定 位 可 以 阻 止 MCU 对 应 用 程 序 和 Boot Loader 软 件 的 更 新 Bit R BLB2 BLB BLB2 BLB 不 同 的 Boot Loader 锁 定 位 设 置 对 Flash 访 问 的 影 响 请 参 见 Table 78 与 Table 79 如 果 R 的 5..2 位 为, 并 且 在 SPMCSR 寄 存 器 的 BLBSET 和 SPMEN 置 位 之 后 的 四 个 周 期 内 执 行 了 SPM 指 令, 相 应 的 Boot 锁 定 位 将 被 编 程 此 操 作 不 使 用 Z 指 针, 但 出 于 兼 容 性 的 考 虑, 建 议 将 Z 指 针 赋 值 为 x( 与 读 lo ck 位 的 操 作 相 同 ) 同 样 出 于 兼 容 性 的 考 虑, 建 议 在 写 锁 定 位 时 将 R 中 的 7 6 和 第 位 置 " 在 编 程 锁 定 位 的 过 程 中 可 以 自 由 访 问 整 个 Flash 区 写 EEPROM 将 阻 止 写 SPMCR 以 软 件 方 式 读 取 熔 丝 位 和 锁 定 位 EEPROM 写 操 作 会 阻 塞 对 Flash 的 编 程, 也 会 阻 塞 对 熔 丝 位 和 锁 定 位 的 读 操 作 建 议 用 户 在 对 SPMCR 寄 存 器 进 行 写 操 作 之 前 首 先 检 查 EECR 寄 存 器 的 状 态 位 EEWE, 确 保 此 位 以 被 清 除 熔 丝 位 和 锁 定 位 可 以 通 过 软 件 读 取 读 锁 定 位 时, 需 要 将 x 赋 予 给 Z 指 针 并 且 置 位 SPMCSR 寄 存 器 的 BLBSET 和 SPMEN 在 SPMCR 操 作 之 后 的 三 个 CPU 周 期 内 执 行 的 LPM 指 令 将 把 锁 定 位 的 值 将 加 载 到 目 的 寄 存 器 读 锁 定 位 操 作 结 束, 或 者 在 三 个 CPU 周 期 内 没 有 执 行 LPM 指 令, 或 在 四 个 CPU 周 期 内 没 有 执 行 SPM 指 令,BLBSET 和 SPMEN 位 将 自 动 硬 件 清 零 BLBSET 和 SPMEN 清 零 后, LPM 将 按 照 指 令 手 册 中 所 描 述 的 那 样 工 作 Bit Rd BLB2 BLB BLB2 BLB LB2 LB 读 取 熔 丝 位 低 字 节 的 算 法 和 上 述 读 取 锁 定 位 的 算 法 类 似 要 读 取 熔 丝 位 低 字 节, 需 要 将 x 赋 予 给 Z 指 针 并 且 置 位 SPMCR 寄 存 器 的 BLBSET 和 SPMEN 在 SPMCSR 操 作 之 后 的 三 个 CPU 周 期 内 执 行 的 LPM 指 令 将 把 熔 丝 位 低 位 字 节 的 值 (FLB) 加 载 到 目 的 寄 存 器 更 详 细 的 说 明 及 熔 丝 位 低 位 字 节 映 射 的 细 节 请 参 见 P 2Table 88 Bit Rd FLB7 FLB6 FLB5 FLB4 FLB3 FLB2 FLB FLB 类 似 的, 读 取 熔 丝 位 高 位 字 节 时, 需 要 将 x3 赋 予 给 Z 指 针 并 且 置 位 SPMCR 寄 存 器 的 BLBSET 和 SPMEN 在 SPMCSR 操 作 之 后 的 三 个 CPU 周 期 内 执 行 的 LPM 指 令 将 把 熔 丝 位 高 位 字 节 的 值 (FHB) 加 载 到 目 的 寄 存 器 更 详 细 的 说 明 及 熔 丝 位 高 位 字 节 映 射 的 细 节 请 参 见 P 2Table 87 Bit Rd FHB7 FHB6 FHB5 FHB4 FHB3 FHB2 FHB FHB 被 编 程 的 熔 丝 位 和 锁 定 位 的 读 返 回 值 为 " 未 被 编 程 的 熔 丝 位 和 锁 定 位 的 读 返 回 值 为 " 防 止 Flash 的 内 容 损 毁 V CC 低 于 工 作 电 压 时,CPU 和 Flash 正 常 工 作 无 法 保 证,Flash 的 内 容 可 能 受 到 破 坏 这 个 问 题 对 于 应 用 于 板 级 系 统 的 独 立 Flash 一 样 存 在 所 以 也 要 采 用 同 样 的 解 决 方 案 电 压 太 低 时 有 两 种 情 况 可 以 破 坏 Flash 内 容 第 一, Flash 写 过 程 需 要 一 个 最 低 电 压 第 二, 电 压 太 低 时 CPU 本 身 会 错 误 地 执 行 指 令 遵 循 以 下 设 计 建 议 可 以 避 免 Flash 被 破 坏 ( 采 用 其 中 之 一 就 足 够 了 ): 24 ATmega8(L)

205 ATmega8(L). 如 果 系 统 不 需 要 更 新 Boot Loader, 建 议 编 程 Boot Loader 锁 定 位 以 防 止 Boot Loader 软 件 更 新 2. 电 源 电 压 不 足 期 间, 保 持 AVR RESET 为 低 : 采 用 的 方 式 为 : 如 果 工 作 电 压 与 检 测 电 平 相 匹 配, 可 以 使 能 BOD 功 能 ; 否 则 可 以 使 用 外 部 复 位 保 护 电 路 如 果 在 写 操 作 进 行 中 发 生 了 复 位, 只 要 电 源 电 压 足 够, 写 操 作 还 会 完 成 3. 低 电 压 期 间 保 持 AVR 内 核 处 于 掉 电 休 眠 模 式 这 样 可 以 防 止 CPU 解 码 并 执 行 指 令, 有 效 地 保 护 SPMCR 寄 存 器, 从 而 防 止 Flash 被 无 意 识 得 修 改 掉 使 用 SPM 时 的 Flash 编 程 时 间 片 内 校 准 的 RC 振 荡 器 用 于 Flash 寻 址 时 序 控 制 Table 8 给 出 了 CPU 访 问 Flash 的 典 型 编 程 时 间 Table 8. SPM 编 程 时 间 符 号 最 小 编 程 时 间 最 大 编 程 时 间 Flash 写 操 作 ( 通 过 SPM 实 现 页 擦 除 页 写 及 写 锁 定 位 ) 3.7 ms 4.5 ms 25

206 一 个 简 单 的 引 导 程 序 汇 编 代 码 ;- 本 例 程 将 RAM 中 的 一 页 数 据 写 入 Flash ; Y 指 针 指 向 RAM 的 第 一 个 数 据 单 元 ;Z 指 针 指 向 Flash 的 第 一 个 数 据 单 元 ;- 本 例 程 没 有 包 括 错 误 处 理 ;- 该 程 序 必 须 放 置 于 Boot 区 ( 至 少 Do_spm 子 程 序 是 如 此 ) ; 在 自 编 程 过 程 中 ( 页 擦 除 和 页 写 操 作 ) 只 能 读 访 问 NRWW 区 的 代 码 ;- 使 用 的 寄 存 器 :r r temp (r6) temp2 (r7) looplo (r24) ; loophi (r25) spmcrval (r2) ; 在 程 序 中 不 包 括 寄 存 器 内 容 的 保 护 和 恢 复 ; 在 牺 牲 代 码 大 小 的 情 况 下 可 以 优 化 寄 存 器 的 使 用 ;- 假 设 中 断 向 量 表 位 于 Boot loader 区, 或 者 中 断 被 禁 止.equ PAGESIZEB = PAGESIZE*2 ;PAGESIZEB 是 以 字 节 为 单 位 的 页 大 小, 不 是 以 字 为 单 位.org SMALLBOOTSTART Write_page: ; 页 擦 除 ldi spmcrval, (<<PGERS) (<<SPMEN) rcall Do_spm 26 ATmega8(L) ; 重 新 使 能 RWW 区 ldi spmcrval, (<<RWWSRE) (<<SPMEN) rcall Do_spm ; 将 数 据 从 RAM 转 移 到 Flash 页 缓 冲 区 ldi looplo, low(pagesizeb) ; 初 始 化 循 环 变 量 ldi loophi, high(pagesizeb) ;PAGESIZEB<=256 时 不 需 要 此 操 作 Wrloop: ld r, Y+ ld r, Y+ ldi spmcrval, (<<SPMEN) rcall Do_spm adiw ZH:ZL, 2 sbiw loophi:looplo, 2 ;PAGESIZEB<=256 时 请 使 用 subi brne Wrloop ; 执 行 页 写 subi ZL, low(pagesizeb) ; 恢 复 指 针 sbci ZH, high(pagesizeb) ;PAGESIZEB<=256 时 不 需 要 此 操 作 ldi spmcrval, (<<PGWRT) (<<SPMEN) rcall Do_spm ; 重 新 使 能 RWW 区 ldi spmcrval, (<<RWWSRE) (<<SPMEN) rcall Do_spm ; 读 回 数 据 并 检 查, 为 可 选 操 作 ldi looplo, low(pagesizeb) ; 初 始 化 循 环 变 量 ldi loophi, high(pagesizeb) ;PAGESIZEB<=256 时 不 需 要 此 操 作 subi YL, low(pagesizeb) ; 恢 复 指 针 sbci YH, high(pagesizeb) Rdloop: lpm r, Z+ ld r, Y+ cpse r, r rjmp Error sbiw loophi:looplo, ;PAGESIZEB<=256 时 请 使 用 subi brne Rdloop ; 返 回 到 RWW 区 ; 确 保 RWW 区 已 经 可 以 安 全 读 取

207 ATmega8(L) Return: in temp, SPMCR sbrs temp, RWWSB ; 若 RWWSB 为 "", 说 明 RWW 区 还 没 有 准 备 好 ret ; 重 新 使 能 RWW 区 ldi spmcrval, (<<RWWSRE) (<<SPMEN) rcall Do_spm rjmp Return Do_spm: ; 检 查 先 前 的 SPM 操 作 是 否 已 经 完 成 Wait_spm: in temp, SPMCR sbrc temp, SPMEN rjmp Wait_spm ; 输 入 :spmcrval 决 定 了 SPM 操 作 ; 禁 止 中 断, 保 存 状 态 标 志 in temp2, SREG cli ; 确 保 没 有 EEPROM 写 操 作 Wait_ee: sbic EECR, EEWE rjmp Wait_ee ; SPM 时 间 序 列 out SPMCR, spmcrval spm ; 恢 复 SREG ( 如 果 中 断 原 本 是 使 能 的, 则 使 能 中 断 ) out SREG, temp2 ret ATmega8 引 导 程 序 参 数 自 编 程 描 述 中 所 用 的 参 数 在 Table 82 到 Table 84 中 给 出 Table 82. Boot 区 大 小 配 置 BOOTSZ BOOTSZ Boot 区 大 小 页 数 应 用 Flash 区 Boot Loader Flash 区 应 用 区 结 束 地 址 Boot 复 位 地 址 ( Boot Loader 起 始 地 址 ) 28 字 4 x - xf7f xf8 - xfff xf7f xf8 256 字 8 x - xeff xf - xfff xeff xf 52 字 6 x - xdff xe - xfff xdff xe 2 字 32 Note: 不 同 的 BOOTSZ 熔 丝 位 配 置 请 参 见 Figure 2 Table 83. RWW 界 限 x - xbff xc - xfff xbff xc Flash 区 页 数 寻 址 范 围 同 时 读 - 写 区 (RWW) 96 x - xbff 非 同 时 读 - 写 区 (NRWW) 32 xc - xfff 27

208 关 于 两 个 区 的 详 细 说 明 请 见 P 97 非 RWW 区 - NRWW 与 P 96 RWW 区 Table 84. Figure 3 中 所 用 变 量 的 说 明 及 Z 指 针 的 映 射 变 量 相 应 的 Z 指 针 数 () 据 描 述 PCMSB 程 序 计 数 器 的 最 高 位 ( 程 序 计 数 器 为 2 位 PC[:]) PAGEMSB 4 用 于 页 内 字 寻 址 的 最 高 位 ( 一 页 有 64 个 字, 需 要 5 位 PC [4:]) ZPCMSB Z2 Z 寄 存 器 与 PCMSB 对 应 的 位 由 于 没 有 使 用 Z, ZPCMSB 等 于 PCMSB + ZPAGEMSB Z5 Z 寄 存 器 与 PAGEMSB 对 应 的 位 由 于 没 有 使 用 Z, ZPAGEMSB 等 于 PAGEMSB + PCPAGE PC[:5] Z2:Z6 程 序 计 数 器 页 地 址 : 在 页 擦 除 和 页 写 操 作 中 进 行 页 选 择 PCWORD PC[4:] Z5:Z 程 序 计 数 器 字 地 址 : 为 填 充 临 时 缓 冲 区 进 行 字 选 择 ( 在 页 写 过 程 中 必 须 为 ) Note:. Z5:Z3 不 计 Z: 对 所 有 的 SPM 命 令 都 为 ", 对 LPM 指 令 的 位 选 择 关 于 自 编 程 过 程 中 Z 指 针 的 使 用 请 参 见 P 2 在 自 编 程 时 访 问 Flash 28 ATmega8(L)

209 ATmega8(L) 存 储 器 编 程 程 序 及 数 据 存 储 器 锁 定 位 ATmega8 提 供 了 6 个 锁 定 位, 根 据 其 被 编 程 ( ) 还 是 没 有 被 编 程 ( ) 的 情 况 可 以 获 得 Table 86 列 出 的 附 加 性 能 锁 定 位 只 能 通 过 芯 片 擦 除 命 令 擦 写 为 Table 85. 锁 定 位 字 节 锁 定 位 字 节 位 号 描 述 默 认 值 () Note:. 表 示 未 编 程, 表 示 被 编 程 7 ( 未 编 程 ) 6 ( 未 编 程 ) BLB2 5 Boot 锁 定 位 ( 未 编 程 ) BLB 4 Boot 锁 定 位 ( 未 编 程 ) BLB2 3 Boot 锁 定 位 ( 未 编 程 ) BLB 2 Boot 锁 定 位 ( 未 编 程 ) LB2 锁 定 位 ( 未 编 程 ) LB 锁 定 位 ( 未 编 程 ) (2) Table 86. 锁 定 位 保 护 模 式 存 储 器 锁 定 位 LB 模 式 LB2 LB 保 护 类 型 没 有 使 能 存 储 器 保 护 特 性 2 3 BLB 模 式 BLB2 BLB 在 并 行 和 串 行 编 程 模 式 中 Flash 和 EEPROM 的 进 一 步 编 程 被 禁 止, 熔 丝 位 被 锁 定 () 在 并 行 和 串 行 编 程 模 式 中 Flash 和 EEPROM 的 进 一 步 编 程 () 及 验 证 被 禁 止, 锁 定 位 和 熔 丝 位 被 锁 定 SPM 和 LPM 对 应 用 区 的 访 问 没 有 限 制 2 不 允 许 SPM 对 应 用 区 进 行 写 操 作 3 4 BLB 模 式 BLB2 BLB 不 允 许 SPM 指 令 对 应 用 区 进 行 写 操 作, 也 不 允 许 运 行 于 Boot Loader 区 的 LPM 指 令 从 应 用 区 读 取 数 据 若 中 断 向 量 位 于 Boot Loader 区, 那 么 执 行 应 用 区 代 码 时 中 断 是 禁 止 的 不 允 许 运 行 于 Boot Loader 区 的 LPM 指 令 从 应 用 区 读 取 数 据 若 中 断 向 量 位 于 Boot Loader 区, 那 么 执 行 应 用 区 代 码 时 中 断 是 禁 止 的 允 许 SPM/LPM 指 令 访 问 Boot Loader 区 29

210 (2) Table 86. 锁 定 位 保 护 模 式 存 储 器 锁 定 位 2 不 允 许 SPM 指 令 对 Boot Loader 区 进 行 写 操 作 3 4 保 护 类 型 Notes:. 在 编 程 锁 定 位 前 先 编 程 熔 丝 位 2. 表 示 未 被 编 程, 表 示 被 编 程 不 允 许 SPM 指 令 对 Boot Loader 区 进 行 写 操 作, 也 不 允 许 运 行 于 应 用 区 的 LPM 指 令 从 Boot Loader 区 读 取 数 据 若 中 断 向 量 位 于 应 用 区, 那 么 执 行 Boot Loader 区 代 码 时 中 断 是 禁 止 的 不 允 许 运 行 于 应 用 区 的 LPM 指 令 从 Boot Loader 区 读 取 数 据 若 中 断 向 量 位 于 应 用 区, 那 么 执 行 Boot Loader 区 代 码 时 中 断 是 禁 止 的 熔 丝 位 ATmega8 有 两 个 熔 丝 位 字 节 Table 87-Table 88 简 单 地 描 述 了 所 有 熔 丝 位 的 功 能 以 及 他 们 是 如 何 映 射 到 熔 丝 字 节 的 如 果 熔 丝 位 被 编 程 则 读 返 回 值 为 Table 87. 熔 丝 位 高 字 节 熔 丝 高 字 节 位 号 描 述 默 认 值 RSTDISBL (4) 7 WDTON 6 若 PC6 为 I/O 引 脚 或 RESET 引 脚 选 择 WDT 开 ( 未 编 程, PC6 为 RESET- 引 脚 ) ( 未 编 程, 通 过 WDTCR 使 WDT 使 能 ) SPIEN () 5 使 能 串 行 程 序 和 数 据 下 载 ( 已 编 程,SPI 编 程 使 能 ) CKOPT (2) 4 振 荡 器 选 项 ( 未 编 程 ) EESAVE 3 执 行 芯 片 擦 除 时 EEPROM 的 内 容 保 留 BOOTSZ 2 选 择 Boot 区 大 小 ( 详 见 Table 82) ( 已 编 程 ) (3) BOOTSZ 选 择 Boot 区 大 小 ( 详 见 Table 82 ) ( 已 编 程 ) (3) BOOTRST 选 择 复 位 向 量 ( 未 编 程 ) ( 未 编 程, EEPROM 内 容 不 保 留 ) Notes:. 在 SPI 串 行 编 程 模 式 下 SPIEN 熔 丝 位 不 可 访 问 2. CKOPT 熔 丝 位 功 能 由 CKSEL 位 设 置 决 定, 详 见 P 23 时 钟 源 3. BOOTSZ.. 默 认 值 为 最 大 Boot 大 小, 详 见 P 27Table 当 对 RSTDISBL 熔 丝 位 编 程, 并 行 编 程 使 用 其 他 熔 丝 位 或 执 行 其 他 编 程 模 式 Table 88. 熔 丝 位 低 位 字 节 熔 丝 位 低 位 字 节 位 号 描 述 默 认 值 BODLEVEL 7 BOD 触 发 电 平 ( 未 编 程 ) BODEN 6 BOD 使 能 ( 未 编 程, BOD 禁 用 ) SUT 5 选 择 启 动 时 间 ( 未 编 程 ) () SUT 4 选 择 启 动 时 间 ( 已 编 程 ) () CKSEL3 3 选 择 时 钟 源 ( 已 编 程 ) (2) CKSEL2 2 选 择 时 钟 源 ( 已 编 程 ) (2) CKSEL 选 择 时 钟 源 ( 已 编 程 ) (2) CKSEL 选 择 时 钟 源 ( 未 编 程 ) (2) 2 ATmega8(L)

211 ATmega8(L) Notes:. 对 于 默 认 时 钟 源,SUT.. 的 默 认 值 给 出 最 大 的 启 动 时 间 详 细 内 容 见 P 27Table 2. CKSEL3.. 的 默 认 设 置 导 致 了 片 内 RC 振 荡 器 运 行 于 MHz 详 细 内 容 见 P 23Table 2 熔 丝 位 的 状 态 不 受 芯 片 擦 除 命 令 的 影 响 如 果 锁 定 位 (LB) 被 编 程 则 熔 丝 位 被 锁 定 在 编 程 锁 定 位 前 先 编 程 熔 丝 位 锁 存 熔 丝 位 的 数 据 标 识 字 节 标 定 字 节 芯 片 进 入 编 程 模 式 时 熔 丝 位 的 值 被 锁 存 其 间 熔 丝 位 的 改 变 不 会 生 效, 直 到 器 件 退 出 编 程 模 式 不 过 这 不 适 用 于 EESAVE 熔 丝 位 它 一 旦 被 编 程 立 即 起 作 用 在 正 常 工 作 模 式 中 器 件 上 电 时 熔 丝 位 也 被 锁 存 所 有 的 Atmel 微 控 制 器 都 具 有 一 个 三 字 节 的 标 识 代 码 用 来 区 分 器 件 型 号 这 个 代 码 可 以 通 过 串 行 和 并 行 模 式 读 取, 也 可 以 在 芯 片 被 锁 定 时 读 取 这 三 个 字 节 分 别 存 储 于 三 个 独 立 的 地 址 空 间 ATmega8 标 识 字 节 为 :. x: xe ( 表 示 由 Atmel 公 司 生 产 ) 2. x: x93 ( 表 示 芯 片 包 含 8 KB Flash 存 储 器 ) 3. x2: x7 ( 表 示 这 是 ATmega8) ATmega8 内 部 RC 振 荡 器 的 有 四 个 不 同 的 校 准 值 保 存 于 校 准 字 节 这 个 字 节 位 于 标 识 地 址 空 间 x x x2 及 x3 的 高 位 字 节, 分 别 标 定 MHz 在 复 位 期 间, MHz 的 标 定 值 被 自 动 写 入 OSCCAL 寄 存 器 若 需 要 其 他 频 率 标 定 值, 则 需 手 动 完 成, 详 见 P 28 振 荡 器 标 定 寄 存 器 - OSCCAL 2

212 并 行 编 程 参 数, 引 脚 映 射 及 命 令 信 号 名 称 这 部 分 描 述 了 如 何 对 ATmega8 的 Flash 程 序 存 储 器, EEPROM 数 据 存 储 器, 存 储 锁 定 位 及 熔 丝 位 进 行 并 行 编 程 和 校 验 除 非 另 有 说 明, 脉 冲 宽 度 至 少 为 25 ns 在 这 一 节 ATmega8 的 相 关 引 脚 以 并 行 编 程 信 号 的 名 称 进 行 引 用, 如 Figure 4 与 Table 89 所 示 表 中 没 有 描 述 的 引 脚 沿 用 原 来 的 称 谓 XA/XA 决 定 了 给 XTAL 引 脚 一 个 正 脉 冲 时 所 执 行 的 操 作 具 体 编 码 请 见 Table 9 给 WR 或 OE 输 入 脉 冲 时 所 加 载 的 命 令 决 定 了 要 执 行 的 操 作 具 体 命 令 请 参 见 Table 92 Figure 4. 并 行 编 程 +5V RDY/BSY OE PD PD2 VCC +5V WR PD3 AVCC BS XA PD4 PD5 PC[:]:PB[5:] DATA XA PD6 PAGEL PD7 +2 V BS2 RESET PC2 XTAL GND Table 89. 引 脚 名 称 映 射 编 程 模 式 信 号 的 名 称 引 脚 名 称 I/O 功 能 RDY/BSY PD O : 芯 片 忙 于 编 程, : 芯 片 等 待 新 的 命 令 OE PD2 I 输 出 使 能 ( 低 电 平 有 效 ). WR PD3 I 写 脉 冲 ( 低 电 平 有 效 ). BS PD4 I XA PD5 I XTAL 动 作 位 XA PD6 I XTAL 动 作 位 字 节 选 择 ( 选 择 低 位 字 节, 选 择 高 位 字 节 ). PAGEL PD7 I 加 载 程 序 存 储 器 和 EEPROM 数 据 页 BS2 PC2 I 字 节 选 择 2( 选 择 低 位 字 节, 选 择 第 二 个 高 位 字 节 ) DATA {PC[:]: PB[5:]} I/O 双 向 数 据 总 线 (OE 为 低 时 输 出 ) 22 ATmega8(L)

213 ATmega8(L) Table 9. 进 入 编 程 模 式 所 需 要 的 引 脚 数 据 引 脚 符 号 数 值 PAGEL Prog_enable[3] XA Prog_enable[2] XA Prog_enable[] BS Prog_enable[] Table 9. XA 和 XA 的 编 码 XA XA 给 XTAL 施 加 脉 冲 激 发 的 动 作 加 载 Flash 或 EEPROM 地 址 ( 通 过 BS 确 定 是 高 位 还 是 低 位 字 节 ) 加 载 数 据 ( 通 过 BS 决 定 是 高 位 还 是 低 位 闪 存 数 据 字 节 ) 加 载 命 令 无 操 作, 空 闲 Table 92. 命 令 字 节 编 码 命 令 字 节 执 行 的 命 令 芯 片 擦 除 写 熔 丝 位 写 锁 定 位 写 Flash 写 EEPROM 读 标 识 字 节 和 校 准 字 节 读 熔 丝 位 和 锁 定 位 读 Flash 读 EEPROM Table 93. 一 页 包 含 的 字 和 Flash 中 的 页 数 Flash 大 小 页 大 小 PCWORD 页 号 PCPAGE PCMSB 4K 字 (8K 字 节 ) 32 字 PC[4:] 28 PC[:5] Table 94. 一 页 包 含 的 字 和 EEPROM 中 的 页 数 EEPROM 大 小 页 大 小 PCWORD 页 数 PCPAGE EEAMSB 52 字 节 4 字 节 EEA[:] 28 EEA[8:2] 8 并 行 编 程 进 入 编 程 模 式 通 过 下 面 的 算 法 进 入 并 行 编 程 模 式 : 23

214 . 在 V CC 及 GND 之 间 提 供 V 的 电 压, 并 至 少 等 待 µs 2. 将 RESET 拉 低, 并 至 少 改 变 XTAL 电 平 6 次 3. 将 P 23Table 9 中 列 出 的 的 Prog_enable 引 脚 置 为 "", 并 等 待 至 少 ns 4. 给 RESET 提 供.5-2.5V 的 电 压 在 向 RESET 提 供 +2V 电 压 后 的 ns 内, Prog_enable 引 脚 的 任 何 行 为 都 会 导 致 芯 片 无 法 进 入 编 程 模 式 注 意, 如 果 通 过 对 RSTDISBL 熔 丝 位 的 编 程 将 RESET 引 脚 禁 用, 或 选 择 外 部 晶 体 或 外 部 RC, 它 不 可 能 提 供 合 格 的 XTAL 脉 冲 在 这 种 情 况 下, 应 采 取 如 下 算 法 :. 设 置 列 于 P 23Table 9 的 Prog_enable 引 脚 为 2. 在 V CC 与 GND 间 提 供 电 压 V 同 时 在 RESET 上 提 供.5-2.5V 电 压 3. 等 待 ns 4. 对 熔 丝 位 重 编 程, 保 证 外 部 时 钟 源 作 为 系 统 时 钟 (CKSEL3: = b) 如 果 锁 定 位 已 编 程, 在 改 变 熔 丝 前 必 须 执 行 芯 片 擦 除 指 令 5. 通 过 降 低 器 件 功 率 或 置 RESET 引 脚 为 b 来 退 出 编 程 模 式 6. 用 前 面 讲 到 的 算 法 进 入 编 程 模 式 进 行 高 效 编 程 需 要 考 虑 的 问 题 在 编 程 过 程 中, 加 载 的 命 令 及 地 址 保 持 不 变 为 了 实 现 高 效 的 编 程 应 考 虑 以 下 因 素 : 对 多 个 存 储 单 元 进 行 读 或 写 操 作 时, 命 令 仅 需 加 载 一 次 当 需 要 写 入 的 数 据 为 xff 时 可 以 跳 过, 因 为 这 就 是 执 行 全 片 擦 除 命 令 后 Flash 及 EEPROM( 除 非 EESAVE 熔 丝 位 被 编 程 ) 的 内 容 只 有 在 编 程 或 读 取 Flash 及 EEPROM 中 新 的 256 字 时 才 需 要 用 到 地 址 高 位 字 节 在 读 标 识 字 节 时 也 需 考 虑 这 一 点 芯 片 擦 除 芯 片 擦 除 操 作 会 擦 除 Flash 及 EEPROM () 存 储 器 以 及 锁 定 位 程 序 存 储 器 没 有 擦 除 结 束 之 前 锁 定 位 不 会 复 位 全 片 擦 除 不 影 响 熔 丝 位 芯 片 擦 除 命 令 必 须 在 编 程 Flash 与 / 或 EEPROM 之 前 完 成 Note:. 如 果 EESAVE 熔 丝 位 被 编 程, 那 么 在 芯 片 擦 除 时 EEPRPOM 不 受 影 响 加 载 " 芯 片 擦 除 命 令 的 过 程 :. 将 XA XA 置 为 " 以 启 动 命 令 加 载 2. 将 BS 置 为 " 3. DATA 赋 值 为 这 是 芯 片 擦 除 命 令 4. 给 XTAL 提 供 一 个 正 脉 冲, 进 行 命 令 加 载 5. 给 WR 提 供 一 个 负 脉 冲, 启 动 芯 片 擦 除 RDY/BSY 变 低 6. 等 待 RDY/BSY 变 高, 然 后 才 能 加 载 新 的 命 令 对 Flash 进 行 编 程 Flash 是 以 页 的 形 式 组 织 起 来 的, 如 P 23Table 93 所 示 编 程 Flash 时, 程 序 数 据 被 锁 存 到 页 缓 冲 区 中 这 样 一 整 页 的 程 序 数 据 可 以 同 时 得 到 编 程 下 面 的 步 骤 描 述 了 如 何 对 Flash 进 行 编 程 : A. 加 载 " 写 Flash" 命 令 :. 将 XA XA 置 为 "", 启 动 命 令 加 载 2. 将 BS 置 " 3. DATA 赋 值 为, 这 是 写 Flash 命 令 4. 给 XTAL 提 供 一 个 正 脉 冲 以 加 载 命 令 B. 加 载 地 址 低 位 字 节 :. 将 XA XA 置 为 "", 启 动 地 址 加 载 2. 将 BS 置 ", 选 择 低 位 地 址 24 ATmega8(L)

215 ATmega8(L) 3. DATA 赋 值 为 地 址 低 位 字 节 (x - xff) 4. 给 XTAL 提 供 一 个 正 脉 冲, 加 载 地 址 低 位 字 节 C. 加 载 数 据 低 位 字 节 :. 将 XA XA 置 为 "", 启 动 数 据 加 载 2. DATA 赋 值 为 数 据 低 位 字 节 (x - xff) 3. 给 XTAL 提 供 一 个 正 脉 冲, 加 载 数 据 字 节 D. 加 载 数 据 高 位 字 节 :. 将 BS 置 为 ", 选 择 数 据 高 位 字 节 2. 将 XA XA 置 为 "", 启 动 数 据 加 载 3. DATA 赋 值 为 数 据 高 位 字 节 (x - xff) 4. 给 XTAL 提 供 一 个 正 脉 冲, 进 行 数 据 字 节 加 载 E. 锁 存 数 据 :. 将 BS 置 为 ", 选 择 数 据 高 位 字 节 2. 给 PAGEL 提 供 一 个 正 脉 冲, 锁 存 数 据 ( 见 Figure 6 信 号 波 形 ) F. 重 复 B 到 E 操 作, 直 到 整 个 缓 冲 区 填 满 或 此 页 中 所 有 的 数 据 都 已 加 载 地 址 信 息 中 的 低 位 用 于 页 内 寻 址, 高 位 用 于 FLASH 页 的 寻 址, 详 见 P 26Figure 5 如 果 页 内 寻 址 少 于 8 位 ( 页 地 址 < 256), 那 么 进 行 页 写 操 作 时 地 址 低 字 节 中 的 高 位 用 于 页 寻 址 G. 加 载 地 址 高 位 字 节 :. 将 XA XA 置 为 ", 启 动 地 址 加 载 操 作 2. 将 BS 置 为 ", 选 择 高 位 地 址 3. DATA 赋 值 为 地 址 高 位 字 节 (x - xff) 4. 给 XTAL 提 供 一 个 正 脉 冲, 加 载 地 址 高 位 字 节 H. 编 程 一 页 数 据 :. 置 BS = 2. 给 WR 提 供 一 个 负 脉 冲, 对 整 页 数 据 进 行 编 程, RDY/BSY 变 低 3. 等 待 RDY/BSY 变 高 ( 见 Figure 6 信 号 波 形 ) I. 重 复 B 到 H 的 操 作, 直 到 整 个 Flash 编 程 结 束 或 者 所 有 的 数 据 都 被 编 程 J. 结 束 页 编 程 :. 将 XA XA 置 为 ", 启 动 命 令 加 载 操 作 2. DATA 赋 值 为 " ", 这 是 不 操 作 指 令 3. 给 XTAL 提 供 一 个 正 脉 冲, 加 载 命 令, 内 部 写 信 号 复 位 25

216 () Figure 5. 对 以 页 为 组 织 单 位 的 Flash 进 行 寻 址 PROGRAM COUNTER PCMSB PCPAGE PAGEMSB PCWORD PROGRAM MEMORY PAGE PAGE ADDRESS WITHIN THE FLASH WORD ADDRESS WITHIN A PAGE PAGE INSTRUCTION WORD PCWORD[PAGEMSB:]: 2 PAGEEND Note:. PCPAGE 及 PCWORD 列 于 P 23Table 93 Figure 6. Flash 编 程 波 形 () F A B C D E B C D E G H DATA x ADDR. LOW DATA LOW DATA HIGH XX ADDR. LOW DATA LOW DATA HIGH XX ADDR. HIGH XX XA XA BS XTAL WR RDY/BSY RESET +2V OE PAGEL BS2 Note:. 不 用 考 虑 "XX", 各 个 大 写 字 母 对 应 于 前 面 描 述 的 Flash 编 程 阶 段 对 EEPROM 进 行 编 程 如 P 23Table 94 所 示, EEPROM 也 以 页 为 单 位 编 程 EEPROM 时, 编 程 数 据 锁 存 于 页 缓 冲 区 中 这 样 可 以 同 时 对 一 页 数 据 进 行 编 程 EEPROM 数 据 存 储 器 编 程 算 法 如 下 ( 命 令 地 址 及 数 据 加 载 的 细 节 请 参 见 P 24 对 Flash 进 行 编 程 ): 26 ATmega8(L)

217 ATmega8(L). A: 加 载 命 令 2. G: 加 载 地 址 高 位 字 节 (x - xff) 3. B: 加 载 地 址 低 位 字 节 (x - xff) 4. C: 加 载 数 据 (x - xff) 5. E: 锁 存 数 据 ( 给 PAGEL 提 供 一 个 正 脉 冲 ) K: 重 复 步 骤 3 到 5, 直 到 整 个 缓 冲 区 填 满 L: 对 EEPROM 页 进 行 编 程 :. 将 BS 置 2. 给 WR 提 供 一 个 负 脉 冲, 开 始 对 EEPROM 页 进 行 编 程, RDY/BSY 变 低 3. 等 到 RDY/BSY 变 高 再 对 下 一 页 进 行 编 程 ( 见 Figure 7 信 号 波 形 ) Figure 7. EEPROM 编 程 波 形 K A G B C E B C E L DATA x ADDR. HIGH ADDR. LOW DATA XX ADDR. LOW DATA XX XA XA BS XTAL WR RDY/BSY RESET +2V OE PAGEL BS2 读 取 Flash 读 Flash 存 储 器 的 过 程 如 下 ( 命 令 及 地 址 加 载 细 节 见 P 24 对 Flash 进 行 编 程 ):. A: 加 载 命 令 2. G: 加 载 地 址 高 位 字 节 (x - xff) 3. B: 加 载 地 址 低 位 字 节 (x - xff) 4. 将 OE 置, BS 置, 然 后 从 DATA 读 出 Flash 字 的 低 位 字 节 5. 将 BS 置, 然 后 从 DATA 读 出 Flash 字 的 高 位 字 节 6. 将 OE 置 读 取 EEPROM 读 存 储 器 的 步 骤 如 下 ( 命 令 及 地 址 加 载 细 节 见 P 24 对 Flash 进 行 编 程 ):. A: 加 载 命 令 2. G: 加 载 地 址 高 位 字 节 (x - xff) 3. B: 加 载 地 址 低 位 字 节 (x - xff) 4. 将 OE 置 ", BS 置 ", 然 后 从 DATA 读 出 EEPROM 数 据 字 节 27

218 5. 将 OE 置 对 熔 丝 位 的 低 位 进 行 编 程 对 熔 丝 低 位 的 编 程 步 骤 如 下 ( 命 令 及 数 据 加 载 细 节 见 P 24 对 Flash 进 行 编 程 ):. A: 加 载 命 令 2. C: 加 载 数 据 低 字 节, 若 某 一 位 为 " 表 示 需 要 进 行 编 程, 否 则 需 要 擦 除 3. 置 BS 为, BS2 为 4. 给 WR 提 供 一 个 负 脉 冲, 并 等 待 RDY/BSY 变 高 28 ATmega8(L)

219 ATmega8(L) 对 熔 丝 位 的 高 位 进 行 编 程 对 熔 丝 高 位 的 编 程 步 骤 如 下 ( 命 令 及 数 据 加 载 细 节 见 P 24 对 Flash 进 行 编 程 ):. A: 加 载 命 令 2. C: 加 载 数 据 高 字 节, 若 某 一 位 为 " 表 示 需 要 进 行 编 程, 否 则 需 要 擦 除 3. 将 BS 置 " BS2 置 ", 选 择 高 位 数 据 字 节 4. 给 WR 提 供 一 个 负 脉 冲 并 等 待 RDY/BSY 变 高 5. 将 BS 置 ", 选 择 低 位 字 节 对 锁 定 位 进 行 编 程 锁 定 位 编 程 步 骤 如 下 ( 命 令 及 数 据 加 载 细 节 见 P 24 对 Flash 进 行 编 程 ):. A: 加 载 命 令 2. C: 加 载 数 据 低 字 节, 位 n 为 " 表 示 此 锁 定 位 需 要 编 程 3. 给 WR 提 供 一 个 负 脉 冲 并 等 待 RDY/BSY 变 高 锁 定 位 只 能 通 过 芯 片 擦 除 命 令 来 清 除 读 取 熔 丝 位 和 锁 定 位 读 取 熔 丝 位 及 锁 定 位 的 步 骤 如 下 ( 命 令 加 载 细 节 见 P 24 对 Flash 进 行 编 程 ):. A: 加 载 命 令 2. 将 OE BS2 和 BS 置 ", 然 后 从 DATA 读 取 熔 丝 低 位 的 状 态 (" 表 示 已 编 程 ) 3. 将 OE 置 ",BS2 和 BS 置, 然 后 从 DATA 读 取 熔 丝 高 位 的 状 态 (" 表 示 已 编 程 ) 4. 将 OE 置 ",BS2 置 ",BS 置, 然 后 从 DATA 读 取 锁 定 位 的 状 态 (" 表 示 已 编 程 ) 5. 将 OE 置 Figure 8. 读 操 作 过 程 中 BS BS2 与 熔 丝 位 及 锁 定 位 的 对 应 关 系 Fuse low byte DATA Lock bits Fuse high byte BS BS2 29

220 读 取 标 识 字 节 读 取 标 识 字 节 的 算 法 如 下 ( 命 令 与 地 址 加 载 参 考 P 24 对 Flash 进 行 编 程 ):. A: 加 载 命 令 2. B: 加 载 地 址 低 字 节 x - x2 3. 将 OE BS 置 ", 然 后 从 DATA 读 取 标 识 字 节 4. 将 OE 置 " 读 取 标 定 字 节 读 取 校 准 字 节 的 算 法 如 下 ( 命 令 与 地 址 加 载 参 考 P 24 对 Flash 进 行 编 程 ):. A: 加 载 命 令 2. B: 加 载 地 址 低 字 节 3. 将 OE 置 ", BS 置, 然 后 从 DATA 读 取 校 准 字 节 4. 将 OE 置 并 行 编 程 特 性 Figure 9. 并 行 编 程 时 序, 包 括 一 些 常 规 的 时 序 要 求 t XLWL XTAL t XHXL Data & Contol (DATA, XA/, BS, BS2) t DVXH t XLDX t BVPH t PLBX PAGEL t PHPL t BVWL t WLBX WR RDY/BSY t PLWL t WL WH WLRL t WLRH () Figure. 并 行 编 程 时 序, 有 时 序 要 求 的 加 载 序 列 LOAD ADDRESS (LOW BYTE) LOAD DATA (LOW BYTE) LOAD DATA LOAD DATA (HIGH BYTE) LOAD ADDRESS (LOW BYTE) t XLXH t XLPH t PLXH XTAL BS PAGEL DATA ADDR (Low Byte) DATA (Low Byte) DATA (High Byte) ADDR (Low Byte) XA XA Note:. Figure 9 给 出 的 时 序 要 求 (t DVXH t XHXL 及 t XLDX ) 也 适 用 于 加 载 操 作 22 ATmega8(L)

221 ATmega8(L) Figure. 并 行 编 程 时 序, 有 时 序 要 求 的 读 序 列 ( 同 一 页 ) () LOAD ADDRESS (LOW BYTE) READ DATA (LOW BYTE) READ DATA (HIGH BYTE) LOAD ADDRESS (LOW BYTE) t XLOL XTAL t BVDV BS t OLDV OE t OHDZ DATA ADDR (Low Byte) DATA (Low Byte) DATA (High Byte) ADDR (Low Byte) XA XA Note:. Figure 9 给 出 的 时 序 要 求 ( 即 t DVXH t XHXL 及 t XLDX ) 也 适 用 于 读 操 作 Table 95. 并 行 编 程 参 数, V CC = 5V ± % 符 号 参 数 V PP 编 程 使 能 电 压 V I PP 编 程 使 能 电 流 25 µa t DVXH 在 XTAL 为 高 之 前 数 据 及 控 制 有 效 67 ns t XLXH 从 XTAL 低 到 XTAL 高 2 ns t XHXL XTAL 为 高 时 的 脉 宽 5 ns t XLDX XTAL 为 低 之 后 数 据 及 控 制 保 持 67 ns t XLWL 从 XTAL 低 到 WR 低 ns t XLPH 从 XTAL 低 到 PAGEL 高 ns t PLXH 从 PAGEL 低 到 XTAL 高 5 ns t BVPH PAGEL 为 高 之 前 BS 有 效 67 ns t PHPL PAGEL 为 高 时 的 脉 宽 5 ns t PLBX PAGEL 为 低 之 后 BS 保 持 67 ns t WLBX WR 为 低 之 后 BS2/ 保 持 67 ns t PLWL 从 PAGEL 低 到 WR 为 低 67 ns t BVWL BS 有 效 至 WR 为 低 67 ns t WLWH WR 为 低 时 的 脉 宽 5 ns t WLRL 从 WR 低 到 RDY/BSY 为 低 µs t WLRH t WLRH_CE () 从 WR 低 到 RDY/BSY 为 高 (2) 从 WR 低 到 RDY/BSY 为 高, 芯 片 擦 除 操 作 最 小 值 典 型 值 最 大 值 单 位 ms ms t XLOL 从 XTAL 低 到 OE 为 低 ns 22

222 Table 95. 并 行 编 程 参 数, V CC = 5V ± % (Continued) 符 号 参 数 t BVDV BS 有 效 至 DATA 有 效 25 ns t OLDV 从 OE 低 到 DATA 有 效 25 ns t OHDZ 从 OE 低 到 DATA 为 高 阻 态 25 ns 最 小 值 典 型 值 Notes:. 在 进 行 Flash EEPROM 熔 丝 位 及 锁 定 位 写 操 作 时 t WLRH 有 效 2. 在 执 行 芯 片 擦 除 操 作 时 t WLRH_CE 有 效 最 大 值 单 位 串 行 下 载 当 RESET 为 低 电 平 时, 可 以 通 过 串 行 SPI 总 线 对 Flash 及 EEPROM 进 行 编 程 串 行 接 口 包 括 SCK MOSI( 输 入 ) 及 MISO( 输 出 ) RESET 为 低 之 后, 应 在 执 行 编 程 / 擦 除 操 作 之 前 执 行 编 程 允 许 指 令 P 222Table 96 列 出 了 SPI 编 程 所 需 引 脚 的 映 射 不 是 所 有 的 器 件 都 使 用 SPI 引 脚 专 用 于 内 部 SPI 接 口 串 行 编 程 引 脚 映 射 Table 96. 串 行 编 程 映 射 符 号 引 脚 I/O 说 明 MOSI PB3 I 连 续 数 据 输 入 MISO PB4 O 连 续 数 据 输 出 SCK PB5 I 连 续 时 钟 () Figure 2. 串 行 编 程 及 校 验 V VCC MOSI MISO SCK PB3 PB4 PB5 XTAL AVCC V (2) RESET GND 222 ATmega8(L) Notes:. 如 果 芯 片 由 片 内 振 荡 器 提 供 时 钟, 那 么 就 不 用 在 XTAL 引 脚 上 连 接 时 钟 源 2. V CC -.3V < AVCC < V CC +.3V, 但 是 AVCC 必 须 在 V 范 围 内 编 程 EEPROM 时, MCU 在 自 定 时 的 编 程 操 作 中 会 插 入 一 个 自 动 擦 除 周 期, 从 而 无 需 执 行 芯 片 擦 除 命 令 芯 片 擦 除 操 作 将 程 序 存 储 器 及 EEPROM 的 内 容 都 擦 除 为 xff 时 钟 通 过 CKSEL 熔 丝 位 确 定 串 行 时 钟 (SCK) 的 最 小 低 电 平 时 间 和 最 小 高 电 平 时 间 要 满 足 如 下 要 求 : 低 :> f ck < 2 MHz 时 为 2 个 CPU 时 钟 周 期,f ck 2 MHz 时 为 3 个 CPU 时 钟 周 期 高 :> f ck < 2 MHz 时 为 2 个 CPU 时 钟 周 期,f ck 2 MHz 时 为 3 个 CPU 时 钟 周 期 串 行 编 程 算 法 向 ATmega8 串 行 写 入 数 据 时, 数 据 在 SCK 的 上 升 沿 得 以 锁 存

223 ATmega8(L) 从 ATmega8 读 取 数 据 时, 数 据 在 SCK 的 下 降 沿 输 出 时 序 细 节 见 Figure 3 在 串 行 编 程 模 式 下 对 ATmega8 进 行 编 程 及 校 验 时, 应 遵 循 以 下 的 步 骤 ( 见 Table 98 中 的 4 字 节 指 令 格 式 ):. 上 电 顺 序 : 在 RESET 及 SCK 为 " 时, 向 V CC 及 GND 供 电 在 一 些 系 统 中, 编 程 器 不 能 保 证 在 上 电 时 SCK 保 持 为 低 在 这 种 情 况 下, SCK 拉 低 之 后 应 在 RESET 加 一 正 脉 冲, 而 且 这 个 脉 冲 至 少 要 维 持 2 个 CPU 时 钟 周 期 2. 上 电 之 后 等 待 至 少 2 ms, 然 后 向 MOSI 引 脚 输 入 串 行 编 程 使 能 指 令 以 使 能 串 行 编 程 3. 通 信 不 同 步 将 造 成 串 行 编 程 指 令 不 工 作 同 步 之 后, 在 发 送 编 程 使 能 指 令 的 第 三 个 字 节 时, 第 二 个 字 节 的 内 容 (x53) 将 被 反 馈 回 来 不 论 反 馈 的 内 容 正 确 与 否, 指 令 的 4 个 字 节 必 须 全 部 传 输 如 果 x53 未 被 反 馈, 则 需 要 向 RESET 提 供 一 个 正 脉 冲 以 开 始 新 的 编 程 使 能 指 令 4. Flash 的 编 程 以 一 次 一 页 的 方 式 进 行, 页 大 小 见 P 23Table 93 在 执 行 加 载 程 序 存 储 页 指 令 时, 通 过 5 LSB 的 地 址 信 息, 数 据 以 字 节 为 单 位 加 载 到 存 储 页 为 保 证 加 载 的 正 确 性, 应 先 向 给 定 地 址 传 送 数 据 低 字 节, 之 后 是 高 字 节 程 序 存 储 页 通 过 地 址 的 高 7 位 以 及 写 程 序 存 储 器 页 指 令 获 得 数 据 如 果 不 使 用 查 询 的 方 式, 那 么 在 操 作 下 一 页 数 据 之 前 应 等 待 至 少 t WD_FLASH 的 时 间 ( 见 Table 97) 注 意 : 在 写 操 作 完 成 前 对 其 进 行 除 读 以 外 的 其 他 指 令, 会 导 致 编 程 错 误 5. 提 供 了 地 址 及 数 据 信 息 之 后, 适 合 的 写 指 令 将 以 字 节 为 单 位 对 EEPROM 编 程 EEPROM 存 储 单 元 总 是 在 写 入 新 数 据 之 前 自 动 擦 除 如 果 不 使 用 查 询 的 方 式, 那 么 在 操 作 下 一 页 数 据 之 前 应 等 待 至 少 t WD_EEPROM 的 时 间 ( 见 Table 97) 对 于 全 片 擦 除 之 后 的 芯 片, 数 据 为 xff 的 不 需 要 编 程 6. 可 通 过 读 指 令 来 校 验 任 何 一 个 存 储 单 元 的 内 容 数 据 从 串 行 输 出 口 MISO 输 出 7. 编 程 结 束 后 可 以 将 RESET 拉 高 开 始 正 常 操 作 8. 下 电 序 列 ( 如 果 需 要 ): 将 RESET 置 切 断 V CC 223

224 Flash 的 数 据 轮 询 当 Flash 正 处 于 某 一 页 的 编 程 状 态 时, 读 取 此 页 中 的 内 容 将 得 到 xff 编 程 结 束 后, 被 编 程 的 数 据 即 可 以 正 确 读 出 通 过 这 种 方 法 可 以 确 定 何 时 可 以 写 下 一 页 由 于 整 个 页 是 同 时 编 程 的, 这 一 页 中 的 任 何 一 个 地 址 都 可 以 用 来 查 询 Flash 数 据 查 询 不 适 用 于 数 据 xff 因 此, 在 编 程 xff 时, 用 户 至 少 要 等 待 t WD_FLASH 才 能 进 行 下 一 页 的 编 程 由 于 全 片 擦 除 将 所 有 的 单 元 擦 为 xff, 所 以 编 程 数 据 为 xff 时 可 以 跳 过 这 个 操 作 t WD_FLASH 的 值 见 Table 97 EEPROM 的 数 据 轮 询 当 EEPROM 正 在 处 理 一 个 字 节 的 编 程 操 作 时, 读 取 此 地 址 将 返 回 xff 编 程 结 束 后, 被 编 程 的 数 据 即 可 以 正 确 读 出 这 一 方 法 可 用 来 判 断 何 时 可 以 写 下 一 个 字 节 数 据 查 询 对 数 据 xff 无 效 但 用 户 应 该 考 虑 到, 全 片 擦 除 将 所 有 的 单 元 擦 为 xff, 所 以 编 程 数 据 为 xff 时 可 以 跳 过 这 个 操 作 不 过 这 不 适 用 于 全 片 擦 除 时 EEPROM 内 容 被 保 留 的 情 况 用 户 若 在 此 时 编 程 xff, 在 进 行 下 一 字 节 编 程 之 前 至 少 等 待 t WD_EEPROM 的 时 间 t WD_EEPROM 的 值 见 Table 97 Table 97. 写 下 一 个 Flash 或 EEPROM 单 元 之 前 的 最 小 等 待 时 间 符 号 t WD_FUSE t WD_FLASH t WD_EEPROM t WD_ERASE 最 小 等 待 时 间 4.5 ms 4.5 ms 9. ms 9. ms Figure 3. 串 行 编 程 波 形 图 SERIAL DATA INPUT (MOSI) MSB LSB SERIAL DATA OUTPUT (MISO) MSB LSB SERIAL CLOCK INPUT (SCK) SAMPLE 224 ATmega8(L)

225 ATmega8(L) Table 98. 串 行 编 程 指 令 集 指 令 Note: 指 令 格 式 字 节 字 节 2 字 节 3 字 节 4 编 程 使 能 xxxx xxxx xxxx xxxx RESET 拉 低 后 使 能 串 行 编 程 芯 片 擦 除 x xxxx xxxx xxxx xxxx xxxx 擦 除 EEPROM 及 Flash 读 程 序 存 储 器 H aaaa bbbb bbbb oooo oooo 从 字 地 址 为 a:b 的 程 序 存 储 器 读 取 H( 高 或 低 字 节 ) 数 据 的 o 加 载 程 序 存 储 器 页 H xxxx xxxb bbbb iiii iiii 向 字 地 址 为 b 的 程 序 存 储 页 H( 高 或 低 字 节 ) 写 入 数 据 i 应 先 写 低 字 节 再 写 高 字 节 写 程 序 存 储 器 页 aaaa bbbx xxxx xxxx xxxx 在 地 址 a:b 加 载 程 序 存 储 页 读 EEPROM 存 储 器 xx xxxa bbbb bbbb oooo oooo 从 EEPROM 的 地 址 a:b 处 读 出 数 据 o 写 EEPROM 存 储 器 xx xxxa bbbb bbbb iiii iiii 向 EEPROM 地 址 a:b 处 中 写 入 数 据 i 读 锁 定 位 xxxx xxxx xxoo oooo 读 锁 定 位 为 已 编 程, " 为 未 编 程 细 节 见 P 29Table 85 写 锁 定 位 x xxxx xxxx xxxx ii iiii 写 锁 定 位 写 表 示 编 程 锁 定 位 细 节 见 P 29Table 85 读 标 识 字 节 xx xxxx xxxx xxbb oooo oooo 从 地 址 b 读 取 标 识 字 节 o 写 熔 丝 位 xxxx xxxx iiii iiii 表 示 已 编 程, 表 示 未 编 程 见 P 2Table 88 写 高 熔 丝 位 读 熔 丝 位 读 高 熔 丝 位 xxxx xxxx iiii iiii 表 示 已 编 程, 表 示 未 编 程 见 P 2Table 87 xxxx xxxx oooo oooo 读 熔 丝 位 表 示 已 编 程, 表 示 未 编 程 细 节 见 P 2Table 88 xxxx xxxx oooo oooo 读 熔 丝 高 位 表 示 已 编 程, 表 示 未 编 程 细 节 见 P 2Table 87 读 校 准 字 节 xx xxxx bb oooo oooo 读 校 准 字 节 a = 地 址 高 位,b = 地 址 低 位, H = - 低 字 节, - 高 字 节, o = 数 据 输 出, i = 数 据 输 入,x = 任 意 值 SPI 串 行 编 程 特 性 对 SPI 模 块 特 性, 请 参 见 P 23 SPI 时 序 特 性 操 作 225

226 电 气 特 性 Note: 本 手 册 中 包 含 的 典 型 数 据 是 基 于 其 他 同 工 艺 的 AVR 控 制 器 特 性 的 仿 真 芯 片 的 最 小 值 与 最 大 值 针 对 特 性 值 有 效 绝 对 极 限 值 * 工 作 温 度 C ~ +25 C 存 储 温 度 C ~ +5 C 各 个 引 脚 对 地 的 电 压, 除 了 RESET V ~ V CC +.5V *NOTICE: 如 果 强 制 芯 片 在 超 出 绝 对 极 限 值 表 中 所 列 的 条 件 之 下 工 作 可 能 造 成 器 件 的 永 久 损 坏 这 仅 是 工 作 应 力 的 极 限 并 不 表 示 器 件 可 以 工 作 于 表 中 所 列 条 件 之 下, 或 是 那 些 超 越 工 作 范 围 明 确 规 定 的 其 他 条 件 之 下 长 时 间 工 作 于 绝 对 极 限 值 可 能 会 影 响 器 件 的 寿 命 RESET 引 脚 对 地 的 电 压 V ~ +3.V 最 大 工 作 电 压... 6.V 每 个 I/O 引 脚 上 的 直 流 电 流 ma V CC 与 GND 引 脚 上 的 直 流 电 流 ma 直 流 特 性 T A = -4 C ~ 85 C, V CC = 2.7V ~ 5.5V ( 除 非 另 外 说 明 ) 符 号 参 数 条 件 最 小 值 典 型 值 最 大 值 单 位 V IL 输 入 低 电 压 除 XTAL 引 脚 V CC () V IL 输 入 低 电 压 XTAL 引 脚, 外 部 时 钟 -.5. V CC () V IH 输 入 高 电 压 除 了 XTAL 和 RESET 引 脚.6 V CC (2) V CC +.5 V V IH 输 入 高 电 压 XTAL 引 脚, 外 部 时 钟.8 V CC (2) V CC +.5 V IH2 输 入 高 电 压 RESET 引 脚.9 V CC (2) V CC +.5 V V OL V OH I IL I IH (3) 输 出 低 电 压 ( 端 口 A,B,C,D) 输 出 高 电 压 ( 端 口 A,B,C,D) 输 入 漏 电 流 I/O 引 脚 输 入 漏 电 流 I/O 引 脚 I OL = 2 ma, V CC = 5V I OL = ma, V CC = 3V I OH = -2 ma, V CC = 5V I OH = - ma, V CC = 3V V CC = 5.5V, 引 脚 为 低 电 平 ( 绝 对 值 ) V CC = 5.5V, 引 脚 为 高 电 平 ( 绝 对 值 ) V V V V V V V µa µa R RST Reset 引 脚 上 拉 电 阻 3 8 kω R pu I/O 引 脚 上 拉 电 阻 2 5 kω 226 ATmega8(L)

227 ATmega8(L) T A = -4 C ~ 85 C, V CC = 2.7V ~ 5.5V ( 除 非 另 外 说 明 ) 符 号 参 数 条 件 最 小 值 I CC V ACIO I ACLK t ACID 工 作 电 流 掉 电 模 式 (5) 模 拟 比 较 器 输 入 偏 置 电 压 模 拟 比 较 器 输 入 泄 漏 电 流 模 拟 比 较 器 传 输 延 迟 正 常 4 MHz, V CC = 3V (ATmega8L) 正 常 8 MHz, V CC = 5V (ATmega8) 空 闲 4 MHz, V CC = 3V (ATmega8L) 空 闲 8 MHz, V CC = 5V (ATmega8) 5 ma 5 ma 2 ma 7 ma WDT 使 能, V CC = 3V 28 µa WDT 禁 止, V CC = 3V 3 µa V CC = 5V V in = V CC /2 V CC = 5V V in = V CC /2 V CC = 2.7V V CC = 4.V 典 型 值 最 大 值 单 位 2 mv -5 5 na Notes:. 最 大 值 表 示 保 证 引 脚 读 取 数 值 为 低 时 的 最 高 值 2. 最 小 值 表 示 保 证 引 脚 读 取 数 值 为 高 时 的 最 低 值 3. 虽 然 在 稳 定 状 态 条 件 ( 非 瞬 态 ) 下 每 个 I/O 端 口 都 可 以 吸 收 比 测 试 条 件 下 更 多 的 电 流 (2 ma,v CC = 5V 以 及 ma,v CC = 3V), 但 是 需 要 遵 循 以 下 要 求 : PDIP 封 装 : ] 所 有 端 口 的 IOL 总 和 不 能 超 过 4 ma 2] 端 口 C - C5 的 IOL 总 和 不 能 超 过 2 ma 3] 端 口 B - B7 C6 D - D7 及 XTAL2 的 IOL 总 和 不 能 超 过 ma TQFP 与 MLF 封 装 : ] 所 有 端 口 的 IOL 总 和 不 能 超 过 4 ma 2] 端 口 C - C5 的 IOL 总 和 不 能 超 过 2 ma 3] 端 口 C6 D - D4 的 IOL 总 和 不 能 超 过 3 ma 4] 端 口 B - B7 D5 - D7 的 IOL 总 和 不 能 超 过 3 ma 如 果 IOL 超 出 了 测 试 条 件, VOL 可 能 超 过 指 标 不 保 证 引 脚 可 以 吸 收 比 列 于 此 处 的 测 试 条 件 更 大 的 电 流 4. 虽 然 在 稳 定 状 态 条 件 ( 非 瞬 态 ) 下 每 个 I/O 端 口 都 可 以 输 出 比 测 试 条 件 下 更 多 的 电 流 (2 ma,v CC = 5V 以 及 ma,v CC = 3V), 但 是 需 要 遵 循 以 下 要 求 : PDIP 封 装 : ] 所 有 端 口 的 IOH 总 和 不 能 超 过 4 ma 2] 端 口 C - C5 的 IOH 总 和 不 能 超 过 ma 3] 端 口 B - B7 C6 D - D7 及 XTAL2 的 IOH 总 和 不 能 超 过 ma TQFP 与 MLF 封 装 : ] 所 有 端 口 的 IOH 总 和 不 能 超 过 4 ma 2] 端 口 C - C5 的 IOH 总 和 不 能 超 过 2 ma 3] 端 口 C6 D - D4 的 IOH 总 和 不 能 超 过 3 ma 4] 端 口 B - B7 D5 - D7 的 IOH 总 和 不 能 超 过 3 ma 如 果 IOH 超 出 了 测 试 条 件, VOH 可 能 超 过 指 标 不 保 证 引 脚 可 以 输 出 比 列 于 此 处 的 测 试 条 件 更 大 的 电 流 5. 掉 电 模 式 下 的 最 小 V CC 为 2.5V 75 5 ns 227

228 外 部 时 钟 驱 动 波 形 Figure 4. 外 部 时 钟 驱 动 波 形 V IH V IL 外 部 时 钟 驱 动 Table 99. 外 部 时 钟 驱 动 V CC = 2.7V - 5.5V V CC = 4.5V - 5.5V 符 号 参 数 最 小 值 最 大 值 最 小 值 最 大 值 单 位 /t CLCL 振 荡 器 频 率 8 6 MHz t CLCL 时 钟 周 期 ns t CHCX 高 电 平 时 间 5 25 ns t CLCX 低 电 平 时 间 5 25 ns t CLCH 上 升 时 间.6.5 µs t CHCL 下 降 时 间.6.5 µs t CLCL 时 钟 周 期 的 变 化 2 2 % Table. 外 部 RC 振 荡 器, 典 型 频 率 R [kω] () C [pf] f (2) khz khz MHz Notes:. R 的 取 值 范 围 为 3 kω - kω,c 至 少 应 该 为 2 pf 表 中 C 值 包 括 引 脚 电 容,C 值 随 封 装 形 式 而 变 化 2. 频 率 因 封 装 形 式 与 板 层 的 不 同 而 不 同 228 ATmega8(L)

229 ATmega8(L) 两 线 串 行 接 口 特 性 Table 描 述 了 连 接 到 两 线 串 行 总 线 上 的 器 件 的 要 求 ATmega8 的 两 线 接 口 满 足 或 超 出 此 处 列 出 的 要 求 时 序 符 号 请 参 考 Figure 5 Table. 两 线 串 行 总 线 要 求 符 号 参 数 条 件 最 小 值 最 大 值 单 位 V IL 输 入 低 电 压 V CC V V IH 输 入 高 电 压.7 V CC V CC +.5 V V hys () 施 密 特 触 发 器 输 入 的 迟 滞 电 压.5 V CC (2) Notes:. 对 于 ATmega8, 此 参 数 是 特 性 参 数, 没 有 经 过 % 的 测 试 2. 只 有 当 f SCL > khz 时 才 需 要 3. C b = 总 线 的 一 条 线 的 电 容 4. f CK = CPU 时 钟 频 率 V V OL () 输 出 低 电 压 3 ma 漏 电 流.4 V t r () t of () SDA 和 SCL 的 上 升 时 间 2 +.C b (3)(2) 由 V IHmin 到 V ILmax 的 输 出 下 降 时 间 pf < C b < 4 pf (3) 2 +.C b (3)(2) 3 ns 25 ns t SP () 输 入 滤 波 器 抑 制 的 尖 峰 时 间 5 (2) ns I i 每 个 I/O 引 脚 的 输 入 电 流.V CC < V i <.9V CC - µa C i () 每 个 I/O 引 脚 的 电 容 pf f SCL SCL 时 钟 频 率 f CK (4) > max(6f SCL, 25kHz) (5) 4 khz Rp 上 拉 电 阻 值 t HD;STA START 条 件 的 保 持 时 间 ( 重 复 ) t LOW t HIGH t SU;STA t HD;DAT t SU;DAT t SU;STO t BUF SCL 时 钟 的 低 电 平 时 间 SCL 时 钟 的 高 电 平 时 间 重 复 STARTS 条 件 的 建 立 时 间 数 据 保 持 时 间 数 据 建 立 时 间 STOP 条 件 的 建 立 时 间 STOP 和 START 之 间 的 总 线 空 闲 时 间 f SCL khz f SCL > khz V CC,4V mA V CC,4V mA ns Ω C b 3ns Ω C b f SCL khz 4. µs f SCL > khz.6 µs f SCL khz (6) 4.7 µs f SCL > khz (7).3 µs f SCL khz 4. µs f SCL > khz.6 µs f SCL khz 4.7 µs f SCL > khz.6 µs f SCL khz 3.45 µs f SCL > khz.9 µs f SCL khz 25 ns f SCL > khz ns f SCL khz 4. µs f SCL > khz.6 µs f SCL khz 4.7 µs f SCL > khz.3 µs 229

230 t HD;STA t HD;DAT tsu;dat t SU;STO 5. 此 要 求 适 用 于 ATmega8 所 有 的 两 线 串 行 接 口 的 操 作 其 他 连 接 到 两 线 串 行 总 线 的 器 件 只 需 要 满 足 一 般 的 f SCL 要 求 即 可 6. ATmega8 两 线 串 行 接 口 实 际 产 生 的 低 电 平 时 间 为 (/f SCL - 2/f CK ) 因 此 为 了 严 格 满 足 f SCL = khz 时 低 电 平 时 间 的 要 求 f CK 必 须 大 于 6 MHz 7. ATmega8 两 线 串 行 接 口 实 际 产 生 的 低 电 平 时 间 为 (/f SCL - 2/f CK ) 因 此 在 f CK = 8 MHz, 且 f SCL > 38 khz 时 低 电 平 时 间 无 法 严 格 满 足 要 求 然 而, ATmega8 可 以 与 其 他 ATmega8 以 全 速 (4 khz) 进 行 通 讯 若 其 他 器 件 具 有 合 适 的 t LOW 接 受 裕 量 也 可 以 做 到 这 一 点 Figure 5. 两 线 串 行 总 线 时 序 t of t HIGH t r t LOW t LOW SCL t SU;STA SDA t BUF SPI 时 序 特 性 具 体 信 息 请 参 见 Figure 6 和 Figure 7 Table 2. SPI 时 序 参 数 说 明 模 式 最 小 值 典 型 值 SCK 周 期 主 机 见 Table 5 2 SCK 高 / 低 电 平 主 机 占 空 比 5% 3 上 升 / 下 降 时 间 主 机 建 立 时 间 主 机 5 保 持 时 间 主 机 最 大 值 6 输 出 到 SCK 主 机.5 t SCK 7 SCK 到 输 出 主 机 8 SCK 到 输 出 高 电 平 主 机 9 SS 低 到 输 出 从 机 5 SCK 周 期 从 机 4 t ck ns SCK 高 / 低 电 平 从 机 2 t ck 2 上 升 / 下 降 时 间 从 机.6 3 建 立 时 间 从 机 4 保 持 时 间 从 机 5 SCK 到 输 出 从 机 5 6 SCK 到 SS 高 从 机 2 7 SS 高 到 三 态 从 机 8 SS 低 到 SCK 从 机 2 t ck Note:. SPI 编 程 模 式 中, 最 小 的 SCK 高 / 低 周 期 为 : f CK < 2 MHz:- 2t CLCL f CK > 2 MHz:- 3t CLCL 23 ATmega8(L)

231 ATmega8(L) Figure 6. SPI 接 口 时 序 要 求 ( 主 机 模 式 ) SS 6 SCK (CPOL = ) 2 2 SCK (CPOL = ) MISO (Data Input) MSB 7... LSB 8 MOSI (Data Output) MSB... LSB Figure 7. SPI 接 口 时 序 要 求 ( 从 机 模 式 ) SS SCK (CPOL = ) SCK (CPOL = ) MOSI (Data Input) MSB 5... LSB 7 MISO (Data Output) MSB... LSB X 23

232 交 流 特 性 Table 3. ADC 特 性 参 数 () 符 号 参 数 条 件 最 小 值 Notes:. 数 值 仅 作 为 参 考 2. AV CC 的 最 小 值 为 2.7V 3. AV CC 的 最 大 值 为 5.5V () 典 型 值 () 最 大 值 分 辨 率 单 极 性 转 换 Bits 绝 对 精 度 ( 包 括 INL, DNL, 量 化 误 差, Gain, 与 偏 置 误 差 ) 积 分 非 线 性 (INL) 差 分 非 线 性 (DNL) 增 益 误 差 偏 置 误 差 单 极 性 转 换 V REF = 4V, V CC = 4V ADC 时 钟 = 2 khz 单 极 性 转 换 V REF = 4V, V CC = 4V ADC 时 钟 = MHz 单 位.75 LSB 3 LSB 单 极 性 转 换 V REF = 4V, V CC = 4V ADC 时 钟 = 2 khz.75 LSB 单 极 性 转 换 V REF = 4V, V CC = 4V ADC 时 钟 = 2 khz.5 LSB 单 极 性 转 换 V REF = 4V, V CC = 4V ADC 时 钟 = 2 khz 单 极 性 转 换 V REF = 4V, V CC = 4V ADC 时 钟 = 2 khz LSB LSB 转 换 时 间 连 续 转 换 3 26 µs 时 钟 频 率 5 khz AV CC 模 拟 电 压 V CC -.3 (2) V CC +.3 (3) V V REF 参 考 电 压 2. AV CC V V IN 模 拟 电 压 GND V REF V 输 入 带 宽 38.5 khz V INT 内 部 电 压 基 准 V R REF 参 考 输 入 端 电 阻 32 kω R AIN 模 拟 输 入 电 阻 55 MΩ 232 ATmega8(L)

233 ATmega8(L) ATmega8 典 型 特 性 工 作 电 流 下 面 图 表 给 出 了 典 型 数 据 这 些 数 据 在 产 生 过 程 没 有 进 行 测 试 所 有 的 电 流 测 量 数 据 都 是 在 所 有 的 I/O 引 脚 配 置 为 输 入 且 内 部 上 拉 电 阻 使 能 的 条 件 下 测 得 的 时 钟 源 为 外 部 正 弦 波 发 生 器 产 生 的 满 幅 值 正 弦 波 掉 电 模 式 下 的 电 流 与 时 钟 无 关 电 流 与 多 个 因 素 有 关, 如 : 工 作 电 压 工 作 频 率 I/O 引 脚 的 负 载 及 电 平 转 换 频 率 执 行 的 代 码 和 环 境 温 度 主 要 因 素 为 工 作 电 压 和 工 作 频 率 容 性 负 载 引 脚 的 电 流 可 以 通 过 公 式 C L *V CC *f 进 行 估 计 式 中, C L 为 负 载 电 容, V CC 为 工 作 电 压, f 为 引 脚 的 平 均 开 关 频 率 器 件 的 特 性 参 数 为 比 测 试 上 限 更 高 的 频 率 下 的 数 据 但 是 不 保 证 器 件 在 比 定 货 信 息 标 明 的 工 作 频 率 更 高 的 频 率 功 能 正 常 工 作 掉 电 模 式 下 看 门 狗 使 能 与 看 门 狗 禁 止 之 间 的 电 流 差 异 即 是 看 门 狗 定 时 器 所 需 的 工 作 电 流 Figure 8. 工 作 电 流 和 工 作 频 率 (. -. MHz) 的 关 系 3 ACTIVE SUPPLY CURRENT vs. FREQUENCY. -. MHz ICC (ma) V 5.V 4.5V 4.V 3.3V 3.V 2.7V Frequency (MHz) 233

234 Figure 9. 工 作 电 流 和 工 作 频 率 ( - 2 MHz) 的 关 系 ACTIVE SUPPLY CURRENT vs. FREQUENCY - 2 MHz 5.5V 5.V 4.5V ICC (ma) V 3.V 3.3V Frequency (MHz) Figure 2. 工 作 电 流 和 V CC 的 关 系 ( 内 部 RC 振 荡 器, 8 MHz) 8 ACTIVE SUPPLY CURRENT vs. V CC INTERNAL RC OSCILLATOR, 8 MHz C 25 C 85 C ICC (ma) V CC (V) 234 ATmega8(L)

235 ATmega8(L) Figure 2. 工 作 电 流 和 V CC 的 关 系 ( 内 部 RC 振 荡 器, 4 MHz) 2 ACTIVE SUPPLY CURRENT vs. V CC INTERNAL RC OSCILLATOR, 4 MHz ICC (ma) C 25 C 85 C V CC (V) Figure 22. 工 作 电 流 和 V CC 的 关 系 ( 内 部 RC 振 荡 器, 2 MHz) ACTIVE SUPPLY CURRENT vs. V CC INTERNAL RC OSCILLATOR, 2 MHz 25 C -4 C 85 C ICC (ma) V CC (V) 235

236 Figure 23. 工 作 电 流 和 V CC 的 关 系 ( 内 部 RC 振 荡 器, MHz) 3.5 ACTIVE SUPPLY CURRENT vs. V CC INTERNAL RC OSCILLATOR, MHz C -4 C 85 C ICC (ma) V CC (V) Figure 24. 工 作 电 流 和 V CC 的 关 系 (32 khz 外 部 晶 振 ) 2 ACTIVE SUPPLY CURRENT vs. V CC 32kHz EXTERNAL OSCILLATOR 8 25 C ICC (ua) V CC (V) 236 ATmega8(L)

237 ATmega8(L) 空 闲 模 式 电 流 Figure 25. 空 闲 模 式 电 流 和 工 作 频 率 (. -. MHz) 的 关 系 ICC (ma) IDLE SUPPLY CURRENT vs. FREQUENCY. -. MHz 5.5V 5.V 4.5V 4.V 3.3V 3.V 2.7V Frequency (MHz) Figure 26. 空 闲 模 式 电 流 和 工 作 频 率 ( - 2 MHz) 的 关 系 4 2 IDLE SUPPLY CURRENT vs. FREQUENCY - 2 MHz 5.5V 5.V 4.5V ICC (ma) V 4 3.3V 2 3.V 2.7V Frequency (MHz) 237

238 Figure 27. 空 闲 模 式 电 流 和 V CC 的 关 系 ( 内 部 RC 振 荡 器, 8 MHz) IDLE SUPPLY CURRENT vs. V CC INTERNAL RC OSCILLATOR, 8 MHz -4 C 25 C 85 C 5 ICC (ma) V CC (V) Figure 28. 空 闲 模 式 电 流 和 V CC 的 关 系 ( 内 部 RC 振 荡 器, 4 MHz) IDLE SUPPLY CURRENT vs. V CC INTERNAL RC OSCILLATOR, 4 MHz -4 C 25 C 85 C 2.5 ICC (ma) V CC (V) 238 ATmega8(L)

239 ATmega8(L) Figure 29. 空 闲 模 式 电 流 和 V CC 的 关 系 ( 内 部 RC 振 荡 器, 2 MHz) IDLE SUPPLY CURRENT vs. V CC INTERNAL RC OSCILLATOR, 2 MHz -4 C 85 C 25 C ICC (ma) V CC (V) Figure 3. 空 闲 模 式 电 流 和 V CC 的 关 系 ( 内 部 RC 振 荡 器, MHz) ICC (ma) IDLE SUPPLY CURRENT vs. V CC INTERNAL RC OSCILLATOR, MHz 85 C 25 C -4 C V CC (V) 239

240 Figure 3. 空 闲 模 式 电 流 和 V CC 的 关 系 (32 khz 外 部 晶 振 ) 4 IDLE SUPPLY CURRENT vs. V CC 32kHz EXTERNAL OSCILLATOR C 3 25 ICC (ua) V CC (V) 掉 电 模 式 电 流 Figure 32. 掉 电 模 式 电 流 和 V CC 的 关 系 ( 看 门 狗 定 时 器 禁 用 ) 2.5 POWER-DOWN SUPPLY CURRENT vs. V CC WATCHDOG TIMER DISABLED 85 C 2 ICC (ua).5-4 C 25 C V CC (V) 24 ATmega8(L)

241 ATmega8(L) Figure 33. 掉 电 模 式 电 流 和 V CC 的 关 系 ( 看 门 狗 定 时 器 使 能 ) 8 POWER-DOWN SUPPLY CURRENT vs. V CC WATCHDOG TIMER ENABLED C 25 C -4 C 5 ICC (ua) V CC (V) 省 电 模 式 电 流 Figure 34. 省 电 模 式 电 流 和 V CC 的 关 系 ( 看 门 狗 定 时 器 禁 用 ) 25 POWER-SAVE SUPPLY CURRENT vs. V CC WATCHDOG TIMER DISABLED 2 25 C ICC (ua) V CC (V) 24

242 Standby 模 式 电 流 Figure 35. Standby 模 式 电 流 和 V CC 的 关 系 (455 khz 谐 振 器, 看 门 狗 定 时 器 禁 用 ) 8 STANDBY SUPPLY CURRENT vs. V CC 455 khz RESONATOR, WATCHDOG TIMER DISABLED ICC (ua) V CC (V) Figure 36. Standby 模 式 电 流 和 V CC 的 关 系 ( MHz 谐 振 器, 看 门 狗 定 时 器 禁 用 ) 7 STANDBY SUPPLY CURRENT vs. V CC MHz RESONATOR, WATCHDOG TIMER DISABLED 6 5 ICC (ua) V CC (V) 242 ATmega8(L)

243 ATmega8(L) Figure 37. Standby 模 式 电 流 和 V CC 的 关 系 (2 MHz 谐 振 器, 看 门 狗 定 时 器 禁 用 ) 9 STANDBY SUPPLY CURRENT vs. V CC 2 MHz RESONATOR, WATCHDOG TIMER DISABLED ICC (ua) V CC (V) Figure 38. Standby 模 式 电 流 和 V CC 的 关 系 (2 MHz Xtal, 看 门 狗 定 时 器 禁 用 ) 9 STANDBY SUPPLY CURRENT vs. V CC 2 MHz XTAL, WATCHDOG TIMER DISABLED ICC (ua) V CC (V) 243

244 Figure 39. Standby 模 式 电 流 和 V CC 的 关 系 (4 MHz 谐 振 器, 看 门 狗 定 时 器 禁 用 ) 4 STANDBY SUPPLY CURRENT vs. V CC 4 MHz RESONATOR, WATCHDOG TIMER DISABLED 2 ICC (ua) V CC (V) Figure 4. Standby 模 式 电 流 和 V CC 的 关 系 (4 MHz Xtal, 看 门 狗 定 时 器 禁 用 ) 4 STANDBY SUPPLY CURRENT vs. V CC 4 MHz XTAL, WATCHDOG TIMER DISABLED 2 ICC (ua) V CC (V) 244 ATmega8(L)

245 ATmega8(L) Figure 4. Standby 模 式 电 流 和 V CC 的 关 系 (6 MHz 谐 振 器, 看 门 狗 定 时 器 禁 用 ) 6 STANDBY SUPPLY CURRENT vs. V CC 6 MHz RESONATOR, WATCHDOG TIMER DISABLED 4 2 ICC (ua) V CC (V) Figure 42. Standby 模 式 电 流 和 V CC 的 关 系 (6 MHz Xtal, 看 门 狗 定 时 器 禁 用 ) 2 STANDBY SUPPLY CURRENT vs. V CC 6 MHz XTAL, WATCHDOG TIMER DISABLED ICC (ua) V CC (V) 245

246 引 脚 上 拉 Figure 43. I/O 引 脚 上 拉 电 阻 电 流 和 输 入 电 压 的 关 系 (V CC = 5V) 6 85 C C 25 C I/O PIN PULL-UP RESISTOR CURRENT vs. INPUT VOLTAGE Vcc = 5V IIO (ua) V OP (V) Figure 44. I/O 引 脚 上 拉 电 阻 电 流 和 输 入 电 压 的 关 系 (V CC = 2.7V) 9 I/O PIN PULL-UP RESISTOR CURRENT vs. INPUT VOLTAGE Vcc = 2.7V 8 85 C 25 C 7-4 C 6 IIO (ua) V OP (V) 246 ATmega8(L)

247 ATmega8(L) Figure 45. 复 位 (Reset) 引 脚 上 拉 电 阻 电 流 和 Reset 引 脚 电 压 的 关 系 (V CC = 5V) - 4 C 8 RESET PULL-UP RESISTOR CURRENT vs. RESET PIN VOLTAGE Vcc = 5V 25 C 85 C IRESET (ua) V RESET (V) Figure 46. 复 位 (Reset) 引 脚 上 拉 电 阻 电 流 和 Reset 引 脚 电 压 的 关 系 (V CC = 2.7V) 45-4 C C 25 C RESET PULL-UP RESISTOR CURRENT vs. RESET PIN VOLTAGE Vcc = 2.7V IRESET (ua) V RESET (V) 247

248 驱 动 能 力 Figure 47. I/O 引 脚 源 电 流 和 输 出 电 压 的 关 系 (V CC = 5V) I/O PIN SOURCE CURRENT vs. OUTPUT VOLTAGE Vcc = 5V -4 C 25 C 85 C IOH (ma) V OH (V) Figure 48. I/O 引 脚 源 电 流 和 输 出 电 压 的 关 系 (V CC = 2.7V) I/O PIN SOURCE CURRENT vs. OUTPUT VOLTAGE Vcc = 2.7V -4 C 25 C 85 C IOH (ma) V OH (V) 248 ATmega8(L)

249 ATmega8(L) Figure 49. I/O 引 脚 漏 电 流 和 输 出 电 压 的 关 系 (V CC = 5V) 9 I/O PIN SINK CURRENT vs. OUTPUT VOLTAGE Vcc = 5V IOL (ma) C 25 C 85 C V OL (V) Figure 5. I/O 引 脚 漏 电 流 和 输 出 电 压 的 关 系 (V CC = 2.7V) 35 I/O PIN SINK CURRENT vs. OUTPUT VOLTAGE Vcc = 2.7V IOL (ma) C 25 C 85 C V OL (V) 249

250 Figure 5. Reset 引 脚 作 为 I/O 引 脚 源 电 流 与 输 出 电 压 的 关 系 (V CC = 5V) 4 RESET PIN AS I/O - SOURCE CURRENT vs. OUTPUT VOLTAGE Vcc = 5V Current (ma) C 25 C 85 C V OH (V) Figure 52. Reset 引 脚 作 为 I/O 引 脚 源 电 流 与 输 出 电 压 的 关 系 (V CC = 2.7V) 5 RESET PIN AS I/O - SOURCE CURRENT vs. OUTPUT VOLTAGE Vcc = 2.7V C -4 C Current (ma) C V OH (V) 25 ATmega8(L)

251 ATmega8(L) Figure 53. Reset 引 脚 作 为 I/O 引 脚 漏 电 流 与 输 出 电 压 的 关 系 (V CC = 5V) Current (ma) RESET PIN AS I/O - SINK CURRENT vs. OUTPUT VOLTAGE Vcc = 5V -4 C 25 C 85 C V OL (V) Figure 54. Reset 引 脚 作 为 I/O 引 脚 漏 电 流 与 输 出 电 压 的 关 系 (V CC = 2.7V) Current (ma) RESET PIN AS I/O - SINK CURRENT vs. OUTPUT VOLTAGE Vcc = 2.7V -4 C 25 C 85 C V OL (V) 25

252 引 脚 门 限 及 滞 后 Figure 55. I/O 引 脚 输 入 门 限 电 压 和 V CC 的 关 系 (V IH, I/O 引 脚 读 出 值 为 ) 2.5 I/O PIN INPUT THRESHOLD VOLTAGE vs. V CC VIH, IO PIN READ AS '' 2-4 C 85 C 25 C Threshold (V) V CC (V) Figure 56. I/O 引 脚 输 入 门 限 电 压 和 V CC 的 关 系 (V IL, I/O 引 脚 读 出 值 为 ) 2 I/O PIN INPUT THRESHOLD VOLTAGE vs. V CC VIL, IO PIN READ AS ''.5-4 C 25 C 85 C Threshold (V) V CC (V) 252 ATmega8(L)

253 ATmega8(L) Figure 57. I/O 引 脚 输 入 迟 滞 和 V CC 的 关 系.7 I/O PIN INPUT HYSTERESIS vs. V CC Input Hysteresis (V) C -4 C 25 C V CC (V) Figure 58. Reset 引 脚 作 为 I/O 输 入 门 限 电 压 和 V CC 的 关 系 (V IH,Reset 引 脚 读 出 值 为 ) RESET PIN AS I/O - INPUT THRESHOLD VOLTAGE vs. V CC VIH, RESET PIN READ AS '' -4 C 85 C 25 C Threshold (V) V CC (V) 253

254 Figure 59. Reset 引 脚 作 为 I/O 输 入 门 限 电 压 和 V CC 的 关 系 (V IL,Reset 引 脚 读 出 值 为 ) RESET PIN AS I/O - INPUT THRESHOLD VOLTAGE vs. V CC VIL, RESET PIN READ AS '' 85 C 25 C -4 C Threshold (V) V CC (V) Figure 6. Reset 引 脚 作 为 I/O 引 脚 迟 滞 和 V CC 的 关 系 2 RESET PIN AS I/O - PIN HYSTERESIS vs. V CC Input Hysteresis (V).5-4 C 85 C 25 C V CC (V) 254 ATmega8(L)

255 ATmega8(L) Figure 6. Reset 输 入 门 限 电 压 和 V CC 的 关 系 (V IH,Reset 引 脚 读 出 值 为 ) 2.5 RESET INPUT THRESHOLD VOLTAGE vs. V CC VIH, RESET PIN READ AS '' 2-4 C 25 C 85 C Threshold (V) V CC (V) Figure 62. Reset 输 入 门 限 电 压 和 V CC 的 关 系 (V IL,Reset 引 脚 读 出 值 为 ) 2.5 RESET INPUT THRESHOLD VOLTAGE vs. V CC VIL, RESET PIN READ AS '' Threshold (V) C 25 C -4 C V CC (V) 255

256 Figure 63. Reset 输 入 迟 滞 和 V CC 的 关 系 RESET INPUT PIN HYSTERESIS vs. V CC Input Hysteresis (V) C 25 C 85 C V CC (V) BOD 门 限 值 与 模 拟 比 较 器 偏 移 量 Figure 64. BOD 门 限 值 和 温 度 的 关 系 (BOD 电 平 为 4.V) 4.3 BOD THRESHOLDS vs. TEMPERATURE BODLEVEL IS 4.V 4.2 Rising V CC Threshold (V) Falling V CC Temperature ( C) 256 ATmega8(L)

257 ATmega8(L) Figure 65. BOD 门 限 值 和 温 度 的 关 系 (BOD 电 平 为 2.7v) 2.8 BOD THRESHOLDS vs. TEMPERATURE BODLEVEL IS 2.7V 2.7 Rising V CC Threshold (V) Falling V CC Temperature ( C) Figure 66. 能 隙 电 压 和 V CC 的 关 系.35 BANDGAP VOLTAGE vs. V CC.3-4 Bandgap Voltage (V) Vcc (V) 257

258 Figure 67. 模 拟 比 较 器 偏 置 电 压 和 共 模 电 压 的 关 系 (V CC = 5V).3 ANALOG COMPARATOR OFFSET VOLTAGE vs. COMMON MODE VOLTAGE V CC = 5V.2 Comparator Offset Voltage (V) C Common Mode Voltage (V) Figure 68. 模 拟 比 较 器 偏 置 电 压 和 共 模 电 压 的 关 系 (V CC = 2.7V).3 ANALOG COMPARATOR OFFSET VOLTAGE vs. COMMON MODE VOLTAGE V CC = 2.7V.2 Comparator Offset Voltage (V) Common Mode Voltage (V) 258 ATmega8(L)

259 ATmega8(L) 内 部 振 荡 器 速 率 Figure 69. 看 门 狗 振 荡 器 频 率 和 V CC 的 关 系 WATCHDOG OSCILLATOR FREQUENCY vs. V CC C 25 C 85 C 2 FRC (khz) V CC (V) Figure 7. 校 准 的 8 MHz RC 振 荡 器 频 率 和 温 度 的 关 系 CALIBRATED 8MHz RC OSCILLATOR FREQUENCY vs. TEMPERATURE FRC (MHz) V 4.V 2.7V Temperature ( C) 259

260 Figure 7. 校 准 的 8 MHz RC 振 荡 器 频 率 和 V CC 的 关 系 CALIBRATED 8MHz RC OSCILLATOR FREQUENCY vs. V CC FRC (MHz) C 25 C 85 C V CC (V) Figure 72. 校 准 的 8 MHz RC 振 荡 器 频 率 和 Osccal 数 值 的 关 系 6 CALIBRATED 8MHz RC OSCILLATOR FREQUENCY vs. OSCCAL VALUE 4 2 FRC (MHz) OSCCAL VALUE 26 ATmega8(L)

261 ATmega8(L) Figure 73. 校 准 的 4 MHz RC 振 荡 器 频 率 和 温 度 的 关 系 4.2 CALIBRATED 4MHz RC OSCILLATOR FREQUENCY vs. TEMPERATURE V 4.V FRC (MHz) V Temperature ( C) Figure 74. 校 准 的 4 MHz RC 振 荡 器 频 率 和 V CC 的 关 系 4.2 CALIBRATED 4MHz RC OSCILLATOR FREQUENCY vs. V CC FRC (MHz) C 25 C 85 C V CC (V) 26

262 Figure 75. 校 准 的 4 MHz RC 振 荡 器 频 率 和 Osccal 数 值 的 关 系 8 CALIBRATED 4MHz RC OSCILLATOR FREQUENCY vs. OSCCAL VALUE 7 6 FRC (MHz) OSCCAL VALUE Figure 76. 校 准 的 2 MHz RC 振 荡 器 频 率 和 温 度 的 关 系 2. CALIBRATED 2MHz RC OSCILLATOR FREQUENCY vs. TEMPERATURE V 2 4.V FRC (MHz) V Temperature ( C) 262 ATmega8(L)

263 ATmega8(L) Figure 77. 校 准 的 2 MHz RC 振 荡 器 频 率 和 V CC 的 关 系 2.2 CALIBRATED 2MHz RC OSCILLATOR FREQUENCY vs. V CC FRC (MHz) C 25 C 85 C V CC (V) Figure 78. 校 准 的 2 MHz RC 振 荡 器 频 率 和 Osccal 数 值 的 关 系 3.8 CALIBRATED 2MHz RC OSCILLATOR FREQUENCY vs. OSCCAL VALUE FRC (MHz) OSCCAL VALUE 263

264 Figure 79. 校 准 的 MHz RC 振 荡 器 频 率 和 温 度 的 关 系 CALIBRATED MHz RC OSCILLATOR FREQUENCY vs. TEMPERATURE V 4.V FRC (MHz) V Temperature ( C) Figure 8. 校 准 的 MHz RC 振 荡 器 频 率 和 V CC 的 关 系. CALIBRATED MHz RC OSCILLATOR FREQUENCY vs. V CC FRC (MHz).5-4 C 25 C 85 C V CC (V) 264 ATmega8(L)

265 ATmega8(L) Figure 8. 校 准 的 MHz RC 振 荡 器 频 率 和 Osccal 数 值 的 关 系.9 CALIBRATED MHz RC OSCILLATOR FREQUENCY vs. OSCCAL VALUE.7.5 FRC (MHz) OSCCAL VALUE 外 围 设 备 耗 电 流 Figure 82. BOD 电 流 和 V CC 的 关 系 BROWN-OUT DETECTOR CURRENT vs. V CC 3 25 ICC (ua) C 25 C 85 C V CC (V) 265

266 Figure 83. ADC 电 流 和 V CC 的 关 系 (AREF = AV CC ) 45 ADC CURRENT vs. V CC AREF = AVCC C 85 C 25 C ICC (ua) V CC (V) Figure 84. AREF 外 部 参 考 电 流 和 V CC 的 关 系 25 AREF EXTERNAL REFERENCE CURRENT vs. V CC ICC (ua) C -4 C 85 C V CC (V) 266 ATmega8(L)

267 ATmega8(L) Figure khz TOSC 电 流 与 V CC 的 关 系 ( 看 门 狗 定 时 器 禁 用 ) khz TOSC CURRENT vs. V CC WATCHDOG TIMER DISABLED 2 25 C 5 ICC (ua) V CC (V) Figure 86. 看 门 狗 定 时 器 电 流 与 V CC 的 关 系 8 WATCHDOG TIMER CURRENT vs. V CC C 25 C -4 C 5 ICC (ua) V CC (V) 267

268 Figure 87. 模 拟 比 较 器 电 流 与 V CC 的 关 系 ANALOG COMPARATOR CURRENT vs. V CC C 25 C -4 C 6 ICC (ua) V CC (V) Figure 88. 编 程 电 流 和 V CC 的 关 系 PROGRAMMING CURRENT vs. V CC ICC (ma) C 25 C 85 C V CC (V) 268 ATmega8(L)

269 ATmega8(L) 复 位 与 复 位 脉 宽 耗 电 流 Figure 89. 复 位 电 流 与 V CC 的 关 系 (. -. MHz, 包 括 通 过 复 位 上 拉 电 阻 的 电 流 ) ICC (ma) RESET SUPPLY CURRENT vs. V CC. - MHz, EXCLUDING CURRENT THROUGH THE RESET PULL-UP 5.5V 5.V 4.5V 4.V 3.3V 3.V 2.7V Frequency (MHz) Figure 9. 复 位 电 流 与 V CC 的 关 系 ( - 2 MHz, 包 括 通 过 复 位 上 拉 电 阻 的 电 流 ) 25 RESET SUPPLY CURRENT vs. V CC - 2 MHz, EXCLUDING CURRENT THROUGH THE RESET PULL-UP 5.5V ICC (ma) V 5.V 4.5V 5 3.V 2.7V Frequency (MHz) 269

270 Figure 9. 复 位 脉 宽 与 V CC 的 关 系 RESET PULSE WIDTH vs. V CC 4 2 Pulsewidth (ns) C 25 C -4 C V CC (V) 27 ATmega8(L)

271 ATmega8(L) 寄 存 器 概 述 地 址 名 称 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit Bit 页 码 x3f (x5f) SREG I T H S V N Z C 9 x3e (x5e) SPH SP SP9 SP8 x3d (x5d) SPL SP7 SP6 SP5 SP4 SP3 SP2 SP SP x3c (x5c) 保 留 x3b (x5b) GICR INT INT IVSEL IVCE 46, 63 x3a (x5a) GIFR INTF INTF 64 x39 (x59) TIMSK OCIE2 TOIE2 TICIE OCIEA OCIEB TOIE TOIE 68, 94, 3 x38 (x58) TIFR OCF2 TOV2 ICF OCFA OCFB TOV TOV 69, 94, 3 x37 (x57) SPMCR SPMIE RWWSB RWWSRE BLBSET PGWRT PGERS SPMEN 2 x36 (x56) TWCR TWINT TWEA TWSTA TWSTO TWWC TWEN TWIE 58 x35 (x55) MCUCR SE SM2 SM SM ISC ISC ISC ISC 3, 62 x34 (x54) MCUCSR WDRF BORF EXTRF PORF 38 x33 (x53) TCCR CS2 CS CS 68 x32 (x52) TCNT T/C (8 位 ) 68 x3 (x5) OSCCAL 振 荡 器 校 准 寄 存 器 28 x3 (x5) SFIOR ACME PUD PSR2 PSR 55, 7, 4, 8 x2f (x4f) TCCRA COMA COMA COMB COMB FOCA FOCB WGM WGM 89 x2e (x4e) TCCRB ICNC ICES WGM3 WGM2 CS2 CS CS 92 x2d (x4d) TCNTH T/C 计 数 器 寄 存 器 高 字 节 92 x2c (x4c) TCNTL T/C 计 数 器 寄 存 器 低 字 节 92 x2b (x4b) OCRAH T/C 输 出 比 较 寄 存 器 A 高 字 节 93 x2a (x4a) OCRAL T/C 输 出 比 较 寄 存 器 A 低 字 节 93 x29 (x49) OCRBH T/C 输 出 比 较 寄 存 器 B 高 字 节 93 x28 (x48) OCRBL T/C 输 出 比 较 寄 存 器 B 低 字 节 93 x27 (x47) ICRH T/C 输 入 捕 获 寄 存 器 高 字 节 94 x26 (x46) ICRL T/C 输 入 捕 获 寄 存 器 低 字 节 94 x25 (x45) TCCR2 FOC2 WGM2 COM2 COM2 WGM2 CS22 CS2 CS2 8 x24 (x44) TCNT2 T/C2 (8 位 ) x23 (x43) OCR2 T/C2 输 出 比 较 寄 存 器 x22 (x42) ASSR AS2 TCN2UB OCR2UB TCR2UB x2 (x4) WDTCR WDCE WDE WDP2 WDP WDP 4 x2 () (x4) () UBRRH URSEL UBRR[:8] 45 UCSRC URSEL UMSEL UPM UPM USBS UCSZ UCSZ UCPOL 43 xf (x3f) EEARH EEAR8 7 xe (x3e) EEARL EEAR7 EEAR6 EEAR5 EEAR4 EEAR3 EEAR2 EEAR EEAR 7 xd (x3d) EEDR EEPROM 数 据 寄 存 器 7 xc (x3c) EECR EERIE EEMWE EEWE EERE 7 xb (x3b) xa (x3a) x9 (x39) 保 留 保 留 保 留 x8 (x38) PORTB PORTB7 PORTB6 PORTB5 PORTB4 PORTB3 PORTB2 PORTB PORTB 6 x7 (x37) DDRB DDB7 DDB6 DDB5 DDB4 DDB3 DDB2 DDB DDB 6 x6 (x36) PINB PINB7 PINB6 PINB5 PINB4 PINB3 PINB2 PINB PINB 6 x5 (x35) PORTC PORTC6 PORTC5 PORTC4 PORTC3 PORTC2 PORTC PORTC 6 x4 (x34) DDRC DDC6 DDC5 DDC4 DDC3 DDC2 DDC DDC 6 x3 (x33) PINC PINC6 PINC5 PINC4 PINC3 PINC2 PINC PINC 6 x2 (x32) PORTD PORTD7 PORTD6 PORTD5 PORTD4 PORTD3 PORTD2 PORTD PORTD 6 x (x3) DDRD DDD7 DDD6 DDD5 DDD4 DDD3 DDD2 DDD DDD 6 x (x3) PIND PIND7 PIND6 PIND5 PIND4 PIND3 PIND2 PIND PIND 6 xf (x2f) SPDR SPI 数 据 寄 存 器 2 xe (x2e) SPSR SPIF WCOL SPI2X 2 xd (x2d) SPCR SPIE SPE DORD MSTR CPOL CPHA SPR SPR 9 xc (x2c) UDR USART I/O 数 据 寄 存 器 4 xb (x2b) UCSRA RXC TXC UDRE FE DOR PE U2X MPCM 42 xa (x2a) UCSRB RXCIE TXCIE UDRIE RXEN TXEN UCSZ2 RXB8 TXB8 42 x9 (x29) UBRRL USART 波 特 率 寄 存 器 低 字 节 45 x8 (x28) ACSR ACD ACBG ACO ACI ACIE ACIC ACIS ACIS 8 x7 (x27) ADMUX REFS REFS ADLAR MUX3 MUX2 MUX MUX 92 x6 (x26) ADCSRA ADEN ADSC ADFR ADIF ADIE ADPS2 ADPS ADPS 94 x5 (x25) ADCH ADC 数 据 寄 存 器 高 字 节 95 x4 (x24) ADCL ADC 数 据 寄 存 器 低 字 节 95 x3 (x23) TWDR 两 线 串 行 接 口 数 据 寄 存 器 6 x2 (x22) TWAR TWA6 TWA5 TWA4 TWA3 TWA2 TWA TWA TWGCE 6 27

272 寄 存 器 概 述 地 址 名 称 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit Bit 页 码 x (x2) TWSR TWS7 TWS6 TWS5 TWS4 TWS3 TWPS TWPS 6 x (x2) TWBR 两 线 串 行 接 口 位 率 寄 存 器 58 Notes:. 如 何 访 问 UBRRH 与 UCSRC 请 参 见 USART 的 说 明 2. 为 了 和 将 来 器 件 兼 容, 访 问 保 留 位 时 应 该 写 保 留 的 I/O 地 址 不 可 以 执 行 写 操 作 3. 一 些 状 态 标 志 可 以 通 过 写 入 逻 辑 来 清 除 需 要 注 意 的 是, 不 同 于 大 多 数 其 他 的 AVR,CBI 和 SBI 指 令 只 对 一 些 特 殊 位 有 效, 因 此 可 以 对 那 些 包 含 标 志 位 的 寄 存 器 进 行 操 作 CBI 和 SBI 指 令 可 使 用 的 范 围 只 能 是 地 址 为 x - xf 的 寄 存 器 272 ATmega8(L)

273 ATmega8(L) 指 令 集 概 述 指 令 操 作 数 说 明 操 作 标 志 # 时 钟 数 算 数 和 逻 辑 指 令 ADD Rd, Rr 无 进 位 加 法 Rd Rd + Rr Z,C,N,V,H ADC Rd, Rr 带 进 位 加 法 Rd Rd + Rr + C Z,C,N,V,H ADIW Rdl,K 立 即 数 与 字 相 加 Rdh:Rdl Rdh:Rdl + K Z,C,N,V,S 2 SUB Rd, Rr 无 进 位 减 法 Rd Rd - Rr Z,C,N,V,H SUBI Rd, K 减 立 即 数 Rd Rd - K Z,C,N,V,H SBC Rd, Rr 带 进 位 减 法 Rd Rd - Rr - C Z,C,N,V,H SBCI Rd, K 带 进 位 减 立 即 数 Rd Rd - K - C Z,C,N,V,H SBIW Rdl,K 从 字 中 减 立 即 数 Rdh:Rdl Rdh:Rdl - K Z,C,N,V,S 2 AND Rd, Rr 逻 辑 与 Rd Rd Rr Z,N,V ANDI Rd, K 与 立 即 数 的 逻 辑 与 操 作 Rd Rd K Z,N,V OR Rd, Rr 逻 辑 或 Rd Rd v Rr Z,N,V ORI Rd, K 与 立 即 数 的 逻 辑 或 操 作 Rd Rd v K Z,N,V EOR Rd, Rr 异 或 Rd Rd Rr Z,N,V COM Rd 的 补 码 Rd xff Rd Z,C,N,V NEG Rd 2 的 补 码 Rd x Rd Z,C,N,V,H SBR Rd,K 设 置 寄 存 器 的 位 Rd Rd v K Z,N,V CBR Rd,K 寄 存 器 位 清 零 Rd Rd (xff - K) Z,N,V INC Rd 加 一 操 作 Rd Rd + Z,N,V DEC Rd 减 一 操 作 Rd Rd Z,N,V TST Rd 测 试 是 否 为 零 或 负 Rd Rd Rd Z,N,V CLR Rd 寄 存 器 清 零 Rd Rd Rd Z,N,V SER Rd 寄 存 器 置 位 Rd xff None MUL Rd, Rr 无 符 号 数 乘 法 R:R Rd x Rr Z,C 2 MULS Rd, Rr 有 符 号 数 乘 法 R:R Rd x Rr Z,C 2 MULSU Rd, Rr 有 符 号 数 与 无 符 号 数 乘 法 R:R Rd x Rr Z,C 2 FMUL Rd, Rr 无 符 号 小 数 乘 法 R:R (Rd x Rr) << Z,C 2 FMULS Rd, Rr 有 符 号 小 数 乘 法 R:R (Rd x Rr) << Z,C 2 FMULSU Rd, Rr 有 符 号 小 数 与 无 符 号 小 数 乘 法 R:R (Rd x Rr) << Z,C 2 跳 转 指 令 RJMP k 相 对 跳 转 PC PC + k + 无 2 IJMP 间 接 跳 转 到 (Z) PC Z 无 2 RCALL k 相 对 子 程 序 调 用 PC PC + k + 无 3 ICALL 间 接 调 用 (Z) PC Z 无 3 RET 子 程 序 返 回 PC STACK 无 4 RETI 中 断 返 回 PC STACK I 4 CPSE Rd,Rr 比 较, 相 等 则 跳 过 下 一 条 指 令 if (Rd = Rr) PC PC + 2 or 3 无 / 2 / 3 CP Rd,Rr 比 较 Rd Rr Z, N,V,C,H CPC Rd,Rr 带 进 位 比 较 Rd Rr C Z, N,V,C,H CPI Rd,K 与 立 即 数 比 较 Rd K Z, N,V,C,H SBRC Rr, b 寄 存 器 位 为 " 则 跳 过 下 一 条 指 令 if (Rr(b)=) PC PC + 2 or 3 无 / 2 / 3 SBRS Rr, b 寄 存 器 位 为 " 则 跳 过 下 一 条 指 令 if (Rr(b)=) PC PC + 2 or 3 无 / 2 / 3 SBIC P, b I/O 寄 存 器 位 为 " 则 跳 过 下 一 条 指 令 if (P(b)=) PC PC + 2 or 3 无 / 2 / 3 SBIS P, b I/O 寄 存 器 位 为 " 则 跳 过 下 一 条 指 令 if (P(b)=) PC PC + 2 or 3 无 / 2 / 3 BRBS s, k 状 态 寄 存 器 位 为 " 则 跳 过 下 一 条 指 令 if (SREG(s) = ) then PC PC+k + 无 / 2 BRBC s, k 状 态 寄 存 器 位 为 " 则 跳 过 下 一 条 指 令 if (SREG(s) = ) then PC PC+k + 无 / 2 BREQ k 相 等 则 跳 转 if (Z = ) then PC PC + k + 无 / 2 BRNE k 不 相 等 则 跳 转 if (Z = ) then PC PC + k + 无 / 2 BRCS k 进 位 位 为 " 则 跳 转 if (C = ) then PC PC + k + 无 / 2 BRCC k 进 位 位 为 " 则 跳 转 if (C = ) then PC PC + k + 无 / 2 BRSH k 大 于 或 等 于 则 跳 转 if (C = ) then PC PC + k + 无 / 2 BRLO k 小 于 则 跳 转 if (C = ) then PC PC + k + 无 / 2 BRMI k 负 则 跳 转 if (N = ) then PC PC + k + 无 / 2 BRPL k 正 则 跳 转 if (N = ) then PC PC + k + 无 / 2 BRGE k 有 符 号 数 大 于 或 等 于 则 跳 转 if (N V= ) then PC PC + k + 无 / 2 BRLT k 有 符 号 数 负 则 跳 转 if (N V= ) then PC PC + k + 无 / 2 BRHS k 半 进 位 位 为 " 则 跳 转 if (H = ) then PC PC + k + 无 / 2 BRHC k 半 进 位 位 为 " 则 跳 转 if (H = ) then PC PC + k + 无 / 2 BRTS k T 为 " 则 跳 转 if (T = ) then PC PC + k + 无 / 2 BRTC k T 为 " 则 跳 转 if (T = ) then PC PC + k + 无 / 2 BRVS k 溢 出 标 志 为 " 则 跳 转 if (V = ) then PC PC + k + 无 / 2 BRVC k 溢 出 标 志 为 " 则 跳 转 if (V = ) then PC PC + k + 无 / 2 273

274 指 令 集 概 述 指 令 操 作 数 说 明 操 作 标 志 # 时 钟 数 BRIE k 中 断 使 能 再 跳 转 if ( I = ) then PC PC + k + 无 / 2 BRID k 中 断 禁 用 再 跳 转 if ( I = ) then PC PC + k + 无 / 2 数 据 传 送 指 令 MOV Rd, Rr 寄 存 器 间 复 制 Rd Rr 无 MOVW Rd, Rr 复 制 寄 存 器 字 Rd+:Rd Rr+:Rr 无 LDI Rd, K 加 载 立 即 数 Rd K 无 LD Rd, X 加 载 间 接 寻 址 数 据 Rd (X) 无 2 LD Rd, X+ 加 载 间 接 寻 址 数 据, 然 后 地 址 加 一 Rd (X), X X + 无 2 LD Rd, - X 地 址 减 一 后 加 载 间 接 寻 址 数 据 X X -, Rd (X) 无 2 LD Rd, Y 加 载 间 接 寻 址 数 据 Rd (Y) 无 2 LD Rd, Y+ 加 载 间 接 寻 址 数 据, 然 后 地 址 加 一 Rd (Y), Y Y + 无 2 LD Rd, - Y 地 址 减 一 后 加 载 间 接 寻 址 数 据 Y Y -, Rd (Y) 无 2 LDD Rd,Y+q 加 载 带 偏 移 量 的 间 接 寻 址 数 据 Rd (Y + q) 无 2 LD Rd, Z 加 载 间 接 寻 址 数 据 Rd (Z) 无 2 LD Rd, Z+ 加 载 间 接 寻 址 数 据, 然 后 地 址 加 一 Rd (Z), Z Z+ 无 2 LD Rd, -Z 地 址 减 一 后 加 载 间 接 寻 址 数 据 Z Z -, Rd (Z) 无 2 LDD Rd, Z+q 加 载 带 偏 移 量 的 间 接 寻 址 数 据 Rd (Z + q) 无 2 LDS Rd, k 从 SRAM 加 载 数 据 Rd (k) 无 2 ST X, Rr 以 间 接 寻 址 方 式 存 储 数 据 (X) Rr 无 2 ST X+, Rr 以 间 接 寻 址 方 式 存 储 数 据, 然 后 地 址 加 一 (X) Rr, X X + 无 2 ST - X, Rr 地 址 减 一 后 以 间 接 寻 址 方 式 存 储 数 据 X X -, (X) Rr 无 2 ST Y, Rr 加 载 间 接 寻 址 数 据 (Y) Rr 无 2 ST Y+, Rr 加 载 间 接 寻 址 数 据, 然 后 地 址 加 一 (Y) Rr, Y Y + 无 2 ST - Y, Rr 地 址 减 一 后 加 载 间 接 寻 址 数 据 Y Y -, (Y) Rr 无 2 STD Y+q,Rr 加 载 带 偏 移 量 的 间 接 寻 址 数 据 (Y + q) Rr 无 2 ST Z, Rr 加 载 间 接 寻 址 数 据 (Z) Rr 无 2 ST Z+, Rr 加 载 间 接 寻 址 数 据, 然 后 地 址 加 一 (Z) Rr, Z Z + 无 2 ST -Z, Rr 地 址 减 一 后 加 载 间 接 寻 址 数 据 Z Z -, (Z) Rr 无 2 STD Z+q,Rr 加 载 带 偏 移 量 的 间 接 寻 址 数 据 (Z + q) Rr 无 2 STS k, Rr 从 SRAM 加 载 数 据 (k) Rr 无 2 LPM 加 载 程 序 空 间 的 数 据 R (Z) 无 3 LPM Rd, Z 加 载 程 序 空 间 的 数 据 Rd (Z) 无 3 LPM Rd, Z+ 加 载 程 序 空 间 的 数 据, 然 后 地 址 加 一 Rd (Z), Z Z+ 无 3 SPM 保 存 程 序 空 间 的 数 据 (Z) R:R 无 - IN Rd, P 从 I/O 端 口 读 数 据 Rd P 无 OUT P, Rr 输 出 端 口 P Rr 无 PUSH Rr 将 寄 存 器 推 入 堆 栈 STACK Rr 无 2 POP Rd 将 寄 存 器 从 堆 栈 中 弹 出 Rd STACK 无 2 位 和 位 测 试 指 令 SBI P,b I/O 寄 存 器 位 置 位 I/O(P,b) 无 2 CBI P,b I/O 寄 存 器 位 清 零 I/O(P,b) 无 2 LSL Rd 逻 辑 左 移 Rd(n+) Rd(n), Rd() Z,C,N,V LSR Rd 逻 辑 右 移 Rd(n) Rd(n+), Rd(7) Z,C,N,V ROL Rd 带 进 位 循 环 左 移 Rd() C,Rd(n+) Rd(n),C Rd(7) Z,C,N,V ROR Rd 带 进 位 循 环 右 移 Rd(7) C,Rd(n) Rd(n+),C Rd() Z,C,N,V ASR Rd 算 术 右 移 Rd(n) Rd(n+), n=..6 Z,C,N,V SWAP Rd 高 低 半 字 节 交 换 Rd(3..) Rd(7..4),Rd(7..4) Rd(3..) 无 BSET s 标 志 置 位 SREG(s) SREG(s) BCLR s 标 志 清 零 SREG(s) SREG(s) BST Rr, b 从 寄 存 器 将 位 赋 给 T T Rr(b) T BLD Rd, b 将 T 赋 给 寄 存 器 位 Rd(b) T 无 SEC 进 位 位 置 位 C C CLC 进 位 位 清 零 C C SEN 负 标 志 位 置 位 N N CLN 负 标 志 位 清 零 N N SEZ 零 标 志 位 置 位 Z Z CLZ 零 标 志 位 清 零 Z Z SEI 全 局 中 断 使 能 I I CLI 全 局 中 断 禁 用 I I SES 符 号 测 试 标 志 位 置 位 S S CLS 符 号 测 试 标 志 位 清 零 S S SEV 2 的 补 码 溢 出 标 志 置 位 V V CLV 2 的 补 码 溢 出 标 志 清 零 V V SET SREG 的 T 置 位 T T 274 ATmega8(L)

275 ATmega8(L) 指 令 集 概 述 指 令 操 作 数 说 明 操 作 标 志 # 时 钟 数 CLT SREG 的 T 清 零 T T SEH SREG 的 半 进 位 标 志 置 位 H H CLH SREG 的 半 进 位 标 志 清 零 H H MCU 控 制 指 令 NOP 空 操 作 无 SLEEP 休 眠 ( 见 对 睡 眠 功 能 的 特 殊 说 明 ) 无 WDR 复 位 看 门 狗 ( 见 对 WDR/timer 的 特 殊 说 明 ) 无 275

276 产 品 信 息 速 度 (MHz) 所 需 电 源 产 品 号 封 装 工 作 范 围 ATmega8L-8AC ATmega8L-8PC ATmega8L-8MC ATmega8L-8AI ATmega8L-8PI ATmega8L-8MI ATmega8-6AC ATmega8-6PC ATmega8-6MC ATmega8-6AI ATmega8-6PI ATmega8-6MI 32A 28P3 32M-A 32A 28P3 32M-A 32A 28P3 32M-A 32A 28P3 32M-A Note: 产 品 也 可 以 wafer 的 形 式 提 供, 订 货 信 息 细 节 以 及 最 小 定 货 量 请 与 Atmel 当 地 机 构 联 系 商 业 级 ( C - 7 C) 工 业 级 (-4 C - 85 C) 商 业 级 ( C - 7 C) 工 业 级 (-4 C - 85 C) 封 装 类 型 32A 28P3 32M-A 32- 引 线, 薄 (. mm)tqfp 28- 引 线,.3 宽,PDIP 32- 焊 垫, 5 x 5 x. 大 小, 线 距.5 mm, MLF 276 ATmega8(L)

277 ATmega8(L) 封 装 信 息 32A PIN PIN IDENTIFIER B e E E D D C ~7 L A A2 A COMMON DIMENSIONS (Unit of Measure = mm) Notes:. This package conforms to JEDEC reference MS-26, Variation ABA. 2. Dimensions D and E do not include mold protrusion. Allowable protrusion is.25 mm per side. Dimensions D and E are maximum plastic body size dimensions including mold mismatch. 3. Lead coplanarity is. mm maximum. SYMBOL MIN NOM MAX NOTE A.2 A.5.5 A D D Note 2 E E Note 2 B.3.45 C.9.2 L e.8 TYP /5/2 R 2325 Orchard Parkway San Jose, CA 953 TITLE 32A, 32-lead, 7 x 7 mm Body Size,. mm Body Thickness,.8 mm Lead Pitch, Thin Profile Plastic Quad Flat Package (TQFP) DRAWING NO. 32A REV. B 277

278 28P3 D PIN E A SEATING PLANE L e B B A B2 (4 PLACES) Note: C E eb º ~ 5º. Dimensions D and E do not include mold Flash or Protrusion. Mold Flash or Protrusion shall not exceed.25 mm (."). REF COMMON DIMENSIONS (Unit of Measure = mm) SYMBOL MIN NOM MAX NOTE A A.58 D Note E E Note B B B L C eb.6 e 2.54 TYP 9/28/ R 2325 Orchard Parkway San Jose, CA 953 TITLE 28P3, 28-lead (.3"/7.62 mm Wide) Plastic Dual Inline Package (PDIP) DRAWING NO. 28P3 REV. B 278 ATmega8(L)

279 ATmega8(L) 32M-A D D 2 3 Pin ID E E SIDE VIEW TOP VIEW A2 A A3 A P P b D2 BOTTOM VIEW e 2 3 Pin ID Notes:. JEDEC Standard MO-22, Fig. 2 (Anvil Singulation), VHHD-2. E2 L.8 C COMMON DIMENSIONS (Unit of Measure = mm) SYMBOL MIN NOM MAX NOTE A.8.9. A.2.5 A2.65. A3.2 REF b D 5. BSC D 4.75 BSC D E 5. BSC E 4.75BSC E e.5 BSC L P.6 2 o /5/3 R 2325 Orchard Parkway San Jose, CA 953 TITLE 32M-A, 32-pad, 5 x 5 x. mm Body, Lead Pitch.5 mm Micro Lead Frame Package (MLF) DRAWING NO. 32M-A REV. C 279

280 勘 误 表 本 节 的 版 本 号 与 ATmega8 器 件 的 版 本 号 相 同 ATmega8 Rev. D, E, F 及 G 当 32 KHz 振 荡 器 作 为 T/C2 异 步 时 钟 时,CKOPT 不 能 使 能 XTALn/TOSCn 引 脚 上 的 内 部 电 容. 当 32 KHz 振 荡 器 作 为 T/C2 异 步 时 钟 时,CKOPT 不 能 使 能 XTALn/TOSCn 引 脚 上 的 内 部 电 容 当 内 部 RC 振 荡 器 作 为 主 时 钟 源 时, 可 能 会 通 过 在 XTAL/TOSC 与 XTAL2/TOSC2 上 连 接 32 KHz 振 荡 器 来 运 行 T/C2 异 步 模 式 但 当 内 部 RC 振 荡 器 作 为 主 时 钟 源 时, CKOPT 熔 丝 位 不 能 控 制 XTAL/TOSC 与 XTAL2/TOSC2 引 脚 上 的 内 部 电 容 而 当 长 时 间 如 此 的 话, 无 法 保 证 振 荡 器 正 常 工 作 解 决 方 法 : 在 XTAL/TOSC 与 XTAL2/TOSC2 上 使 用 2-36 pf 的 外 部 电 容 而 在 ATmega8 Rev. G 中 有 所 修 改, 当 内 部 RC 振 荡 器 作 为 主 时 钟 源 时,CKOPT 熔 丝 位 同 样 可 以 控 制 内 部 电 容 对 于 ATmega8 Rev. G, CKOPT = ( 已 编 程 ) 将 使 能 XTAL 与 XTAL2 上 的 内 部 电 容 若 用 户 希 望 Rev. G 与 早 期 的 版 本 兼 容, 则 必 须 保 证 CKOPT 未 编 程 (CKOPT = ) 28 ATmega8(L)

281 ATmega8(L) ATmega8 数 据 变 更 日 志 从 版 本 Rev. 2486M-2/3 到 版 本 Rev. 2486N-7/4 的 变 化 请 注 意 本 节 中 所 提 及 的 页 码 为 手 册 中 所 对 应 的 页 码 请 注 意 本 节 中 所 提 及 的 页 码 为 手 册 中 所 对 应 的 页 码. 在 P 2 引 脚 配 置 中 加 入 MLF 封 装 2. 更 新 P 39 内 部 电 压 基 准 源 的 特 性 3. 更 新 P 226 直 流 特 性 4. ADC4 与 ADC5 支 持 位 精 度 手 册 中 予 以 反 映 更 新 P 83 模 数 转 换 器 中 的 特 性 更 新 P 232 交 流 特 性 5. P 25 外 部 RC 振 荡 器 中 删 除 外 部 RC 振 荡 器 使 用 注 意 部 分 从 版 本 Rev. 2486L-/3 到 版 本 Rev. 2486M-2/3 的 变 化 从 版 本 Rev. 2486K-8/3 到 版 本 Rev. 2486L-/3 的 变 化 请 注 意 本 节 中 所 提 及 的 页 码 为 手 册 中 所 对 应 的 页 码. 更 新 P 27 标 定 的 片 内 RC 振 荡 器 请 注 意 本 节 中 所 提 及 的 页 码 为 手 册 中 所 对 应 的 页 码. 输 出 初 稿 与 TBD 2. 将 ICP 改 为 ICP 3. 删 除 CALL 与 JMP 指 令 4. 更 新 P 35Table 5 中 t RST, P 39Table 6, P 228Table 与 P 23Table 2 中 V BG 5. 去 掉 P 27 标 定 的 片 内 RC 振 荡 器 中 Table 9 后 的 XTAL 与 XTAL2 应 不 连 接 (NC) 内 容 在 P 29 定 时 器 / 计 时 器 振 荡 器 中 添 加 关 于 XTAL/XTAL2 与 CKOPT 熔 丝 位 的 内 容 6. 更 新 P 42 改 变 看 门 狗 定 时 器 配 置 的 时 间 序 列 中 看 门 狗 定 时 器 的 代 码 例 程 7. 删 除 P 55 特 殊 功 能 I/O 寄 存 器 - SFIOR 中 bit 4, ADHSM 8. P 2Figure 3 中 添 加 注 意 事 项 2 9. 更 新 P 222 串 行 编 程 算 法 中 条 目 4. P 224Table 97 中 添 加 t WD_FUSE, 更 新 P 225Table 98 中 读 标 定 字 节, Byte 3. 更 新 P 226 电 气 特 性 中 绝 对 极 限 值 与 直 流 特 性 从 版 本 Rev. 2486J-2/3 到 版 本 Rev. 2486K-8/3 的 变 化 请 注 意 本 节 中 所 提 及 的 页 码 为 手 册 中 所 对 应 的 页 码. 更 新 P 35Table 5 中 V BOT 值 28

282 2. 更 新 P 232 交 流 特 性 3. 更 新 P 233 ATmega8 典 型 特 性 4. 更 新 P 28 勘 误 表 从 版 本 Rev. 2486I-2/2 到 版 本 Rev. 2486J-2/3 的 变 化 请 注 意 本 节 中 所 提 及 的 页 码 为 手 册 中 所 对 应 的 页 码. 进 一 步 说 明 P 23 异 步 定 时 器 时 钟 - clk ASY 2. 删 除 多 功 能 振 荡 器 及 32 khz 晶 振 使 用 注 意 3. 修 正 P 83Figure 38 中 OCn 波 形 4. 定 时 器 细 节 的 修 正 5. TWI 细 节 的 修 正 6. 在 P 22 装 载 临 时 缓 冲 器 ( 页 加 载 ) 后 添 加 关 于 在 SPM 页 载 入 时 对 EEPROM 写 入 的 注 意 7. 删 除 ADHSM 8. 添 加 P 2 在 掉 电 休 眠 模 式 下 的 EEPROM 写 操 作 部 分 9. 将 对 XTAL 与 XTAL2 的 说 明 作 为 P 5 端 口 B(PB7..PB) XTAL/XTAL2/TOSC/TOSC2 部 分 给 出. 更 改 P 23 SPI 时 序 特 性 中 的 表, 删 除 P 225 SPI 串 行 编 程 特 性 中 的 表. 修 正 P 57 端 口 C 的 第 二 功 能 中 PC6 2. 修 正 P 55 端 口 B 的 第 二 功 能 中 PB6 与 PB7 3. 将 P 46 波 特 率 设 置 的 例 子 中 23.4 Mbps 改 为 23.4 kbps 4. P 5 相 位 修 正 PWM 模 式 中 加 入 关 于 定 时 器 2 的 PWM 对 称 的 信 息 5. P 56Figure 76 中 易 访 问 的 寄 存 器 加 上 粗 线 6. P 22 执 行 页 写 操 作 中 未 使 用 的 Z 指 针 位 由 将 被 忽 略 改 为 必 须 写 零 7. P 2Table 87 中 加 入 RSTDISBL 熔 丝 位 的 注 意 8. 更 新 P 277 封 装 信 息 中 的 图 从 版 本 Rev. 2486H-9/2 到 版 本 Rev. 2486I-2/2 的 变 化 从 版 本 Rev. 2486G-9/2 到 版 本 Rev. 2486H-9/2 的 变 化. 对 Rev D, E 与 F 加 入 勘 误 表. 将 Flash 的 寿 命 改 为, 次 写 / 擦 除 周 期 282 ATmega8(L)

283 ATmega8(L) 从 版 本 Rev. 2486F-7/2 到 版 本 Rev. 2486G-9/2 的 变 化 从 版 本 Rev. 2486E-6/2 到 版 本 Rev. 2486F-7/2 的 变 化 请 注 意 本 节 中 所 提 及 的 页 码 为 手 册 中 所 对 应 的 页 码 更 新 P 232Table 3 ADC 特 性 参 数. 请 注 意 本 节 中 所 提 及 的 页 码 为 手 册 中 所 对 应 的 页 码 改 变 P 52 数 字 输 入 使 能 和 睡 眠 模 式 2 P 56 MOSI/OC2 端 口 B, Bit 3 中 加 入 OCS2 3 下 列 表 已 更 新 : P 22Table 5 CPOL 与 CPHA 功 能, P 44Table 59 UCPOL 设 置, P 82Table 72 模 拟 比 较 器 复 用 输 入 (), P 87Table 73 ADC 转 换 时 间, P 93Table 75 输 入 通 道 选 择 及 P 28Table 84 Figure 3 中 所 用 变 量 的 说 明 及 Z 指 针 的 映 射 5 改 变 P 22 读 取 标 定 字 节 6 在 相 关 参 考 中 修 正 错 误 从 版 本 Rev. 2486D-3/2 到 版 本 Rev. 2486E-6/2 的 变 化 请 注 意 本 节 中 所 提 及 的 页 码 为 手 册 中 所 对 应 的 页 码 更 新 一 些 初 步 测 试 限 制 与 特 性 数 据 下 列 表 已 更 新 : P 35Table 5 复 位 特 性, P 39Table 6 内 部 电 压 基 准 源 的 特 性, P 226DC 特 性, 及 P 232Table 交 流 特 性 2 改 变 外 部 时 钟 频 率 P 29 外 部 时 钟 中 加 入 说 明 P 228Table 99 外 部 时 钟 驱 动 中 加 入 周 期 变 更 数 据 3 更 新 TWI 部 分 对 TWI 位 速 率 预 分 频 的 使 用 说 明 及 P 6Table 65 TWI 比 特 率 预 分 频 器 更 加 详 尽 从 版 本 Rev. 2486C-3/2 到 版 本 Rev. 2486D-3/2 的 变 化 从 版 本 Rev. 2486B-2/ 到 版 本 Rev. 2486C-3/2 的 变 化 请 注 意 本 节 中 所 提 及 的 页 码 为 手 册 中 所 对 应 的 页 码 更 新 典 型 的 启 动 时 间 下 列 表 已 更 新 : P 25Table 5 晶 体 振 荡 器 时 钟 选 项 对 应 的 启 动 时 间,P 25Table 6 低 频 晶 体 振 荡 器 的 启 动 时 间, P 26Table 8 外 部 RC 振 荡 器 的 启 动 时 间 及 P 29Table 2 外 部 时 钟 的 启 动 时 间 2 添 加 P 233 ATmega8 典 型 特 性 请 注 意 本 节 中 所 提 及 的 页 码 为 手 册 中 所 对 应 的 页 码 更 新 TWI 部 分 对 TWI 掉 电 操 作 与 当 TWBRR 值 为 低 时 将 TWI 作 为 主 机 的 使 用 说 明 加 入 手 册 P 57 比 特 率 发 生 器 单 元 中 加 入 注 意 P 57 地 址 匹 配 单 元 中 加 入 说 明 283

284 2 更 新 OSCCAL 标 定 字 节 的 说 明 手 册 中 未 说 明 选 择 MHz 振 荡 器 时 如 何 使 用 标 定 字 节, 在 下 面 加 入 : P 28 振 荡 器 标 定 寄 存 器 - OSCCAL 与 P 2 标 定 字 节 中 给 出 进 一 步 说 明 3 加 入 一 些 初 步 测 试 限 制 与 特 性 数 据 删 除 下 列 表 中 的 一 些 TBD: P 23Table 3,P 35Table 5,P 39Table 6, P 4Table 7, P 226 T A = -4 C ~ 85 C,V CC = 2.7V ~ 5.5V ( 除 非 另 外 说 明 ), P 228Table 99 及 P 23Table 2 4 更 新 编 程 图 更 新 P 22Figure 4 与 P 222Figure 2 以 说 明 当 编 程 模 式 时, AV CC 必 须 连 接 5 添 加 当 RESET 引 脚 禁 用 或 选 择 外 部 时 钟 时 如 何 进 入 并 行 编 程 模 式 P 23 进 入 编 程 模 式 中 加 入 注 意 284 ATmega8(L)

《C语言基础入门》课程教学大纲

《C语言基础入门》课程教学大纲 C 语 言 开 发 入 门 教 程 课 程 教 学 大 纲 课 程 编 号 :201409210011 学 分 :5 学 分 学 时 :58 学 时 ( 其 中 : 讲 课 学 时 :39 学 时 上 机 学 时 :19 学 时 ) 先 修 课 程 : 计 算 机 导 论 后 续 课 程 :C++ 程 序 设 计 适 用 专 业 : 信 息 及 其 计 算 机 相 关 专 业 开 课 部 门 : 计

More information

Microsoft Word - 第7章 图表反转形态.doc

Microsoft Word - 第7章 图表反转形态.doc 第 七 章 图 表 反 转 形 态 我 们 知 道 市 场 趋 势 共 有 三 种 : 上 升 趋 势 下 降 趋 势 和 横 向 整 理 市 场 的 价 格 波 动 都 是 运 行 在 这 三 种 趋 势 中, 所 有 的 走 势 都 是 这 三 种 趋 势 的 排 列 组 合 如 图 市 场 趋 势 结 构 示 意 图 7-1 所 示 市 场 趋 势 结 构 示 意 图 7-1 图 市 场 趋

More information

第2章 数据类型、常量与变量

第2章  数据类型、常量与变量 第 2 章 数 据 类 型 常 量 与 变 量 在 计 算 机 程 序 中 都 是 通 过 值 (value) 来 进 行 运 算 的, 能 够 表 示 并 操 作 值 的 类 型 为 数 据 类 型 在 本 章 里 将 会 介 绍 JavaScript 中 的 常 量 (literal) 变 量 (variable) 和 数 据 类 型 (data type) 2.1 基 本 数 据 类 型 JavaScript

More information

修改版-操作手册.doc

修改版-操作手册.doc 职 称 信 息 系 统 升 级 指 南 须 使 用 IE9 及 其 以 上 版 本 浏 览 器 或 谷 歌 浏 览 器 登 录 www.njrs.gov.cn 南 京 市 职 称 ( 职 业 资 格 ) 工 作 领 导 小 组 办 公 室 2016 年 5 月 目 录 一 申 报 人 员 操 作 指 南...1 1.1 职 称 初 定 申 报...1 1.1.1 职 称 初 定 基 础 信 息 填

More information

I

I 机 电 一 级 注 册 建 造 师 继 续 教 育 培 训 广 东 培 训 点 网 上 报 名 操 作 使 用 手 册 (2013 年 1 月, 第 一 版 ) 第 一 章 个 人 注 册 与 个 人 信 息 管 理 1. 个 人 注 册 ( 请 每 人 只 申 请 一 个 注 册 号, 如 果 单 位 批 量 报 班 单 位 帮 申 请 注 册, 不 需 个 人 再 注 册 ) 首 次 报 班,

More information

何 秋 琳 张 立 春 视 觉 学 习 研 究 进 展 视 觉 注 意 视 觉 感 知

何 秋 琳 张 立 春 视 觉 学 习 研 究 进 展 视 觉 注 意 视 觉 感 知 第 卷 第 期 年 月 开 放 教 育 研 究 何 秋 琳 张 立 春 华 南 师 范 大 学 未 来 教 育 研 究 中 心 广 东 广 州 随 着 图 像 化 技 术 和 电 子 媒 体 的 发 展 视 觉 学 习 也 逐 步 发 展 为 学 习 科 学 的 一 个 研 究 分 支 得 到 研 究 人 员 和 教 育 工 作 者 的 广 泛 关 注 基 于 此 作 者 试 图 对 视 觉 学 习

More information

说 明 为 了 反 映 教 运 行 的 基 本 状 态, 为 校 和 院 制 定 相 关 政 策 和 进 行 教 建 设 与 改 革 提 供 据 依 据, 校 从 程 资 源 ( 开 类 别 开 量 规 模 ) 教 师 结 构 程 考 核 等 维 度, 对 2015 年 春 季 期 教 运 行 基

说 明 为 了 反 映 教 运 行 的 基 本 状 态, 为 校 和 院 制 定 相 关 政 策 和 进 行 教 建 设 与 改 革 提 供 据 依 据, 校 从 程 资 源 ( 开 类 别 开 量 规 模 ) 教 师 结 构 程 考 核 等 维 度, 对 2015 年 春 季 期 教 运 行 基 内 部 资 料 东 北 师 范 大 教 运 行 基 本 状 态 据 报 告 2015 年 春 季 期 教 务 处 2015 年 10 月 27 日 说 明 为 了 反 映 教 运 行 的 基 本 状 态, 为 校 和 院 制 定 相 关 政 策 和 进 行 教 建 设 与 改 革 提 供 据 依 据, 校 从 程 资 源 ( 开 类 别 开 量 规 模 ) 教 师 结 构 程 考 核 等 维 度,

More information

<433A5C446F63756D656E747320616E642053657474696E67735C41646D696E6973747261746F725CD7C0C3E65CC2DBCEC4CFB5CDB3CAB9D3C3D6B8C4CFA3A8BCF2BBAFA3A95CCAB9D3C3D6B8C4CF31302D31392E646F63>

<433A5C446F63756D656E747320616E642053657474696E67735C41646D696E6973747261746F725CD7C0C3E65CC2DBCEC4CFB5CDB3CAB9D3C3D6B8C4CFA3A8BCF2BBAFA3A95CCAB9D3C3D6B8C4CF31302D31392E646F63> ( 一 ) 系 统 整 体 操 作 流 程 简 述 3 ( 二 ) 系 统 中 各 角 色 操 作 功 能 说 明 5 1. 学 院 管 理 员 5 2. 教 学 院 长 8 3. 指 导 教 师 10 4. 答 辩 组 组 长 12 5. 学 生 12 6. 系 统 管 理 员 15 ( 一 ) 论 文 系 统 常 见 问 题 16 ( 二 ) 论 文 查 重 常 见 问 题 22 1 2 主

More information

Template BR_Rec_2005.dot

Template BR_Rec_2005.dot ITU-R BT.1789 建 议 书 1 ITU-R BT.1789 建 议 书 在 分 组 视 频 传 输 中 利 用 传 输 误 码 信 息 重 建 接 收 视 频 的 方 法 (ITU-R 44/6 和 ITU-R 109/6 课 题 ) (2007 年 ) 范 围 本 建 议 书 对 业 务 提 供 商 重 建 接 收 视 频 的 方 法 做 了 详 细 介 绍, 以 便 利 用 传 输

More information

 编号:

 编号: 编 号 : 企 业 内 高 技 能 人 才 培 养 评 价 实 施 方 案 ( 仅 适 用 于 企 业 特 有 行 业 特 有 工 种 ) 实 施 单 位 ( 公 章 ) 申 报 日 期 年 _ 月 日 1 企 业 内 高 技 能 人 才 培 养 评 价 项 目 实 施 方 案 申 报 表 项 目 名 称 等 级 项 目 性 质 课 时 申 报 单 位 联 系 人 通 讯 地 址 电 话 手 机 电

More information

科 学 出 版 社 科 学 出 版 社 前 言 本 书 是 针 对 普 通 高 等 院 校 经 济 类 和 工 商 管 理 类 本 科 专 业 财 务 管 理 学 的 教 学 需 求, 结 合 教 育 部 经 济 管 理 类 本 科 财 务 管 理 学 课 程 教 学 大 纲 编 写 而 成 的 本 书 执 笔 者 都 是 长 期 工 作 在 财 务 管 理 教 学 一 线 的 专 业 教 师,

More information

0 年 上 半 年 评 价 与 考 核 细 则 序 号 部 门 要 素 值 考 核 内 容 考 核 方 式 考 核 标 准 考 核 ( 扣 原 因 ) 考 评 得 3 安 全 生 产 目 30 无 同 等 责 任 以 上 道 路 交 通 亡 人 事 故 无 轻 伤 责 任 事 故 无 重 大 质 量

0 年 上 半 年 评 价 与 考 核 细 则 序 号 部 门 要 素 值 考 核 内 容 考 核 方 式 考 核 标 准 考 核 ( 扣 原 因 ) 考 评 得 3 安 全 生 产 目 30 无 同 等 责 任 以 上 道 路 交 通 亡 人 事 故 无 轻 伤 责 任 事 故 无 重 大 质 量 0 年 上 半 年 评 价 与 考 核 细 则 序 号 部 门 要 素 值 考 核 内 容 考 核 方 式 考 核 标 准 无 同 等 责 任 以 上 道 路 交 通 亡 人 事 故 3 无 轻 伤 责 任 事 故 目 标 30 及 事 无 重 大 质 量 工 作 过 失 故 管 无 其 他 一 般 责 任 事 故 理 在 公 司 文 明 环 境 创 建 中, 无 工 作 过 失 及 被 追 究 的

More information

黄 金 原 油 总 持 仓 增 长, 同 比 增 幅 分 别 为 4.2% 和 4.1% 而 铜 白 银 以 及 玉 米 则 出 现 减 持, 减 持 同 比 减 少 分 别 为 9.4%,9.4% 以 及 6.5% 大 豆, 豆 粕 结 束 连 续 4 周 总 持 仓 量 增 长, 出 现 小 幅

黄 金 原 油 总 持 仓 增 长, 同 比 增 幅 分 别 为 4.2% 和 4.1% 而 铜 白 银 以 及 玉 米 则 出 现 减 持, 减 持 同 比 减 少 分 别 为 9.4%,9.4% 以 及 6.5% 大 豆, 豆 粕 结 束 连 续 4 周 总 持 仓 量 增 长, 出 现 小 幅 小 麦 净 多 持 仓 增 加, 豆 油 豆 粕 净 多 持 仓 减 少 美 国 CFTC 持 仓 报 告 部 门 : 市 场 研 究 与 开 发 部 类 型 : 量 化 策 略 周 报 日 期 :212 年 5 月 7 日 电 话 :592-5678753 网 址 :www.jinyouqh.com 主 要 内 容 : 根 据 美 国 CFTC 公 布 的 数 据, 本 报 告 中 的 11 个

More information

金 不 少 于 800 万 元, 净 资 产 不 少 于 960 万 元 ; (3) 近 五 年 独 立 承 担 过 单 项 合 同 额 不 少 于 1000 万 元 的 智 能 化 工 程 ( 设 计 或 施 工 或 设 计 施 工 一 体 ) 不 少 于 2 项 ; (4) 近 三 年 每 年

金 不 少 于 800 万 元, 净 资 产 不 少 于 960 万 元 ; (3) 近 五 年 独 立 承 担 过 单 项 合 同 额 不 少 于 1000 万 元 的 智 能 化 工 程 ( 设 计 或 施 工 或 设 计 施 工 一 体 ) 不 少 于 2 项 ; (4) 近 三 年 每 年 工 程 设 计 与 施 工 资 质 标 准 一 总 则 建 筑 智 能 化 工 程 设 计 与 施 工 资 质 标 准 ( 一 ) 为 了 加 强 对 从 事 建 筑 智 能 化 工 程 设 计 与 施 工 企 业 的 管 理, 维 护 建 筑 市 场 秩 序, 保 证 工 程 质 量 和 安 全, 促 进 行 业 健 康 发 展, 结 合 建 筑 智 能 化 工 程 的 特 点, 制 定 本 标

More information

文 化 记 忆 传 统 创 新 与 节 日 遗 产 保 护 根 据 德 国 学 者 阿 斯 曼 的 文 化 记 忆 理 论 仪 式 与 文 本 是 承 载 文 化 记 忆 的 两 大 媒 体 在 各 种 仪 式 行 为 中 节 日 以 其 高 度 的 公 共 性 有 组 织 性 和 历 史 性 而 特 别 适 用 于 文 化 记 忆 的 储 存 和 交 流 节 日 的 文 化 功 能 不 仅 在 于

More information

,,,,, :,, (.,, );, (, : ), (.., ;. &., ;.. &.., ;, ;, ),,,,,,, ( ) ( ),,,,.,,,,,, : ;, ;,.,,,,, (., : - ),,,, ( ),,,, (, : ),, :,

,,,,, :,, (.,, );, (, : ), (.., ;. &., ;.. &.., ;, ;, ),,,,,,, ( ) ( ),,,,.,,,,,, : ;, ;,.,,,,, (., : - ),,,, ( ),,,, (, : ),, :, : 周 晓 虹 : - -., - - - -. :( ), -,.( ),,, -. - ( ).( ) ', -,,,,, ( ).( ),,, -., '.,, :,,,, :,,,, ,,,,, :,, (.,, );, (, : ), (.., ;. &., ;.. &.., ;, ;, ),,,,,,, ( ) ( ),,,,.,,,,,, : ;, ;,.,,,,, (., : - ),,,,

More information

<4D F736F F D D323630D6D0B9FAD3A6B6D4C6F8BAF2B1E4BBAFB5C4D5FEB2DFD3EBD0D0B6AF C4EAB6C8B1A8B8E6>

<4D F736F F D D323630D6D0B9FAD3A6B6D4C6F8BAF2B1E4BBAFB5C4D5FEB2DFD3EBD0D0B6AF C4EAB6C8B1A8B8E6> 中 国 应 对 气 候 变 化 的 政 策 与 行 动 2013 年 度 报 告 国 家 发 展 和 改 革 委 员 会 二 〇 一 三 年 十 一 月 100% 再 生 纸 资 源 目 录 前 言... 1 一 应 对 气 候 变 化 面 临 的 形 势... 3 二 完 善 顶 层 设 计 和 体 制 机 制... 4 三 减 缓 气 候 变 化... 8 四 适 应 气 候 变 化... 20

More information

龚 亚 夫 在 重 新 思 考 基 础 教 育 英 语 教 学 的 理 念 一 文 中 援 引 的 观 点 认 为 当 跳 出 本 族 语 主 义 的 思 维 定 式 后 需 要 重 新 思 考 许 多 相 连 带 的 问 题 比 如 许 多 发 音 的 细 微 区 别 并 不 影 响 理 解 和

龚 亚 夫 在 重 新 思 考 基 础 教 育 英 语 教 学 的 理 念 一 文 中 援 引 的 观 点 认 为 当 跳 出 本 族 语 主 义 的 思 维 定 式 后 需 要 重 新 思 考 许 多 相 连 带 的 问 题 比 如 许 多 发 音 的 细 微 区 别 并 不 影 响 理 解 和 语 音 语 篇 语 感 语 域 林 大 津 毛 浩 然 改 革 开 放 以 来 的 英 语 热 引 发 了 大 中 小 学 英 语 教 育 整 体 规 划 问 题 在 充 分 考 虑 地 区 学 校 和 个 体 差 异 以 及 各 家 观 点 的 基 础 上 遵 循 实 事 求 是 逐 级 定 位 逐 层 分 流 因 材 施 教 的 原 则 本 研 究 所 倡 导 的 语 音 语 篇 语 感 语 域

More information

登录、注册功能的测试用例设计.doc

登录、注册功能的测试用例设计.doc 注 册 登 陆 测 试 用 例 和 修 改 密 码 测 试 用 例 完 整 版 摘 自 网 络, 狗 狗 整 理 [email protected] 修 改 历 史 日 期 版 本 作 者 修 改 内 容 评 审 号 变 更 控 制 号 2010-11-25 1.0 初 稿 2011-09-17 2.0 整 理 一 注 册 测 试 用 例 序 号 : 1 控 件 名 称 : 功 能 描 述 : 注 册 编

More information

(2015-2016-2)-0004186-04205-1 140242 信 号 与 系 统 Ⅰ 学 科 基 础 必 修 课 37 37 1 教 203 17 周 2016 年 06 月 13 日 (08:00-09:35) (2015-2016-2)-0004186-04205-1 141011

(2015-2016-2)-0004186-04205-1 140242 信 号 与 系 统 Ⅰ 学 科 基 础 必 修 课 37 37 1 教 203 17 周 2016 年 06 月 13 日 (08:00-09:35) (2015-2016-2)-0004186-04205-1 141011 关 于 2015-2016 学 年 第 二 学 期 期 末 周 内 考 试 时 间 地 点 安 排 选 课 课 号 班 级 名 称 课 程 名 称 课 程 性 质 合 考 人 数 实 际 人 数 考 试 教 室 考 试 段 考 试 时 间 (2015-2016-2)-0006178-04247-1 130101 测 试 技 术 基 础 学 科 基 础 必 修 课 35 35 1 教 401 17 周

More information

正 规 培 训 达 规 定 标 准 学 时 数, 并 取 得 结 业 证 书 二 级 可 编 程 师 ( 具 备 以 下 条 件 之 一 者 ) (1) 连 续 从 事 本 职 业 工 作 13 年 以 上 (2) 取 得 本 职 业 三 级 职 业 资 格 证 书 后, 连 续 从 事 本 职 业

正 规 培 训 达 规 定 标 准 学 时 数, 并 取 得 结 业 证 书 二 级 可 编 程 师 ( 具 备 以 下 条 件 之 一 者 ) (1) 连 续 从 事 本 职 业 工 作 13 年 以 上 (2) 取 得 本 职 业 三 级 职 业 资 格 证 书 后, 连 续 从 事 本 职 业 1. 职 业 概 况 1.1 职 业 名 称 可 编 程 师 1.2 职 业 定 义 可 编 程 师 国 家 职 业 标 准 从 事 可 编 程 序 控 制 器 (PLC) 选 型 编 程, 并 对 应 用 进 行 集 成 和 运 行 管 理 的 人 员 1.3 职 业 等 级 本 职 业 共 设 四 个 等 级, 分 别 为 : 四 级 可 编 程 师 ( 国 家 职 业 资 格 四 级 ) 三

More information

1600 1000 40 50 2030 2000 采 取 行 动 的 机 会 90% 开 拓 成 功 的 道 路 2

1600 1000 40 50 2030 2000 采 取 行 动 的 机 会 90% 开 拓 成 功 的 道 路 2 简 略 版 本 :2015 3 10 2016 2021 全 球 卫 生 部 门 病 毒 性 肝 炎 战 略 2016 2021 2015 3 12 2012 2010 2014 2015 2016 2021 140 55% 35% 5 15% 5 20% 2.4 1.3 1.5 1 1600 1000 40 50 2030 2000 采 取 行 动 的 机 会 90% 开 拓 成 功 的 道 路

More information

评 委 : 李 炎 斌 - 个 人 技 术 标 资 信 标 初 步 审 查 明 细 表 序 号 投 标 单 位 投 标 函 未 按 招 标 文 件 规 定 填 写 漏 填 或 内 容 填 写 错 误 的 ; 不 同 投 标 人 的 投 标 文 件 由 同 一 台 电 脑 或 同 一 家 投 标 单

评 委 : 李 炎 斌 - 个 人 技 术 标 资 信 标 初 步 审 查 明 细 表 序 号 投 标 单 位 投 标 函 未 按 招 标 文 件 规 定 填 写 漏 填 或 内 容 填 写 错 误 的 ; 不 同 投 标 人 的 投 标 文 件 由 同 一 台 电 脑 或 同 一 家 投 标 单 评 委 : 李 炎 斌 - 个 人 清 标 评 审 明 细 表 评 审 因 素 序 号 投 标 单 位 清 标 评 审 1 深 圳 市 创 捷 科 技 有 限 合 格 2 四 川 川 大 智 胜 软 件 股 份 有 限 合 格 3 北 京 航 天 长 峰 科 技 工 业 集 团 有 限 公 司 合 格 4 深 圳 中 兴 力 维 技 术 有 限 合 格 5 深 圳 键 桥 通 讯 技 术 股 份 有

More information

张 荣 芳 中 山 大 学 历 史 系 广 东 广 州 张 荣 芳 男 广 东 廉 江 人 中 山 大 学 历 史 系 教 授 博 士 生 导 师 我 们 要 打 破 以 前 学 术 界 上 的 一 切 偶 像 以 前 学 术 界 的 一 切 成 见 屏 除 我 们 要 实 地 搜 罗 材 料 到 民 众 中 寻 方 言 到 古 文 化 的 遗 址 去 发 掘 到 各 种 的 人 间 社 会 去

More information

<4D6963726F736F667420576F7264202D20BFC9B1E0B3CCD0F2BFD8D6C6CFB5CDB3C9E8BCC6CAA6B9FABCD2D6B0D2B5B1EAD7BC2E646F63>

<4D6963726F736F667420576F7264202D20BFC9B1E0B3CCD0F2BFD8D6C6CFB5CDB3C9E8BCC6CAA6B9FABCD2D6B0D2B5B1EAD7BC2E646F63> 国 家 职 业 标 准 1 可 编 程 序 控 制 系 统 设 计 师 国 家 职 业 标 准 1. 职 业 概 况 1.1 职 业 名 称 可 编 程 序 控 制 系 统 设 计 师 1.2 职 业 定 义 从 事 可 编 程 序 控 制 器 (PLC) 选 型 编 程, 并 对 应 用 系 统 进 行 设 计 集 成 和 运 行 管 理 的 人 员 1.3 职 业 等 级 本 职 业 共 设 四

More information

生产支援功能 使用说明书(IP-110 篇)

生产支援功能 使用说明书(IP-110 篇) 生 产 支 援 功 能 使 用 说 明 书 (IP-110 篇 ) 目 录!. 前 言...1 1. 概 要...1 2. 基 本 操 作 方 法...3 2-1. 信 息 模 式 和 通 常 缝 制 模 式 的 变 换...3 2-2. 信 息 模 式...4 2-3. 通 常 缝 制 模 式...5 @. 设 定 篇...6 1. 首 次 使 用 生 产 支 援 功 能 时 的 设 定 方 法...6

More information

目 录 关 于 图 标... 3 登 陆 主 界 面... 3 工 单 管 理... 5 工 单 列 表... 5 搜 索 工 单... 5 工 单 详 情... 6 创 建 工 单... 9 设 备 管 理 巡 检 计 划 查 询 详 情 销 售 管

目 录 关 于 图 标... 3 登 陆 主 界 面... 3 工 单 管 理... 5 工 单 列 表... 5 搜 索 工 单... 5 工 单 详 情... 6 创 建 工 单... 9 设 备 管 理 巡 检 计 划 查 询 详 情 销 售 管 宝 汇 德 Turbocare 微 服 务 系 统 客 户 操 作 手 册 Version 2.0 北 京 宝 汇 德 技 术 服 务 器 有 限 公 司 技 术 研 发 部 目 录 关 于 图 标... 3 登 陆 主 界 面... 3 工 单 管 理... 5 工 单 列 表... 5 搜 索 工 单... 5 工 单 详 情... 6 创 建 工 单... 9 设 备 管 理... 10 巡

More information

Microsoft Word - 文件汇编.doc

Microsoft Word - 文件汇编.doc 北 京 市 中 医 管 理 局 二 一 五 年 四 月 ... 1... 18 2015... 30 京 中 医 政 字 [2014]160 号 1 2 一 充 分 认 识 中 医 健 康 乡 村 建 设 工 作 的 重 要 意 义 二 建 立 健 全 工 作 保 障 机 制 2014 12 15 三 做 好 工 作 启 动 的 准 备 事 宜 1 2014 12 15 5-10 2014 12 15

More information

教师上报成绩流程图

教师上报成绩流程图 教 务 管 理 系 统 使 用 说 明 学 生 端 用 户 1 在 校 内 任 何 一 台 连 接 校 园 网 的 计 算 机 上 登 录 教 务 处 主 页 教 务 处 主 页 地 址 : http://jw.stdu.edu.cn/homepage 随 后 点 击 按 钮 ( 见 下 图 所 示 ), 即 可 进 入 综 合 教 务 管 理 系 统 2 在 综 合 教 务 管 理 区 域 内 键

More information

全国建筑市场注册执业人员不良行为记录认定标准(试行).doc

全国建筑市场注册执业人员不良行为记录认定标准(试行).doc - 1 - - 2 - 附 件 全 国 建 筑 市 场 注 册 执 业 人 员 不 良 记 录 认 定 标 准 ( 试 行 ) 说 明 为 了 完 善 建 筑 市 场 注 册 执 业 人 员 诚 信 体 系 建 设, 规 范 执 业 和 市 场 秩 序, 依 据 相 关 法 律 法 规 和 部 门 规 章, 根 据 各 行 业 特 点, 我 部 制 订 了 全 国 建 筑 市 场 注 册 执 业 人

More information

抗 战 时 期 国 民 政 府 的 银 行 监 理 体 制 探 析 % # % % % ) % % # # + #, ) +, % % % % % % % %

抗 战 时 期 国 民 政 府 的 银 行 监 理 体 制 探 析 % # % % % ) % % # # + #, ) +, % % % % % % % % 抗 战 时 期 国 民 政 府 的 银 行 监 理 体 制 探 析 王 红 曼 抗 战 时 期 国 民 政 府 为 适 应 战 时 经 济 金 融 的 需 要 实 行 由 财 政 部 四 联 总 处 中 央 银 行 等 多 家 机 构 先 后 共 同 参 与 的 多 元 化 银 行 监 理 体 制 对 战 时 状 态 下 的 银 行 发 展 与 经 营 安 全 进 行 了 大 规 模 的 设 计 与

More information

Microsoft Word - GT21L16S2W简要说明V3.7.doc

Microsoft Word - GT21L16S2W简要说明V3.7.doc GT21L16S2W 标 准 汉 字 字 库 芯 片 简 要 说 明 BRIEF 字 型 :11X12 点 阵 15X16 点 阵 字 符 集 :GB2312 兼 容 Unicode 内 码 排 置 方 式 : 横 置 横 排 总 线 接 口 :SPI 串 行 总 线 芯 片 形 式 :SO8 封 装 VER 3.7 2010-Q3 集 通 数 码 科 技 - 1 - 版 本 修 订 记 录 GT21L16S2W

More information

HSK( 一 级 ) 考 查 考 生 的 日 常 汉 语 应 用 能 力, 它 对 应 于 国 际 汉 语 能 力 标 准 一 级 欧 洲 语 言 共 同 参 考 框 架 (CEF) A1 级 通 过 HSK( 一 级 ) 的 考 生 可 以 理 解 并 使 用 一 些 非 常 简 单 的 汉 语

HSK( 一 级 ) 考 查 考 生 的 日 常 汉 语 应 用 能 力, 它 对 应 于 国 际 汉 语 能 力 标 准 一 级 欧 洲 语 言 共 同 参 考 框 架 (CEF) A1 级 通 过 HSK( 一 级 ) 的 考 生 可 以 理 解 并 使 用 一 些 非 常 简 单 的 汉 语 新 汉 语 水 平 考 试 HSK 为 使 汉 语 水 平 考 试 (HSK) 更 好 地 服 务 于 汉 语 学 习 者, 中 国 国 家 汉 办 组 织 中 外 汉 语 教 学 语 言 学 心 理 学 和 教 育 测 量 学 等 领 域 的 专 家, 在 充 分 调 查 了 解 海 外 实 际 汉 语 教 学 情 况 的 基 础 上, 吸 收 原 有 HSK 的 优 点, 借 鉴 近 年 来 国

More information

3 复 试 如 何 准 备 4 复 试 成 绩 计 算 5 复 试 比 例 6 复 试 类 型 7 怎 么 样 面 对 各 种 复 试 04 05

3 复 试 如 何 准 备 4 复 试 成 绩 计 算 5 复 试 比 例 6 复 试 类 型 7 怎 么 样 面 对 各 种 复 试 04 05 1 复 试 流 程 2 复 试 考 查 形 式 02 03 3 复 试 如 何 准 备 4 复 试 成 绩 计 算 5 复 试 比 例 6 复 试 类 型 7 怎 么 样 面 对 各 种 复 试 04 05 2 怎 样 给 导 师 留 下 良 好 的 第 一 印 象 把 握 进 门 时 机 1 面 试 中 穿 着 的 瞒 天 过 海 3 无 声 胜 有 声 的 肢 体 语 言 育 4 眼 睛 是 心

More information

类 似 地, 又 可 定 义 变 下 限 的 定 积 分 : ( ). 与 ψ 统 称 为 变 限 积 分. f ( ) d f ( t) dt,, 注 在 变 限 积 分 (1) 与 () 中, 不 可 再 把 积 分 变 量 写 成 的 形 式 ( 例 如 ) 以 免 与 积 分 上 下 限 的

类 似 地, 又 可 定 义 变 下 限 的 定 积 分 : ( ). 与 ψ 统 称 为 变 限 积 分. f ( ) d f ( t) dt,, 注 在 变 限 积 分 (1) 与 () 中, 不 可 再 把 积 分 变 量 写 成 的 形 式 ( 例 如 ) 以 免 与 积 分 上 下 限 的 5 ( 一 ) 微 积 分 学 基 本 定 理 当 函 数 的 可 积 性 问 题 告 一 段 落, 并 对 定 积 分 的 性 质 有 了 足 够 的 认 识 之 后, 接 着 要 来 解 决 一 个 以 前 多 次 提 到 过 的 问 题 在 定 积 分 形 式 下 证 明 连 续 函 数 必 定 存 在 原 函 数. 一 变 限 积 分 与 原 函 数 的 存 在 性 设 f 在 [,] 上

More information

世华财讯模拟操作手册

世华财讯模拟操作手册 第 一 部 分 : 股 票 模 拟 操 作 部 分 1. 登 录 与 主 界 面 1.1 登 录 学 生 在 桌 面 上, 打 开 世 华 文 件 夹, 直 接 双 击 文 件 夹 中 的 快 捷 图 标, 系 统 弹 出 世 华 财 讯 模 拟 股 票 交 易 系 统 ( 客 户 端 ) 窗 口, 如 图 1.1 所 示 图 1.1 请 输 入 登 录 名 称 及 密 码, 单 击 确 认 登 录

More information

富士通将军空调机 诺可力®X系列 样本

富士通将军空调机 诺可力®X系列 样本 (URL) http://www.fujitsu-general.com/cn/mobi/support/how-to/split/inner/01_x-series/ 新 国 家 能 效 标 准 APF 级 闪 亮 登 场 完 全 取 代 柜 机, 使 空 间 更 宽 敞 完 全 取 代 柜 机, 使 空 间 更 宽 敞 节 能 运 行 凉 感 十 足 冷 风 不 直 接 吹 向 人 体 对 冷

More information

深圳市新亚电子制程股份有限公司

深圳市新亚电子制程股份有限公司 证 券 代 码 :002388 证 券 简 称 : 新 亚 制 程 公 告 编 号 :2016-053 深 圳 市 新 亚 电 子 制 程 股 份 有 限 公 司 2016 年 第 二 次 临 时 股 东 大 会 决 议 公 告 本 公 司 及 董 事 会 全 体 成 员 保 证 公 告 内 容 真 实 准 确 和 完 整, 不 存 在 虚 假 记 载 误 导 性 陈 述 或 者 重 大 遗 漏 特

More information

一 从 分 封 制 到 郡 县 制 一 从 打 虎 亭 汉 墓 说 起

一 从 分 封 制 到 郡 县 制 一 从 打 虎 亭 汉 墓 说 起 县 乡 两 级 的 政 治 体 制 改 革 如 何 建 立 民 主 的 合 作 新 体 制 县 乡 人 大 运 行 机 制 研 究 课 题 组 引 言 一 从 分 封 制 到 郡 县 制 一 从 打 虎 亭 汉 墓 说 起 二 密 县 在 周 初 是 两 个 小 国 密 国 和 郐 国 三 密 县 的 第 一 任 县 令 卓 茂 四 明 清 时 代 的 密 县 二 从 集 中 的 动 员 体

More information

自 服 务 按 钮 无 法 访 问 新 系 统 的 自 服 务 页 面 因 此 建 议 用 户 从 信 网 中 心 (http://nc.tju.edu.cn) 主 页, 右 下 角 位 置 的 常 用 下 载, 或 校 园 网 用 户 自 服 务 (http://g.tju.edu.cn) 首 页

自 服 务 按 钮 无 法 访 问 新 系 统 的 自 服 务 页 面 因 此 建 议 用 户 从 信 网 中 心 (http://nc.tju.edu.cn) 主 页, 右 下 角 位 置 的 常 用 下 载, 或 校 园 网 用 户 自 服 务 (http://g.tju.edu.cn) 首 页 校 园 网 认 证 计 费 系 统 变 更 说 明 及 使 用 帮 助 为 提 高 校 园 网 的 可 靠 性 和 可 用 性, 提 升 用 户 的 上 网 体 验, 同 时 也 为 解 决 近 期 校 园 网 无 法 认 证 或 登 录 页 面 弹 出 缓 慢 的 问 题, 信 网 中 心 于 近 期 对 校 园 网 认 证 计 费 系 统 进 行 升 级 切 换 现 将 升 级 后 新 系 统

More information

18 上 报 该 学 期 新 生 数 据 至 阳 光 平 台 第 一 学 期 第 四 周 至 第 六 周 19 督 促 学 习 中 心 提 交 新 增 专 业 申 请 第 一 学 期 第 四 周 至 第 八 周 20 编 制 全 国 网 络 统 考 十 二 月 批 次 考 前 模 拟 题 第 一 学

18 上 报 该 学 期 新 生 数 据 至 阳 光 平 台 第 一 学 期 第 四 周 至 第 六 周 19 督 促 学 习 中 心 提 交 新 增 专 业 申 请 第 一 学 期 第 四 周 至 第 八 周 20 编 制 全 国 网 络 统 考 十 二 月 批 次 考 前 模 拟 题 第 一 学 1 安 排 组 织 全 国 网 络 统 考 九 月 批 次 网 上 考 前 辅 导 第 一 学 期 第 一 周 统 考 考 前 半 个 月 2 下 发 全 国 网 络 统 考 九 月 批 次 准 考 证 第 一 学 期 第 一 周 导 出 下 半 年 成 人 本 科 学 士 学 位 英 语 统 一 考 试 报 考 3 信 息 第 一 学 期 第 一 周 4 教 学 计 划 和 考 试 计 划 上 网,

More information

Microsoft Word - 第3章.doc

Microsoft Word - 第3章.doc 52 5 天 通 过 职 称 计 算 机 考 试 ( 考 点 视 频 串 讲 + 全 真 模 拟 ) Word 2003 中 文 字 处 理 ( 第 2 版 ) 第 3 章 3 字 符 格 式 需 要 掌 握 的 考 点 字 体 字 形 和 字 号 的 设 置 ; 上 标 下 标 空 心 字 等 字 体 效 果 的 使 用 ; 字 符 间 距 的 调 整 ; 改 变 字 符 颜 色 底 纹 添 加

More information

2006年顺德区高中阶段学校招生录取分数线

2006年顺德区高中阶段学校招生录取分数线 2014 年 顺 德 区 高 中 阶 段 学 校 考 试 提 前 批 第 一 批 第 二 批 学 校 录 取 根 据 佛 山 市 办 提 供 的 考 生 数 据, 现 将 我 区 2014 年 高 中 阶 段 学 校 考 试 提 前 批 第 一 批 第 二 批 学 校 的 录 取 公 布 如 下 : 一 顺 德 一 中 录 取 分 第 1 志 愿, 总 分 585, 综 合 表 现 评 价 A, 考

More information

评 委 : 徐 岩 宇 - 个 人 技 术 标 资 信 标 初 步 审 查 明 细 表 序 号 投 标 单 位 投 标 函 未 按 招 标 文 件 规 定 填 写 漏 填 或 内 容 填 写 错 误 的 ; 不 同 投 标 人 的 投 标 文 件 由 同 一 台 电 脑 或 同 一 家 投 标 单

评 委 : 徐 岩 宇 - 个 人 技 术 标 资 信 标 初 步 审 查 明 细 表 序 号 投 标 单 位 投 标 函 未 按 招 标 文 件 规 定 填 写 漏 填 或 内 容 填 写 错 误 的 ; 不 同 投 标 人 的 投 标 文 件 由 同 一 台 电 脑 或 同 一 家 投 标 单 评 委 : 徐 岩 宇 - 个 人 清 标 评 审 明 细 表 评 审 因 素 序 号 投 标 单 位 清 标 评 审 1 深 圳 市 创 捷 科 技 有 限 合 格 2 四 川 川 大 智 胜 软 件 股 份 有 限 合 格 3 北 京 航 天 长 峰 科 技 工 业 集 团 有 限 公 司 合 格 4 深 圳 中 兴 力 维 技 术 有 限 合 格 5 深 圳 键 桥 通 讯 技 术 股 份 有

More information

GB 17859-1999

GB 17859-1999 ICS35.020 L 09 中 华 人 民 共 和 国 国 家 标 准 GB 17859-1999 计 算 机 信 息 系 统 安 全 保 护 等 级 划 分 准 则 Classified criteria for security protection of Computer information system 1999-09-13 发 布 2001-01-01 实 施 国 家 质 量 技 术

More information

( 二 ) 现 行 统 一 高 考 制 度 不 利 于 培 养 人 的 创 新 精 神,,,,,,,,,,,,, [ ],,,,,,,,,,, :, ;,,,,,,? ( 三 ) 现 行 统 一 高 考 制 度 不 利 于 全 体 学 生 都 获 得 全 面 发 展,, [ ],,,,,,,,,,,

( 二 ) 现 行 统 一 高 考 制 度 不 利 于 培 养 人 的 创 新 精 神,,,,,,,,,,,,, [ ],,,,,,,,,,, :, ;,,,,,,? ( 三 ) 现 行 统 一 高 考 制 度 不 利 于 全 体 学 生 都 获 得 全 面 发 展,, [ ],,,,,,,,,,, ( ) ( )... 李 雪 岩, 龙 耀 (. 广 西 民 族 大 学 商 学 院, 广 西 南 宁 ;. 中 山 大 学 教 育 学 院, 广 东 广 州 ) : 高 等 教 育 是 专 业 教 育 高 考 是 为 高 等 教 育 服 务 的, 是 为 高 等 专 业 教 育 选 拔 有 专 业 培 养 潜 质 的 人 才 现 行 高 考 制 度 忽 略 专 业 潜 质 的 因 素, 过 份 强

More information

定 位 和 描 述 : 程 序 设 计 / 办 公 软 件 高 级 应 用 级 考 核 内 容 包 括 计 算 机 语 言 与 基 础 程 序 设 计 能 力, 要 求 参 试 者 掌 握 一 门 计 算 机 语 言, 可 选 类 别 有 高 级 语 言 程 序 设 计 类 数 据 库 编 程 类

定 位 和 描 述 : 程 序 设 计 / 办 公 软 件 高 级 应 用 级 考 核 内 容 包 括 计 算 机 语 言 与 基 础 程 序 设 计 能 力, 要 求 参 试 者 掌 握 一 门 计 算 机 语 言, 可 选 类 别 有 高 级 语 言 程 序 设 计 类 数 据 库 编 程 类 全 国 计 算 机 等 级 考 试 调 整 方 案 2011 年 7 月, 教 育 部 考 试 中 心 组 织 召 开 了 第 五 届 全 国 计 算 机 等 级 考 试 (NCRE) 考 委 会 会 议, 会 议 完 成 NCRE 考 委 会 换 届 选 举, 并 确 定 了 下 一 步 改 革 和 发 展 的 目 标 在 新 的 历 史 时 期,NCRE 将 以 保 持 稳 定 为 前 提 以

More information

工 程 勘 察 资 质 标 准 根 据 建 设 工 程 勘 察 设 计 管 理 条 例 和 建 设 工 程 勘 察 设 计 资 质 管 理 规 定, 制 定 本 标 准 一 总 则 ( 一 ) 本 标 准 包 括 工 程 勘 察 相 应 专 业 类 型 主 要 专 业 技 术 人 员 配 备 技 术

工 程 勘 察 资 质 标 准 根 据 建 设 工 程 勘 察 设 计 管 理 条 例 和 建 设 工 程 勘 察 设 计 资 质 管 理 规 定, 制 定 本 标 准 一 总 则 ( 一 ) 本 标 准 包 括 工 程 勘 察 相 应 专 业 类 型 主 要 专 业 技 术 人 员 配 备 技 术 住 房 和 城 乡 建 设 部 关 于 印 发 工 程 勘 察 资 质 标 准 的 通 知 建 市 [2013]9 号 各 省 自 治 区 住 房 和 城 乡 建 设 厅, 北 京 市 规 划 委, 天 津 上 海 市 建 设 交 通 委, 重 庆 市 城 乡 建 设 委, 新 疆 生 产 建 设 兵 团 建 设 局, 总 后 基 建 营 房 部 工 程 局, 国 务 院 有 关 部 门 建 设 司,

More information

操作手册

操作手册 企 业 网 上 银 行 使 用 手 册 ( 智 信 版 ) 中 国 农 业 银 行 股 份 有 限 公 司 重 庆 市 分 行 目 录 使 用 网 上 银 行 前 务 必 了 解 的 信 息... 3 1. 基 本 功 能... 3 2. 网 银 操 作 员... 3 3. 登 录 方 式... 3 4. 特 别 提 醒... 3 快 速 使 用 指 南... 4 1. 注 册 用 户... 4 2.

More information

第二讲 数列

第二讲   数列 Togisu XueD Persolized Eduio Developme Ceer 高 考 中 不 等 式 问 题 的 解 决 方 法 通 润 达 久 王 力 前 言 : 近 年 来 不 等 式 问 题 正 越 来 越 多 的 出 现 在 调 研 题 和 高 考 试 题 中 而 且 大 多 出 现 在 江 苏 高 考 的 填 空 压 轴 题 中 是 高 考 考 察 的 重 点 和 难 点 由 于

More information

名 称 生 命 科 学 学 院 083001 环 境 科 学 1 生 物 学 仅 接 收 院 内 调 剂, 初 试 分 数 满 足 我 院 生 物 学 复 试 最 低 分 数 线 生 命 科 学 学 院 071300 生 态 学 5 生 态 学 或 生 物 学 生 命 科 学 学 院 040102

名 称 生 命 科 学 学 院 083001 环 境 科 学 1 生 物 学 仅 接 收 院 内 调 剂, 初 试 分 数 满 足 我 院 生 物 学 复 试 最 低 分 数 线 生 命 科 学 学 院 071300 生 态 学 5 生 态 学 或 生 物 学 生 命 科 学 学 院 040102 华 中 师 范 大 学 2016 年 接 收 校 内 外 优 秀 硕 士 研 究 生 调 剂 信 息 表 名 称 经 济 与 工 商 管 理 学 院 020101 政 治 经 济 学 1 经 济 学 类 毕 业 学 校 与 报 考 学 校 不 低 于 我 校 办 学 层 次 经 济 与 工 商 管 理 学 院 020105 世 界 经 济 学 1 经 济 学 类 毕 业 学 校 与 报 考 学 校

More information

云信Linux SSH认证代理用户手册

云信Linux SSH认证代理用户手册 Windows 主 机 登 录 保 护 (RDP) 管 理 员 配 置 手 册 V1.0 云 信 事 业 部 飞 天 诚 信 科 技 股 份 有 限 公 司 www.cloudentify.com 章 节 目 录 第 1 章 管 理 平 台 配 置 说 明... 1 1.1 注 册... 1 1.2 登 录... 3 1.3 添 加 应 用... 4 1.4 添 加 用 户... 7 1.5 激 活

More information

作 为 生 产 者 式 文 本 的 女 性 主 义 通 俗 小 说 梅 丽 本 文 借 鉴 文 化 研 究 理 论 家 约 翰 费 斯 克 的 生 产 者 式 文 本 这 一 概 念 考 察 女 性 主 义 通 俗 小 说 的 文 本 特 征 写 作 策 略 和 微 观 政 治 意 义 女 性 主 义 通 俗 小 说 通 过 对 传 统 通 俗 小 说 的 挪 用 和 戏 仿 传 播 女 性 主 义

More information

<4D6963726F736F667420576F7264202D2032303133C4EAB9A4B3CCCBB6CABFCAFDD1A7D7A8D2B5BFCEBFBCCAD4B4F3B8D9D3EBD2AAC7F3>

<4D6963726F736F667420576F7264202D2032303133C4EAB9A4B3CCCBB6CABFCAFDD1A7D7A8D2B5BFCEBFBCCAD4B4F3B8D9D3EBD2AAC7F3> 工 程 硕 士 数 学 考 试 大 纲 与 要 求 ( 包 括 高 等 数 学 和 线 性 代 数 ) 一 函 数 极 限 与 连 续 第 一 部 分 : 高 等 数 学 考 试 内 容 函 数 的 概 念 及 表 示 法 函 数 的 有 界 性 单 调 性 周 期 性 和 奇 偶 性 复 合 函 数 反 函 数 分 段 函 数 和 隐 函 数 基 本 初 等 函 数 的 性 质 及 其 图 形 初

More information

导 数 和 微 分 的 概 念 导 数 的 几 何 意 义 和 物 理 意 义 函 数 的 可 导 性 与 连 续 性 之 间 的 关 系 平 面 曲 线 的 切 线 和 法 线 导 数 和 微 分 的 四 则 运 算 基 本 初 等 函 数 的 导 数 复 合 函 数 反 函 数 隐 函 数 以

导 数 和 微 分 的 概 念 导 数 的 几 何 意 义 和 物 理 意 义 函 数 的 可 导 性 与 连 续 性 之 间 的 关 系 平 面 曲 线 的 切 线 和 法 线 导 数 和 微 分 的 四 则 运 算 基 本 初 等 函 数 的 导 数 复 合 函 数 反 函 数 隐 函 数 以 2015 年 考 研 数 学 二 考 试 大 纲 考 试 科 目 : 高 等 数 学 线 性 代 数 考 试 形 式 和 试 卷 结 构 一 试 卷 满 分 及 考 试 时 间 试 卷 满 分 为 150 分, 考 试 时 间 为 180 分 钟. 二 答 题 方 式 答 题 方 式 为 闭 卷 笔 试. 三 试 卷 内 容 结 构 高 等 教 学 约 78% 线 性 代 数 约 22% 四 试 卷

More information

目 录 一 系 统 访 问... 1 二 门 户 首 页 申 报 用 户 审 核 用 户... 2 三 系 统 登 录 用 户 名 密 码 登 录 新 用 户 注 册 用 户 登 录 已 注 册 用

目 录 一 系 统 访 问... 1 二 门 户 首 页 申 报 用 户 审 核 用 户... 2 三 系 统 登 录 用 户 名 密 码 登 录 新 用 户 注 册 用 户 登 录 已 注 册 用 水 路 运 输 建 设 综 合 管 理 信 息 系 统 - 门 户 系 统 用 户 手 册 二 零 一 五 年 十 一 月 目 录 一 系 统 访 问... 1 二 门 户 首 页... 1 1. 申 报 用 户... 1 2. 审 核 用 户... 2 三 系 统 登 录... 4 1. 用 户 名 密 码 登 录... 4 1.1 新 用 户 注 册... 4 1.2 用 户 登 录... 7

More information

第 一 部 分 MagiCAD for Revit 安 装 流 程

第 一 部 分 MagiCAD for Revit 安 装 流 程 MagiCAD 软 件 安 装 流 程 MagiCAD v2015.4 for Revit 广 联 达 软 件 股 份 有 限 公 司 BIM 中 心 编 写 2015 年 06 月 第 一 部 分 MagiCAD for Revit 安 装 流 程 一 安 装 前 需 要 确 认 的 内 容 安 装 MagiCAD 程 序 之 前, 请 您 先 确 定 以 下 事 宜 1. 当 前 用 户 账 户

More information

一 公 共 卫 生 硕 士 专 业 学 位 论 文 的 概 述 学 位 论 文 是 对 研 究 生 进 行 科 学 研 究 或 承 担 专 门 技 术 工 作 的 全 面 训 练, 是 培 养 研 究 生 创 新 能 力, 综 合 运 用 所 学 知 识 发 现 问 题, 分 析 问 题 和 解 决

一 公 共 卫 生 硕 士 专 业 学 位 论 文 的 概 述 学 位 论 文 是 对 研 究 生 进 行 科 学 研 究 或 承 担 专 门 技 术 工 作 的 全 面 训 练, 是 培 养 研 究 生 创 新 能 力, 综 合 运 用 所 学 知 识 发 现 问 题, 分 析 问 题 和 解 决 上 海 市 公 共 卫 生 硕 士 专 业 学 位 论 文 基 本 要 求 和 评 价 指 标 体 系 ( 试 行 ) 上 海 市 学 位 委 员 会 办 公 室 二 O 一 二 年 三 月 一 公 共 卫 生 硕 士 专 业 学 位 论 文 的 概 述 学 位 论 文 是 对 研 究 生 进 行 科 学 研 究 或 承 担 专 门 技 术 工 作 的 全 面 训 练, 是 培 养 研 究 生 创

More information

第三章 作业

第三章  作业 - 在 题 图 - 中, 若 电 压 源 U V, 电 阻, 试 在 图 示 参 考 方 向 下 求 支 路 电 流 I Us I 题 图 - 以 电 压 源 为 参 考 方 向,I=-A - 求 图 - 各 支 路 中 未 知 量 的 值 4V V =? A U=? V A U=? A V a b c a =(-4)/=Ω b U=+ =4V c U=4V 题 图 - - 在 题 图 -a b 所

More information

三门峡市质量技术监督局清单公示

三门峡市质量技术监督局清单公示 附 件 4 卢 氏 县 财 政 局 行 政 职 权 运 行 流 程 图 一 行 政 处 罚 类 1. 第 1 项 一 般 程 序 流 程 图 案 件 来 源 初 步 确 认 违 法 事 实, 责 令 停 止 违 法 行 为 县 财 政 局 立 案 审 批 综 合 股 登 记 立 案 调 查 取 证 不 予 立 案 综 合 股 撰 写 调 查 终 结 报 告 移 送 有 关 部 门 综 合 股 提 出

More information

附 件 : 上 海 市 建 筑 施 工 企 业 施 工 现 场 项 目 管 理 机 构 关 键 岗 位 人 员 配 备 指 南 二 一 四 年 九 月 十 一 日 2

附 件 : 上 海 市 建 筑 施 工 企 业 施 工 现 场 项 目 管 理 机 构 关 键 岗 位 人 员 配 备 指 南 二 一 四 年 九 月 十 一 日 2 公 开 上 海 市 城 乡 建 设 和 管 理 委 员 会 文 件 沪 建 管 2014 758 号 上 海 市 城 乡 建 设 和 管 理 委 员 会 关 于 印 发 上 海 市 建 筑 施 工 企 业 施 工 现 场 项 目 管 理 机 构 关 键 岗 位 人 员 配 备 指 南 的 通 知 各 区 县 建 设 和 交 通 委 员 会 : 为 进 一 步 加 强 对 建 设 工 程 施 工 现

More information

一 开 放 性 的 政 策 与 法 规 二 两 岸 共 同 的 文 化 传 承 三 两 岸 高 校 各 自 具 有 专 业 优 势 远 见 杂 志 年 月 日

一 开 放 性 的 政 策 与 法 规 二 两 岸 共 同 的 文 化 传 承 三 两 岸 高 校 各 自 具 有 专 业 优 势 远 见 杂 志 年 月 日 河 北 师 范 大 学 学 报 新 时 期 海 峡 两 岸 高 校 开 放 招 生 问 题 探 讨 郑 若 玲 王 晓 勇 海 峡 两 岸 高 校 开 放 招 生 是 新 时 期 推 进 海 峡 两 岸 高 等 教 育 交 流 与 合 作 的 重 要 尝 试 系 统 梳 理 改 革 开 放 以 来 两 岸 招 生 政 策 与 就 学 人 数 发 展 变 化 的 历 史 进 程 可 发 现 促 进 两

More information

中 国 软 科 学 年 第 期!!!

中 国 软 科 学 年 第 期!!! 山 寨 模 式 的 形 成 机 理 及 其 对 组 织 创 新 的 启 示 山 寨 模 式 的 形 成 机 理 及 其 对 组 织 创 新 的 启 示 陶 厚 永 李 燕 萍 骆 振 心 武 汉 大 学 经 济 与 管 理 学 院 武 汉 大 学 中 国 产 学 研 合 作 问 题 研 究 中 心 湖 北 武 汉 北 京 大 学 经 济 研 究 所 光 华 天 成 博 士 后 工 作 站 北 京 本

More information

第 四 条 建 设 单 位 对 可 能 产 生 职 业 病 危 害 的 建 设 项 目, 应 当 依 照 本 办 法 向 安 全 生 产 监 督 管 理 部 门 申 请 职 业 卫 生 三 同 时 的 备 案 审 核 审 查 和 竣 工 验 收 建 设 项 目 职 业 卫 生 三 同 时 工 作 可

第 四 条 建 设 单 位 对 可 能 产 生 职 业 病 危 害 的 建 设 项 目, 应 当 依 照 本 办 法 向 安 全 生 产 监 督 管 理 部 门 申 请 职 业 卫 生 三 同 时 的 备 案 审 核 审 查 和 竣 工 验 收 建 设 项 目 职 业 卫 生 三 同 时 工 作 可 第 51 号 建 设 项 目 职 业 卫 生 三 同 时 监 督 管 理 暂 行 办 法 已 经 2012 年 3 月 6 日 国 家 安 全 生 产 监 督 管 理 总 局 局 长 办 公 会 议 审 议 通 过, 现 予 公 布, 自 2012 年 6 月 1 日 起 施 行 国 家 安 全 生 产 监 督 管 理 总 局 骆 琳 二 一 二 年 四 月 二 十 七 日 建 设 项 目 职 业

More information

第 六 章 债 券 股 票 价 值 评 估 1 考 点 一 : 债 券 价 值 的 影 响 因 素 2

第 六 章 债 券 股 票 价 值 评 估 1 考 点 一 : 债 券 价 值 的 影 响 因 素 2 Professional Accounting Education Provided by Academy of Professional Accounting (APA) CPA 财 务 管 理 习 题 班 第 八 讲 债 券 股 票 价 值 评 估 IreneGao ACCAspace 中 国 ACCA 国 际 注 册 会 计 师 教 育 平 台 Copyright ACCAspace.com

More information

¹ º ¹ º 农 业 流 动 人 口 是 指 户 口 性 质 为 农 业 户 口 在 流 入 地 城 市 工 作 生 活 居 住 一 个 月 及 以 上 的 流 动 人 口 非 农 流 动 人 口 是 指 户 口 性 质 为 非 农 户 口 在 流 入 地 城 市 工 作 生 活 居 住 一 个

¹ º ¹ º 农 业 流 动 人 口 是 指 户 口 性 质 为 农 业 户 口 在 流 入 地 城 市 工 作 生 活 居 住 一 个 月 及 以 上 的 流 动 人 口 非 农 流 动 人 口 是 指 户 口 性 质 为 非 农 户 口 在 流 入 地 城 市 工 作 生 活 居 住 一 个 ¹ 改 革 开 放 年 来 人 口 流 动 规 模 持 续 增 加 对 我 国 社 会 经 济 的 持 续 发 展 起 到 了 重 要 作 用 为 全 面 了 解 我 国 流 动 人 口 生 存 状 况 准 确 把 握 流 动 人 口 发 展 规 律 和 趋 势 不 断 加 强 流 动 人 口 服 务 管 理 引 导 人 口 有 序 流 动 合 理 分 布 国 家 人 口 计 生 委 于 年 月 启

More information

上证指数

上证指数 上 证 与 修 正 方 法 一 ( 一 ) 计 算 公 式 1. 上 证 指 数 系 列 均 采 用 派 许 加 权 综 合 价 格 指 数 公 式 计 算 2. 上 证 180 指 数 上 证 50 指 数 等 以 成 份 股 的 调 整 股 本 数 为 权 数 进 行 加 权 计 算, 计 算 公 式 为 : 报 告 期 指 数 =( 报 告 期 样 本 股 的 调 整 市 值 / 基 期 )

More information

(Microsoft Word - NCRE\314\345\317\265\265\367\325\37313\324\27221\272\3051.doc)

(Microsoft Word - NCRE\314\345\317\265\265\367\325\37313\324\27221\272\3051.doc) 川 教 考 院 2013 21 号 全 国 计 算 机 等 级 考 试 调 整 方 案 2011 年 7 月, 教 育 部 考 试 中 心 组 织 召 开 了 第 五 届 全 国 计 算 机 等 级 考 试 NCRE 考 委 会 会 议, 会 议 完 成 NCRE 考 委 会 换 届 选 举, 并 确 定 了 下 一 步 改 革 和 发 展 的 目 标 在 新 的 历 史 时 期,NCRE 将 以

More information

北京信息科技大学本科学生成绩管理办法

北京信息科技大学本科学生成绩管理办法 北 京 信 息 科 技 大 学 文 件 校 教 发 2012 113 号 关 于 印 发 北 京 信 息 科 技 大 学 本 科 学 生 成 绩 管 理 办 法 的 通 知 各 相 关 单 位 : 现 将 北 京 信 息 科 技 大 学 本 科 学 生 成 绩 管 理 办 法 印 发 给 你 们, 请 遵 照 执 行 北 京 信 息 科 技 大 学 2012 年 12 月 17 日 1 北 京 信

More information

3 月 30 日 在 中 国 证 券 报 上 海 证 券 报 证 券 时 报 证 券 日 报 和 上 海 证 券 交 易 所 网 站 上 发 出 召 开 本 次 股 东 大 会 公 告, 该 公 告 中 载 明 了 召 开 股 东 大 会 的 日 期 网 络 投 票 的 方 式 时 间 以 及 审

3 月 30 日 在 中 国 证 券 报 上 海 证 券 报 证 券 时 报 证 券 日 报 和 上 海 证 券 交 易 所 网 站 上 发 出 召 开 本 次 股 东 大 会 公 告, 该 公 告 中 载 明 了 召 开 股 东 大 会 的 日 期 网 络 投 票 的 方 式 时 间 以 及 审 北 京 市 君 致 律 师 事 务 所 关 于 浪 潮 软 件 股 份 有 限 公 司 2015 年 度 股 东 大 会 的 法 律 意 见 书 致 : 浪 潮 软 件 股 份 有 限 公 司 北 京 市 君 致 律 师 事 务 所 ( 以 下 简 称 本 所 ) 受 浪 潮 软 件 股 份 有 限 公 司 ( 以 下 简 称 公 司 ) 的 委 托, 指 派 律 师 出 席 2016 年 4 月

More information

用节点法和网孔法进行电路分析

用节点法和网孔法进行电路分析 运 用 节 点 法 和 网 孔 法 进 行 电 路 分 析 众 所 周 知, 运 用 基 尔 霍 夫 定 律 和 欧 姆 定 律, 我 们 可 以 对 任 何 一 个 电 路 进 行 分 析, 以 确 定 其 运 行 条 件 ( 电 流 和 电 压 值 ) 一 般 电 路 分 析 的 难 点 在 于 用 最 少 的 联 立 方 程 描 述 电 路 的 运 行 特 性 在 这 一 讲 里, 我 们 将

More information

课程类 别

课程类 别 美 声 演 唱 方 向 培 养 方 案 一 培 养 目 标 本 方 向 要 求 学 生 德 智 体 美 全 面 发 展, 培 养 能 在 文 艺 团 体 从 事 声 乐 演 唱 及 能 在 艺 术 院 校 从 事 本 方 向 教 学 的 高 级 门 人 才 二 培 养 规 格 本 方 向 学 生 应 系 统 掌 握 声 乐 演 唱 方 面 的 理 论 和 技 能, 具 备 较 高 的 声 乐 演 唱

More information

白皮书

白皮书 应 用 安 全 支 撑 平 台 (ASSP ASSP) 2010 年 12 月 1 版 权 声 明 : 本 文 件 中 出 现 的 全 部 内 容, 除 另 有 特 别 注 明, 版 权 均 属 上 海 格 尔 软 件 股 份 有 限 公 司 ( 以 下 简 称 格 尔 软 件 ) 所 有, 未 经 格 尔 软 件 书 面 许 可, 任 何 人 不 得 以 任 何 形 式 擅 自 拷 贝 传 播 复

More information

马 克 思 主 义 公 正 观 的 基 本 向 度 及 方 法 论 原 则!! # #

马 克 思 主 义 公 正 观 的 基 本 向 度 及 方 法 论 原 则!! # # 马 克 思 主 义 公 正 观 的 基 本 向 度 及 方 法 论 原 则 马 俊 峰 在 社 会 公 正 问 题 的 大 讨 论 中 罗 尔 斯 诺 齐 克 哈 耶 克 麦 金 泰 尔 等 当 代 西 方 思 想 家 的 论 述 被 反 复 引 用 和 申 说 而 将 马 克 思 恩 格 斯 等 经 典 作 家 的 观 点 置 于 一 种 被 忽 视 甚 至 被 忘 却 的 状 态 形 成 这 种

More information

ICS 35

ICS 35 ICS 35.020 L09 GA 中 华 人 民 共 和 国 公 共 安 全 行 业 标 准 GA/T 710-2007 信 息 安 全 技 术 信 息 系 统 安 全 等 级 保 护 基 本 配 置 Information security technology- Fundamental configure of security classification protection for information

More information

际 联 考 的 非 美 术 类 本 科, 提 前 批 本 科 体 育 类 第 一 批 第 二 批 第 三 批 的 理 工 类 和 文 史 类 本 科 平 行 志 愿, 考 生 可 以 填 报 6 所 院 校 志 愿 符 合 贫 困 地 区 专 项 计 划 和 农 村 考 生 专 项 计 划 报 考

际 联 考 的 非 美 术 类 本 科, 提 前 批 本 科 体 育 类 第 一 批 第 二 批 第 三 批 的 理 工 类 和 文 史 类 本 科 平 行 志 愿, 考 生 可 以 填 报 6 所 院 校 志 愿 符 合 贫 困 地 区 专 项 计 划 和 农 村 考 生 专 项 计 划 报 考 第 四 部 分 平 行 志 愿 57. 什 么 是 平 行 志 愿?/ 32 58. 我 省 在 哪 个 批 次 实 行 平 行 志 愿? 考 生 最 多 可 以 填 报 几 所 院 校 志 愿?/ 32 59. 第 一 二 三 批 本 科 平 行 志 愿 如 何 投 档?/ 32 60. 艺 术 本 科 ( 二 ) 艺 术 本 科 ( 三 ) 和 体 育 本 科 的 平 行 志 愿 如 何 投 档?/

More information

<4D6963726F736F667420576F7264202D20B9D8D3DAB0BABBAAA3A8C9CFBAA3A3A9D7D4B6AFBBAFB9A4B3CCB9C9B7DDD3D0CFDEB9ABCBBE32303132C4EAC4EAB6C8B9C9B6ABB4F3BBE1B7A8C2C9D2E2BCFBCAE92E646F6378>

<4D6963726F736F667420576F7264202D20B9D8D3DAB0BABBAAA3A8C9CFBAA3A3A9D7D4B6AFBBAFB9A4B3CCB9C9B7DDD3D0CFDEB9ABCBBE32303132C4EAC4EAB6C8B9C9B6ABB4F3BBE1B7A8C2C9D2E2BCFBCAE92E646F6378> 上 海 德 载 中 怡 律 师 事 务 所 关 于 昂 华 ( 上 海 ) 自 动 化 工 程 股 份 有 限 公 司 二 〇 一 二 年 年 度 股 东 大 会 法 律 意 见 书 上 海 德 载 中 怡 律 师 事 务 所 上 海 市 银 城 中 路 168 号 上 海 银 行 大 厦 1705 室 (200120) 电 话 :8621-5012 2258 传 真 :8621-5012 2257

More information

收 入 支 出 项 目 2016 年 预 算 项 目 2016 年 预 算 预 算 01 表 单 位 : 万 元 ( 保 留 两 位 小 数 ) 一 公 共 财 政 预 算 拨 款 50.06 一 人 员 经 费 23.59 1 一 般 财 力 50.06 1 人 员 支 出 21.95 2 成 品

收 入 支 出 项 目 2016 年 预 算 项 目 2016 年 预 算 预 算 01 表 单 位 : 万 元 ( 保 留 两 位 小 数 ) 一 公 共 财 政 预 算 拨 款 50.06 一 人 员 经 费 23.59 1 一 般 财 力 50.06 1 人 员 支 出 21.95 2 成 品 100.12 2016 年 龙 岩 市 部 门 预 算 表 报 送 日 期 : 年 月 日 单 位 负 责 人 签 章 : 财 务 负 责 人 签 章 : 制 表 人 签 章 : 收 入 支 出 项 目 2016 年 预 算 项 目 2016 年 预 算 预 算 01 表 单 位 : 万 元 ( 保 留 两 位 小 数 ) 一 公 共 财 政 预 算 拨 款 50.06 一 人 员 经 费 23.59

More information

反 学 校 文 化 与 阶 级 再 生 产 小 子 与 子 弟 之 比 较 周 潇 作 者 通 过 对 北 京 某 打 工 子 弟 学 校 的 田 野 调 查 后 发 现 在 农 民 工 子 弟 中 间 盛 行 着 类 似 学 做 工 中 所 描 述 的 工 人 阶 级 小 子 的 反 学 校 文 化 但 是 由 于 制 度 安 排 与 社 会 条 件 的 差 异 子 弟 与 小 子 的 反 学 校

More information

合 并 计 算 配 售 对 象 持 有 多 个 证 券 账 户 的, 多 个 证 券 账 户 市 值 合 并 计 算 确 认 多 个 证 券 账 户 为 同 一 配 售 对 象 持 有 的 原 则 为 证 券 账 户 注 册 资 料 中 的 账 户 持 有 人 名 称 有 效 身 份 证 明 文 件

合 并 计 算 配 售 对 象 持 有 多 个 证 券 账 户 的, 多 个 证 券 账 户 市 值 合 并 计 算 确 认 多 个 证 券 账 户 为 同 一 配 售 对 象 持 有 的 原 则 为 证 券 账 户 注 册 资 料 中 的 账 户 持 有 人 名 称 有 效 身 份 证 明 文 件 深 圳 市 场 首 次 公 开 发 行 股 票 网 下 发 行 实 施 细 则 ( 征 求 意 见 稿 ) 第 一 章 总 则 第 一 条 为 规 范 深 圳 市 场 首 次 公 开 发 行 股 票 网 下 发 行 行 为, 根 据 证 券 发 行 与 承 销 管 理 办 法 及 相 关 规 定, 制 定 本 细 则 第 二 条 本 细 则 所 称 网 下 发 行 是 指 首 次 公 开 发 行 股

More information

目 录 页 1. 欢 迎 使 用 网 上 预 约 面 谈 访 问 系 统... 3 2. 新 用 户... 4 2.1 新 用 户 登 入 帐 户 程 序... 4 2.2 启 动 网 上 预 约 面 谈 访 问 帐 户... 5 2.2.1 核 对 帐 户 的 地 址 资 料... 5 2.2.2

目 录 页 1. 欢 迎 使 用 网 上 预 约 面 谈 访 问 系 统... 3 2. 新 用 户... 4 2.1 新 用 户 登 入 帐 户 程 序... 4 2.2 启 动 网 上 预 约 面 谈 访 问 帐 户... 5 2.2.1 核 对 帐 户 的 地 址 资 料... 5 2.2.2 网 上 预 约 面 谈 访 问 使 用 指 南 香 港 特 别 行 政 区 政 府 统 计 处 目 录 页 1. 欢 迎 使 用 网 上 预 约 面 谈 访 问 系 统... 3 2. 新 用 户... 4 2.1 新 用 户 登 入 帐 户 程 序... 4 2.2 启 动 网 上 预 约 面 谈 访 问 帐 户... 5 2.2.1 核 对 帐 户 的 地 址 资 料... 5 2.2.2 阅

More information

目 录 第 一 章 博 星 卓 越 电 子 商 务 营 销 策 划 实 践 平 台 硬 件 使 用 介 绍... 3 第 二 章 博 星 卓 越 电 子 商 务 营 销 策 划 实 践 平 台 管 理 员 端 功 能 使 用 介 绍... 4 2.1 系 统 管 理 员 登 陆... 4 2.2 班

目 录 第 一 章 博 星 卓 越 电 子 商 务 营 销 策 划 实 践 平 台 硬 件 使 用 介 绍... 3 第 二 章 博 星 卓 越 电 子 商 务 营 销 策 划 实 践 平 台 管 理 员 端 功 能 使 用 介 绍... 4 2.1 系 统 管 理 员 登 陆... 4 2.2 班 博 星 卓 越 电 子 商 务 营 销 策 划 实 践 平 台 使 用 说 明 书 制 作 : 北 京 博 导 前 程 信 息 技 术 有 限 公 司 目 录 第 一 章 博 星 卓 越 电 子 商 务 营 销 策 划 实 践 平 台 硬 件 使 用 介 绍... 3 第 二 章 博 星 卓 越 电 子 商 务 营 销 策 划 实 践 平 台 管 理 员 端 功 能 使 用 介 绍... 4 2.1

More information