doc3538 cn

特性
• 与 MCS®51 系列相兼容的 8 位微控制器
• 增强型 8051 体系结构
•
•
•
•
•
– 单时钟周期字节取指能力
– 20 MHz 时钟频率下吞吐量达 20 MIPS
– 全静态工作 : 0 Hz 到 20 MHz
– 片上 2 周期硬件乘法器
– 128 x 8 内部 RAM
– 4 个中断优先级
非易失性程序存储器
– 2KB 系统内可编程 (ISP) Flash 存储器
– 寿命 : 可重复擦写最少 10,000 次
– 数据保持能力 : 最少 10 年
– 程序下载串行接口
– 32 字节快速页面编程模式
– 64 字节用户签名数组区
– 2 级存储锁保证软件安全
外围特性
– 2 个 16-bit 增强型定时器 / 计数器
– 2 个 8-bit PWM 输出端 ( 仅 AT89LP213 )
– 带自动地址识别和帧错误检测的增强型 UART ( 仅 AT89LP214)
– 带双缓冲器可收发增强型主 / 从 SPI
– 可软件复位的可编程看门狗定时器
– 带可选中断和反跳的模拟比较器
– 8 个通用中断引脚
特殊微控制器特性
– 双线 (TW)片上调试接口
– 掉电检测以及用断电标志上电复位
– 内部 RC 振荡器
– 低功耗省电和掉电模式
– 从掉电模式的中断恢复功能
I/O 和封装
– 共 12 个可编程 I/O 线
– 可配置 I/O:准双向 , 输入 , 推挽式输出 , 开漏共四种模式
– 5V 耐压能力的 I/O
– 14 针 TSSOP 或 PDIP
工作条件
– 2.4V 到 5.5V VCC 电压范围
– -40°C 到 85°C 温度范围
带 2K 字节 Flash
的 8-bit 微控制器
AT89LP213
AT89LP214
Preliminary
1. 描述
AT89LP213/214 是低功耗的高性能的 CMOS 8 位微控制器,带有 2K 字节的系统内可编
程 Flash 存储器。该设备的生产使用了 Atmel 的高密度非易失性存储器技术并且与工业
标准的 MCS-51 指令集相兼容。 AT89LP213/214 的构建基于增强型的每时钟周期可取
一字节指令的 CPU 核心。在经典的 8051 体系结构中,每取一字节需要 6 个时钟周期,
这使得执行指令需要 12, 24 或 48 个时钟周期。在 AT89LP213/214 CPU 中,执行指令
只需要 1 到 4 个时钟周期,因而吞吐量比标准的 8051 大 6 到 12 倍。百分之七十的指
令的执行只需要与其字节数相同的时钟周期。
本文是英文数据手册的中文
翻译,其目的是方便中国用
户的阅读。它无法自动跟随
原稿的更新,同时也可能存
在翻译上的错误。读者应该
以英文原稿为参考以获得更
准确的信息。
3538A–MICRO–6/06
其余的指令的执行只需要比其字节数多一个的时钟周期。增强型的 CPU 核心有 20 MIPS 的吞吐
能力,而经典的 8051 CPU 在同样的工作电流下只能达到 4 MIPS。另一方面,保持与经典的 8051
一样的吞吐量时,这个新的 CPU 核心工作在低得多的速度下从而极大程度地降低了功耗。
AT89LP213/214 提供下列标准特性:2K 字节系统内可编程 Flash 存储器,128 字节 RAM,12 条 I/O
线,2 个 16 位定时器 / 计数器,2 个 PWM 输出端 ( 仅 AT89LP213 ),一个可编程看门狗定时器,
一个全双工串口 ( 仅 AT89LP214),一个串行外围接口,一个内部 RC 振荡器,片上晶振,一个 4
优先级的 6 向量中断系统。
AT89LP213/214的两个 16位定时器/计数器有两个新的模式。模式0可以配置为9到16位可变的定
时器 / 计数器,模式 1 可以配置为 16 位自动重载的定时器 / 计数器。此外, AT89LP213 的两个定
时器 / 计数器还可独立地驱动一个脉冲宽度调制输出端。
AT89LP213/214 的 I/O 口可独立地配置为四个工作模式下的一种。在准双向模式下,端口工作方
式与经典 8051 相同。在输入模式下,端口是三态的。推挽式输出模式提供完全的 CMOS 驱动,
开漏模式提供一个下拉电阻。此外, Port 1 的 8 个引脚都可使用通用中断接口配置为中断源。
AT89LP213/214 的 I/O 的耐压值比设备自身的供电电源要高,可达 5.5V。当设备供电电压为 2.4V
而所有的 I/O 口接收为 5.5V 信号时,所有 I/O 总的回流电流 少于 100 µA。
2. 引脚配置
2.1
AT89LP213: 14 针 TSSOP/PDIP
(GPI5/MOSI) P1.5
(GPI7/SCK) P1.7
(GPI5/RST) P1.3
GND
(GPI2) P1.2
(T0) P3.4
(INT0/XTAL1) P3.2
2.2
14
13
12
11
10
9
8
P1.6 (MISO/GPI6)
1
2
3
4
5
6
7
14
13
12
11
10
9
8
P1.6 (MISO/GPI6)
P1.4 (SS/GPI4)
P1.1 (AIN1/GPI1)
P1.0 (AIN0/GPI0)
VCC
P3.5 (T1)
P3.3 (XTAL2/CLKOUT/INT1)
AT89LP214: 14 针 TSSOP/PDIP
(GPI5/MOSI) P1.5
(GPI7/SCK) P1.7
(GPI5/RST) P1.3
GND
(GPI2) P1.2
(RxD) P3.0
(INT0/XTAL1) P3.2
2
1
2
3
4
5
6
7
P1.4 (SS/GPI4)
P1.1 (AIN1/GPI1)
P1.0 (AIN0/GPI0)
VCC
P3.1 (TxD)
P3.3 (XTAL2/CLKOUT/INT1)
AT89LP213/214 [Preliminary]
3538A–MICRO–6/06
AT89LP213/214 [Preliminary]
3. 引脚描述
Table 3-1.
引脚
1
AT89LP213 引脚描述
符号
P1.5
类型
I/O
I/O
I
2
P1.7
I/O
I/O
I
描述
P1.5: 用户可配置 I/O,Port 1 bit 5.
MOSI: SPI 主 - 输出 / 从 - 输入。当配置为主控端时,为输出引脚。当配置为从控端时,为输入引脚。
GPI5: 通用中断输入端 5.
P1.7: 用户可配置 I/O 口,Port 1 bit 7.
SCK: SPI 时钟。当配置为主控端时,为输出引脚。当配置为从控端时,为输入引脚。
GPI7: 通用中断输入端 7.
3
P1.3
I/O
I
I
I
4
GND
I
5
P1.2
I/O
I
P1.2: 用户可配置 I/O 口, Port 1 bit 2.
GPI2: 通用中断输入端 2.
6
P3.4
I/O
I/O
P3.4: 用户可配置 I/O 口, Port 3 bit 4.
T0: 定时器 / 计数器 0 外部 输入或 PWM 输出 .
I/O
I
7
P3.2
I/O
I/O
O
8
P3.3
O
I/O
P1.3: 用户可配置 I/O 口, Port 1 bit 3 ( 若禁止复位保险 ).
RST: 外部 Active-Low 复位输入端 ( 若使能复位保险,See “ 外部复位 ” on page 15).
GPI3: 通用中断输入端 3.
DCL: 当使能 OCD 时作为片上调试接口的串行时钟输入。
地
P3.2: 用户可配置 I/O 口, Port 3 bit 2.
XTAL1: 输入到反向晶振放大器和内部时钟发生电路。若采用内部 RC 振荡器作为时钟源时,它可用作一
个端口引脚 .
DDA: 当使能 OCD 并采用内部 RC 振荡器作为时钟源时,作为片上调试接口的串行数据输入 / 输出。
P3.3: 用户可配置 I/O 口, Port 3 bit 3.
XTAL2: 从反向晶振放大器输出。若采用内部 RC 振荡器作为时钟源时,它可用作一个端口引脚 .
CLKOUT: 若采用内部 RC 振荡器作为时钟源时,可用于输出内部时钟的二分频。
DDA: 当使能 OCD 并采用外部时钟作为时钟源时,作为片上调试接口的串行数据输入 / 输出。
9
P3.5
I/O
I/O
10
VDD
I
11
P1.0
I/O
I
I
P1.0: 用户可配置 I/O 口, Port 1 bit 0.
AIN0: 正极输入模拟比较器 .
GPI0: 通用中断输入端 0.
12
P1.1
I/O
I
I
P1.1: 用户可配置 I/O 口, Port 1 bit 1.
AIN1: 负极输入模拟比较器 .
GPI1: 通用中断输入端 1
13
P1.4
I/O
I
I
P1.4: 用户可配置 I/O 口, Port 1 bit 4.
SS:SPI 从控选择输入引脚 .
GPI4: 通用中断输入端 4.
14
P1.6
I/O
I/O
I
P3.5: 用户可配置 I/O 口, Port 3 bit 5.
T1: 定时器 / 计数器 1 外部 输入或 PWM 输出 .
电源电压
P1.6: 用户可配置 I/O 口, Port 1 bit 6.
MISO: SPI 主控 - 输入 / 从控 - 输出。当配置为主控端时,为输入引脚。当配置为从控端时,为输出引脚。
GPI6: 通用中断输入端 6.
3
3538A–MICRO–6/06
Table 3-2.
引脚
1
AT89LP214 引脚描述
符号
P1.5
类型
I/O
I/O
I
2
P1.7
I/O
I/O
I
P1.5: 用户可配置 I/O 口,Port 1 bit 5.
MOSI: SPI 主 - 输出 / 从 - 输入。当配置为主控端时,为输出引脚。当配置为从控端时,为输入引脚。
GPI5: 通用中断输入端 5.
P1.7: 用户可配置 I/O 口, Port 1 bit 7.
SCK: SPI 时钟。当配置为主控端时,为输出引脚。当配置为从控端时,为输入引脚。 .
GPI7: 通用中断输入端 7.
3
P1.3
I/O
I
I
I
4
GND
I
5
P1.2
I/O
I
P1.2: 用户可配置 I/O 口, Port 1 bit 2.
GPI2: 通用中断输入端 2.
6
P3.0
I/O
I
P3.0: 用户可配置 I/O 口, Port 3 bit 0.
RXD: 串行端口接收端输入 .
I/O
I
7
P3.2
I/O
I/O
O
8
P3.3
O
I/O
P1.3: 用户可配置 I/O 口, Port 1 bit 3 ( 若禁止复位保险 ).
RST: 外部 Active-Low 复位输入端 ( 若使能复位保险,See “ 外部复位 ” on page 15).
GPI3: 通用中断输入端 3.
DCL: 片上调试接口的串行时钟输入。
地
P3.2: 用户可配置 I/O 口, Port 3 bit 2.
XTAL1: I 输入到反向晶振放大器和内部时钟发生电路。若采用内部 RC 振荡器作为时钟源时,它可用作一
个端口引脚。
DDA: 当使能 OCD 并采用内部 RC 振荡器作为时钟源时,作为片上调试接口的串行数据输入 / 输出。 .
P3.3: 用户可配置 I/O 口, Port 3 bit 3.
XTAL2: 从反向晶振放大器输出。若采用内部 RC 振荡器作为时钟源时,它可用作一个端口引脚 .
CLKOUT: 若采用内部 RC 振荡器作为时钟源时,可用于输出内部时钟的二分频。
DDA: 当使能 OCD 并采用外部时钟作为时钟源时,作为片上调试接口的串行数据输入 / 输出。
9
P3.1
I/O
O
10
VDD
I
11
P1.0
I/O
I
I
P1.0: 用户可配置 I/O 口, Port 1 bit 0.
AIN0: 正极输入模拟比较器 .
GPI0: 通用中断输入端 0.
12
P1.1
I/O
I
I
P1.1: 用户可配置 I/O 口, Port 1 bit 1.
AIN1: 负极输入模拟比较器 .
GPI1: 通用中断输入端 1
13
P1.4
I/O
I
I
P1.4: 用户可配置 I/O 口, Port 1 bit 4.
SS: SPI 从控选择输入引脚 .
GPI4: 通用中断输入端 4.
14
P1.6
I/O
I/O
I
4
描述
P3.1: 用户可配置 I/O 口, Port 3 bit 1.
TXD: 串口发送端输出 .
电源电压
P1.6: 用户可配置 I/O 口, Port 1 bit 6.
MISO: SPI 主控 - 输入 / 从控 - 输出。当配置为主控端时,为输入引脚。当配置为从控端时,为输出引脚。
GPI6: 通用中断输入端 6.
AT89LP213/214 [Preliminary]
3538A–MICRO–6/06
AT89LP213/214 [Preliminary]
4. 方框图
Figure 4-1.
AT89LP213 模块框图
Single Cycle
8051 CPU
SPI
2KB Flash
Timer 0
Timer 1
128 Bytes
RAM
Analog
Comparator
Port 3
Configurable I/O
Watchdog
Timer
Port 1
Configurable I/O
On-Chip
RC Oscillator
CPU Clock
General-purpose
Interrupt
Figure 4-2.
Configurable
Oscillator
Crystal or
Resonator
AT89LP214 模块框图
Single Cycle
8051 CPU
UART
2KB Flash
SPI
128 Bytes
RAM
Timer 0
Timer 1
Port 3
Configurable I/O
Analog
Comparator
Port 1
Configurable I/O
Watchdog
Timer
On-Chip
RC Oscillator
General-purpose
Interrupt
CPU Clock
Configurable
Oscillator
Crystal or
Resonator
5
3538A–MICRO–6/06
5. 与标准 8051 比较
AT89LP213/214 是完全与 MCS-51 指令集兼容的带增强特性的控制器系列的一部分。此外,大部
分 SFR 地址,位分配和引脚转换功能与 Atmel 现有的标准 8051 系列产品相一致。不过,由于该
微控制器有更高的性能,一些系统级行为则与象 AT89S52 或 AT89S2051 这样的 Atmel 的标准
8051 产品有所不同。与标准 8051 的这些不同之处罗列如下:
5.1
系统时钟
CPU 时钟频率与外部 XTAL1 频率相等。振荡器不再作二分频用于提供内部时钟,同时 x2 模式也不
再支持。
5.2
指令执行时每时钟周期取一字节指令
CPU 每一个时钟周期从内存取一字节代码,而不再是 6 个时钟周期。这极大地增加了 CPU 的吞吐
量。于是, CPU 执行指令不再需要 12 到 48 个时钟周期。每条指令的执行仅在 1 到 4 时钟周期
内完成。详细见 See “ 指令机摘要 ” on page 57 .
5.3
中断处理
中断控制器在每个指令的最后的时钟周期轮询中断标志。为使在最后的指令周期响应某个中断请
求,其中断标志需要在该指令的最后的时钟周期到来前一直锁存为有效,如果该指令为单时钟周
期执行的指令则需要在前一指令的最后一个时钟周期内一直保持有效。
外部中断引脚 INT0 和 INT1 每个时钟周期采样,而非每 12 个时钟周期采样一次。有了更端的指
令时序和更快的中断响应,使得对外部事件的中断的最快响应速率更高。
5.4
定时器 / 计数器
缺省情况下,定时器 / 计数器的计数频率为一个时钟周期。相比之下,标准 8051 是每 12 个时钟
周期计数一次。 一个通用预定器可用于为所有的定时器划分时间基并降低计数速率。 CLKREG
SFR中的TPS位控制预定器 (Table 9-2 on page 13). 设置TPS = 1011B将使定时器每12时钟周期
计数一次。
外部定时器 / 计数器引脚 T0 和 T1 在每个时钟周期采样一次,而非 12 个时钟周期。这增加了计数
器模块的最大工作速率。
5.5
串口
UART在模式0下的波特率是时钟频率的1/2,在标准8051中则是时钟频率的1/12;输出数据仅在
串行时钟的上升沿有效。 还应该注意,使用定时器 1 在模式 1 或模式 3 下发生波特率时,定时器
以时钟频率计数而非时钟频率的 1/12。当 AT89LP214 与标准 8051 工作在同一频率时,为保持
AT89LP214具有相同的波特率,则 延迟时间必须为12倍时钟周期。定时器1的模式1支持16位自动
重载,可以用于较长的 时间延迟以产生较低的波特率。
6
AT89LP213/214 [Preliminary]
3538A–MICRO–6/06
AT89LP213/214 [Preliminary]
5.6
看门狗定时器
AT89LP213/214的看门狗定时器的计数速率与时钟周期一致。相比之下,标准8051则每12个时钟
周期计数一次。 一个通用预定器可用于为所有的定时器分频时间基并降低计数速率。
5.7
I/O 端口
AT89LP213/214的I/O端口可配置为四种模式。缺省情况下,掉电或复位时I/O端口回到只读 (三态
) 模式 。在标准 8051 中,所有端口在掉电或复位时仅下拉至低电平。为使能类似 8051 的端口,端
口必须设置为准双向模式,这通过清零 P1M0 和 P3M0 SFR 来实现。用户还可以通过禁止 TristatePort User Fuse(三态用户保险)来将端口配置为准双向模式起始方式。当禁止该保险时,P1M0
和 P3M0 将复位到 00h 而非 FFh,并且端口会上拉到高电位。
5.8
复位
AT89LP213/214 的 RST 引脚是低电位触发的,而在标准 8051 中,则是高电位复位。此外,RST 引
脚每时钟周期采样一次,并且必须最少保持低电位 2 个时钟周期,而非 24 个时钟周期,这样才能
识别为有效的复位信号。
6. 存储器结构
AT89LP213/214 使用哈佛体系结构,程序和数据存储器的地址线分离。程序存储器使用常规的线
性地址空间,支持达 64K 字节的可直接寻址的应用代码。数据存储器有 128 字节的内部 RAM 以及
128 字节的特殊功能寄存器 I/O 空间。AT89LP213/214 不支持外部数据存储器或外部程序存储器。
6.1
程序存储器
AT89LP213/214包含2K字节的片上系统内可编程Flash存储器用于保存程序。Flash存储器的使用
寿命至少为 10,000 次重复擦写,并且数据保持能力可达 10 年。复位和中断向量放在程序存储器
的开头的 59 字节 ( 参考 Table 13-2 on page 23)。常量表放在整个 2K 程序存储器地址空间,可
被 MOVC 指令访问。 AT89LP213/214 不支持外部程序存储器。
Figure 6-1.
程序存储器映射
007F
User Signature Array
0040
001F
Atmel Signature Array
0000
07FF
Program Memory
0000
7
3538A–MICRO–6/06
AT89LP213/214 的程序存储器的一个映射见 Figure 6-1。除了 2K 从 0000h 到 07FFh 的代码空间
外, AT89LP213/214 还支持一个 64 字节的用户签名数组和一个 32 字节的 Atmel 签名数组,它
们可以只读模式被 CPU 访问。为从签名数组中读取信息,必须设置 AUXR1 的 SIGEN 位。当
SIGEN是1时,MOVC A,@A+DPTR可访问签名数组。用户签名数组映射到地址 0040h到 007Fh,
Atmel签名数组映射到地址 0000h~001Fh。在使用MOVC指令访问代码存储区时必须将 SIGEN清
零。
Atmel签名数组在出厂时用设备ID进行初始化。用户签名数组则可用作用户ID或者常参数据保存。
保存在签名数组中的数据是不安全的。安全位可禁止对该数组的写操作;但是,读取永远是被允
许的。
Table 6-1.
AUXR1 – 辅助寄存器 1
AUXR1 = A2H
复位值 = XXXX 0XXXB
不可位寻址
位
6.2
–
–
–
–
SIGEN
–
–
–
7
6
5
4
3
2
1
0
数据存储器
AT89LP213/214 包含128字节的通用 SRAM 数据存储器,另外还有 128 字节的 I/O存储区,映射到
一个 8 位地址空间。 128 字节的数据存储器可以通过对低 128 字节地址进行直接或间接寻址 来访
问。 128 字节的 I/O 存储区驻留在较高的 128 字节地址空间 (Figure 6-2)。 I/O 存储区只能通过直
接寻址方式访问并且包含特殊功能寄存器 (SFRs)。对较高的 128 字节地址的间接访问会返回无效
数据。数据存储器的最低的 32 个字节被分为 4 个组,每组有 8 个寄存器。RS0 和 RS1 位 (PSW.3
和 PSW.4) 选 择 使 用 哪 个 寄 存 器 组。使 用 寄 存 器 寻 址 的 指 令 只 访 问 当 前 指 定 的 寄 存 器 组。
AT89LP213/214 不支持外部数据存储器。
Figure 6-2.
数据存储器映射
FFH
Accessible
By Direct
Addressing
Only
UPPER
128
Special Function
Registers
80H
7F H
Accessible
By Direct
and Indirect
Addressing
Only
LO WER
128
Ports
Status and Control Bits
Timers
Registers
Stack Pointer
Accumulator
(Etc.)
0
8
AT89LP213/214 [Preliminary]
3538A–MICRO–6/06
AT89LP213/214 [Preliminary]
7. 特殊功能寄存器
有一块片上存储区域的映射叫作特殊功能寄存器 (SFR) 空间,见 Table 7-1.
要注意并没有占用所有的地址,而没有使用的地址是在芯片上不可用的,读这些地址通常会返回
任意数据,而写操作会发生不可预料的结果。用户程序不应该对这些没有列出的地址进行写操作,
因为它们可能用于在将来的产品中引入新的特性。
Table 7-1.
AT89LP213/214 SFR 映射和复位值
8
9
A
B
C
D
E
F
0F8H
0FFH
0F0H
B
0000 0000
0E8H
SPSR
000x x000
0E0H
ACC
0000 0000
0F7H
SPCR
0000 0000
SPDR
xxxx xxxx
0EFH
0E7H
0D8H
0D0H
0DFH
PSW
0000 0000
0D7H
0C8H
0CFH
P1M0(2)
0C0H
0B8H
IP
x000 0000
0B0H
P3
xx11 1111
0A8H
IE
0000 0000
P1M1
xx00 0000
P3M0(2)
P3M1
xx00 0000
SADEN
0000 0000
0BFH
IPH
x000 0000
SADDR
0000 0000
0A0H
0C7H
0B7H
0AFH
AUXR1
xxxx 0xxx
WDTRST
(write-only)
WDTCON
0000 x000
0A7H
98H
SCON
0000 0000
SBUF
xxxx xxxx
GPMOD
0000 0000
GPLS
0000 0000
GPIEN
0000 0000
GPIF
0000 0000
90H
P1
1111 1111
TCONB
0010 0100
RL0
0000 0000
RL1
0000 0000
RH0
0000 0000
RH1
0000 0000
ACSR
xx00 0000
97H
88H
TCON
0000 0000
TMOD
0000 0000
TL0
0000 0000
TL1
0000 0000
TH0
0000 0000
TH1
0000 0000
CLKREG
0000 x000
8FH
SP
0000 0111
DPL
0000 0000
DPH
0000 0000
PCON
0000 0000
87H
1
2
3
80H
0
Notes:
4
5
9FH
6
7
1. 最左边一列的所有 SFR 都是位可寻址的。
2. 当三态端口保险打开时,复位值为 xx11 1111B,否则为 xx00 0000B。
9
3538A–MICRO–6/06
8. 加强型 CPU
AT89LP213/214 使用一个加强型的 8051 CPU,它的运行速度是普通8051单片机的 6到12倍。( 或
者说是 X2 型 8051 单片机速度的 3 到 6 倍 ). 速度的增加归功于下面两条因素。首先 ,CPU 每个时
钟周期就从代码存储器中取一条指令字节 .。其次 , CPU 使用一个二级流水线并行的取指令和执行
指令。这种基本的流水线操作理念使 CPU 的速度高达 1 MIPS 每 MHz。简单示例如图 Figure 8-1.
MCS-51 指令系统允许它的指令的长度可变。变化范围是 1 到 3 字节。在一个每字节单时钟取指令
的系统中,执行每一条指令至少需要和这条指令字节数一样多的机器时钟数 。 AT89LP213/214
中的大多数指令遵循如下规则 : 每一条指令的执行时间 (需要的时钟周期数)等于这条指令包含
的字节数 (有一些特例除外)。分支和调用需要一个额外的时钟周期以计算目标地址,并且某些
复杂的指令需要多个时钟周期。对于每一条指令的细节,请参见 59 页 “指令集摘要”。 Figures
8-2 and 8-3 显示了一字节长和两字节长指令的情况。 .
Figure 8-1.
取得和执行并行指令
Tn
Tn+1
Fetch
Execute
Tn+2
System Clock
nth Instruction
(n+1)th Instruction
Fetch
(n+2)th Instruction
Figure 8-2.
Execute
Fetch
单周期 ALU 操作 ( 例 : INC R0)
T1
T2
T3
System Clock
Total Execution Time
Register Operand Fetch
ALU Operation Execute
Result Write Back
Fetch Next Instruction
10
AT89LP213/214 [Preliminary]
3538A–MICRO–6/06
AT89LP213/214 [Preliminary]
Figure 8-3.
两个周期的 ALU 操作 ( 例如 : ADD A, #data)
T1
T2
T3
System Clock
Total Execution Time
Fetch Immediate Operand
ALU Operation Execute
Result Write Back
Fetch Next Instruction
8.1
某些特殊指令的限制
AT89LP213/214 是 ATMEL 日益成长的微处理器家族的一款经济型性价比高的芯片。它包含 2K 字节
的闪存程序存储器 . 他完全兼容于普通的 MCS-51 架构。可以使用 MCS-51 指令集编程。 然而在
使用某些特殊指令编程此芯片时,需要考虑某些特殊的情况。 所有关系到跳转或分支的指令都需
要考虑 AT89LP213/214 的闪存程序存储器的大小是 2K, 所以定义地址时,一定要注意不要超过这
个物理地址的极限。这就需要软件编程者多多注意。例如, LJMP 7E0H 是一条有效的指令,然而
LJMP 900H 就是一条无效的指令
8.1.1
分支指令
只要编程时注意定义的分支地址在程序存储器尺寸 (AT89LP213/214 的地址范围从 000H 到
7FFH )范 围 以 内,那 么 这 些 无 条 件 分 支 命 令 LCALL, LJMP, ACALL, AJMP, SJMP, 和 JMP
@A+DPTR 就可以正确的运行。 如果超出了它的物理地址的范围,将会造成无法预直的错误结
果。有条件分支命令例如 CJNE [...], DJNZ [...], JB, JNB, JC, JNC, JBC, JZ, 和 JNZ 等,情况与上
面的无条件分支命令相同。同样 ,如果超出了它的物理地址的范围,将会造成无法预直的错误结
果。 如果应用程序使用了中断,那么中断处理程序的入口地址同 8051 架构单片机的入口地址相
同。
8.1.2
MOVX 的相关指令 , 数据存储器
AT89LP213/214 包含 128 字节的内部数据存储器 . RAM 的存取地址如果超过 7FH 会返回无效的
数据。而且,堆栈的深度限制在 128 字节,与有效的 RAM 大小相同。堆栈指针也不可以指向的地
址大于 7FH. 这款芯片不支持外部数据存储器存取,也不支持外部程序存储器。因此 , 命令 MOVX
[...] 在这款芯片上不能使用。
在通常的 8051 汇编程序中,即使我们写的语句违反了上面我们所说的这些限制,指令仍然可以集
合起来。所以,编程者必须知道芯片的物理特点和限制,以正确的使用命令。
.
11
3538A–MICRO–6/06
9. 系统时钟
系统时钟直接有 3 个可选择的时钟源中的一个来产生。这 3 个时钟源分别是芯片内部的晶振,外
部时钟源和一个内部的 RC 震荡器。时钟源的选择是通过 Table 9-1 中的 Clock Source User Fuses
来设定的。并没有内部的时钟分频器对系统时钟分频得到 CPU 时钟,参见 “ 用户配置引脚 ” on page
69.
Table 9-1.
9.1
时钟源设定
Clock Source
Fuse 1
Clock Source
Fuse 0
0
0
晶振
0
1
保留
1
0
XTAL1 上的外部时钟
1
1
内部的 8 MHz RC 振荡器
选择的时钟源
晶振
当晶振被激活以后,内部的反向振荡放大器就被连接在 XTAL1 和 XTAL2 之间以连接一个外部的石
英晶振或者陶瓷振荡器。当使用晶振的时候,应该使 P3.2 和 P3.3 的输入或输出无效, XTAL2 不
可以在没有缓冲的情况下被用于驱动一个板级的时钟。
9.2
外部时钟源
选择外部时钟会使振荡放大器无效并且允许 XTAL1 直接由时钟源来驱动。XTAL2 可以不连接,被用
做 P3.3 I/O 口,或者配置成为输出系统时钟的分开的版本。
9.3
内部 RC 振荡器
AT89LP213/214 有一个内部的 RC 振荡器,频率范围在 8.0 MHz ±2.5%. 当它被激活作为时钟源
的时候, XTAL1 和 XTAL2 可分别作为 P3.2 和 P3.3 。 XTAL2 也可以 配置成为输出系统时钟的
分开的版本。 . 可以通过改变 RC Adjust Fuses 来调节振荡器的频率 . (See “ 用户配置引脚 ” on
page 69).
9.4
系统时钟输出
当 AT89LP213/214 被配置为使用外部时钟或内部 RC 振荡器的时候,XTAL2 (P3.3) 输出系统时钟
的 divided version 。可以通过设置 CLKREG 的 COE 位来激活此输出。两个 CDV 位决定了时钟的分
频数。例如,当使用内部振荡器时,设定COE = “1” and CDIV = “00”将使P3.3的输出为3.950Mhz.
在使用时钟输出功能时,P3.3 必须设定为输出。
12
AT89LP213/214 [Preliminary]
3538A–MICRO–6/06
AT89LP213/214 [Preliminary]
Table 9-2.
CLKREG – 时钟控制寄存器
CLKREG = 8FH
复位值 = 0000 0000B
不可位设定
Bit
TPS3
TPS2
TPS1
TPS0
–
CDV1
CDV0
COE
7
6
5
4
3
2
1
0
Function
符号
TPS3
TPS2
TPS1
TPS0
预脉冲计数器 . 预脉冲计数器从计数器 0。计数器 1,看门狗计数器中选择一个计数器。预脉冲计数器是一个 4 位二进制
的向下的计数器。当计数器计到 0 时,它会重载存储在 TPS 位中的值,从而给出分频的值。这个值的范围是从 1 到 16。
在默认情况下,每一个时钟,周期计数器都会计数。(TPS = 0000B). 如果想配置计数器工作在通用的 8051 单片机情况下
(即每 12 个时钟周期计数),TPS 需要设定为 1011B.
时钟输出分频 . 决定了相对于系统时钟的始终输出频率。 .
CDV1
CDV0
CDIV1
CDIV0
Clock Out Frequency
0
0
f/2
0
1
f/4
1
0
f/8
1
1
f/16
时钟输出激活 . 设定 COE 以确定在 XTAL2 (P3.3)上输出的系统时钟的分频率。要使用此功能,必须选择内部 RC 振荡器
或者外部时钟源。 .
COE
10. 复位
在复位时,所有的 I/O 积存器都被设定为它们的初始值,芯片的管脚都是三态。程序从复位向量
0000H 开始执行。 AT89LP213/214 有五个复位源 : 上电复位 , 掉电复位 , 外部复位 , 看门狗复位 ,
和软件复位。
10.1
上电复位
上电复位 (POR) 是由一个片上的检测电路产生的。检测级别是 1.4V. 当 Vcc 低于探测级别时,产
生一个上电复位。POR电路可以被用来触发一个复位或者在没有掉电探测器的情况下检测出供给电
源失败。POR 电路确保设备通过上电来复位。上电的顺序如图: Figure 10-1 on page 14. 当 Vcc 达
到了上电复位的阈值电压 VPOR,一个持续时间 tPOR 的初始化动作就开始了。初始化动作结束以
后,启动定时器会决定设备在 Vcc 上升沿之后要保持在 POR 多长时间。当 Vcc 低于上电复位的阈
值电压时,POR 信号再一次被激活,没有任何的延迟。 上电复位 (例如冷复位)需要设定 PCON 中
的 POF 标志。通过保持 RST 脚低电平时间长过休息时间,内部产生的复位可以扩展到超过上电周
期。
13
3538A–MICRO–6/06
Figure 10-1. 上电复位时序 (BOD Disabled)
VPOR
VCC
VPOR
tPOR + tSUT
TIME-OUT
RST
(RST Tied to VCC)
INTERNAL
RESET
RST
VRH
(RST Controlled Externally)
INTERNAL
RESET
tRHD
如果掉电探测器 (BOD) 也被激活, 那么直到 Vcc 达到如图 Figure 10-2 所示 的阈值电压 VBOD ,
启动定时器才开始计数。然而,如果在初始化完成之前,就出现这种情况,定时器必须首先等待
初始化完成再开始计数。
Figure 10-2. 上电复位时序 (BOD Enabled)
VBOD
VCC
TIME-OUT
VPOR
tSUT
tPOR
RST
(RST Tied to VCC)
INTERNAL
RESET
RST
(RST Controlled Externally)
INTERNAL
RESET
Note:
VRH
tRHD
tPOR 近似等于 92 µs ± 5%.
启动定时器的延迟依赖于时钟源 (Table 10-1),可以通过配置启动定时引线来设置这个延时。我们
设定启动延时时要注意给 Vcc 和可选时钟源提供足够的时间。启动定时引线同时也控制着掉电复
位后启动时间的长度,和在内部时控模式时下电后何时唤醒。
14
AT89LP213/214 [Preliminary]
3538A–MICRO–6/06
AT89LP213/214 [Preliminary]
Table 10-1.
10.2
启动定时器设置
SUT Fuse 1
SUT Fuse 0
0
0
0
1
1
0
1
1
时钟源
tSUT (± 5%)
内部 RC/ 外部时钟
16 µs
晶振
1024 µs
内部 RC/ 外部时钟
512 µs
晶振
2048 µs
内部 RC/ 外部时钟
1024 µs
晶振
4096 µs
内部 RC/ 外部时钟
4096 µs
晶振
16384 µs
掉电复位
AT89LP213/214 有一个片上掉电探测电路 (BOD),它通过同一个固定的触发电平相比较以监控
Vcc 的情况。BOD 的触发电平是 2.2V。BOD 的作用是当系统在高速工作时,如果出现 Vcc 电压错
误,系统可以安全平稳的进入复位状态,而不会发生一些包括运行错误等的可能的错误。 BOD 的
时序如图 Figure 10-3. 当 VCC 减小到低于触发电平 VBOD, 时,立即启动内部复位。当 Vcc 增加到
高于触发电平时,启动定时器在暂停周期满之后释放内部复位 (Table 10-1)。只有设置了 BOD 激活
引线之后才可以激活掉电探测器。 (See “ 用户配置引脚 ” on page 69).
Figure 10-3. 掉电探测器复位
VCC
TIME-OUT
VPOR
VBOD
tSUT
INTERNAL
RESET
10.3
外部复位
P1.3/RST 脚既可以作为一个低有效的复位输入,也可以作为一个通用的数字 I/O 口。当复位脚激
活引线被设置为 1 时,P1.3 脚的外部复位输入功能就被激活了。 (See “ 用户配置引脚 ” on page
69). 当清 0 时,P1.3 可以被用做一个输入或者输出脚。当配置成复位输入时,要出发内部复位,管
脚必须至少保持在低电平 2 个时钟周期。
Note:
在上电时序中,引线选择总是无效的,因此,管脚总是执行着复位输入的功能。与此管脚相连的外
部电路在上电时不可以将此管脚保持在低电平因为这将会导致芯片一直处于复位状态,除非将此管
脚拉高。在上电延迟之后,这个输入脚或者执行一个外部复位输入功能或者是执行一个由引线位定
义的数字输入功能。只有上电复位时会使由复位引线位定义的选择项无效。而别的复位源不会使复
位引线位无效。P1.3/RST 也可以用做系统编程 (ISP)激活管脚。当外部复位脚被保持在低电平
时,ISP 功能就被激活了。当复位脚被引线位设置无效时,可以在上电时通过将 P1.3 拉低来实现
ISP 功能。
15
3538A–MICRO–6/06
10.4
看门狗复位
当看门狗计数器溢出后,它将产生一个持续 16 个时钟周期的内部复位脉冲。看门狗复位也会设置
WDTCON 积存器的 WDTOVF 标志位。为了阻止看门狗复位,在看门狗溢出之前,必须将看门够
复位序列 1EH/E1H 写入到 WDTRST 中去。关于看门狗的操作细节请参照 . See “ 可编程看门狗
定时器 ” on page 55
10.5
软件复位
可以通过软件写 5AH/A5H 到 WDRST 积存器中,使 CPU 产生一个内部的 16 个时钟周期的复位脉
冲。软件复位将会把 WDTCON 积存器中的 SWRST 位置 1。关于软件复位的详细信息请参见 .
See “ 软件复位 ” on page 55
11. 省电模式
AT89LP213/214 支持两种不同的低功耗模式:空闲模式和省电模式。这两种模式可以通过 PCON
来设定。
11.1
空闲模式
设定 PCON 的 IDL 位可以使芯片进入空闲模式。空闲模式下,内部 CPU 时钟停止工作。CPU 的状
态保持不变。包括 RAM, 堆栈指针,程序计数器,程序状态字和数字存储器。各个端口管脚的状态
保持在系统进入空闲模式时候的状态。空闲模式下,外部设备仍然运转,这样,当中断产生时,
它们就可以唤醒芯片。定时器 , UART, SPI, 和 GPI 模块也会保持运转 . 在空闲模式下,比较器或
者看们狗可以设定为工作状态或停止状态。任何中断或者复位都可以使系统结束空闲模式。当通
过中断结束空闲模式时,中断服务程序立即被执行。 之后的下一条指令 RETI 应该是使系统进入
空闲模式。
11.2
待机模式
设置 PCON 中的待机位 (PD)可以使系统进入待机模式。待机模式下振荡器停止工作,闪存掉电,
这样功耗就可以降到最低。此时只有上电电路保持有效。在待机模式下,电源供给电压可以减小
到保持 RAM 活动状态的电压。RAM 里面的内容会保持不变,但一旦 Vcc 降下来,我们无法保证 SFR
中的内容保持不变。可以通过外部复位,上电复位,或者某些特定的中断来结束待机状态。
11.2.1
待机模式下的中断恢复
可以通过三个外部中断来结束待机模式。当 XTAL1 或 XTAL2 没有被用于晶振或外部时钟的时候 可
以用来通过外部中断 INT0 (P3.2) 和 INT1 (P3.3) 结束系统的待机状态。为了可以通过外部中断
INT0 或 INT1 来唤醒系统,中断必须被激活和配置成电平敏感模式。 当 RST 脚无效时,通用中
断 3 (GPI3)也可以用来唤醒系统。为了外结束待机模式, GPI3 必须被激活和配置为低电平探
测模式。
当通过中断结束待机模式时,两种不同的唤醒模式有效。当 PCON 中的 PWDEX 位是 0 时,唤醒周期
由如图 Figure 11-1 所示内部时控。在中断管脚的下降沿时结束待机模式,重启晶振,内部定时
器开始计数。直到定时器溢出,内部时钟才可以向 CPU 传送。溢出周期结束之后,开始调用中断
服务程序。溢出周期由启动计时引线来设定。 ( 参见 Table 10-1 on page 15). 在整个溢出周期,中
断引脚不需要一直保持低电平。
16
AT89LP213/214 [Preliminary]
3538A–MICRO–6/06
AT89LP213/214 [Preliminary]
Figure 11-1. 待机模式下的中断恢复 (PWDEX = 0)
PWD
XTAL1
tSUT
INT1
INTERNAL
CLOCK
当 PWDEX = “1” 时,唤醒周期表面上看起来是由中断所控制的。在中断管脚信号的下降沿,待机
模式结束并且重启振荡器。然而,直到如图 Figure 11-2 所示 的中断管脚信号的上升沿,内部时
钟才开始工作。 为了使选定的时钟源稳定,中断管脚的信号必须保持足够时间的低电平。中断管
脚信号的上升沿之后,系统调用中断服务程序。
Figure 11-2. 待机模式下的中断恢复 (PWDEX = 1)
PWD
XTAL1
INT1
INTERNAL
CLOCK
11.2.2
待机模式下的复位恢复
通过一个外部的复位来将系统从待机模式下唤醒和用 PWDEX = “0”. 的中断差不多。 在 RST, 信
号的下降沿,结束待机状态,重启振荡器,如图 Figure 11-3 所示的内部定时器开始计数。直到这
个定时器溢出,内部时钟才对 CPU 起作用。溢出周期由启动时间引线控制参见 Table 10-1 on page
15 如果在溢出之前 RST 回到高电平状态,当内部时钟重启时,一个两周期的内部复位就产生了。
否则,芯片将保持复位状态一直到 RST 信号被拉高。
17
3538A–MICRO–6/06
Figure 11-3. 待机模式下的服位恢复 .
PWD
XTAL1
tSUT
RST
INTERNAL
CLOCK
INTERNAL
RESET
Table 11-1.
PCON – 电源控制寄存器
PCON = 87H
复位值 = 000X 0000B
不可位寻址
SMOD1
SMOD0
PWDEX
POF
GF1
GF0
PD
IDL
7
6
5
4
3
2
1
0
Bit
符号
功能
SMOD1
双倍波特率位 . 在模式 1,2,3 下 UART 双倍波特率
SMOD0
祯错误选择 . 当 SMOD0 = 1, SCON.7 是 SM0. 当 SMOD0 = 1, SCON.7 是 FE (此处有误?)。注意无论 SMOD0 的状态
如何,一个祯错误之后都要设成 FE..
PWDEX
待机结束位 . 当 PWDEX = 1 时 , 待机模式下的唤醒由外部控制。当 PWDEX = 1 时 , 待机模式下的唤醒是内部时控的。
POF
关电标志 . 在上电时,POF 位被设置为 1 ( 例如:冷重启 )。它可以通过软件来置位或重启,而不受 RST 或 BOD 的影响。(
例如热重启 ).
GF1, GF0
通用标志位
PD
待机位 . 该位 置位则系统进入待机模式 .
IDL
空闲模式位 . 该位置位则系统进入空闲模式
12. 中断
AT89LP213/214 提供了 7 个中断源 : 两个外部中断 , 两个定时器中断,一个串口中断,一个通用中
断,和一个模拟比较器中断。这些中断和系统复位在程序存储空间的开始处都各自有一个独立的
程序向量。通过设置中断激活寄存器 (IE)的一位可以使每一个中断源有效或失效。IE 寄存器也
包含一个全局的中断开关位 EA, 可以使所有的中断源无效。
每一个中断源(模拟比较器除外)都可以通过设置或清除中断优先级寄存器 IP 和 IPH 来独立的设
定它的中断优先级,一共有四个中断优先级。模拟比较器的中断被固定在最低优先级。一个在运
行的中断服务程序可以被一个比它优先级高的中断打断,但不可以被与它相同或更低的中断优先
级的中断打断。最高优先级的中断不可以被任何其它的中断源打断。如果在某条指令的最后同时
有两条不同中断优先级的中断请求,那么系统响应高优先级的中断。如果在某条指令的最后同时
有两条相同中断优先级的中断请求,则一个内部的查询将会来决定系统响应那一条中断。
18
AT89LP213/214 [Preliminary]
3538A–MICRO–6/06
AT89LP213/214 [Preliminary]
轮询序列是基于向量地址的,低向量地址的中断优先级高于高向量地址的中断。注意,轮询序列
只用于解决为响应的同优先级的中断 。
根据 TCON 寄存器的 IT0 和 IT1 位,外部中断 INT0 和 INT1 都可以是电平触发或边沿触发。实
际上产生这些中断的标志是 TCON 的 IE0 和 IE1 位。当服务例行程序是矢量时,只有当中断是边沿
触发时,硬件清除标志位才可以产生外部中断。如果中断是电平触发的,那么外部请求源 (而不
是片上硬件)控制请求标志。
定时器 0 和定时器 1 的中断由 TF0 和 TF1 产生,当各自的定时 / 计数寄存器溢出时置位 (除了定
时器 0 工作于方式 3)。当产生定时器中断时,如果服务例行程序是矢量的,则片上硬件清除产生
中断的标志位。
串行口中断是由 SCON 的 RI 和 TI 的或逻辑加上 SPSR 的 SPIF 产生的。如果服务例行程序是矢量
的,所有这些标志位不能由硬件清除。实际上,服务例行程序通常要检测 RI, TI, 或 SPIF 有没
有产生中断,这些位必须由软件清零。
GPIF 寄存器的八个标志位的或逻辑产生通用中断。如果服务例行程序是矢量的,所有这些标志位
都不能由硬件清零。服务例行程序必须检测中断是由哪位产生的,该位必须由软件清零。如果中
断是电平触发的,那么在软件清除标志位前,外部请求源必须保持中断信号。
ACSR 寄存器的 CF 位产生比较中断。如果服务例行程序是矢量的,这个标志位不能由硬件清除,而
必须由软件清除。
大多数产生中断的位可以由软件置位或清零,与由硬件置位和清零的效果相同。也就是说,可以
由软件产生中断和取消未响应的中断。SPI 中断标志位 SPIF 和通用中断标志位 GPIF 是两个例外。
这两个标志位只能由硬件置位,软件清除。
Table 12-1.
12.1
中断向量地址
中断
源
向量地址
系统重启
RST or POR or BOD
0000H
外部中断 0
IE0
0003H
定时器 0 溢出
TF0
000BH
外部中断 1
IE1
0013H
定时器 1 溢出
TF1
001BH
串行口
RI or TI or SPIF
0023H
通用中断
GPIF
002BH
模拟比较器
CF
0033H
中断响应时间
中断标志位可以在任何时钟周期由硬件置位。在进程中指令的最后一个时钟周期,中断控制器获
得标志位。如果在前述的周期中,一个标志位被置位,在轮询周期中会被发现,并且中断系统会
在适当的服务例行程序中产生 LCALL,作为下一条指令。在以下情况下中断不会被响应:相同优先
级或较高优先级的中断正在运行中;运行中的指令是 RETI 或者任何写入 IE, IP, 或 IPH 寄存器
的。这些情况中的任何一种会阻止对中断服务例行程序产生 LCALL。第二个条件确保如果在运行中
19
3538A–MICRO–6/06
的指令是 RETI 或者任何访问 IE,IP 或 IPH 寄存器的,那么在中断矢量化前至少还可以执行一条
指令。轮询周期在每条指令的最后一个周期重复,选中的值是前述周期中存在的值。如果因为以
上原因一个激活的中断标志位没有被响应,且当上述原因消除后中断不再是激活的,那么这个中
断将不被响应。换一句话说,中断源一旦被激活但是没有被响应的不会被记录。每一个轮询周期
是新的。
如果请求被激活且满足被响应的条件,硬件子例行程序调用请求的服务例行程序,使其成为下一
条被执行的指令。调用程序本身需要四个周期。因此,在激活中断请求和开始执行第一条服务例
行程序的指令之间,至少要消耗五个完整的时钟周期。如果请求被前面所列的原因阻止了,那就
需要更长的响应时间。如果同级的中断源或者更高优先级的中断源在运行中,附加等待时间取决
于其他中断的服务例行程序。如果运行中的指令不是处于最后一个时钟周期,附加的等待时间不
会超过 3 个周期,因为最长也只有 4 个周期。如果运行中的指令是 RETI 或者访问 IE 或 IP 寄存
器,附加的等待时间不会超过 7 个周期 (结束运行中的指令最多需要 3 个周期,加上结束下一条
指令最多需要 4 个周期)。因此,在单个中断系统中,响应时间总是大于 5 个时钟周期而小于 13
个时钟周期。见图 12 - 1 和图 12 - 2。
Figure 12-1. 最小中断响应时间
Clock Cycles
1
5
INT0
IE0
Instruction
Ack.
Cur. Instr.
LCALL
1st ISR Instr.
Figure 12-2. 最大中断响应时间
Clock Cycles
1
13
INT0
Ack.
IE0
Instruction
Table 12-2.
RETI
4 Cyc. Instr.
LCALL
1st ISR In
IE – 中断允许寄存器
IE = A8H
复位值 = 0000 0000B
位可寻址
Bit
20
EA
EC
EGP
ES
ET1
EX1
ET0
EX0
7
6
5
4
3
2
1
0
AT89LP213/214 [Preliminary]
3538A–MICRO–6/06
AT89LP213/214 [Preliminary]
符号
功能
EA
全部有效 / 失效 . 当 EA = 0 时,所有的中断失效 . 当 EA = 1 时 , 每个中断源通过设置 / 清除自己的使能位使中断有效 /
失效。
EC
比较器中断有效
EGP
通用中断有效
ES
串行口中断有效
ET1
定时器 1 中断有效
EX1
外部中断 1 有效
ET0
定时器 0 中断有效
EX0
外部中断 0 有效
.
Table 12-3.
IP – 中断优先级寄存器
IP = B8H
复位值 = X000 0000B
位可寻址
位
–
–
PGP
PS
PT1
PX1
PT0
PX0
7
6
5
4
3
2
1
0
符号
功能
PGP
通用中断优先级低
PS
串行口中断优先级低
PT1
定时器 1 中断优先级低
PX1
外部中断 1 优先级低
PT0
定时器 0 中断优先级低
PX0
外部中断 0 优先级低
Table 12-4.
IPH – 中断优先级高寄存器
IPH = B7H
复位值 = X000 0000B
不可位寻址
位
–
–
PGH
PSH
PT1H
PX1H
PT0H
PX0H
7
6
5
4
3
2
1
0
21
3538A–MICRO–6/06
符号
功能
PGH
通用中断优先级高
PSH
串行口中断优先级高
PT1H
定时器 1 中断优先级高
PX1H
外部中断 1 优先级高
PT0H
定时器 0 中断优先级高
PX0H
外部中断 0 优先级高
13. I/O 端口
AT89LP213/214 可以设置9到12个I/O引脚。有效的I/O引脚的精确数目取决于时钟和复位选择,如
表 13 - 1 所示。所有端口引脚 5V 的容限 , 也就是说可以被上拉或驱动到 5.5V, 即使工作在较低
的 VCC, 如 3V
Table 13-1.
I/O 引脚配置
时钟源
复位选择
外部晶体或振荡器
外部时钟
内部 RC 振荡器
I/O 引脚数
外部 RST 引脚
9
没有外部复位
10
外部 RST 引脚
10
没有外部复位
11
外部 RST 引脚
11
没有外部复位
12
.
.
Table 13-2.
13.0.1
端口 x, y 位配置模式
PxM0.y
PxM1.y
端口模式
0
0
准双向的
0
1
推挽式输出
1
0
只输入 ( 高阻抗 )
1
1
开消耗输出
准双向输出
准双向输出模式的端口引脚功能与标准 8051 端口引脚相似。不需要重新配置端口,准双向的端口
就可以同时用作输入和输出 . 这是可行的,因为当端口输出一个逻辑高电平时,它被弱驱动,允
许外部设备把引脚电平拉低。当引脚低电平驱动时,强驱动使大电流减小。为了不同的目的,准
双向输出有 3 个上拉电阻 .
这 3 个上拉电阻中的一个叫做 “极弱”上拉电阻,只要引脚的端口门限包含逻辑 “1”,这个电阻
就是工作的。当引脚悬空时,这个极弱的上拉电阻产生极小的电流使引脚电平拉高 .
第二个上拉电阻叫做 “弱”上拉电阻,当引脚的端口门限包含逻辑 “1”且引脚本身是逻辑 “1”
电平时,这个电阻是工作的。这个上拉电阻提供准双向引脚输出为 “1”的基本源电流。如果外部
设备把该引脚下拉为低电平,则这个弱上拉电阻关闭,只有极弱上拉电阻维持工作。 为了在这些
条件下使引脚电平下拉,外部设备不得不减小足够的电流抑制弱上拉电阻,并使端口引脚电平位
于输入门限电平以下。
22
AT89LP213/214 [Preliminary]
3538A–MICRO–6/06
AT89LP213/214 [Preliminary]
第三个上拉电阻是 “强”上拉电阻。这个上拉电阻的作用是,当端口门限由逻辑 “0”转换为逻
辑 “1”时,可以加快准双向端口引脚的低电平到高电平的转换速度。当这种情况发生时,强上拉
电阻工作两个 CPU 周期,使端口电平迅速上拉。准双向端口配置如 Figure 13-1 所示 . 在下电时,
P1.3, P3.2 和 P3.3 的输入电流不是无效的 ( 见 Figure 13-3).
Figure 13-1. 准双向输出
1 Clock Delay
(D Flip-Flop)
VCC
VCC
VCC
Strong
Very
Weak
Weak
Port
Pin
From Port
Register
Input
Data
PWD
13.0.2
只输入模式
只输入端口配置如 Figure 13-2 所示 . 输出驱动是三态的 . 输入包括斯密特触发输入以提高对输入
噪声的抑制。在下电时,P1.3, P3.2 和 P3.3 的输入电路不是无效的 ( 见 Figure 13-3). 输入引脚可
以被安全的上拉到 5.5V ,即使工作在较低的 VCC 电平 ; 然而 , 斯密特触发器的输入门限是由 VCC
电平设置的,这一点必须考虑
Figure 13-2. I 只输入
Input
Data
Port
Pin
PWD
Figure 13-3. I P1.3, P3.2 和 P3.3 只输入
Input
Data
13.0.3
Port
Pin
开消耗输出
当端口门限包含逻辑 “0”时,开消耗输出配置关闭多有的上拉,只驱动端口引脚的下拉电阻。为
了用作逻辑输出,在这种方式下端口配置必须要有外部上拉电阻,典型的是电阻与 VCC 相连。 这
种模式的下拉电阻与准双向模式相同。开消耗配置如 Figure 13-4 所示 . 在下电时, P1.3, P3.2 和
P3.3 的输入电路不是无效的 ( 见 Figure 13-3). 开消耗引脚可以被安全的上拉到 5.5V ,即使工作在
较低的 VCC 电平 ; 然而 , 斯密特触发器的输入门限是由 VCC 电平设置的,这一点必须考虑 .
23
3538A–MICRO–6/06
Figure 13-4. Open-Drain Output
Port
Pin
From Port
Register
Input
Data
PWD
13.0.4
推挽式输出
推挽式输出配置和开消耗与准双向输出模式有相同的下拉电阻结构,但是当端口门限包含逻辑
“1”时,提供持续的强上拉电阻。当端口输出需要更多的源电流时,采用推挽模式。推挽端口配
置如 Figure 13-5 所示 . 在下电时, P1.3, P3.2 和 P3.3 的输入电路不是无效的 ( 见 Figure 13-3).
Figure 13-5. 推挽式输出
VCC
Port
Pin
From Port
Register
Input
Data
PWD
13.1
端口 1 模拟功能
AT89LP213/214结合了模拟比较器 . 为了给出做好的模拟效果和最小化功率损耗,作为模拟功能的
引脚必须使他们的数字输出和数字输入无效 . 如 22 页 “端口配置”描述的,使端口引脚处于只输
入模式可以使端口引脚的数字输出无效。只要设置 ACSR 的 CEN 位使模拟比较器有效,那么 P1.0
和 P1.1 的数字输入是无效的。 CEN 迫使 P1.0 和 P1.1 的 PWD 输入为的电平 , 因此使斯密特触
发电路无效 . 在复位后不管三端口得状态如何, P1.0 和 P1.1 总是默认为只输入模式 .
13.2
端口 读 - 修改 - 写
读引脚的状态还是读端口寄存器的状态取决于使用的指令。简单的读指令总是直接访问端口引脚
读 - 修改 - 写 指令 , 就是读到一个值,可能修改这个值 , 然后重新写回去 , 这个指令总是访问端口
寄存器 . 包括位写入指令,如 CLR 或 SETB ,它们实际上读了整个端口,修改单独的位,然后把
数据重新写回整个端口 . 如 Table 13-3 所示,列出了所有访问端口的读 - 修改 - 写指令 .
Table 13-3.
24
端口读 - 修改 - 写指令
助记符
指令
举例
ANL
逻辑 AND
ANL P1, A
ORL
逻辑 OR
ORL P1, A
XRL
逻辑 EX-OR
XRL P1, A
AT89LP213/214 [Preliminary]
3538A–MICRO–6/06
AT89LP213/214 [Preliminary]
Table 13-3.
13.3
端口读 - 修改 - 写指令
助记符
指令
举例
JBC
如果置位则跳转,同时清除该位
JBC P3.0, LABEL
CPL
补位
CPL P3.1
INC
递增
INC P1
DEC
递减
DEC P3
DJNZ
如果不是零则递减并跳转
DJNZ P3, LABEL
MOV PX.Y, C
把进位移动到端口 X 的 Y 位
MOV P1.0, C
CLR PX.Y
清除端口 X 的 Y 位
CLR P1.1
SETB PX.Y
设置端口 X 的 Y 位
SETB P3.2
端口选择功能
AT89LP213/214 的大多数通用数字输入 / 输出引脚 与各种串行单元需要的输入 / 输出共享功能
Table 13-5 列出了端口引脚的选择功能 . 选择功能以逻辑与的方式与引脚相连 . 为了使端口引脚的
选择功能有效 , 引脚相应的端口寄存器位必须为 “1” , 否则输入 / 输出总是为 “0” . 另外 , 在使
用前,每个引脚必须按照外设的要求配置成正确的输入 / 输出模式 . Table 13-4 给出了如何使通
用引脚配置为选择功能。
Table 13-4.
端口 x 引脚 y 选择功能配置
PxM0.y
PxM1.y
Px.y
0
0
1
双向的 ( 内部上拉 )
0
1
1
输出
1
0
X
输入
1
1
1
双向的 ( 外部上拉 )
Table 13-5.
I/O 模式
端口引脚选择功能
配置位
端口引脚
PxM0.y
PxM1.y
P1.0
P1M0.0
P1M1.0
P1.1
P1M0.1
P1M1.1
P1.2
P1M0.2
P1M1.2
GPI2
P1.3
P1M0.3
P1M1.3
GPI3
选择功能
AIN0
注释
只输入
GPI0
AIN1
只输入
GPI1
RST 必须无效
25
3538A–MICRO–6/06
Table 13-5.
端口引脚选择功能
配置位
端口引脚
PxM0.y
PxM1.y
P1.4
P1M0.4
P1M1.4
P1.5
P1M0.5
P1M1.5
P1.6
P1M0.6
P1M1.6
P1.7
P1M0.7
P1M1.7
P3.0
P3M0.0
P3M1.0
RXD
P3.1
P3M0.1
P3M1.1
TXD
P3.2
P3M0.2
P3M1.2
INT0
仅限于内部 RC 振荡器
P3.3
P3M0.3
P3M1.3
INT1
仅限于内部 RC 振荡器或
外部时钟源
P3.4
P3M0.4
P3M1.4
T0
P3.5
P3M0.5
P3M1.5
T1
P3.6
not configurable
选择功能
注释
SS
GPI4
MOSI
GPI5
MISO
GPI6
SCK
GPI7
CLKOUT
CMPOUT
仅限于 AT89LP214
仅限于 AT89LP213
引脚与比较器输出相连
14. 性能增强型计时器计数器
AT89LP213/214 产品有两个 16 位的计时计数器:计时器 0 和计时器 1。作为计时器,每一个时钟周
期寄存器增加一次。因此寄存器可以对时钟周期计数。因为每个时钟周期包括一个振荡周期,所
以计数频率就是振荡器频率。计时器频率可以通过可变频计时器从 1 到 16 改变。 (如表 9-2) .
两个计时器使用同一个分频器。
作为计数器,相应引脚 T0 或 T1 处有 1 到 0 的变化时寄存器就会相应的递增。每一个时钟周期都
会对外部输入进行采样。当采样值第一个周期为高电平,紧接着的那个周期为低电平,计数开始。
一旦检测到这种跳变,寄存器中的值就会刷新开始递增。因为进行这样的检测需要两个时钟周期,
所以最大的计数率也仅仅是振荡器频率的一半。对输入的信号没有约束,但信号必须确保检测到
的电平在变化之前至少保持了一个完整的时钟周期。在 AT89LP214 中,T0 和 T1 是不能通过引脚
输入的。但可以通过软件接换寄存器 3 中的 P3.4 和 P3.5 位来实现输入。
另外,计时器 0 和 1 就其功能来说有四种操作模式:可变宽度计时计数器,16 位自动重置计时计
数器、8 位自动重置计时计数器和分时计时计数器。可以通过特殊功能寄存器 TMOD 中的控制位 C/T
选择计时计数器功能。TMOD 中的 M1 和 M0 位用来选择操作模式。
14.1
模式 0 – 可变频计时计数器
两个计时器在模式 0 下都是可变频的 8 位计数器。分频器范围从 1 到 8 位,到底能变几位这要取
决于 TCONB 中的 PSC 位。这样计时器的范围就变成了 9 到 16 位。在标准 8051 模式 0 下的计时器
位数缺省值位 13 位。如图 14 - 1 所示。当计数器从全 1 变为全 0 时,中断标识符 TF1 会被置位。
计数输入是在 TR1=1 并且 GATE=0 或 INT1=1 有效的。给 GATE 置位使得外部输入 INT1 能够控制计
26
AT89LP213/214 [Preliminary]
3538A–MICRO–6/06
AT89LP213/214 [Preliminary]
时器以便方便脉冲宽度测量。TR1 是特殊功能寄存器 TCON 中的控制位。GATE 是在 TMOD 中的。13
位寄存器是由TH1的8位和TL1中的低5位构成。TL1的高3位未定忽略。对TR1置位不会清零寄存器。
PSC 0 + 1
Mode 0:
Note:
256 × 2
Time-out Period = ------------------------------------------------------- × ( TPS + 1 )
Oscillator Frequency
在模式 0 下计时器 1 对 RH1/RL1 没有要求,可以用作临时存储寄存器。
Figure 14-1. 模式 0 下计时计数器:可变位数计数器
OSC
÷TPS
C/T = 0
TL1
(8 Bits)
C/T = 1
T1 Pin
Control
PSC1
TR1
TH1
(8 Bits)
GATE
TF1
Interrupt
INT1 Pin
除了用 TR0、TF0 和 INT0 分别替代图 14 - 1 中相应的信号的情况,计时器 0 在模式 0 下的操作与
计时器 1 相同。这里有两种不同的 GATE 位,计时器 1 的是 TOMD.7,而计时器 0 则是 TOMD.3。XTAL
振荡器使用 INT0 和 INT1 引脚 。它们只有在内部 RC 振荡器作系统时钟时实现 GATE 功能。
14.2
模式 1 – 16 位自动重置计时计数器
计时器在模式 1 下是 16 位自动重置。计时寄存器 16 位运行。16 位重置值放在高低重置寄存器 RH1
和 RL1 中。高低计时寄存器 TH1 和 TL1 相互配合完成计时。当收到时钟信号,计时器开始计数:
0000H、0001H、0002H……当 FFFFH 到 0000H 跳变时会发生溢出,这里还要注意计时寄存器是将
RH1 和 RL1 中的值拿来重置并且 TCON 中的溢出标识位已经置位。如图 14 - 2。重置缺省值为 0000H,
这样的 16 位计时器可与标准 8051 相比。模式 1 操作同样适应于计时计数器 0。
Mode 1:
( 65536 – {RH 0, RL 0} )
Time-out Period = ------------------------------------------------------- × ( TPS + 1 )
Oscillator Frequency
27
3538A–MICRO–6/06
Figure 14-2. 1 模式 1 下的计时计数器:16 位自动重置
RL1
(8 Bits)
OSC
RH1
(8 Bits)
÷TPS
Reload
C/T = 0
TL1
(8 Bits)
TH1
(8 Bits)
TF1
Interrupt
C/T =1
T1 Pin
Control
TR1
GATE
INT1 Pin
14.3
模式 2 – 8 位自动重置计时计数器
模式 2 下的计时寄存器是自动重置的 8 位(TL1)计数器。如图 14 - 3。TL1 溢出不仅要对 TF1 置
位,而且也要用 TH1 中的内容对 TL1 进行重置,这里的内容是预先用软件设置好的,而此时 TH1
内容并没有变化。模式 2 操作同样适合于计时计数器 0。
Mode 2:
( 256 – TH 0 )
Time-out Period = ------------------------------------------------------- × ( TPS + 1 )
Oscillator Frequency
Figure 14-3. 模式 2 下的计时器计数器:8 位自动重置
OSC
÷TPS
C/T = 0
TL1
(8 Bits)
TF1
Interrupt
C/T = 1
Control
T1 Pin
Reload
TR1
GATE
TH1
(8 Bits)
INT0 Pin
Note:
14.4
在模式 2 下计时器 1 对 RH1/RL1 没有要求,可以用作临时存储寄存器。
模式 3 – 8 位分时计时器
模式 3 下的计时器 1 简单的说就是保持计数,相当于对 TR1 清零。模式 3 下的计时器 0 将 TL0 和
TH0 独立,逻辑图如 14 - 4 所示。TL0 用到计时器 0 的控制位:C/T, GATE, TR0, INT0 和 TF0。
TH0 用来对机器周期计数并且用到 TR1 和 TF1。因此 TH0 控制计时器 1 的中断。
模式 3 是为了满足额外 8 位计时计数器应用所需。从模式 3 下的计时器 0 看来,AT89LP213/214 产
品看起来好像就拥有了三个计时计数器;这种情况下,计时器 1 可以通过切换进出模式 3 来实现
关闭功能。这样看来计时器 1 仍然能作为波特率发生器的串口使用或任何不需要中断的应用。
28
AT89LP213/214 [Preliminary]
3538A–MICRO–6/06
AT89LP213/214 [Preliminary]
Figure 14-4. 模式 3 下的计时器计数器 0:两个 8 位计数器
÷TPS
C/T = 0
C/T =1
T0 Pin
(8 Bits)
Interrupt
(8 Bits)
Interrupt
Control
GATE
INT0 Pin
÷TPS
Control
Note:
.
Table 14-1.
在模式 3 下计时器 0 对 RH0/RL0 没有要求,可以用作临时存储寄存器。
TCON – 计时器计数器控制寄存器
TCON = 88H
复位 值 = 0000 0000B
位选
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
7
6
5
4
3
2
1
0
位
标识符
功能
TF1
计时器 1 溢出标识,有硬件设置。当操作向量指向中断时对其清零。
TR1
计时器 1 运行控制位,通过软件置位或清零来实现计时计数器通断。
TF0
计时器 0 溢出标识,有硬件设置。当操作向量指向中断时对其清零。
TR0
计时器 0 运行控制位,通过软件置位或清零来实现计时计数器通断。
IE1
中断 1 标识。当检测到外部中断时通过硬件置位,中断运行完清零。
IT1
中断 1 类型控制位。通过软件置位清零来指定下降沿 / 低电平触发中断。
IE0
中断 0 标识。当检测到外部中断时通过硬件置位,中断运行完清零。
IT0
中断 0 类型控制位。通过软件置位清零来指定下降沿 / 低电平触发中断。
29
3538A–MICRO–6/06
Table 14-2.
TMOD: 计时计数器模式控制寄存器
TMOD = 88H
复位值 = 0000 0000B
无位选
GATE
C/T
M1
M0
GATE
C/T
M1
M0
7
6
5
4
3
2
1
0
计时器 1
Gate
计时器 0
计时器 0 门位
门控制:当置位时,计时计数器只有在 INTx
引脚高电平和 TRx 控制引脚置位时才有效:当
清零时,计时器 x 在 TRx 控制位置位时都有效。
C/T
计时器 0 计数记时选择位
计时器或计数器选择:若清零则为计时器操作
(内部系统时钟输入); 若置位则为计数器操作
(Tx 引脚作为输入)
M1
计时器 1 模式位 1
计时器 0 M1 位
M0
计时器 1 模式位 0
计时器 0 M0 位
M1
M0
模式
操作模式
0
0
0
9 到 16 位可变计时计数器
带有 1 到 8 位变长 THx 和 TLx 的 8 位计时计数器
0
1
1
16 位自动重置记时计数器
16 位计时计数器,THx 与 TLx 连带,无变长器。
1
0
2
8 位自动重置计时计数器
8 位自动重置计时计数器,THx 有重置值每次溢出时重置给 TLx。
1
1
3
分时计时计数器模式
(计时器 0)TL0 时由标准计时器 0 控制位控制的 8 位计时计数器。
TH0 时标准计时器 1 控制位控制的 8 位计时计数器。
1
30
1
3
(计时器 1)计时计数器 1 停止
计时器 SFR
作用
地址
位选
TCON
控制
88H
是
TMOD
模式
89H
否
TL0
计时器 0 低字节
8AH
否
TL1
计时器 1 低字节
8BH
否
TH0
计时器 0 高字节
8CH
否
TH1
计时器 1 高字节
8DH
否
TCONB
模式
91H
否
RL0
计时器 0 重置低字节
92H
否
RL1
计时器 1 重置低字节
93H
否
RH0
计时器 0 重置高字节
94H
否
RH1
计时器 1 重置高字节
95H
否
AT89LP213/214 [Preliminary]
3538A–MICRO–6/06
AT89LP213/214 [Preliminary]
.
Table 14-3.
TCONB – 计时器计数器控制寄存器 B
TCONB = 91H
复位值 = 0010 0100B
无位选
PWM1EN
PWM0EN
PSC12
PSC11
PSC10
PSC02
PSC01
PSC00
7
6
5
4
3
2
1
0
位
符号
功能
PWM1EN
在 T1 (P3.5)上将计时器 1 设置成脉冲宽度调制输出。
PWM0EN
在 T0 (P3.4)上将计时器 0 设置成脉冲宽度调制输出。
PSC12
PSC11
PSC10
模式 0 下计时器 1 的可变长器。TL1 可变位数为 PSC1+1.
在 AT89S2051 中复位后 PSC1=100B 使得 TL1 的 5 个位能够用于 13 位模式 0 的情况下。
PSC02
PSC01
PSC00
模式 0 下计时器 0 的可变长器。TL0 可变位数为 PSC0+1.
在 AT89S2052 中复位后 PSC0=100B 使得 TL0 的 5 个位能够用于 13 位模式 0 的情况下。
14.5
脉宽调制
AT89LP213 中,可以通过置位 TCONB 中 PWM0EN 或 PWM1EN 分别将计时器 0 和 1 配置成 8 位异步脉冲
宽度调制器 (PWM)。在 PWM 模式下计时器引脚 T0 或 T1 输出产生的波形。在这种模式下 C/T 也必
须置 0。T0(P3.4) 和 T1(P3.5) 必须设置为输出模式。计时器溢出标识和中断将在 PWM 模式下继续
工作,计时器 1 仍可为 UART 口产生波特率。PWM 可以通过选择 TMOD 中的模式位来选择四种模式中
的任意一种。
图 14 - 5 给出了在 PWM 模式下计时器 0 输出的一种波形 。TH0 作为 8 位计数器使用而 RH0 存储 8
位比较值。当 TH0 为 00H 时,PWM 输出为高。当 TH0 中计数值累加到了 RH0 中的值时,PWM 输出置
低。因此脉宽与 TH0 中的值一致。为了防止毛刺产生 , 仅在 RH0 从 FFH 到 OOH 溢出时才写 RH0。将
RH0 置 00H 将会保持 PWM 输出为低。
Figure 14-5. 异步脉宽调制
Counter Value (TH0)
Compare Value (RH0)
PWM Output (T0)
14.5.1
模式 0 – 带有 8 位分频器的 8 位 PWM
模式 0 下,TLx 作为算术分频器驱动 8 位计数器 THx.( 如图 14 - 6)TCONB 中的 PSCx 位控制分频器
的值。THx 溢出时,RHx 中的周期值转换给 OCRx,同时输出引脚置高。当 THx 中的计数与 OCRx 匹
配时,输出清零。接下来便是给输出频率和 PWM 模式 0 下计时器 0 的周期。PWM 模式下计时器 1 与
计时器 0 一致。
31
3538A–MICRO–6/06
Mode 0:
1
Oscillator Frequency
- × ------------------f out = -----------------------------------------------------PSC 0 + 1
TPS + 1
256 × 2
RH0
Duty Cycle % = 100 × -----------256
Mode 0:
Figure 14-6. 计时器计数器 1PWM 模式 0
RH1
(8 Bits)
OSC
TL1
(8 Bits)
÷TPS
OCR1
Control
=
TR1
T1
PSC1
GATE
TH1
(8 Bits)
INT1 Pin
14.5.2
32
模式 1– 带有 8 位线性分频器的 8 位 PWM
模式 1 下,TLx 利用 RLx 的 8 位自动重置实现线性分频 ( 如图 14 - 7)。TLx 溢出时将 RLx 中的值
置入 TLx 中。当 THx 溢出时,RHx 中的周期值转换给 OCRx,同时输出引脚置高。当 THx 中的计数
与 OCRx 匹配时,输出清零。接下来便是给输出频率和 PWM 模式 0 下计时器 0 的周期。PWM 模式下
计时器 1 与计时器 0 一致。
Oscillator Frequency
1
Mode 1:
f out = ------------------------------------------------------- × ------------------256 × ( 256 – RL 0 )
TPS + 1
Mode 1:
RH0
Duty Cycle % = 100 × -----------256
AT89LP213/214 [Preliminary]
3538A–MICRO–6/06
AT89LP213/214 [Preliminary]
Figure 14-7. 计时器计数器 1PWM 模式 1
RH1
(8 Bits)
RL1
(8 Bits)
OCR1
=
T1
OSC
TL1
(8 Bits)
÷TPS
TH1
(8 Bits)
Control
TR1
GATE
INT1 Pin
14.5.3
模式 2 –8 位频率发生器
PWM 模式 2 下,计时器 0 与 8 位自动重置计时器功能类似。与通常情况下模式 2 相同,但是在每次
TL0 溢出时输出引脚 T0 接换。(如图 14 - 8)PWM 模式 2 下的计时器 1 与计时器 0 一致。模式 2
下 PWM 可以输出频率可变的方波。THx 可作 8 位计数器。接下来便是给 PWM 模式 2 下计时器 0 的输
出频率。
Mode 2:
Oscillator Frequency
1
f out = ------------------------------------------------------- × ------------------2 × ( 256 – TH 0 )
TPS + 1
Figure 14-8. PWM 模式 2 下的计时器计数器 1
TH1
(8 Bits)
OSC
TL1
(8 Bits)
÷TPS
T1
Control
TR1
GATE
INT1 Pin
Note:
14.5.4
{RH0 和 RL0}/{RH1 和 RL1} 在 PWM 模式 2 下计时器 0/1 不做要求 ,可被用作临时存储寄存器。
模式 3 – 8 位分时 PWM
PWM 模式 3 下计时器 1 保持其值,与设置 TR = 1 时的效果相同。PWM 模式 3 下计时器 0 将 TL0 和
TH0 作为两个独立的 PWM 计数器使用,其方式与通常情况下的模式 3 类似。PWM 模式 3 下的计时器
0 工作情况如图 14 - 9 所示。只有在 PWM 模式 3 下计时器可变器工作时才可以改变输出频率。TL0
33
3538A–MICRO–6/06
可以使用计时器 0 的控制位:GATE,TR0, INT0, PWM0EN 和 TF0。TH0 被锁存到,某个计时器功
能中并且使用 TR1,PWM1EN 和 TF1。RL0 为 TL0 提供周期频率,RH0 则为 TH0 提供周期频率。
PWM 模式 3 应用时需要一个 PWM 通道和两个计时器,或者两个 PWM 通道和一个额外的计时器或计数
器。对于 PWM 模式 3 下的计时器 0,AT89LP213 拥有三个计时器 / 计数器。当计时器 0 工作在 PWM
模式 3 下,计时器 1 可以通过通断控制来进入或退出模式 3。 在这种情况下,计时器 1 仍可以作为
串口的波特率产生器而无需任何中断。接下来便是给输出频率和 PWM 模式 3 下计时器 0 的周期。
Oscillator Frequency
1
f out = ------------------------------------------------------- × ------------------256
TPS + 1
Mode 3:
Mode 3, T0:
RL 0
Duty Cycle % = 100 × ---------256
Mode 3, T1:
RH 0
Duty Cycle % = 100 × ---------256
Figure 14-9. PWM 模式 3 下的计时器计数器 0
RL0
(8 Bits)
OCR0
=
T0
TL0
(8 Bits)
÷TPS
OSC
Control
RH0
(8 Bits)
TR1
GATE
OCR1
INT1 Pin
=
T1
÷TPS
OSC
TH0
(8 Bits)
TR1
15. 外部中断
当 AT89LP213/214 被设置为使用内部 RC 振荡器时, XTAL1 and XTAL2 可能被用作 INT0 和
INT1 外部中断资源。外部中断能够通过设置或清零寄存器 TCON 中 IT1 或 IT0 位达到水平活性或阶
跃活性编程。如果 ITx = 0,外部中断 x 将会被 INTx 引脚察觉到低电平时触发。如果 ITx = 1, 外
部中断将是边缘触发。在这个模式中,如果 INTx 引脚中的连续样本表现为一个周期高电平而下一
个周期为低电平,那么 TCON 中的中断请求标记 IEx 将被置位。标记位 IEx 开始请求中断。每当外
部中断引脚取样一个时钟周期,一个输入高或低电平将被持续至少两个振荡器周期,目的是为了
使取样顺利。 如果外部中断处于阶跃活性,那么外部资源将保持请求引脚高电平至少两个时钟周
34
AT89LP213/214 [Preliminary]
3538A–MICRO–6/06
AT89LP213/214 [Preliminary]
期,然后再将它置为低电平,时间也是至少两个时钟周期;这样,中断请求标记 IEx 才能被置位。
在边缘触发模式中,如果服务周期被需求,那么 IEx 将被 CPU 自动清除。如果外部中断处于水平
活性,那么外部资源将保持需求使能直到需求中断发生。然后,外部资源必须在中断服务程序完
全或另一个中断发生之前使请求无效。
16. 多用途中断
多用途中断 (GPI) 功能在端口 1 提供了 8 个可配置的外部中断。每个端口引脚都能探测到高 / 低
电平或正 / 负边缘。GPIEN 寄存器挑选端口 1 中的位用于产生中断。GPMOD 和 GPLS 寄存器确
定每个独立引脚的模式。 GPMOD 在水平灵敏和边缘触发模式之间进行选择。 GPLS 在水平模式
下的高 / 低和边缘模式下的正 / 负之间进行选择。端口 1 的引脚每个时钟周期都在采样。在水平
灵敏模式下,一个正确的水平面必须在产生中断前出现在两个连续的采样之间。在边缘触发模式
下,当两个采样之间评估值产生变化时,将会探测到一个阶跃。当一个中断条件在一个引脚被发
现,此时这个引脚使能,GPIF 寄存器中适当的标记被置位。GPIF 中的标记必须由软件清零。
.
Table 16-1.
GPMOD – 多用途中断模式寄存器
GPMOD = 9AH
复位值 = 0000 0000B
没有可以设置地址的位
GPMOD7
GPMOD6
GPMOD5
GPMOD4
GPMOD3
GPMOD2
GPMOD1
GPMOD0
7
6
5
4
3
2
1
0
Bit
GPMOD.x
0 = level-sensitive interrupt for P1.x
1 = edge-triggered interrupt for P1.x
Table 16-2.
GPLS – 多用途中断水平选择寄存器
GPLS = 9BH
复位值 = 0000 0000B
没有可以设置地址的位
Bit
GPLS7
GPLS6
GPLS5
GPLS4
GPLS3
GPLS2
GPLS1
GPLS0
7
6
5
4
3
2
1
0
GPMOD.x
0 = detect low level or negative edge on P1.x
1 = detect high level or positive edge on P1.x
35
3538A–MICRO–6/06
.
Table 16-3.
GPIEN – 多用途中断使能寄存器
GPIEN = 9CH
复位值 = 0000 0000B
没有可以设置地址的位
GPIEN7
GPIEN6
GPIEN5
GPIEN4
GPIEN3
GPIEN2
GPIEN1
GPIEN0
7
6
5
4
3
2
1
0
Bit
GPIEN.x
0 = interrupt for P1.x disabled
1 = interrupt for P1.x enabled
.
Table 16-4.
GPIF – 多用途中断标记寄存器
GPIF = 9DH
复位值 = 0000 0000B
没有可以设置地址的位
Bit
GPIF7
GPIF6
GPIF5
GPIF4
GPIF3
GPIF2
GPIF1
GPIF0
7
6
5
4
3
2
1
0
GPIF.x
0 = interrupt on P1.x inactive
1 = interrupt on P1.x active. 必须由软件清除 .
17. 连续分界面
AT89LP214 上的连续分界面实现了通用异步接收器 / 发送器功能 (UART)。UART 具有以下特点:
• 全双工操作
• 8 或 9 个数据位
• 错误侦查
• 自动地址识别下的多处理器传输模式
• 使用定时器 1 的波特率发生器
• 接收缓冲器或传输完全上的中断
36
AT89LP213/214 [Preliminary]
3538A–MICRO–6/06
AT89LP213/214 [Preliminary]
连续分界面是全双工的,这意味着它能够同时发送和接收信号。它同时也是一个接收缓冲器,这
意味着它能在前一个字节被接收寄存器读取之前接收第二个字节信息。(尽管如此,如果第二个字
节接收完成而第一个字节还没有被读取时,这两个字节中的一个将会丢失。 ) 连续端口接收和发
送寄存器都能访问特殊功能寄存器 SBUF。发送寄存器负责向 SBUF 中写入数据;而接收寄存器负责
从 SBUF 中读取数据。 连续端口能在以下四个模式中进行操作:
• 模式 0: 通过 RXD 实现连续数据的进入和退出。TXD 输出变换时钟。8 个数据位是发送 / 接收。
波特率固定为振荡器频率的 1/2。
• 模式 1: 10 个位是发送 (通过 TXD)或接收 (通过 RXD):1 个开始位 (0),8 个数据位,1 个停
止位 (1)。接收时,停止位变为特殊功能寄存器 SCON 中的 RB8。波特率基于定时器 1 可变。
• 模式 2: 11 个位是发送(通过 TXD)或接收(通过 RXD):1 个开始位 (0),8 个数据位,1 个可编
程的第 9 数据位,1 个停止位 (1)。发送时,第 9 数据位 (SCON 中的 TB8)可以被赋值 “0”
或 “1”。例如,奇偶位 (P,在 PSW 中)能够被移动至 TB8。接收时,当停止位被忽视时,
第 9 数据位将去特殊功能寄存器 SCON 中的 TB8。 波特率可编程设置为振荡器周期的 1/16 或
1/32
• 模式 3: 11 个位是发送 (通过 TXD)或接收 (通过 RXD):1 个开始位 (0),8 个数据位, , a1 个
可编程的第 9 数据位,1 个停止位 (1)。事实上,模式 3 与模式 2 除了波特率以外其余都一模
一样。模式 3 的波特率基于定时器 1 可变。
在所有的 4 种模式中,发送器能被将 SBUF 定义为目的寄存器的任何指令启动。 模式 0 中,当 RI =
0 且 REN = 1 时,开始接收。在其他模式中,当引入的启动位 REN=1 时,开始接收。
17.1
多处理器通信
模式 2 和模式 3 有一个多处理器通信模式。在这个模式中,9 个数据位用于接收,1 个停止位紧随
其后。第 9 个位去 RB8。然后产生一个停止位。端口仅在停止位接收时可以被编辑;只有当 RB8=1
时,连续端口中断才具备活性。通过设置 SCON 中的 SM2 位,能实现这一特点。
接下来的例子将会说明如何在多处理器通信中使用连续中断。当主处理器必须将一块数据传输给
其他处理器时,它首先发送一个地址位,用于鉴别目标处理器。这个地址位不同于数据位,因为
在地址位中第 9 位是 “1”,而在数据位中第 9 位是 “0”。当 SM2=1 时,没有处理器能够被数据
位阻止。然而,地址位可以中断所有的处理器。每个处理器都能检验接收字节并且鉴别它是否属
于地址位。地址处理器清除了它的 SM2 位,并且准备接收接下来的数据字节。处理器不能设置它
的 SM2 位,并且忽略数据字节。
SM2位在模式0中没有任何作用,但它可以用来检查模式1中停止位的合法性。在模式1接收中,如
果 SM2=1, 那么除非收到一个有效的停止位,不然接收中断都具有活性。
Table 17-1.
SCON – 连续端口控制寄存器
SCON 地址 = 98H
复位值 = 0000 0000B
可以设置地址的位
Bit
SM0/FE
SM1
SM2
REN
TB8
RB8
T1
RI
7
6
5
4
3
2
1
0
(SMOD0 = 0/1)(1)
37
3538A–MICRO–6/06
符号
功能
FE
取景错误位。当发现一个无效停止位时,接收器将它置位。FE 位不能被有效取景清零而只能被软件清零。 SMOD0 位必
须被设置为使能 FE 位。FE 的设置与 SMOD0 的规定无关。
SM0
连续端口模式位 0, (SMOD0 must = 0 to access bit SM0)
连续端口模式位 1
SM1
SM0
SM1
Mode
Description
Baud Rate(2)
0
0
0
shift register
fosc/2
0
1
1
8-bit UART
variable (Timer 1)
1
0
2
9-bit UART
fosc/32 or fosc/16
1
1
3
9-bit UART
variable (Timer 1)
SM2
在模式 2 或 3 中,自动地址识别功能使能。当 SM2=1 时,除非接收到的第 9 位数据为 1,否则 RI 不能被置位。在模式 1
中,如果 SM2=1,除非接收到一个有效停止位,否则 RI 不能被激活,接收字节是一个赠与或广播地址。在模式 0 中,SM2
是 0。
REN
连续接收使能。由软件置位,由软件清零。
TB8
在模式 2 和模式 3 中传输第 9 数据位。由软件置位或清零。
RB8
在模式 2 和模式 3 中接收第 9 数据位。在模式 1 中,如果 SM2=0,RB8 将作为停止位被接收。在模式 0 中,RB8 不被使用。
TI
传输中断标志。无论处于哪种连续传输模式下,在模式 0 中,由 8 位时间硬件设置,在其他模式中,由地址位的开始状态
设置。必须由软件清零。
RI
接收中断标志。在任何连续接收状态下 (除了 SM2),在模式 0 中,由 8 位时间的末尾设置;或者在其他模式下由停止位
时间的部分设置。必须由软件清零。
Notes:
1. SMOD0 is 定位于 PCON.6.
2. fosc = 振荡器周期
17.2
波特率
模式 0 中,波特率是固定的,如下式所示:
Oscillator Frequency
Mode 0 Baud Rate = ------------------------------------------------------2
模式 2 中,波特率由特殊功能寄存器中的 SMOD1 位的值决定。如果 SMOD1=0,那么波特率为振荡器
周期的 1/32。如果 SMOD1=1,那么波特率为振荡器周期的 1/16。 如下式所示:
SMOD1
2
Mode 2 Baud Rate = -------------------- × (Oscillator Frequency)
32
17.2.1
利用定时器 1 产生波特率
在模式 1 和 3 中,定时器 1 的溢出率决定波特率。当定时器 1 是波特率发生器时,波特率由定时
器 1 的溢出率和 SMOD1 的值决定。如下式所示:
Modes 1, 3
SMOD1
2
= -------------------- × (Timer 1 Overflow Rate)
32
Baud Rate
38
AT89LP213/214 [Preliminary]
3538A–MICRO–6/06
AT89LP213/214 [Preliminary]
在这个请求中,定时器 1 中断将被使无效。在 3 个连续模式下,定时器本身能被设置为任何定时
器或计数器运行。在最典型的应用程序中,它被设置为自动再装模式下的定时器运行。既然这样,
波特率由下式给出:
Modes 1, 3
SMOD1
2
Oscillator Frequency
1
= -------------------- × ------------------------------------------------------- × ------------------32
[ 256 – ( TH1 ) ]
TPS + 1
Baud Rate
程序员可以通过设定定时器以 16 位自动再装定时器而获得非常低的波特率。既然这样,波特率由
下式给出:
Modes 1, 3
SMOD1
2
Oscillator Frequency
1
= -------------------- × ------------------------------------------------------- × ------------------32
[
256
–
(
R
H1,RL1
)
]
TPS
+1
Baud Rate
Table 17-2 给出通常使用的波特率以及它们是如何从定时器 1 中获得的。
Table 17-2.
定时器 1 中常使用的波特率 (TPS = 0000B)
Timer 1
Baud Rate
17.3
fOSC (MHz)
SMOD1
C/T
Mode
Reload Value
Mode 0: 1 MHz
2
X
X
X
X
Mode 2: 375K
12
0
X
X
X
62.5K
12
1
0
2
F4H
19.2K
11.059
1
0
2
DCH
9.6K
11.059
0
0
2
DCH
4.8K
11.059
0
0
2
B8H
2.4K
11.059
0
0
2
70H
1.2K
11.059
0
0
1
FEE0H
137.5
11.986
0
0
1
F55CH
110
6
0
0
1
F958H
110
12
0
0
1
F304H
关于模式 0 的更多内容
通过 RXD 实现连续数据进入和退出。TXD 输出变换时钟。8 个数据位用于发送。波特率固定为振荡
器周期的 1/2。Figure 17-1 on page 40 显示了在模式 0 及关联定时状态下连续端口的单一化功能
图表。
发送器能被将 SBUF 定义为目的寄存器的任何指令启动。“向 SBUF 写入”信号等同于将 “1”置于
传输变换寄存器的第 9 位,并使 TX 控制模块开始传输。内部定时在“向 SBUF 写入”和 SEND 激活
中将机器周期流逝。
SEND 将交换寄存器的输出传送到 P3.0 的轮换功能输出线上,它也将变换时钟传送到 P3.1 的轮换
功能输出线上。在变换时钟下降沿,传输轮换寄存器的内容将变换到右边的位置上。
当数据位向右变换时,“0”向左边移动。当数据字节中的 MSB 在变换寄存器的输出位置时,将第
9 个位置的最初部分置 1。这个控制标志 TX 控制时钟进行最后轮换,然后解除 SEND 并将 TI 置 1。
当 REN = 1 且 R1 = 0 时,开始接收。在下一个时钟周期,RX 控制单元将 11111110 写入接收轮
换寄存器并且在下一个时钟相位激活 RECEIVE i
RECEIVE 将轮换时钟设置到P3.1的轮换输出功能线上。在轮换时钟的下降沿,接收变换寄存器中
的内容向左移动。从右侧移位过来的数值来自于 P3.0 引脚在变换时钟上升沿的取样。
39
3538A–MICRO–6/06
当数据位向右移动时,“1”向左移动。当将 “0”写入变换寄存器最右边的最初位置时,它标志
RX 控制时钟去进行一个最后的轮换。然后将 RECEIVE 清零并将 RI 置 1。
Figure 17-1. 连续端口模式 0
INTERNAL BUS
“1“
1/2 fosc
INTERNAL BUS
WRITE TO SBUF
SEND
SHIFT
RXD (DATA OUT)
TXD (SHIFT CLOCK)
TI
WRITE TO SCON (CLEAR RI)
RI
RECEIVE
SHIFT
RXD (DATA IN)
TXD (SHIFT CLOCK)
40
AT89LP213/214 [Preliminary]
3538A–MICRO–6/06
AT89LP213/214 [Preliminary]
17.4
关于模式 1 的更多内容
10 位传输 (通过 TXD)或接收 (通过 RXD):1 个开始位 (0),8 个数据位,1 个停止位。接收
时,停止位进入 SCON 中的 RB8。在 AT89LP214 中,波特率由定时器 1 的溢出率决定。 Figure 17-2
显示在传输和接收过程中,模式 1 和关联定时的连续端口的单一化功能图表。
发送器能被将 SBUF 定义为目的寄存器的任何指令启动。“向 SBUF 写入”信号等同于将 “1”置于
传输变换寄存器的第 9 位,并使 TX 控制模块开始传输。传输实际上从机器周期的 S1P1 开始。因
此,因此,位时间是同步的,而不是 “向 SBUF 写入”信号。
当 SEND 具有活性时,开始传输。1 位时间过后,DATA 被激活,它将传输轮换寄存器使能。在此
之后,第一个轮转脉搏出现 1 位时间。
当数据位向右移动,“0”向左移动。当数据位的 MSB 在轮换寄存器的输出位置时,“1”写入第 9
位置的开头,所有位置向左移。这个控制标志 TX 控制单元去进行最后的轮换,然后解除 SEND 并
将 TI 置 1。
当 RXD 探测到一个 1 至 0 的转变时,开始接收。为了达到这个目的,RXD 以确定波特率的 16 被速
率取样。当探测到传输时,16 分频计数器立刻重启,输入轮换寄存器中写入 1FFH。16 分频计数器
通过引入的位时间重新设置。
16 分频计数器被分为 16 个位时间。在每个位时间的第 7、8、9 计数器状态下,位探测器取样 RXD
的值。接收的样本最少需要 3 个样本中的两个。这样可以拒绝噪声。为了拒绝错误位,如果接收
的第 1 位时间不为 0,那么接收电路重启,单元继续寻找 1 至 0 传输。如果开始位有效,它转变为
输入轮换寄存器。
当数据位向右移动时,“1”向左移动。当开始位到达轮换寄存器最左边的位置时,它标记 RX 控制
块去做最后的轮换,加载 SBUF 和 RB8,并将 RI 置 1。当且仅当满足下列条件时,产生加载 SBUF
和 RB8 并且将 RI 置 1 的信号。
RI = 0 且
SM2 = 0, 或接收停止位 = 1
如果这两个条件中的任何一个不满足,接收结构将不可挽回的丢失。如果两个条件同时满足,停
止位进入 RB8,8 个数据位写入 SBUF,并且 RI 被激活。此时,不论上述条件是否满足,单元都将
继续在 RXD 中寻找 1 至 0 的传输。
41
3538A–MICRO–6/06
Figure 17-2. 连续端口模式 1
TIMER 1
OVERFLOW
INTERNAL BUS
“1”
WRITE
TO
SBUF
÷2
SMOD1
=1
SMOD1
=0
S
D Q
CL
SBUF
TXD
ZERO DETECTOR
SHIFT DATA
START
TX CONTROL
÷16
RX CLOCK
SEND
TI
SERIAL
PORT
INTERRUPT
÷16
SAMPLE
1-TO-0
TRANSITION
DETECTOR
RX CLOCK RI
START
RX CONTROL
LOAD
SBUF
SHIFT
1FFH
BIT
DETECTOR
INPUT SHIFT REG.
(9 BITS)
RXD
SHIFT
LOAD
SBUF
SBUF
READ
SBUF
INTERNAL BUS
TRANSMIT
TX
CLOCK
WRITE TO SBUF
SEND
DATA
SHIFT
D0
TXD
TI
RX
CLOCK
RECEIVE
D1
D2
D3
D4
D5
D6
D7
STOP BIT
START BIT
RXD
÷16 RESET
START BIT
D0
D1
D2
D3
D4
D5
D6
D7
STOP BIT
BIT DETECTOR SAMPLE TIMES
SHIFT
RI
42
AT89LP213/214 [Preliminary]
3538A–MICRO–6/06
AT89LP213/214 [Preliminary]
17.5
模式 2,3 介绍
通过 TXD 进行 11 位数据的发送,通过 RXD 进行 11 位数据的接收。11 位数据包括:1 个起始位
(0),8 个数据位元 (LSB 在前),一个可编程的第 9 位数据位元,以及 1 个停止位 (1)。发送
时,第 9 位数据位元 (TB8 )可以被设置为 “0”或 “1”。接收时,第 9 位数据位元进入 SCON
的 RB8。模式 2 中,波特率可以编程设置为振荡频率的 1/16 或 1/32。模式 3 中,波特率可变,由
定时器 1 决定。
图 17-3 和 17-4 显示了模式 2,3 的串行端口功能图。接收部分与模式 1 完全相同,发送部分与模
式 1 的差别只在于发送移位寄存器的第 9 个数据位元。
通过使用 SBUF 作为目标寄存器的任何指令开始发送。信号 “写入 SBUF”同样将 TB8 载入发送移
位寄存的第 9 位,标志 TX 控制单元有一个发送的请求。发送实际开始于紧接着 16 分计数器的下
一次翻转机器周期的 S1P1。因此,位的时间是与 16 分计数器同步,而不是与 “写入 SBUF”信号
同步。
当 SEND 被激活时,开始发送,向 TXD 放入开始位。一个数据位的时间后,数据 DATA 激活,使发
送移位寄存器的输出的位到 TXD。之后产生第一个移位脉冲。第一次移位记录 “1”(停止位)进
入移位计时器第 9 位的时间。然后唯一的 “0”被计时。因此随着数据位向右移出,从左边进入的
“0”被计时。当 TB8 位于移位寄存器的输出位置时,停止位刚好在 TB8 的左边,在停止位的左边
都为 “0”。这种情况标志 TX 控制单元将做最后一次移位,然后解除 SEND 的激活并将 TI 置位。
这些发生在 “写入 SBUF”后 16 分计数器第 11 次翻转时。
RXD 检测到由 “1”到 “0”的跃迁后,开始接收过程。为了达到这个目的,RXD 以指定波特率的
16 倍的速率进行采样。检测到跃迁后,16 分计数器马上复位,“1FFH”写入输入移位寄存器中。
在每个位元时间的第 7,8,9 个计数器状态,位元检测器对 RXD 的值进行采样。公认的值至少存
在于 2/3 的采样值中。如果第一个位元时间接受的值不是 0,接收电路重启,并且该单元继续寻找
另一个 “1”到 “0”的跃迁。如果起始位有效,就将它移至输入移位寄存器,继续接受该帧剩余
部分。
随着数据位由右侧进入,“1”从左边移出。当起始位到达移位寄存器 (即模式 2,3 中的 9 位寄
存器)最左边位置时,标志着 RX 控制区将做最后一次移位,载入 SBUF 和 SB8,并重启 RI。只有
在最后一个移位脉冲产生时,在下列条件都满足的情况下,才会产生载入 SBUF 和 RB8,将 RI 置位
的信号:
1 . RI = 0
2 . SM2 = 0, 或接收到的第 9 个数据位元 = 1
如果上述两个条件之一不满足,接收到的帧会不可挽回的丢弃,并且 RI 不被置位。如果两者都满
足了,接收到的第 9 个数据位元进入 RB8,而前 8 个数据位元进入 SBUF。一个位元时间后,不管
上述条件是否满足,该单元继续寻找 RXD 输入中 “1”到 “0”的跃迁。
注意:接收到的停止位的值与 SBUF,RB8 或 RI 均无关。
43
3538A–MICRO–6/06
Figure 17-3. 连续端口模式 2
INTERNAL BUS
CPU CLOCK
SMOD1 1
SMOD1 0
INTERNAL BUS
44
AT89LP213/214 [Preliminary]
3538A–MICRO–6/06
AT89LP213/214 [Preliminary]
Figure 17-4. Serial Port Mode 3
TIMER 1
OVERFLOW
INTERNAL BUS
TB8
WRITE
TO
SBUF
÷2
SMOD1
= 1
SMOD1
= 0
S
D Q
CL
SBUF
TXD
ZERO DETECTOR
÷16
SHIFT DATA
START STOP BIT
TX CONTROL
RX CLOCK
SEND
TI
SERIAL
PORT
INTERRUPT
÷16
SAMPLE
1-TO-0
TRANSITION
DETECTOR
RX CLOCK RI
START
RX CONTROL
LOAD
SBUF
SHIFT
1FFH
BIT
DETECTOR
INPUT SHIFT REG.
(9 BITS)
RXD
SHIFT
LOAD
SBUF
SBUF
READ
SBUF
INTERNAL BUS
TRANSMIT
TX
CLOCK
WRITE TO SBUF
SEND
DATA
SHIFT
D0
TXD
TI
D1
D2
D3
D4
D5
D6
D7
TB8
START BIT
STOP BIT
RECEIVE
STOP BIT GEN
RX
CLOCK
÷16 RESET
RXD
START BIT
BIT DETECTOR SAMPLE TIMES
D0
D1
D2
D3
D4
D5
D6
D7
RB8
STOP
BIT
SHIFT
RI
45
3538A–MICRO–6/06
17.6
帧错误检测
除了它所有的通用模式外,UART 可以作为通过寻找丢失的停止位进行帧错误检测,并自动的地址
识别。当用于帧错误检测时,UART 在通信中寻找丢失的停止位。一个丢失的停止位会将 SCON 寄存
器的 FE 置位。FE 由 PCON.6 (SMOD0) 决定是作为 SCON.6 还是 SM0。如果 SMOD0 置位,那么 SCON.7
就作为 FE,此时 SCON.7 仅能由软件清零。当 SMOD0 清零,那么 SCON.7 作为 SM0。
17.7
自动地址识别
自动地址识别具有一种特性,即利用硬件作出的比较使 UART 可以从大量连续字位中识别某些特定
地址。这种特性减少了依赖大量软件来检测通过连续端口的每一个连续地址。把 SM2 字位设置在
SCON 就可激活这种特性。在这种第 9 字位 UART 模式中,当接收到包含 “已知”地址或 “广播”
地址的字节时,模式 2 模式 3 和接受中断信号识标将自动激活。这种第 9 字位模式为了表明所接
受到的信息是地址而非数据,则要求第 9 个信息字位必须为 “1”。
第 8 字位模式也叫模式 1。在这种模式中,如果 SM2 被激活并且接受的信息在第 8 字位后有终端中
止的字位,不管是已知地址还是广播地址,接受中断信号识标将会设置为激活。
模式 0 是个备份寄存器模式,同时 SM2 就无任何作用。
利用自动地址识别的特性调用已知分端口的地址或地址群,就可以使主端口有选择性地连接一个
或多个分端口。所有的分端口都可以用 “广播”地址来连接起来。两种特殊功能的寄存器被用来
定义分端口地址 SADDR,和地址掩模 SADEN.SADEN 是来定义在 SADDR 中哪些字位将被用到,哪些则
无任何意义。逻辑上,SADEN 掩模和 SADDR 与门给出已知地址,主端口用已知地址来分配每个分端
口的地址。用已知地址可以识别多个分端口并且不和其他的混淆。下面的例子来说明这种配置具
有多功能性:
分端口 0
SADDR = 1100 0000
SADEN = 1111 1101
Given = 1100 00X0
分端口 1
SADDR = 1100 0000
SADEN = 1111 1110
Given = 1100 000X
在上面的例子中,SADDR 是同样的,SADEN 的数据用来区分两个分端口。分端口 0 需要一个 “0”
在 0 字位而不用考虑 1 字位,分端口 1 需要一个“0”在 1 字位而不用考虑 0 字位。对分端口 0 来
说只有唯一的地址 1100 0010,因为分端口 1 在 1 字位是 “0”。对分端口 1 来说也只有唯一的地
址 1100 0001,因为 “1”在 0 字位就不和分端口 0 重复了。用同一个地址即 0 字位 =0 (分端口
0)1 字位 =0 (分端口 1),两个分端口就可以被同时选择了。因此,两个分端口的地址都可以表
示成 1100 0000。
在一台更加复杂的系统中,用下面的方法就可以选择分端口 1 和 2,而同时不包含分端 0:
分端口 0
SADDR = 1100 0000
SADEN = 1111 1001
Given = 1100 0XX0
46
AT89LP213/214 [Preliminary]
3538A–MICRO–6/06
AT89LP213/214 [Preliminary]
分端口 1
SADDR = 1110 0000
SADEN = 1111 1010
Given = 1110 0X0X
分端口 2
SADDR = 1110 0000
SADEN = 1111 1100
Given = 1110 00XX
在上面例子中,三个端口之间的区别在于低端 3 位地址位的不同。端口 0 需要 0 字位 =0,就有唯
一的地址 1110 0110。端口 1 需要 1 字位 =0,就有唯一的地址 1110 0101。端口 2 需要 2 字位 =0,
就有唯一的地址 1110 0011。要选择端口 0 和 1,就得用地址 1110 0100,因为必须使 2 字位 =1 来
排除端口 2。
每一个分端口的广播地址是取 SADDR 和 SADEN 的逻辑 OR 获得的。在这个结果中所有的 0 被忽略。
大多数情况下,如果视忽略值为 1,广播地址则为 16 进制的 FF。
重设 SADDR (SFR 地址 0A9H)和 SADEN (SFR 地址 0B9H)后,所有地址位归置为 “0”。这就产
生了包含所有无意义字位的已知地址和包含所有无意义字位的广播地址。并有效地禁止自动寻址
模式,使微控制器使用不执行这个特性的标准 80C51 型 UART 驱动器。
18. 串行外设接口
串行外设接口可使高速同步数据在 AT89LP216 和外设元件或者多个 AT89LP216 元件之间传输。串
行外设接口特性如下:
*
双向,3 线同步数据传输
*
主、从操作方式
*
最大字位频率 =fosc/4
*
LSB 或 MSB 优先数据传输
*
4 级可编程地址位的从模式
*
传输结束中断标识
*
存写冲突标识保护
*
双缓冲接受
*
双缓冲传输 (高级模式才有)
*
闲置模式唤醒
主、从 CPU 用 SPI 连接的方式如图 18-1 所示。接口的四个引脚分别是主进从出 (MISO),主
出从进 (MOSI),移位时钟 (SCK)和从属选择 ( )。SCK 引脚在主模式中是时钟输出,而在从
模式中是时钟输入。在 SPCR 中 MSTR 位决定了 MISO 和 MOSI 的方向。要注意到 MOSI 连接 MOSI,
MISO 连接 MISO。在主模式中, /P1.4 被忽略而只有可能作为一般的输入输出。在从模式中, 必须
置于低电平来选择单个元件作为从属。当 置于高电平时,从属的 SPI 端口无效并且 MOSI/P1.5 能
用于一般输出。
47
3538A–MICRO–6/06
Figure 18-1. 主从连接
MSB
Master
LSB
MISO MISO
8-Bit Shift Register
MSB
LSB
Slave
8-Bit Shift Register
MOSI MOSI
SCK
SPI
Clock Generator
SCK
SS
SS
VCC
SPI 有两种操作模式:标准模式 (无缓冲存写)和高级模式 (缓冲存写)。对主 CPU 的 SPI 数据
寄存器的存写触发 SPI 时钟寄存器,然后存写数据从 MOSI 引脚输出再输入到从 CPU 的 MOSI 的引
脚。当时钟寄存器等待下一个指定波长的满位槽时,传输经过一段初始延时就可触发。转移一个
字节后,SPI 时钟寄存器停止,同时设置传输中断位并把接受的字节传输到可读缓冲器中。如果要
同时设置 SPI 中断激活位和串口中断激活位,就需要中断 (传输)。需要指出的是无论 SPDR 用可
写数据寄存器或可读数据寄存器,都取决于访问路径是可读还是可写。在标准模式下,由于可写
缓冲器是透明的 (并且对 SPDR 的存写路径会访问移位缓存器),所以在进行传输时任何向 SPDR
的存写都将导致和 WCOL 设置的存写冲突。但传输仍将正常完成,不过新字节是无效的所以必须再
重新写到 SPDR。
除可写缓冲器能控制传输下一字节外,高级模式类似于标准模式。SPDR的存写会占用可写缓冲器,
并告诉 WCOL 缓冲器已经满荷,以后任何的存写都将覆盖掉缓冲器。当缓冲字节加载到移位寄存器
开始传输时,硬件将会清除 WCOL。如果主 SPI 处于闲置状态,比如当前是第一个字节,在加载
SPDR 后,字节传输就会开始并且 WCOL 会被立即清除。在当前字节传输时,下一个字节也有可能被
写入到 SPDR。SPDR 中的加载激活标识 (LDEN)用来决定传输开始的时间。LDEN 取决于 SPI 传输
的前四位字位。每加载下一字节前,主 CPU 应当首先检测 LDEN 的设置和 WCOL 是否被清除。在高
级模式下,如果在传输完成后 WCOL 是设置的,比如若可以进行下一字节传输,SPI 会即时把缓存
字节加载到移位寄存器,重设 WCOL,进行不中断传输同时重新开始时钟发生器。只要 CPU 能保持
最大利用可写缓存,大量的字节就可以在最短时间间隔内传输出去。
Table 18-1.
SPCR – SPI 控制寄存器
SPCR Address = E9H
复位值 = 0000 0000B
不可位寻址
SPIE
SPE
DORD
MSTR
CPOL
CPHA
SPR1
SPR0
Bit
7
6
5
4
3
2
1
0
符号
功能
SPIE
SPI 终端使能。它与寄存器 IE 中的 ES 位同时置位使能 SPI 中断。SPIE = 0 时禁用 SPI 中断
SPE
SPI 使能。SPI = 1 时,启用串行通道,分别连接 SS, MOSI, MISO 和 SCK 至管脚 P1.4, P1.5, P1.6, 和 P1.7。
SPI = 0 时禁用串行通道。
DORD
数据顺序位。DORD = 1 选择数据的 LSB。DORD = 0 选择数据的 MSB。
MSTR
主 / 从选择位。当 MSTR = 1 时为主 SPI 模式。 MSTR = 0 时为从 SPI 模式。
48
AT89LP213/214 [Preliminary]
3538A–MICRO–6/06
AT89LP213/214 [Preliminary]
符号
功能
CPOL
时钟极性。当 CPOL = 1 时,SCK 在空闲时为高。
当 CPOL = 0 并且不传输数据时,主设备的 SCK 为低。同时请参考 SPI 时钟状态和极性控制。
时钟相位。 CPHA 和 CPOL 位一起控制主从设备之间的数据和时钟的关系。同时请参考 SPI 时钟状态和极性控制。
CPHA
SPI 时钟频率选择。在主模式下,这两个位控制主设备的 SCK 频率,在从模式下这两位无效。SCK 频率和振荡器频率的关
系如下 :
SPR1
SPR0
SCK
0
0
fOSC/4
0
1
fOSC/8
1
0
fOSC/32
SPR0
SPR1
Notes:
1
1
fOSC/64
1. 设定时钟模式再启用 SPI: 先设置 SPCR 中除了 SPE 位的其他位,再设置 SPE 位。
2. 先使能主设备再使能从设备。
3. 如果没有装载新的数据的话,从设备会在下一个 Tx 时刻反馈给主设备信号。
Table 18-2.
SPSR – SPI 状态寄存器
SPDR Address = EAH
复位值 = 00H (after cold reset)
unchanged (after warm reset)
不可位寻址
Bit
Table 18-3.
SPD7
SPD6
SPD5
SPD4
SPD3
SPD2
SPD1
SPD0
7
6
5
4
3
2
1
0
SPSR – SPI Status Register
SPSR Address = E8H
复位值 = 000X X000B
不可位寻址
Bit
SPIF
WCOL
LDEN
–
–
SSIG
DISSO
ENH
7
6
5
4
3
2
1
0
49
3538A–MICRO–6/06
符号
功能
SPIF
SPI 中断标志。当串行传输完成时 SPIF 会被置位,如果此时 SPIE = 1 且 ES = 1,那么就会产生中断。通过读取 SPI 状态寄
存器然后再读 / 写 SPI 数据寄存器可以将 SPIF 清零。
WCOL
LDEN
SSIG
DISSO
ENH
50
当 ENH = 0 时:WCOL 是写入冲突标志。如果在传输数据时向 SPI 数据寄存器中写入数据,将置位 WCOL。此时若读取
寄存器 SPDR 将得到错误的数值,且向 SPDR 写入数据也是无效的。通过读取 SPI 状态寄存器然后再读 / 写 SPI 数据寄
存器可以将 WCOL bit ( 和 SPIF 位 ) 清零。
当 ENH = 1 时: WCOL 在增强模式下作为 Tx 缓冲满标志。在增强模式下,当 WCOL = 1 时写入数据,将会覆盖已在 Tx
缓冲区内等待发送的数据。此时, WCOL 不再由 SPIF 的复位来清零,而是写入缓冲区的数据被装入移位寄存器时被清
零。
增强 SPI 模式下 Tx 缓冲区装载使能。
在 ENH 被置位的情况下,并且 LDEN = 1, WCOL = 0,此时向 Tx 缓冲区装载数据是安全的。在串行字节传输的前 0 - 3
位时 LDEN 为高, 4 - 7 位时 LDEN 为低。
从属选择忽略。如果 SSIG = 0, 如果 SS (P1.4) 被拉低, SPI 将只工作于从属模式。当 SSIG = 1, SPI 忽略从属模式下的
SS ,并且无论 SPE (SPCR.6) 是否置位,它都有效。当 SSIG = 1 时, P1.4 可以用于通用 I/O 引脚。
禁止从输出位
置位时,使得 MISO 管脚处于三态 , 能让多个从设备共用一个接口。通常传输的第一个字节是从设备的地址,只有被选
定的从设备才把它的 DISSO 位置零。
增强 SPI 模式选择位。当 ENH = 0 时, SPI 工作在普通模式下,没有写入数据缓冲
当 ENH = 1 时, SPI 工作在增强模式下,有写入数据缓冲。 Tx 缓冲区和寄存器 SPDR 公用一个地址。
AT89LP213/214 [Preliminary]
3538A–MICRO–6/06
AT89LP213/214 [Preliminary]
Figure 18-2. SPI 移位寄存器图表
7
Serial In
Serial Master
8
2:1
MUX
D
Serial Slave
2:1
MUX
Q
D
LATCH
Q
Serial Out
LATCH
CLK
CLK
8
Parallel Master
Transmit
Byte
Parallel Slave
(Write Buffer)
8
D
(Read Buffer)
8
Q
D
LATCH
8
Q
Receive
Byte
LATCH
CLK
CLK
Figure 18-3. SPI 结构图
S
Oscillator
MSB
LSB
Pin Control Logic
Read Data Buffer
Divider
÷4÷8÷32÷64
Write Data Buffer
Clock
SPI Clock (Mater)
SCK
1.7
S
Clock
Logic
M
SPR0
Select
SPI Status Register
DORD
SPR0
SPR1
CPHA
CPOL
MSTR
DORD
SPI Control Register
8
SPI Interrupt
Request
SPE
8
SPIE
MSTR
SPE
WCOL
SPI Control
SPE
SS
P1.4
MSTR
SPR1
MOSI
P1.5
S
8-bit Shift Register
SPIF
MISO
P1.6
M
M
8
Internal
Data Bus
51
3538A–MICRO–6/06
CPHA (Clock PHAse时钟相位),CPOL (Clock POLarity时钟极性),以及SPCR中的 SPR (Serial
Peripheral clock Rate = baud rate串行外围时钟率=波特率 ) 位控制 SCK 的形状及速度。当SPI 在
主模式下时,两个 SPR 位提供四个可能的时钟频率。在从模式下,只要 输入的 SCK 频率不超过
最大的位频率,SPI 将以它的频率工作。 至于串行数据,这里也有四种可能的 SCK 相位以及极性
组合。 CPHA 以及 CPOL 决定哪一个版本用于传输。 SPI 数据传输的版本见 Figures 18-4 and
18-5。为了避免 SCK 的短时脉冲干扰破坏接口,CPHA, CPOL,以及 SPR 在接口被使能时不应
被修正,并且主器件应该在从器件之前被使能 。
Figure 18-4. CPHA = 0 时 SPI 的转换波形图
Note:
* 非定义但是正常的 MSB 特性被接受。
Figure 18-5. CPHA = 1 时 SPI 的转换波形
SCK CYCLE #
(FOR REFERENCE)
1
2
3
4
5
6
7
8
SCK (CPOL = 0)
SCK (CPOL = 1)
MOSI
(FROM MASTER)
MISO
(FROM SLAVE)
*
MSB
6
5
4
3
2
1
MSB
6
5
4
3
2
1
LSB
LSB
SS (TO SLAVE)
Note:
* 非定义但是先前传输的正常的 LSB 特性。
19. 模拟比较器
AT89LP213/214 上提供一个单独的模拟比较器。模拟比较器有以下特性 :
52
AT89LP213/214 [Preliminary]
3538A–MICRO–6/06
AT89LP213/214 [Preliminary]
• 比较器输出标志及中断
• 可选中断条件
– 高或低等级
– 上升或下降边缘
– 输出跳转
• 硬件跳转模式
比较器操作是这样的,当正输入 AIN0 (P1.0]) 比负输入 AIN1 (P1.1) 大时输出逻辑 1。否则输出 0。
置位 ACSR 中的 CEN 位使能比较器。当比较器第一次被使能,比较器输出并且中断标志在 10 µs
中不一定稳定。相应的比较器在这一时间段不应该被使能, 而比较器中断标志必须在中断被使能
前清零以避免一个直接的中断服务。在使能比较器之前模拟输入应通过将 P1.0 以及 P1.1 置入仅
输入模式来置为三态。见 “ 端口 1 模拟功能 ” on page 24.
在多种输出值情况下,比较器可通过设置 ACSR 中的 CM 位来设定产生中断。无论何时只要比较
器输出与 CM 说明的情况匹配, ACSR 中的比较器中断标志 CF 被置位。标志位可能被软件选取
或被用于产生一个中断并且必须被软件清零。
19.1
含消抖的比较器中断
每个时钟周期比较器输出都被取样。模拟输入上的状态可能是这样的,比较器输出可能过度跳转。
当申请慢速移动模拟输入时这一情况尤其真实。有三种消抖模式被提供用于虑除这一噪声。在消
抖模式下,比较器使用 Timer 1 来调节它的采样时间。当相应的跳转发生时,比较器会等待直至
两个 Timer 1 溢出值在对输出重新取样前出现。如果新的采样适合预期的值, CF 被置位。否则,
事件被忽略。滤波器可以通过调整 Timer 1 的 time-out 周期来调谐。这是因为 Timer 1 是自由运
转的,消抖器必须等待两个溢出来保证采样延迟至少有一个 time-out 周期。因此,在最初的边缘
事件之后,中断可能在 1 到 2 个 time-out 周期之后发生见 Figure 19-1 on page 53。
在默认状态下空闲模式中比较器是被失效的。为了在空闲模式下允许比较器运行, ACSR 中的
CIDL 位必须被置位。当 CIDL 被置位,如果比较器中断被使能,比较器可以用于将 CPU 从空闲模
式中唤醒。在下电模式下比较器始终被失效。
Figure 19-1. 消抖下的负边沿
Comparator Out
Timer 1 Overflow
CF
Start
Compare
Start
Compare
53
3538A–MICRO–6/06
Table 19-1.
ACSR – 模拟比较器控制 & 状态寄存器
ACSR = 97H
复位值 = XXX0 0000B
非位可寻址
Bit
–
–
CIDL
CF
CEN
CM3
CM1
CM0
7
6
5
4
3
2
1
0
符号
功能
CIDL
比较器空闲使能。如果 CIDL = 1 比较器将在空闲模式下持续运作。如果 CIDL = 0 比较器在空闲模式下被下电。比较器
在下电模式下始终被关闭。
CF
比较器中断标志。当比较器输出遇到这样的情况,以 CM [2:0] 位说明并且 CEN 被置位,这一位置位。这一标志必须由
软件清零。中断可以通过置位 / 清零 IE 的 bit6 来使能 / 失效。
CEN
比较仪使能。置位这一位使能比较仪。清零这一位将迫使比较仪输出低电平并且防止置位 CF 引发进一步事件。当 CEN =
1 模拟输入输入引脚,P1.0 以及 P1.1,它们的数字输入失效。
CM [2:0]
比较仪中断模式
Note:
54
CM2
CM1
CM0
中断模式
0
0
0
负 (低)电平
0
0
1
正跳变
0
1
0
套牢跳变 (1)
0
1
1
负边缘跳变 (1)
1
0
0
负沿
1
0
1
套牢
1
1
0
负边缘跳变 (1)
1
1
1
正 (高)电平
1. Debouncing 模式要求使用定时器 1 来产生取样延迟。
AT89LP213/214 [Preliminary]
3538A–MICRO–6/06
AT89LP213/214 [Preliminary]
20. 可编程看门狗定时器
在定时器溢出前,如果软件未能定时供给,将触发一个系统复位,而可编程看门狗定时器 (WDT)
可以保护系统以免因此产生误操作。默认状态下 WDT 计 CPU 时钟周期。SFR WDTCON 中的预
置数分频位,PS0, PS1 以及 PS2 用来将看门狗定时器的周期设置为从 16K 到 2048K 时钟周期。
定时器预置数分频器同样可用于延长 time-out 周期 ( 见 Table 9-2 on page 13) 。在上电模式下
以及复位状态下 WDT 被失效。如果 WDT 计时结束而没有被服务,一个内部 RST 脉冲将被产生
来复位 CPU。可用 WDT 周期选择见 Table 20-1 。
Table 20-1.
Watchdog Timer Time-out Period Selection
WDT 预置数分频位
Note:
PS2
PS1
PS0
周期 (1)
( 时钟周期 )
0
0
0
16K
0
0
1
32K
0
1
0
64K
0
1
1
128K
1
0
0
256K
1
0
1
512K
1
1
0
1024K
1
1
1
2048K
1. WDT 计时结束周期由系统时钟频率决定 .
( PS + 14 )
2
Time-out Period = ------------------------------------------------------- × ( TPS + 1 )
Oscillator Frequency
看门狗定时器由 14 位定时器包含 7 位可编程预置数分频器组成。向 WDTRST 寄存器写队列
1EH/E1H可以使能定时器。当 WDT被使能,WDTCON中的 WDTEN位将被置1。为了避免 WDT
在溢出时产生复位,看门狗饲养队列必须在计时周期结束之前写入 WDTRST。为了喂养看门狗,
两条写指令必须被接连成功地执行。在两条写指令之间, SFR 读是被允许的,但是写不允许。指
令必须把 1EH 移动到 WDTRST 寄存器然后 1EH 到 WDTRST 寄存器。不正确的喂养或使能队列
将产生直接的看门狗复位。 喂养或使能看门狗定时器的程序队列如下:
MOV WDTRST, #01Eh
MOV WDTRST, #0E1h
20.1
软件复位
通过对 WDTRST SFR 写软件复位队列 5AH/A5HA , AT89LP213/214 完成一个软件复位。 The
WDT不需要被使能以产生软件复位。一个正常的软件复位会置位WDTCON中的SWRST标志。然
而,任何时候如果有错误的队列写到 WDTRST ( 例 , 除了 1EH/E1H 或 5AH/A5H),一个软件复
位将立即产生, SWRST 以及 WDTOVF 标志都会被置位。在这种方式下,一个故意的软件复位
和一个误操作产生的复位是有区别的。产生软件复位的程序队列如下:
55
3538A–MICRO–6/06
MOV WDTRST, #05Ah
MOV WDTRST, #0A5h
Table 20-2.
WDTCON – 看门狗控制寄存器
WDTCON Address = A7H
复位值 = 0000 X000B
非位可寻址
PS2
PS1
PS0
WDIDLE
–
SWRST
WDTOVF
WDTEN
7
6
5
4
3
2
1
0
Bit
符号
功能
PS2
PS1
PS0
看门狗定时器 (WDT) 的预置数分频器。当这所有三位都被清零时,看门狗定时器有一个 16K 时钟周期的常规周期。当这
所有三位都被置 1 时,这一常规周期为 2048K 时钟周期。
WDIDLE
在空闲模式下失效 / 使能看门狗定时器。当 WDIDLE = 0 时, WDT 在空闲模式下持续计数。当 WDIDLE = 1 时, WDT
在空闲模式下冻结。
SWRST
软件复位标志。当通过对 WDTRST 写 5AH/A5H 队列产生一个软件复位时,它被置位。同样,当一个不正确的队列写到
WDTRST 中时,它必须被软件清零。
WDTOVF
看门狗溢出标志。当 WDT 定时器溢出产生 WDT 复位时,它被置位。同样,当一个不正确的队列写到 WDTRST 中时,它必须
被软件清零。
WDTEN
看门狗使能标志位。这一位是只读位,它反映了 WDT 的状态 (不管它是不是在运转)。任何复位之后 WDT 都被失效,并
且必须通过写 1EH/E1H 到 WDTRST 来重新使能。
Table 20-3.
WDTRST – 看门狗复位寄存器
WDTCON 地址 = A6H
( 只写 )
非位可寻址
Bit
–
–
–
–
–
–
–
–
7
6
5
4
3
2
1
0
WDT 通过写 1EH/E1H 队列到 WDTRST SFR 中被使能。通过读 WDTCON 中的 WDTEN 位可以核对目前的状态。为了阻止 WDT
复位器件,在 time-out 间隔期间同样的 1EH/E1H 队列必须被写到 WDTRST 中。通过写 5AH/A5H 队列到 WDTRST 中可以产
生一个软件复位。
56
AT89LP213/214 [Preliminary]
3538A–MICRO–6/06
AT89LP213/214 [Preliminary]
21. 指令机摘要
AT89LP213/214 是完全二进制的,与 MCS-51 指令集兼容。AT89LP213/214 以及标准 8051 之间
的区别在于执行一条指令所需要的循环数。 AT89LP213/214 中的指令可能需要 1 个 , 2 个 , 3 个
或 4 个时钟周期来完成。 大多数指令的执行时间可以用 Table 21-1 来估算。 .
Table 21-1.
指令执行时间及例外
一般指令类型
循环数公式
# bytes
大多数算法,逻辑,位及传输指令
# bytes + 1
分支及调用
单字节间接 (i.e. ADD A, @Ri, etc.)
2
RET, RETI
4
MOVC
3
MOVX
4
MUL
2
DIV
4
INC DPTR
2
Clock Cycles
Bytes
8051
AT89LP
Hex Code
ADD A, Rn
1
12
1
28-2F
ADD A, direct
2
12
2
25
ADD A, @Ri
1
12
2
26-27
ADD A, #data
2
12
2
24
ADDC A, Rn
1
12
1
38-3F
ADDC A, direct
2
12
2
35
ADDC A, @Ri
1
12
2
36-37
ADDC A, #data
2
12
2
34
SUBB A, Rn
1
12
1
98-9F
SUBB A, direct
2
12
2
95
SUBB A, @Ri
1
12
2
96-97
SUBB A, #data
2
12
2
94
INC Rn
1
12
1
08-0F
INC direct
2
12
2
05
INC @Ri
1
12
2
06-07
INC A
2
12
2
04
DEC Rn
1
12
1
18-1F
DEC direct
2
12
2
15
DEC @Ri
1
12
2
16-17
DEC A
2
12
2
14
算法
57
3538A–MICRO–6/06
Table 21-1.
指令执行时间及例外 (Continued)
Clock Cycles
Bytes
8051
AT89LP
Hex Code
INC DPTR
1
24
2
A3
MUL AB
1
48
2
A4
DIV AB
1
48
4
84
DA A
1
12
1
D4
算法
Clock Cycles
Bytes
8051
AT89LP
Hex Code
CLR A
1
12
1
E4
CPL A
1
12
1
F4
ANL A, Rn
1
12
1
58-5F
ANL A, direct
2
12
2
55
ANL A, @Ri
1
12
2
56-57
ANL A, #data
2
12
2
54
ANL direct, A
2
12
2
52
ANL direct, #data
3
24
3
53
ORL A, Rn
1
12
1
48-4F
ORL A, direct
2
12
2
45
ORL A, @Ri
1
12
2
46-47
ORL A, #data
2
12
2
44
ORL direct, A
2
12
2
42
ORL direct, #data
3
24
3
43
XRL A, Rn
1
12
1
68-6F
XRL A, direct
2
12
2
65
XRL A, @Ri
1
12
2
66-67
XRL A, #data
2
12
2
64
XRL direct, A
2
12
2
62
XRL direct, #data
3
24
3
63
RL A
1
12
1
23
RLC A
1
12
1
33
RR A
1
12
1
03
RRC A
1
12
1
13
SWAP A
1
12
1
C4
逻辑
58
AT89LP213/214 [Preliminary]
3538A–MICRO–6/06
AT89LP213/214 [Preliminary]
Table 21-1.
指令执行时间及例外 (Continued)
Clock Cycles
数据传输
Bytes
8051
AT89LP
Hex Code
MOV A, Rn
1
12
1
E8-EF
MOV A, direct
2
12
2
E5
MOV A, @Ri
1
12
2
E6-E7
MOV A, #data
2
12
2
74
MOV Rn, A
1
12
1
F8-FF
MOV Rn, direct
2
24
2
A8-AF
MOV Rn, #data
2
12
2
78-7F
MOV direct, A
2
12
2
F5
MOV direct, Rn
2
24
2
88-8F
MOV direct, direct
3
24
3
85
MOV direct, @Ri
2
24
2
86-87
MOV direct, #data
3
24
3
75
MOV @Ri, A
1
12
1
F6-F7
MOV @Ri, direct
2
24
2
A6-A7
MOV @Ri, #data
2
12
2
76-77
MOV DPTR, #data16
3
24
3
90
MOVC A, @A+DPTR
1
24
3
93
MOVC A, @A+PC
1
24
3
83
MOVX A, @Ri
1
24
4
E2-E3
MOVX A, @DPTR
1
24
4
E0
MOVX @Ri, A
1
24
4
F2-F3
MOVX @DPTR, A
1
24
4
F0
PUSH direct
2
24
2
C0
POP direct
2
24
2
D0
XCH A, Rn
1
12
1
C8-CF
XCH A, direct
2
12
2
C5
XCH A, @Ri
1
12
2
C6-C7
XCHD A, @Ri
1
12
2
D6-D7
CLR C
1
12
1
C3
CLR bit
2
12
2
C2
SETB C
1
12
1
D3
SETB bit
2
12
2
D2
CPL C
1
12
1
B3
CPL bit
2
12
2
B2
ANL C, bit
2
24
2
82
59
3538A–MICRO–6/06
Table 21-1.
指令执行时间及例外 (Continued)
Clock Cycles
Bytes
8051
AT89LP
Hex Code
ANL C, bit
2
24
2
B0
ORL C, bit
2
24
2
72
ORL C, /bit
2
24
2
A0
MOV C, bit
2
12
2
A2
MOV bit, C
2
24
2
92
位操作
Clock Cycles
分支
Bytes
8051
AT89LP
Hex Code
JC rel
2
24
3
40
JNC rel
2
24
3
50
JB bit, rel
3
24
4
20
JNB bit, rel
3
24
4
30
JBC bit, rel
3
24
4
10
JZ rel
2
24
3
60
JNZ rel
2
24
3
70
SJMP rel
2
24
3
80
ACALL addr11
2
24
3
11,31,51,71,9
1,B1,D1,F1
LCALL addr16
3
24
4
12
RET
1
24
4
22
RETI
1
24
4
32
AJMP addr11
2
24
3
01,21,41,61,8
1,A1,C1,E1
LJMP addr16
3
24
4
02
JMP @A+DPTR
1
24
2
73
JMP @A+PC
2
–
3
A5 73
CJNE A, direct, rel
3
24
4
B5
CJNE A, #data, rel
3
24
4
B4
CJNE Rn, #data, rel
3
24
4
B8-BF
CJNE @Ri, #data, rel
3
24
4
B6-B7
DJNZ Rn, rel
2
24
3
D8-DF
DJNZ direct, rel
3
24
4
D5
NOP
1
12
1
00
2
–
2
A5 00
(1)
(1)
BREAK
Note:
60
1. 漏掉的指令是这一套指令系统的扩展部分。
AT89LP213/214 [Preliminary]
3538A–MICRO–6/06
AT89LP213/214 [Preliminary]
22. 片上调试系统
AT89LP213/214 片上调试 (OCD) 系统采用双线串行接口来控制程序流,读写和修改系统状态;并
且编程控制非易失性存储器。 OCD 系统有以下特性:
• 完全程序流控制
• 对所有内部 SFR 和数据存储器进行读 - 修改 - 写访问
• 四个硬件程序地址断点
• 有限个程序软件断点,在使用 BREAK 指令时
• 在堆栈溢出或下溢时 Break
• 看门狗溢出时 Break
• 无中断操作
• 编程控制非易失性存储器
22.1
物理接口
片上调试系统采用一个双线同步串行接口,来建立目标设备与控制仿真系统之间的通信。OCD 接
口由两个用户引脚来控制。 OCD 由 OCD Enable 使能端清零开启。当 OCD 开启后, RST 端口
引脚设置成调试时钟的输入口 (DCL)。根据时钟源的选择将 XTAL1 或 XTAL2 引脚设置成一个调
试数据 (DDA)的双向数据线。如果选择外部时钟,则 XTAL2 设置成 DDA。如果选择内部 RC 震
荡器,则 XTAL1 设置成 DDA。OCD 设备连接见图 Figure 22-1。当 OCD 开启时,所使用的接口
类型由 OCD 接口的 Select User Fuse 来选择。有两个类型,一个是常规双线接口 (TWI),另一个
是快速双线接口 (FTWI)。这是在开启 OCD 的同时用户需要设置的,用户通过编程来控制熔丝为他
们的调试系统进行正确的配置。 ( 见 “ 用户配置引脚 ” on page 69).
Figure 22-1. AT89LP213/214 片上调试连接
VCC
VCC
DCL
P1.3/RST
DCL
P1.3/RST
DDA
XTAL1
CLK
XTAL1
GND
CLK = Internal RC
XTAL2
DDA
GND
CLK = External Clock
当设计一个要使用片上调试的系统时,下面的资料必须认真研究才可以作出正确操作:
• P1.3/RST 不可直接连接到 VCC ,而且任何与 RST 连接的外部电容必须被移除。
• 所有外部 reset 源必须被移除。
• XTAL1 或 XTAL2 上的石英晶体和所有电容必须被移除,并且一个外部时钟信号必须在 TAL1 被
驱动,如果用户不想使用内部 RC 震荡器。因此,一些仿真器系统提供用户可配置时钟。
61
3538A–MICRO–6/06
22.2
软件断点
AT89LP213/214微控制器有一个BREAK指令,用来实现软件中的程序存储器断点。一个软件断点
可以通过在程序代码中写入 BREAK 指令来手动插入。 一些仿真器系统允许自动插入 / 删除软件
断点。每次一个软件断点改变时,闪存都必须重新编程设置。频繁的软件断点的插入 / 删除会降
低非易失性存储器的数据保持能力。用于调试的设备不可以连接到终端用户。当 OCD 禁用时,
BREAK 指令被处理成双周期 NOP。
22.3
片上调试的局限性
AT89LP213/214是一个低成本,低引脚输出但是多功能的微控制器,它能够在它的有限的I/O引脚
上实现多种功能。一些设备功能需要牺牲以为片上调试提供资源。片上调试系统有以下局限性:
• 调试时钟引脚 (DCL) 与端口引脚 P1.3 和外部 Reset(RST) 位于相同的引脚。因此, OCD 启动
时, P1.3 和外部 reset 源都不能被仿真。
• 调试数据引脚 (DDA) 位于 XTAL1/P3.2 或 XTAL2/P3.3 引脚。因此,在调试期间不支持晶体震荡
器。用户必须选择内部 RC 震荡器或者外部时钟源来提供系统时钟。 OCD 启动时,晶体震荡
器设备将默认为外部时钟模式。
• 在调试期间使用内部 RC 震荡器时,DDA 位于 XTAL1/P3.2 引脚。在这种模式下 INT0 功能不能
被仿真。
• 在调试期间使用外部时钟时, DDA 位于 XTAL2/P3.3 引脚,而且系统时钟驱动 XTAL1/P3.2。
在这种模式下 INT0, INT1 和 CLKOUT 功能不能被仿真。
• AT89LP213/214 不支持 In-Application 编程,所以此设备必须在调试期间改变代码之前进行
reset。这包括软件断点的插入和删除。
• 当通过看门狗产生一个中断时,看门狗定时器的状态将不会被 reset。一个 OCD reset 指令被
发送到设备不能优先于继续正常执行正确的看门狗定时器的指令。
62
AT89LP213/214 [Preliminary]
3538A–MICRO–6/06
AT89LP213/214 [Preliminary]
23. 闪存编程
Atmel 的 AT89LP213/214 微控制器拥有 2KB 的片上系统可编程 Flash 程序存储器。系统内编程
(ISP) 允许位于终端系统内部的微控制器的编程和重新编程。仅通过一个 4 线的 SPI 接口, InSystem 程序员就可以对所有的片上非易失性存储器进行重新编程,与 AT89LP213/214 微控制器
进 行 串 行 通 信。这 样,在 改 进 实 验 室 和 升 级 软 件 及 相 关 参 数 时,就 回 节 省 时 间 和 财 力。
AT89LP213/214 的 ISP 接口包括以下特性:
• 四线 SPI 编程接口
• 低电平复位进入编程
• 从属选择允许在一些接口并联设备
• 用户信号队列
• 可变的页编程
• 行擦除能力
• 写入页时自动擦除命令
• 程序状态寄存器
要得到更多的有关 In-System Programming 的详细信息,请查阅 应用软件注释 “AT89LP InSystem Programming 说明书 ”。
23.1
物理接口
In-System Programming采用 AT89LP213/214微控制器的SPI接口。SPI是一个全双工同步传行接
口,由四根线组成:串行时钟 (SCK),主入 / 从出 (MISO),主出从入 (MOSI) 和一个低电平选通
的从属选择 (SS)。当对一个 AT89LP213/214 设备编程时,程序员通常相当于 SPI 主控制器,而
目标系统相当于 SPI 从控制器。要进入或保持 In-System Programming 模式,设备的 reset 线
(RST)必须保持低电平。再加上 VCC和 GND,一个AT89LP213/214微控制器能编程设置为最少有
七处连接,见图 Figure 23-1.
Figure 23-1. In-System Programming 设备连接
AT89LP213/214
Serial Clock
P1.7/SCK
Serial Out
P1.6/MISO
Serial In
P1.5/MOSI
SS
VCC
P1.4/SS
P1.3/RST
RST
GND
63
3538A–MICRO–6/06
In-System Programming 接口是对 AT89LP213/214 微控制器外部编程的唯一方式。ISP 接口可以
用于 in-system 和单机串行程序器对设备的编程。 ISP 接口只需要 SCK,不需要其他任何时钟,
而且不受系统时钟频率的制约。在 In-System programming 期间,目标设备的系统时钟源可以正
常运行。
要设计一个 In-System Programming 可用的系统时,下面的资料必须认真研究才可以作出正确操
作:
• ISP 接口采用 SPI 时钟模式 0 (CPOL = 0,CPHA = 0),专用最高频率为 5 MHz。
• 只有当 AT89LP213/214 的 reset 线 (RST) 处于低电平时,它才能进入编程模式。要简化这一操
作,就要求 In-System programmer 来控制目标 reset。要避免错误发生, In-System
programmer 就要保持整个目标系统在编程周期内复位。在复位期间,目标系统不能试图驱动
四根 SPI 线。
• RST 输入可以被禁用以获得额外的 I/O 引脚。在这些情况下,RST 引脚通常将在 power up 期
间作用为一个 reset。要进入编程 RST 引脚必须在上电复位 (POR) 结束之前被驱动。在 POR
完成之后,设备将保持在 ISP 模式,直到 RST 跳至高电平。一旦 ISP 的初始化结束,目标设
备就会周期性的断电,然后在通电进入下一阶段。
• 如果 ISP 开启,则在 reset 期间 SS 引脚不能悬空。
• ISP 使能引脚必须置位,允许在任何 reset 期间编程。如果 ISP 引脚禁用,则只能在 POR 访问
ISP。
23.2
存储器机构
AT89LP213/214 提供 2K 字节的 ISP 非易失性闪存代码存储器。此外,该设备还包含一个 64-byte
的用户信号序列和一个 32-byte 的只读 Atmel 信号序列。存储器机构祥见图表 Table 23-1 和 Figure
23-2。存储器被拆分成页,每页 32 bytes。一个信号的读和写指令只访问存储器中的一个信号页。
每个存储器类型位于它自己的地址空间,并且由指定对某个存储器进行访问的指令对其进行访
问。然而,所有的存储器类型享有同样大小的页。
用户配置引脚在存储器中映射成一行,每种类型代表一个引脚。从一个程序断点,引脚被设置成
与常规代码字节相同,除非它们不受到芯片擦除的影响。 在任何时候向引脚行的正确位置写入
00h,引脚就可以起用。然而,要禁用引脚,也就是将它置为 FFh,整个引脚行就必须被擦除,然
后重新写入程序。程序员需要将所有引脚的状态读入一个暂时的位置,如果有需要禁用的引脚就
修改该引脚的值,然后通过自动擦除指令将临时数据写入一个引脚。对锁定位的处理与引脚采取
同种方式,除非他们只能通过 Chip Erase 来擦除。 .
Table 23-1.
64
代码存储器大小
Device #
Code Size
Page Size
# Pages
Address Range
AT89LP213
2K bytes
32 bytes
64
0000H - 07FFH
AT89LP214
2K bytes
32 bytes
64
0000H - 07FFH
AT89LP213/214 [Preliminary]
3538A–MICRO–6/06
AT89LP213/214 [Preliminary]
Figure 23-2. AT89LP213/214 存储器机构
User Fuse Row
Page 0
User Signature Array
Page 1
Atmel Signature Array
Page 0
Page 0
07FF
Page 63
Page 62
Code Memory
Page 1
Page 0
00
23.3
0000
1F
指令格式
编程指令包括一个 opcode 字节,两个地址字节,还有 0,或者更多数据字节。除此之外,所有指
令信息包必须开始于一个两个字节的前同步码设置为 AAH 和 55H。前同步码使程序接口很难发出
意外的错误指令,从而增加了抗噪能力。Figure 23-3 on page 66 是一个指令序列的单一流程图。
一个样本指令信息包见图 Figure 23-4 on page 66。 SS 引脚定义信息帧。在指令的第一个字节发
送之前 SS 必须置低电平,而在最后一个字节发送之后,它将返回高电平。直到 SS 返回高电平,
该指令才完成。指令字节在 MOSI 串行发送。数据输出字节在 MISO 被串行接收。当最后字节发
送以后将 SS 返回高电平,就可以支持不同长度的信息包。有时指令字节有一个 don’t care 值。 在
一个信息包中间的 Don’t care 字节必须发送。在一个信息包末端的 Don’t care 字节可以被忽略。
页导向指令通常包括一个完全 16 位的地址。高指令位选页,低指令位在该页中选择字节。
AT89LP213/214 分配 5 位为字节地址, 6 位为页地址。将被访问的页通常由发送来的页地址来确
定。字节地址指定第一个数据字节的起始地址。每发送一个数据字节之后,字节地址增加,指向
下一个数据字节。这样,一个页指令就可以在该页中线性的访问每一个字节。如果字节地址增加
到超过此页中的最后一个字节,字节地址就会再指向这一页中的第一个字节。当载入字节到页缓
冲器中时,之前写溢出的字节就会导致数据出错。
可用指令摘要见 Table 23-2 on page 67.
65
3538A–MICRO–6/06
Figure 23-3. 指令序列流程图
Input Preamble 1
(AAh)
Input Preamble 2
(55h)
Input Opcode
Input Address
High Byte
Input Address
Low Byte
Input/Output
Data
Address +1
Figure 23-4. ISP 指令信息包
SS
SCK
MOSI
MISO
7 6 5 4 3 2 1 0
7 6 5 4 3 2 1 0
7 6 5 4 3 2 1 0
Preamble 1
Preamble 2
Opcode
Address High
Address Low
7 6 5 4 3 2 1 0
Data In
X
X
X
X
X
7 6 5 4 3 2 1 0
Data Out
66
AT89LP213/214 [Preliminary]
3538A–MICRO–6/06
AT89LP213/214 [Preliminary]
Table 23-2.
程序指令摘要
Command
Opcode
Addr High
Addr Low
Data 0
Data n
Program Enable(1)
1010 1100
0101 0011
–
–
–
Chip Erase
1000 1010
–
–
–
–
Read Status
0110 0000
xxxx xxxx
xxxx xxxx
Status Out
Load Page Buffer(2)
0101 0001
xxxx xxxx
xxxb bbbb
DataIn 0 ... DataIn n
Write Code Page(2)
0101 0000
xxxx xaaa
aaab bbbb
DataIn 0 ... DataIn n
Write Code Page with Auto-Erase(2)
0111 0000
xxxx xaaa
aaab bbbb
DataIn 0 ... DataIn n
Read Code Page(2)
0011 0000
xxxx xaaa
aaab bbbb
DataOut 0 ... DataOut n
Write User Fuses(2)(3)(4)
1110 0001
0000 0000
000b bbbb
DataIn 0 ... DataIn n
Write User Fuses with Auto-Erase(2)(3)(4)
1111 0001
0000 0000
000b bbbb
DataIn 0 ... DataIn n
Read User Fuses(2)(3)(4)
0110 0001
0000 0000
000b bbbb
DataOut 0 ... DataOut n
Write Lock Bits(2)(3)(5)
1110 0100
0000 0000
000b bbbb
DataIn 0 ... DataIn n
Read Lock Bits(2)(3)(5)
0110 0100
0000 0000
000b bbbb
DataOut 0 ... DataOut n
Write User Signature Page(2)
0101 0010
xxxx xxxx
xaab bbbb
DataIn 0 ... DataIn n
Write User Signature Page with Auto-Erase(2)
0111 0010
xxxx xxxx
xaab bbbb
DataIn 0 ... DataIn n
Read User Signature Page(2)
0011 0010
xxxx xxxx
xaab bbbb
DataOut 0 ... DataOut n
Read Atmel Signature Page(2)(6)
0011 1000
xxxx xxxx
xxxb bbbb
DataOut 0 ... DataOut n
Notes:
1. 程序使能必须时进入编程模式之后发出的第一条指令。
2. 1 到 32 之间的数据字节的任何数字可能被读 / 写。内部地址在每个字节之间增加。
3. 每一字节地址选择一个引脚或锁定位。数据字节必须为 00h 或 FFh。
4. 见 Table 23-5 on page 69 :引脚定义。
5. 见 Table 23-4 on page 68 :锁定位定义。
6. Atmel 信号字节
AT89LP213:
Address
00H = 1EH
01H = 27H
02H = FFH
AT89LP214:
Address
00H = 1EH
01H = 28H
02H = FFH
7. 信号密码 :
a:
Page Address Bit
b:
Byte Address Bit
x:
Don’t Care Bit
67
3538A–MICRO–6/06
23.4
状态寄存器
存储器的当前状态可能通过读状态寄存器来访问。状态寄存器见 Table 23-3.
Table 23-3.
状态寄存器
Bit
–
–
–
–
LOAD
SUCCESS
WRTINH
BUSY
7
6
5
4
3
2
1
0
标志
功能
LOAD
装载标志。由装载页缓冲器指令将此位清零,由下一个存储器写操作将此位置 1。这一标志表示页缓冲器通过页缓冲器
指令已经载入数据。
SUCCESS
完成标志。在一个编程周期的开始清零,只有在没有收到节能检波器的中断时完成一个编程周期的情况下,此位才能置
位。
WRTINH
写抑制标志。如果 VCC 降低到要求的编程电压以下,编程将为内向的,在这种情况下,此位由节能检波器清零。如果一
个 BOD 时间发生在编程期间,则 SUCCESS 标志将在这个周期结束之后仍保持低电平。WRTINH 为低电平也会将
BUSY 拉为低电平。
BUSY
繁忙标志。当存储器处于编程期间或当前执行写操作时,此位清零。
23.5
DATA 查询
The AT89LP213/214 执行 DATA 查询,表示编程周期结束。当设备繁忙时, 任何对于最后一个写
入字节的读操作将会返回 MSB 补偿的数据字节。一旦编程周期结束,就可获得一个真正的值。 在
擦除阶段,数据被认为是 FFH,并且 DATA 查询将返回 7FH。当在一页中写入很多字节时,DATA
值将为编程开始前最后一个被写入的字节,而不是在此页中最高物理地址中被写入的字节。
23.6
Flash 安全性
AT89LP213/214 为 Flash 代码存储器的安全性提供两个锁定位(Lock bits)。锁定位可设置为不被
编程 (FFh) 或者被编程 (00h),获得的保护标准见 Table 23-4。锁定位只能由 Chip Erase 来擦除
(置位为 FFh)。锁定位模式 2 禁止所有存储器空间的编程,包括用户信号序列 (User Signature
Array)和用户信号引脚(User Configuration Fuses)。用户引脚必须在启动锁定位模式 2 或3 之前
编程设置。锁定位模式 3 执行模式 2,并且还阻止从代码存储器进行读操作,然而对于 User
Signature Array, Atmel Signature Array 和 User Configuration Fuses 的读操作仍然允许。
Table 23-4.
锁定位保护模式
程序锁定位 (by 地址 )
68
模式
00h
01h
保护模式
1
FFh
FFh
无程序锁定特性
2
00h
FFh
进一步的对 Flash 编程被禁止
3
00h
00h
进一步的对 Flash 编程被禁止,并且校验 ( 读 ) 也被禁止
; OCD 禁用
AT89LP213/214 [Preliminary]
3538A–MICRO–6/06
AT89LP213/214 [Preliminary]
23.7
用户配置引脚
AT89LP213/214 有 19 个用于设备配置的用户引脚。 每个引脚在用户引脚行的不同地址分别被访
问,见 Table 23-5。可通过对引脚的位置编程输入 00h 来对此引脚清零。对引脚的位置编程输入
FFh 会使该引脚保持之前的状态。要想将一引脚置位 ( 置成 FFh),此引脚行必须被擦除,然后通过
自动擦除指令,使用 Fuse Write 来对其进行重新编程。所有引脚的默认状态为 FFh.
Table 23-5.
用户配置引脚定义
Fuse 名称
地址
描述
为系统时钟选择源。
00 – 01h
时钟源 – CS[0:1](2)
CS1
CS0
已选源
00h
00h
晶体震荡器 (XTAL)
00h
FFh
保留
FFh
00h
XTAL1 上的外部时钟 (XCLK)
FFh
FFh
内部 RC 震荡器 (IRC)
为 POR/BOD/PWD wake-up 时期选择时间溢出延时:
02 – 03h
启动时间 – SUT[0:1]
SUT1
SUT0
选择时间溢出
00h
00h
1 ms (XTAL); 16 µs (XCLK/IRC)
00h
FFh
2 ms (XTAL); 512 µs (XCLK/IRC)
FFh
00h
4 ms (XTAL); 1 ms (XCLK/IRC)
FFh
FFh
16 ms (XTAL); 4 ms (XCLK/IRC)
04h
Reset 引脚使能端 (3)
FFh: RST 引脚功能 reset
00h: RST 引脚功能:通用 I/O 口
05h
节能检波器使能端
FFh: 节能检波器启用
00h: 节能检波器禁用
06h
片上调试使能端 Enable
FFh: 片上调试禁用
00h: 片上调试启用
07h
ISP 使能端 (3)
FFh: In-System Programming 开启
00h: In-System Programming 禁用 ( 只可用于 POR)
08 – 0FH
RC 震荡器频率调节器 [0:7]
调节内部 RC 震荡器的频率。
10H
用户信号编程
FFh: 用户信号编程禁用
00h: 用户信号编程启用
11H
三态端口
FFh: I/O 端口起始于 input-only 模式 ( 三态 ) ,在 reset 之后
00h: I/O 端口起始于准双向模式,在 reset 之后
12H
OCD 接口选择
FFh: 标准双线接口
00h: 快速双线接口
Notes:
1. 所有的引脚的默认状态为 FFh。
2. 在一个设备 POR 之后,对于这些引脚的改变才会起作用。
3. RST 跳为高电平 ISP 阶段终止之后,对于这些引脚的改变才会起作用。
69
3538A–MICRO–6/06
23.8
编程接口定时
这一部分详细说明了通用系统的定时序列和对于插入或退出的约束,其中的插入和退出是指在
ISP 期间插入或推出 In-System Programming中,以及与串行外部接口有关的参数。以下波形的通
用定时序列在 23.8.6 ”Timing Parameters” on page 74 部分列出。
23.8.1
上电序列
执行此序列,在上电之后立即进入编程模式。在 RST 引脚禁用或者 ISP 引脚禁用时,这是唯一进
入编程模式的方法。 ( 见 Section 10.3 ” 外部复位 ” on page 15).
1. VCC 和 GND 引脚之间的供应功率。RST 要保持低电平。
2. 等待至少 tPWRUP 时间,并将 SS 拉高。
3. 等待至少 tSUT 时间,等待内部上电复位完成。 tSUT 的值将取决于当前设备的配置。
4. 开始编程。
Figure 23-5. 串行编程上电序列
VCC
tPWRUP
RST
tPOR + tSUT
SS
tZSS
SCK
23.8.2
MISO
HIGH Z
MOSI
HIGH Z
下电序列
编程后执行此序列使设备处于下电状态。
1. 将 SCK 置电平。
2. 等待至少 tSSD 时间,并且将 SS 拉高。
3. 三态 MOSI。
4. 等待至少 tSSZ 时间,然后三态 SS 和 SCK。
5. 等待时间不超过 tPWRDN 并且关掉 VCC。
Figure 23-6. 串行编程下电序列
VCC
tPWRDN
RST
SS
SCK
70
tSSD
tSSZ
MISO
HIGH Z
MOSI
HIGH Z
AT89LP213/214 [Preliminary]
3538A–MICRO–6/06
AT89LP213/214 [Preliminary]
23.8.3
ISP 开始序列
当器件已经通过上电复位且已经可以工作时,执行这一序列来退出 CPU 执行模式,且进入 ISP 模
式。 .
1. 驱动 RST 为低 .
2. 驱动 SS 为高 .
3. 等待 tRLZ + tSTL.
4. 开始可编程部分 .
Figure 23-7. 在线可编程 (ISP) 开始序列
tRLZ
VCC
XTAL1
RST
tSTL
SS
tZSS
tSSE
SCK
23.8.4
MISO
HIGH Z
MOSI
HIGH Z
ISP 退出时序
执行这一序列来退出 ISP 模式,回复 CPU 执行模式 .
1. 驱动 SCK 低 .
1. 至少等到 tSSD 并驱动 SS 为高 .
2. 三态 MOSI.
3. 至少等到 tSSZ 并将 RST 拉高 .
4. 三态 SCK.
5. 等待 tRHZ 并三态 SS.
Figure 23-8. 在线可编程 (ISP) 退出时序
VCC
XTAL1
RST
tSSZ
SS
SCK
Note:
tRHZ
tSSD
MISO
HIGH Z
MOSI
HIGH Z
这一页上的波形不是按比例的 .
71
3538A–MICRO–6/06
23.8.5
串行外围设备接口
串行外围设备接口 (SPI) 是一个字节型的全双工同步串行通信通道。 在在线编程过程中编程器总
是作为 SPI 主机,且目标设备总是作为 SPI 从机。 目标设备从 MOSI 接收串行数据并且从 MISO 发
送串行数据。 编程接口采用了一个标准的有固定数据顺序的 SPI 端口。对在系统编程来说,先发
送 MSB,如图 23 - 9 所示。 SCK 相位和极性遵循 SPI 时钟模式 0(CPOL = 0, CPHA = 0) ,在 SCK
的上升沿采样位且在 SCK 下降沿输出。详细的时序信息请参考图 23 - 10。
Figure 23-9. ISP 字节序列
SCK
MOSI
7
6
5
4
3
2
1
0
MISO
7
6
5
4
3
2
1
0
Data Sampled
Figure 23-10. S 串行编程接口时序
SS
tSCK
tSSE
tSHSL
SCK
tSOE
tSR
tSSD
tSF
tSLSH
tSOV
tSOX
tSOH
MISO
tSIS
tSIH
MOSI
23.8.6
时序参数
表 23 - 6 中列出了图 23 - 5,图 23 - 6,图 23 - 7,图 23 - 8,图 23 - 10 的时序参数。
72
AT89LP213/214 [Preliminary]
3538A–MICRO–6/06
AT89LP213/214 [Preliminary]
Table 23-6.
Symbol
tCLCL
tPWRUP
tPOR
P 编程接口时序参数
Parameter
Min
Max
Units
系统时钟周期
0
60
ns
上电到 SS 高电平时间
10
上电复位时间
µs
100
µs
1
µs
2 tCLCL
ns
tPWRDN
SS 三态下电时间 f
tRLZ
RST 低到 I/O 三态
tCLCL
tSTL
RST 低设置时间
100
tRHZ
RST 高到 SS 三态
0
tSCK
串行时钟周期时间
200(1)
ns
tSHSL
时钟高时间
75
ns
tSLSH
时钟低时间
50
ns
ns
2 tCLCL
ns
tSR
上升时间
25
ns
tSF
下降时间
25
ns
tSIS
串行输入设置时间
10
ns
tSIH
串行输入保持时间
10
ns
tSOH
串行输出保持时间
10
ns
tSOV
串行输出有效时间
35
ns
tSOE
输出使能时间
10
ns
tSOX
输出禁止时间
25
ns
tSSE
SS 使能延迟时间
tSLSH
ns
tSSD
SS 禁止延迟时间
tSLSH
ns
tZSS
SCK 设置到 SS 低
25
ns
tSSZ
SS 变高后 SCK 保持时间
25
ns
tWR
写周期时间
2.5
ms
tAWR
带自动擦除时间的写周期
5
ms
tERS
芯片擦除周期
7.5
ms
Note:
1. tSCK 取决于 tCLCL.
73
3538A–MICRO–6/06
24. 电器特性
24.1
绝对最大额定值 *
工作温度 .......................................................... -40°C to +85°C
*NOTICE:
存储温度 ........................................................ -65°C to +150°C
任何引脚的对地电压 ..........................................-0.7V to +5.5V
最大工作电压 .................................................................... 5.5V
超出 “绝对最大额定值”列出的设置可能对器件
造成永久性的破坏。这只是额定值,在这些情况
或者任何别的情况下对器件进行超出操作部分所
指出的的功能性操作都是不允许的。长期使器件
工作在绝对最大额定条件下会影响器件的稳定
性。 .
DC 输出直流 ............................................................... 15.0 mA
24.2
直流特性
TA = -40°C to 85°C, VCC = 2.4V to 5.5V ( 除非另有说明 )
Min
Max
Units
I 输入低电压
-0.5
0.2 VCC - 0.1
V
输入高电压
0.2 VCC + 0.9
VCC + 0.5
V
0.5
V
符号
参数
VIL
VIH
条件
(1)
(Ports 1, 3)
VOL
输出低电压
VOH
带弱上拉使能的输出高电压
(Ports 1, 3)
IOL = 10 mA, VCC = 2.7V, TA = 85°C
IOH = -80 µA, VCC = 5V ± 10%
2.4
V
IOH = -30 µA
0.75 VCC
V
IOH = -12 µA
0.9 VCC
V
VOH1
带强上拉使能的输出高电压
(Ports 1, 3)
IOH = -10 mA, TA = 85°C
IIL
逻辑 0 输入电流 t
(Ports 1, 3)
VIN = 0.45V
ITL
逻辑 1 过渡电流 (Ports 1, 3)
VIN = 2V, VCC = 5V ± 10%
ILI
输入漏电流
(Port P1.0, P1.1)
0 < VIN < VCC
VOS
比较器输入偏移电压
VCC = 5V
VCM
比较器输入
RRST
复位下拉电阻
CIO
引脚电容
0.9 VCC
-50
µA
-750
µA
±10
µA
20
mV
0
VCC
V
50
150
KΩ
10
pF
5.5/3.5
mA
Idle Mode, 12 MHz, VCC = 5.5V/3V
P1.0 & P1.1 = 0V or VCC
1.2/1
mA
VCC = 5.5V, P1.0 & P1.1 = 0V or VCC
100
µA
VCC = 3V, P1.0 & P1.1 = 0V or VCC
20
µA
Test Freq. = 1 MHz, TA = 25°C
Active Mode, 12 MHz, VCC = 5.5V/3V
电压供给电流
ICC
下电模式 (2)
Notes:
1. 在稳定的状态下 ( 无三态 ) , IOL 必须被外部限制如下 :
每个端口引脚上的最大 IOL : 10 mA
所有输出引脚的最大总 IOL f: 15 mA
如果 IOL 超过了测试条件, VOL 可能会超过相关的指标。不能确保引脚漏电流大于所列出的测试条件 .
2. 最小的下电 VCC 2V.
74
AT89LP213/214 [Preliminary]
3538A–MICRO–6/06
AT89LP213/214 [Preliminary]
24.3
串行外围设备接口时序
Table 24-1.
SPI Master Characteristics
Symbol
Parameter
Min
tCLCL
晶振周期
41.6
ns
tSCK
串行时钟周期
4tCLCL
ns
tSHSL
时钟高时间
tSCK/2 - 25
ns
tSLSH
时钟低时间
tSCK/2 - 25
ns
tSR
上升时间
25
ns
tSF
下降时间
25
ns
tSIS
串行输入设置时间
10
ns
tSIH
串行输入保持时间
10
ns
tSOH
串行输出保持时间
10
ns
tSOV
串行输出有效时间
35
ns
Max
Units
Table 24-2.
Max
Units
从机 SPI 特性
符号
参数
Min
tCLCL
晶振周期
41.6
ns
tSCK
串行时钟周期
4tCLCL
ns
tSHSL
时钟高时间
1.5 tCLCL - 25
ns
tSLSH
时钟低时间
1.5 tCLCL - 25
ns
tSR
上升时间
25
ns
tSF
下降时间
25
ns
tSIS
串行输入设置时间
10
ns
tSIH
串行输入保持时间
10
ns
tSOH
串行输出保持时间
10
ns
tSOV
串行输出有效时间
35
ns
tSOE
输出使能时间
10
ns
tSOX
输出禁止时间
25
ns
tSSE
从机使能延迟时间
10
ns
tSSD
从机禁止延迟时间
0
ns
75
3538A–MICRO–6/06
Figure 24-1. SPI 主机时序 (CPHA = 0)
SS
tSCK
SCK
(CPOL = 0)
SCK
(CPOL = 1)
tSR
tSF
tSHSL
tSLSH
tSLSH
tSHSL
tSIS
tSIH
MISO
tSOH
tSOV
MOSI
Figure 24-2. SPI 从机时序 (CPHA = 0)
SS
tSCK
tSSE
SCK
(CPOL = 0)
SCK
(CPOL= 1)
tSR
tSHSL
tSLSH
tSLSH
tSHSL
tSOV
tSOE
tSSD
tSF
tSOX
tSOH
MISO
tSIS
tSIH
MOSI
Figure 24-3. SPI 主机时序 (CPHA = 1)
SS
tSCK
SCK
(CPOL = 0)
SCK
(CPOL = 1)
tSF
tSHSL
tSLSH
tSLSH
tSHSL
tSR
tSIS
tSIH
MISO
MOSI
76
tSOH
tSOV
AT89LP213/214 [Preliminary]
3538A–MICRO–6/06
AT89LP213/214 [Preliminary]
Figure 24-4. SPI S 从机时序 (CPHA = 1)
SS
tSCK
tSSE
SCK
(CPOL = 0)
SCK
(CPOL = 1)
tSR
tSF
tSHSL
tSLSH
tSLSH
tSHSL
tSOE
tSOV
tSSD
tSOX
tSOH
MISO
tSIS
tSIH
MOSI
24.4
外部时钟驱动
Figure 24-5. 外部时钟驱动波形
VCC = 2.4V to 5.5V
Min
Max
Units
晶振频率
0
20
MHz
tCLCL
时钟周期
50
ns
tCHCX
高电平时间
12
ns
tCLCX
低电平时间
12
ns
tCLCH
上升时间
5
ns
tCHCL
下降时间
5
ns
符号
参数
1/tCLCL
77
3538A–MICRO–6/06
24.5
穿行端口时序:移位寄存器测试模式
T 此表中的值对 VCC = 2.4V 到 5.5V 有效且负载电容 = 80 pF.
可变晶振
Min
Max
Units
符号
参数
tXLXL
串行端口时钟周期
2tCLCL -15
µs
tQVXH
输出数据设置到时钟上升沿
tCLCL -15
ns
tXHQX
时钟上升沿后输出数据保持
tCLCL -15
ns
tXHDX
时钟上升沿后输入数据保持
0
ns
tXHDV
I 输入数据有效到时钟上升沿
15
ns
Figure 24-6. 移位寄存器模式时序波形
CLOCK
WRITE TO SBUF
OUTPUT DATA
0
1
2
3
4
5
6
7
CLEAR RI
INPUT DATA
24.6
24.6.1
Note:
24.6.2
Note:
78
VALID
VALID
VALID
VALID
VALID
VALID
VALID
VALID
测试条件
交流测试输入 / 输出波形 (1)
1. 测试中的交流输入由 VCC - 0.5V 表示逻辑 “1” 和 0.45V 表示逻辑 “0” 来驱动 . 时序测量是 VIH min. 表示逻辑 “1”,VIL max. 表示
逻辑 “0”.
漂移波形 (1)
1. 为了时序 , 当负载电压发生了 100MV 的变化时端口引脚不再漂移。当负载 VOH/VOL 电平发生了 100mv 的变化时端口引脚开始发
生漂移 .
AT89LP213/214 [Preliminary]
3538A–MICRO–6/06
AT89LP213/214 [Preliminary]
24.6.3
ICC 测试条件 , 活动模式 , 所有别的引脚都悬空
VCC
ICC
RST
XTAL2
(NC)
CLOCK SIGNAL
24.6.4
VCC
XTAL1
VSS
ICC 测试条件 , 空闲模式 , 所有别的引脚都悬空
VCC
ICC
RST
XTAL2
(NC)
CLOCK SIGNAL
24.6.5
VCC
XTAL1
VSS
活动和空闲模式下的 ICC 测试时钟信号波形 tCLCH = tCHCL = 5 ns
VCC - 0.5V
0.45V
0.7 VCC
tCHCX
0.2 VCC - 0.1V
tCHCL
tCLCH
tCHCX
tCLCL
24.6.6
ICC 测试条件 , 下电模式 , 所有别的引脚都悬空 , VCC = 2V to 5.5V
VCC
ICC
RST
(NC)
VCC
XTAL2
XTAL1
VSS
79
3538A–MICRO–6/06
25. 分类信息
25.1
标准封装
Speed
(MHz)
20
25.2
2.4V to 5.5V
Ordering Code
Package
AT89LP213-20PI
AT89LP213-20XI
14P3
14X
AT89LP214-20PI
AT89LP214-20XI
14P3
14X
Operation Range
Industrial
(-40°C to 85°C)
绿色封装 (Pb/Halide-free)
Speed
(MHz)
20
Power
Supply
Power
Supply
2.4V to 5.5V
Ordering Code
Package
AT89LP213-20PU
AT89LP213-20XU
14P3
14X
AT89LP214-20PU
AT89LP214-20XU
14P3
14X
Operation Range
Industrial
(-40°C to 85°C)
Package Type
14P3
14-lead, 0.300” Wide, Plastic Dual In-line Package (PDIP)
14X
14-lead, 0.173” Wide, Plastic Thin Shrink Small Outline Package (TSSOP)
80
AT89LP213/214 [Preliminary]
3538A–MICRO–6/06
AT89LP213/214 [Preliminary]
26. Packaging Information
26.1
14P3 – PDIP
D
PIN
1
E1
A
SEATING PLANE
A1
L
B
B1
e
E
COMMON DIMENSIONS
(Unit of Measure = mm)
C
eC
eB
Notes:
1. This package conforms to JEDEC reference MS-001, Variation AA.
2. Dimensions D and E1 do not include mold Flash or Protrusion.
Mold Flash or Protrusion shall not exceed 0.25 mm (0.010").
SYMBOL
MIN
NOM
MAX
A
–
–
5.334
A1
0.381
–
–
D
18.669
–
19.685
E
7.620
–
8.255
E1
6.096
–
7.112
B
0.356
–
0.559
B1
1.143
–
1.778
L
2.921
–
3.810
C
0.203
–
0.356
eB
–
–
10.922
eC
0.000
–
1.524
e
NOTE
Note 2
Note 2
2.540 TYP
11/02/05
R
2325 Orchard Parkway
San Jose, CA 95131
TITLE
14P3, 14-lead (0.300"/7.62 mm Wide) Plastic Dual
Inline Package (PDIP)
DRAWING NO.
14P3
REV.
A
81
3538A–MICRO–7/06
26.2
14X – TSSOP
Dimensions in Millimeters and (Inches).
Controlling dimension: Millimeters.
JEDEC Standard MO-153 AB-1.
INDEX MARK
PIN
1
4.50 (0.177) 6.50 (0.256)
4.30 (0.169) 6.25 (0.246)
5.10 (0.201)
4.90 (0.193)
0.65 (.0256) BSC
0.30 (0.012)
0.19 (0.007)
1.20 (0.047) MAX
0.15 (0.006)
0.05 (0.002)
SEATING
PLANE
0.20 (0.008)
0.09 (0.004)
0º~ 8º
0.75 (0.030)
0.45 (0.018)
05/16/01
R
82
2325 Orchard Parkway
San Jose, CA 95131
TITLE
14X (Formerly "14T"), 14-lead (4.4 mm Body) Thin Shrink
Small Outline Package (TSSOP)
DRAWING NO.
REV.
14X
B
AT89LP213/214 [Preliminary]
3538A–MICRO–7/06
AT89LP213/214 [Preliminary]
27. Revision History
Revision No.
History
Revision A – June 2006
•
Initial Release
83
3538A–MICRO–6/06
AT89LP213/214 [Preliminary]
Table of Contents
1.
Description ............................................................................................... 1
2.
Pin Configuration ..................................................................................... 2
2.1
AT89LP213: 14-lead TSSOP/PDIP ......................................................................2
2.2
AT89LP214: 14-lead TSSOP/PDIP ......................................................................2
3.
Pin Description ......................................................................................... 3
4.
Block Diagram .......................................................................................... 5
5.
Comparison to Standard 8051 ................................................................ 6
6.
5.1
System Clock .......................................................................................................6
5.2
Instruction Execution with Single-Cycle Fetch .....................................................6
5.3
Interrupt Handling .................................................................................................6
5.4
Timer/Counters ....................................................................................................6
5.5
Serial Port ............................................................................................................6
5.6
Watchdog Timer ...................................................................................................7
5.7
I/O Ports ...............................................................................................................7
5.8
Reset ....................................................................................................................7
Memory Organization .............................................................................. 7
6.1
Program Memory .................................................................................................7
6.2
Data Memory ........................................................................................................8
7.
Special Function Registers ..................................................................... 9
8.
Enhanced CPU ....................................................................................... 10
8.1
9.
Restrictions on Certain Instructions ...................................................................11
System Clock ......................................................................................... 12
9.1
Crystal Oscillator ................................................................................................12
9.2
External Clock Source ........................................................................................12
9.3
Internal RC Oscillator .........................................................................................12
9.4
System Clock Out ..............................................................................................12
10. Reset ....................................................................................................... 13
10.1 Power-on Reset .................................................................................................13
10.2 Brown-out Reset ................................................................................................15
10.3 External Reset ....................................................................................................15
10.4 Watchdog Reset .................................................................................................16
10.5 Software Reset ...................................................................................................16
i
3538A–MICRO–6/06
11. Power Saving Modes ............................................................................. 16
11.1 Idle Mode ...........................................................................................................16
11.2 Power-down Mode .............................................................................................16
12. Interrupts ................................................................................................ 18
12.1 Interrupt Response Time ....................................................................................20
13. I/O Ports .................................................................................................. 22
13.1 Port Configuration ..............................................................................................22
13.2 Port 1 Analog Functions .....................................................................................25
13.3 Port Read-Modify-Write ......................................................................................25
13.4 Port Alternate Functions .....................................................................................26
14. Enhanced Timer/Counters .................................................................... 27
14.1 Mode 0 – Variable Width Timer/Counter ............................................................27
14.2 Mode 1 – 16-bit Auto-Reload Timer/Counter .....................................................28
14.3 Mode 2 – 8-bit Auto-Reload Timer/Counter .......................................................29
14.4 Mode 3 – 8-bit Split Timer ..................................................................................29
14.5 Pulse Width Modulation .....................................................................................32
15. External Interrupts ................................................................................. 36
16. General-purpose Interrupts .................................................................. 36
17. Serial Interface ....................................................................................... 38
17.1 Multiprocessor Communications ........................................................................38
17.2 Baud Rates ........................................................................................................40
17.3 More About Mode 0 ............................................................................................41
17.4 More About Mode 1 ............................................................................................43
17.5 More About Modes 2 and 3 ................................................................................45
17.6 Framing Error Detection .....................................................................................48
17.7 Automatic Address Recognition .........................................................................48
18. Serial Peripheral Interface ..................................................................... 49
19. Analog Comparator ............................................................................... 55
19.1 Comparator Interrupt with Debouncing ..............................................................55
20. Programmable Watchdog Timer ........................................................... 57
20.1 Software Reset ...................................................................................................58
21. Instruction Set Summary ...................................................................... 59
22. On-Chip Debug System ......................................................................... 63
22.1 Physical Interface ...............................................................................................63
22.2 Software Breakpoints .........................................................................................64
22.3 Limitations of On-Chip Debug ............................................................................64
ii
AT89LP213/214 [Preliminary]
3538A–MICRO–6/06
AT89LP213/214 [Preliminary]
23. Programming the Flash Memory .......................................................... 65
23.1 Physical Interface ...............................................................................................65
23.2 Memory Organization .........................................................................................66
23.3 Command Format ..............................................................................................67
23.4 Status Register ...................................................................................................70
23.5 DATA Polling ......................................................................................................70
23.6 Flash Security ....................................................................................................70
23.7 User Configuration Fuses ..................................................................................71
23.8 Programming Interface Timing ...........................................................................72
24. Electrical Characteristics ...................................................................... 76
24.1 Absolute Maximum Ratings* ..............................................................................76
24.2 DC Characteristics .............................................................................................76
24.3 Serial Peripheral Interface Timing .....................................................................77
24.4 External Clock Drive ...........................................................................................79
24.5 Serial Port Timing: Shift Register Mode Test Conditions ...................................80
24.6 Test Conditions ..................................................................................................80
25. Ordering Information ............................................................................. 82
25.1 Standard Package ..............................................................................................82
25.2 Green Package Option (Pb/Halide-free) ............................................................82
26. Packaging Information .......................................................................... 83
26.1 14P3 – PDIP ......................................................................................................83
26.2 14X – TSSOP .....................................................................................................84
27. Revision History ..................................................................................... 85
iii
3538A–MICRO–6/06
Atmel Corporation
2325 Orchard Parkway
San Jose, CA 95131, USA
Tel: 1(408) 441-0311
Fax: 1(408) 487-2600
Regional Headquarters
Europe
Atmel Sarl
Route des Arsenaux 41
Case Postale 80
CH-1705 Fribourg
Switzerland
Tel: (41) 26-426-5555
Fax: (41) 26-426-5500
Asia
Room 1219
Chinachem Golden Plaza
77 Mody Road Tsimshatsui
East Kowloon
Hong Kong
Tel: (852) 2721-9778
Fax: (852) 2722-1369
Japan
9F, Tonetsu Shinkawa Bldg.
1-24-8 Shinkawa
Chuo-ku, Tokyo 104-0033
Japan
Tel: (81) 3-3523-3551
Fax: (81) 3-3523-7581
Atmel Operations
Memory
2325 Orchard Parkway
San Jose, CA 95131, USA
Tel: 1(408) 441-0311
Fax: 1(408) 436-4314
Microcontrollers
2325 Orchard Parkway
San Jose, CA 95131, USA
Tel: 1(408) 441-0311
Fax: 1(408) 436-4314
La Chantrerie
BP 70602
44306 Nantes Cedex 3, France
Tel: (33) 2-40-18-18-18
Fax: (33) 2-40-18-19-60
ASIC/ASSP/Smart Cards
Zone Industrielle
13106 Rousset Cedex, France
Tel: (33) 4-42-53-60-00
Fax: (33) 4-42-53-60-01
RF/Automotive
Theresienstrasse 2
Postfach 3535
74025 Heilbronn, Germany
Tel: (49) 71-31-67-0
Fax: (49) 71-31-67-2340
1150 East Cheyenne Mtn. Blvd.
Colorado Springs, CO 80906, USA
Tel: 1(719) 576-3300
Fax: 1(719) 540-1759
Biometrics/Imaging/Hi-Rel MPU/
High-Speed Converters/RF Datacom
Avenue de Rochepleine
BP 123
38521 Saint-Egreve Cedex, France
Tel: (33) 4-76-58-30-00
Fax: (33) 4-76-58-34-80
1150 East Cheyenne Mtn. Blvd.
Colorado Springs, CO 80906, USA
Tel: 1(719) 576-3300
Fax: 1(719) 540-1759
Scottish Enterprise Technology Park
Maxwell Building
East Kilbride G75 0QR, Scotland
Tel: (44) 1355-803-000
Fax: (44) 1355-242-743
Literature Requests
www.atmel.com/literature
Disclaimer: The information in this document is provided in connection with Atmel products. No license, express or implied, by estoppel or otherwise, to any
intellectual property right is granted by this document or in connection with the sale of Atmel products. EXCEPT AS SET FORTH IN ATMEL’S TERMS AND CONDITIONS OF SALE LOCATED ON ATMEL’S WEB SITE, ATMEL ASSUMES NO LIABILITY WHATSOEVER AND DISCLAIMS ANY EXPRESS, IMPLIED OR STATUTORY
WARRANTY RELATING TO ITS PRODUCTS INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
PURPOSE, OR NON-INFRINGEMENT. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT, CONSEQUENTIAL, PUNITIVE, SPECIAL OR INCIDENTAL DAMAGES (INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF PROFITS, BUSINESS INTERRUPTION, OR LOSS OF INFORMATION) ARISING OUT
OF THE USE OR INABILITY TO USE THIS DOCUMENT, EVEN IF ATMEL HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. Atmel makes no
representations or warranties with respect to the accuracy or completeness of the contents of this document and reserves the right to make changes to specifications
and product descriptions at any time without notice. Atmel does not make any commitment to update the information contained herein. Unless specifically provided
otherwise, Atmel products are not suitable for, and shall not be used in, automotive applications. Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life.
© 2006 Atmel Corporation. All rights reserved. Atmel®, logo and combinations thereof, Everywhere You Are ® and others, are
registered trademarks or trademarks of Atmel Corporation or its subsidiaries. Other terms and product names may be trademarks of others.
3538A–MICRO–6/06