EM78F664N

EM78F564N/F664N
8位
微控制器
产品规格书
版本 2.2
义隆电子股份有限公司
2010.04
本文内容是由英文规格书翻译而
来,目的是为了您的阅读更加方
便。它无法跟随原稿的更新,文
中可能存在翻译上的错误,请您
参考英文规格书以获得更准确的
信息。
商标告知:
IBM 为一个注册商标,PS/2 是 IBM 的商标之ㄧ.。
Windows 是微软公司的商标。
ELAN 和 ELAN 标志
是义隆电子股份有限公司的商标。
版权所有 © 2009~2010 义隆电子股份有限公司
所有权利保留
台湾印制
本规格书内容如有变动恕不另作通知。关于该规格书的准确性、适当性或者完整性,义隆电子股份有限
公司不承担任何责任。 义隆电子股份有限公司不承诺对本规格书之内容及信息有更新及校正之义务。 本
规格书的内容及信息将为符合确认之指示而变更。
在任何情况下,义隆电子股份有限公司对本规格书中的信息或内容的错误、遗漏,或者其它不准确性不
承担任何责任。由于使用本规格书中的信息或内容而导致的直接,间接,特别附随的或结果的损害, 义
隆电子股份有限公司没有义务负责。
本规格书中提到的软件(如果有),都是依据授权或保密合约所合法提供的,并且只能在这些合约的许
可条件下使用或者复制。
义隆电子股份有限公司的产品不是专门设计来应用于生命维持的用具,装置或者系统。 义隆电子股份有
限公司的产品不支持而且禁止在这些方面的应用。
未经义隆电子股份有限公司书面同意,任何个人或公司不得以任何形式或方式对本规格书的内容之任一部
分进行复制或传输。
义隆电子股份有限公司
总公司:
地址:台湾新竹科学园区
创新一路 12 号
电话:+886 3 563-9977
传真:+886 3 563-9966
webmaster@emc.com.tw
http://www.emc.com.tw
香港分公司:
USA:
义隆电子(香港)有限公司
九龙观塘巧明街 95 号世达中心
19 楼 A 室
电话:+852 2723-3376
传真:+852 2723-7780
Elan Information
Technology Group (USA)
Korea:
深圳分公司:
上海分公司:
Elan Korea Electronics
Company, Ltd.
义隆电子(深圳)有限公司
义隆电子(上海)有限公司
301 Dong-A Building
632 Kojan-Dong,
Namdong-ku
Incheon City, KOREA
Tel: +82 32 814-7730
Fax:+82 32 813-7730
P.O. Box 601
Cupertino, CA 95015
USA
Tel: +1 408 366-8225
Fax:+1 408 366-8225
地址:深圳市高新技术产业园南区 地址:上海市浦東新區張江高科畢
高新南一道国微大厦 3F
升路 289 弄 3 號 101 室
邮编:518057
电话:+86 755 2601-0565
传真:+86 755 2601-0500
elan-sz@elanic.com.cn
邮编:201203
电话:+86 21 5080-3866
传真:+86 21 5080-0273
elan-sh@elanic.com.cn
Contents
目录
1
综述
2
产品特性.................................................................................................................... 1
3
引脚配置.................................................................................................................... 2
4
引脚描述.................................................................................................................... 3
5
功能结构图 ................................................................................................................ 5
6
功能描述.................................................................................................................... 6
6.1
...................................................................................................................... 1
操作寄存器 ....................................................................................................... 6
6.1.1
R0 (间接寻址寄存器) .......................................................................................... 6
6.1.2
R1 (定时时钟/计数器) ......................................................................................... 6
6.1.3
R2 (程序计数器和堆栈) ....................................................................................... 6
6.1.4
R3 (状态寄存器).................................................................................................. 8
6.1.5
6.1.6
6.1.7
R4 (RAM Select Register) .................................................................................. 9
Bank 0 R5 ~ R8 (Port 5 ~ Port 8) ....................................................................... 9
Bank 0 R9 (TBLP : TBRD 指令的表指针寄存器) ................................................ 9
6.1.8
Bank 0 RA (唤醒控制寄存器) .............................................................................. 9
6.1.9
Bank 0 RB (EEPROM 控制寄存器, 仅对 EM78F664N).................................... 10
6.1.10 Bank 0 RC (256 字节 EEPROM 地址, 仅对 EM78F664N) ............................... 10
6.1.11 Bank 0 RD (256 字节 EEPROM 数据, 仅对 EM78F664N) ................................11
6.1.12 Bank 0 RE (模式选择寄存器).............................................................................11
6.1.13 Bank 0 RF (中断状态寄存器 1) ......................................................................... 12
6.1.14 R10 ~ R3F ........................................................................................................ 13
6.1.15 Bank 1 R5 TC1CR (定时器 1 控制寄存器) ........................................................ 13
6.1.16 Bank 1 R6 TCR1DA (定时器 1 数据缓存 A) ...................................................... 15
6.1.17 Bank 1 R7 TCR1DB (定时器 1 数据缓存 B)..................................................... 15
6.1.18 Bank 1 R8 TC2CR (定时器 2 控制寄存器) ........................................................ 15
6.1.19 Bank 1 R9 TC2DH (定时器 2 数据缓存高字节) ................................................ 19
6.1.20 Bank 1 RA TC2DL (定时器 2 数据缓存低字节) ................................................. 19
6.1.21 Bank 1 RB SPIS (SPI 状态寄存器) ................................................................... 20
6.1.22 Bank 1 RC SPIC (SPI 控制寄存器)................................................................... 20
6.1.23 Bank 1 RD SPIRB (SPI 读数据缓存) ................................................................ 21
6.1.24 Bank 1 RE SPIWB (SPI 写数据缓存)................................................................ 21
6.1.25 Bank 1 RF (中断状态寄存器 2) ......................................................................... 21
6.1.26 Bank 2 R5 AISR (ADC 输入选择寄存器) .......................................................... 22
6.1.27 Bank 2 R6 ADCON (A/D 控制寄存器)............................................................... 23
6.1.28 Bank 2 R7 ADOC (A/D 偏移校正寄存器) .......................................................... 24
6.1.29 Bank 2 R8 ADDH (AD 数据缓存器高 8 位) ....................................................... 24
6.1.30 Bank 2 R9 ADDL (AD 数据缓存器低 2 位) ........................................................ 24
6.1.31 Bank 2 RA URC1 (UART 控制寄存器 1) ........................................................... 24
6.1.32 Bank 2 RB URC2 (UART 控制寄存器 2)........................................................... 25
版本号 (V2.2) 04.07.2010
• iii
Contents
6.1.33 Bank 2 RC URS (UART 状态寄存器) ............................................................... 25
6.1.34 Bank 2 RD URRD (UART_RD 数据缓存) ......................................................... 26
6.1.35 Bank 2 RE URTD (UART_TD 数据缓存) .......................................................... 26
6.1.36 Bank 2 RF (上拉控制寄存器 1) ......................................................................... 26
6.1.37 Bank 3 R5 (TMRCON: 定时器 A 和定时器 B 控制寄存器)................................ 27
6.1.38 Bank 3 R6 (TBHP : TBRD 指令的表指针寄存器).............................................. 27
6.1.39 Bank 3 R7 (CMPCON: 比较器 2 控制寄存器和 PWMA/B 控制寄存器) ............ 27
6.1.40 Bank 3 R8 (PWMCON: PWMA/B 周期和占空比寄存器的低两位) .................... 28
6.1.41 Bank 3 R9 (PRDAH: PWMA 高字节(Bit 9 ~ Bit 2)) ........................................... 28
6.1.42 Bank 3 RA (DTAH: PWMA 占空比的高字节 (Bit 9 ~ Bit 2)) .............................. 28
6.1.43 Bank 3 RB (PRDBH: PWMB 的高字节 (Bit 9~Bit 2)) ........................................ 28
6.1.44 Bank 3 RC (DTBH: PWMB 占空比的高字节 (Bit 9 ~ Bit 2) )............................. 29
6.1.45 Bank 3 RD TC3CR (定时器 3 控制寄存器) ....................................................... 29
6.1.46 Bank 3 RE TC3D (定时器 3 数据缓存) ............................................................. 31
6.1.47 Bank 3 RF (下拉控制寄存器 1) ......................................................................... 31
6.2
特殊功能寄存器 .............................................................................................. 31
6.2.1
A (累加器) ......................................................................................................... 31
6.2.2
CONT (控制寄存器) .......................................................................................... 31
6.2.3
IOC5 ~ IOC8 (I/O 口控制寄存器) ...................................................................... 32
6.2.4
6.2.5
IOC9 ................................................................................................................. 32
IOCA (WDT 控制寄存器)................................................................................... 32
6.2.6
IOCB (下拉控制寄存器 2) ................................................................................. 33
6.2.7
IOCC (漏极开路控制寄存器)............................................................................. 34
6.2.8
IOCD (上拉控制寄存器 2) ................................................................................. 34
6.2.9
IOCE (中断屏蔽寄存器 2) ................................................................................. 35
6.2.10 IOCF (中断屏蔽寄存器 1) ................................................................................. 35
6.3
TCC/WDT 和预分频比 .................................................................................... 36
6.4
I/O 端口 .......................................................................................................... 37
6.5
复位和唤醒 ..................................................................................................... 40
6.5.1
复位................................................................................................................... 40
6.5.2
状态寄存器 RST, T 和 P 的状态 ........................................................................ 54
6.6
中断 ................................................................................................................ 56
6.7
数据 EEPROM (仅对 EM78F664N)................................................................. 57
6.7.1
6.7.2
6.8
iv •
数据 EEPROM 控制寄存器............................................................................... 57
6.7.1.1
RB (EEPROM 控制寄存器) ................................................................ 57
6.7.1.2
RC (256 字节 EEPROM 地址) ........................................................... 58
6.7.1.3
RD (256 字节 EEPROM 数据) ........................................................... 58
编程步骤/示例程序 ............................................................................................ 58
6.7.2.1
编程步骤 ............................................................................................ 58
6.7.2.2
示例程序 ............................................................................................ 59
模数转换器(ADC)............................................................................................ 59
版本号 (V2.2) 04.07.2010
Contents
6.8.1
6.9
ADC 控制寄存器(AISR/R5, ADCON/R6, ADOC/R7) ........................................ 60
6.8.1.1
Bank 2 R5 AISR (ADC 输入选择寄存器) ........................................... 60
6.8.1.2
Bank 2 R6 ADCON (A/D 控制寄存器)................................................ 60
6.8.1.3
Bank 2 R7 ADOC (A/D 偏移校正寄存器) ........................................... 61
6.8.2
ADC 数据缓存 (ADDH, ADDL/R8, R9) ............................................................. 62
6.8.3
A/D 采样时间 .................................................................................................... 62
6.8.4
A/D 转换时间 .................................................................................................... 62
6.8.5
A/D 工作在休眠模式.......................................................................................... 62
6.8.6
编程步骤/事项 ................................................................................................... 63
6.8.6.1
编程步骤 ............................................................................................ 63
6.8.6.2
程序示例 ............................................................................................ 63
双 PWM (脉宽调制)......................................................................................... 65
6.9.1
概述................................................................................................................... 65
6.9.2
定时器计数器的增量 (TMRX: TMRAH/L 或 TMRBH/L)..................................... 66
6.9.3
PWM 周期 (PRDX : PRDA 或 PRDB)............................................................... 66
6.9.4
PWM 占空比 (DTX: DTA 或 DTB) ..................................................................... 66
6.9.5
比较器 X............................................................................................................ 67
6.9.6
PWM 编程过程/步骤.......................................................................................... 67
6.9.7
定时器模式........................................................................................................ 67
6.9.7.1
概述.................................................................................................... 67
6.9.7.2
功能描述 ............................................................................................ 67
6.9.7.3
编程相关寄存器.................................................................................. 68
6.9.7.4
定时器编程过程/步骤 ......................................................................... 69
6.10 定时/计数器 1.................................................................................................. 69
6.11 定时器/计数器 2 .............................................................................................. 70
6.12 定时器/计数器 3 .............................................................................................. 72
6.13 比较器............................................................................................................. 74
6.13.1 外部参考信号 .................................................................................................... 74
6.13.2 比较器输出........................................................................................................ 74
6.13.3 中断................................................................................................................... 75
6.13.4 从休眠模式唤醒................................................................................................. 75
6.14 UART.............................................................................................................. 75
6.14.1 Bank 2 RA URC1 (UART 控制寄存器 1)........................................................... 75
6.14.2 Bank 2 RB URC2 (UART 控制寄存器 2)........................................................... 76
6.14.3 Bank 2 RC URS (UART 状态寄存器)................................................................ 76
6.14.4 Bank 2 RD URRD (UART_RD 数据缓存) ......................................................... 77
6.14.5 Bank 2 RE URTD (UART_TD 数据缓存) .......................................................... 77
6.14.6 UART Mode ...................................................................................................... 79
6.14.7 发送................................................................................................................... 79
6.14.8 接收................................................................................................................... 79
6.14.9 波特率发生器 .................................................................................................... 80
版本号 (V2.2) 04.07.2010
•v
Contents
6.15 SPI ................................................................................................................. 80
6.15.1 概述和特性........................................................................................................ 80
6.15.2 SPI 功能描述..................................................................................................... 82
6.15.3 SPI 信号和引脚描述 .......................................................................................... 84
6.15.4 编程相关寄存器................................................................................................. 85
6.15.5 SPI 模式时序..................................................................................................... 88
6.15.6 SPI 软件应用..................................................................................................... 89
6.16 振荡器............................................................................................................. 91
6.16.1 振荡模式 ........................................................................................................... 91
6.16.2 晶体振荡器/陶瓷谐振器 (晶体) .......................................................................... 92
6.16.3 外部 RC 振荡模式 ............................................................................................. 93
6.16.4 内部 RC 振荡模式 ............................................................................................. 94
6.17 代码选项寄存器 .............................................................................................. 95
6.17.1 代码选项寄存器(Word 0)................................................................................... 95
6.17.2 代码选项寄存器(Word 1)................................................................................... 96
6.17.3 用户 ID 寄存器(Word 2) .................................................................................... 97
6.18 上电探讨 ......................................................................................................... 97
6.19 外部上电复位电路........................................................................................... 97
6.20 残留电压保护 .................................................................................................. 98
6.21 指令集............................................................................................................. 99
7
时序图 .................................................................................................................. 102
8
最大绝对值范围 ..................................................................................................... 103
9
直流电气特性......................................................................................................... 103
10
交流电气特性......................................................................................................... 124
附录
A
封装类型................................................................................................................ 125
B
封装信息................................................................................................................ 126
B.1 EM78Fx64NK24 ........................................................................................... 126
B.2 EM78Fx64NSO24 ........................................................................................ 127
B.3 EM78Fx64NK28 ........................................................................................... 128
B.4 EM78Fx64NSO28 ........................................................................................ 129
C
B.5 EM78Fx64NQN32 ........................................................................................ 130
品质保证和可靠性.................................................................................................. 131
C.1 地址缺陷检测 ................................................................................................ 131
vi •
版本号 (V2.2) 04.07.2010
Contents
规格修订历史
版本号
修订描述
时间
1.0
初版
2009/01/08
1.1
1. 给出了 EM78F664N 和 ICE652N 的不同, 特别是 TCC 功
能.
2009/06/03
2. 修改了 DC 电气特性
1. 删除了 ICE652N 信息和 PAGE 指令..
2.0
2. 增加了 CPU 工作模式, 低速模式/空闲模式,
LCALL/LJMP/TBRD 指令.
2009/09/08
3. 说明了如何使用 ICE660N 仿真 EM78F664N.
1. 重定义 CPU 工作模式信息.
2.1
2. 增加 Bank 1 R8<7, 6>与 Word 1 <12> 的 IRC 模式选择
信息。
2009/11/20
3. 增加 V/U 封装版本之间的比较.
1. 修订 了引脚描述的格式 和 唤醒信号列表
2.2
2. 增加了设备特性.
2010/04/07
3. 合并 EM78F564N 和 EM78F664N 的规格书.
版本号 (V2.2) 04.07.2010
• vii
Contents
V/U 封装版本之间的比较
项目
版本
EM78Fx64N-V
EM78Fx64N-U
旧版
新版
-40°C ~ 50°C
-40°C ~ 85°C
14.318 MHz
16 MHz
±
O
16 MHz
工作温度
@ VDD = 5V
85°C
工作频率
@ VDD = 5V
寄存器改变 IRC 频率
注: “o” = 若使能,功能可使用
“×” =功能不可使用
EM78Fx64N-V 封装
EM78Fx64N-U 封装
viii •
版本号 (V2.2) 04.07.2010
EM78F564N/F664N
8位微控制器
1
综述
EM78Fx64N 是采用低功耗.高速 CMOS 工艺设计开发的具有高抗噪性能的 8 位微控制器。. 它配备 4K×13
位的闪存存储器(Flash) 且 EM78F664N 有 256×8-位在系统可编程 EEPROM.. EM78Fx64N 还提供三个
保护位避免用户在 Flash 内的程序被读取.拥有 12 个代码选项以满足用户的需要。
具有增强的 Flash-ROM 特性的 EM78Fx64N 为用户提供开发和校验程序的便利 而且,在使用开发编程工具
的情况下,利用开发工具可给这些 FLASH-ROM 的器件提供一种容易和有效的程序更新的优势。用户可以方
便地使用义隆烧录器烧写自己的开发代码。
2
产品特性
•
„ CPU 配置
•
4K×13 位Flash存储器
•
144×8位片内寄存器 (SRAM)
•
256 字节 在系统可编程EEPROM
(仅对 EM78F664N)
IRC模式: DC~16MHz @ 4.5V~5.5V ; DC~4MHz
@ 2.3V~5.5V
14 个可用中断
„
•
内部中断:11
•
外部中断:3
*寿命: 1,000,000次擦写
„
8 通道 AD 转换,分辨率为 10 位
•
数据保持长于10年
„
1 个比较器 (偏差电压: 小于 10 mV)
•
8级堆栈用于子程序嵌套
•
„
两通道的脉宽调制 (PWM ),分辨率为 10 位
3级可编程复位电压
LVR : 4.1V, 3.7V, 2.7V
•
耗电流低于1.5 mA @ 5V / 4 MHz
•
耗电流典型值为20 µA, @ 3V / 32kHz
„ •
休眠模式下耗电流典型值为 1.5 µA
•
定时/计数/PDO (可编程分频器输出)/PWM (脉宽调
制)
一个 16 位的定时/计数器
TC2 : 定时/计数/窗口
串行发送/接收接口
•
25个I/O端口
•
唤醒端口 : P6
•
高灌电流端口 : P6
•
14个可编程下拉I/O 引脚
•
14 个可编程上拉 I/O 引脚
•
8 个可编程漏极开路 I/O 引脚
•
外部中断带有唤醒功能: P60
„
2.5V~5.5V , -40°C~85°C (工业级)
•
2.3V~5.5V, 0°C~70°C (商业级)
„
„
•
晶振模式: DC~16MHz @ 4.5V~5.5V; DC~8MHz
@ 3V~5.5V ; DC~4MHz @ 2.3V~5.5V
•
ERC模式: DC~16MHz @ 4.5V~5.5V ; DC~8MHz
@ 3V~5.5V ; DC~4MHz @ 2.3V~5.5V
外设配置
外部中断输入引脚
温度
电压
(-40°C~85°C) (2.5V~5.5V)
± 5%
„
•
掉电 (休眠) 模式
•
高抗EFT特性
单周期指令
特性
•
可编程独立运行看门狗定时器
•
上电电压检测 (2.0V ~ 2.2V)
封装形式:
•
24-引脚小型 DIP 300 mil
: EM78Fx64NK24J/S
•
24-引脚 SOP 300 mil
: EM78Fx64NSO24J/S
•
28-引脚skinny DIP 300 mil : EM78Fx64NK28J/S
± 2.5% ± 10.5%
•
28-引脚SOP 300 mil
: EM78Fx64NSO28J/S
•
32-引脚 QFN 5×5 mm
: EM78Fx64NQN32J/S
漂移率
制程
总计
16 MHz
± 3%
± 5%
± 2.5% ± 10.5%
8 MHz
± 3%
± 5%
± 2.5% ± 10.5%
455kHz
± 3%
± 5%
± 2.5% ± 10.5%
版本号(V2.2) 04.07.2010
通用异步收发器(UART)
•
„ 工作频率范围 (基于 2 个时钟)
(产品更新后规格书不保证同步更新)
串行外设接口 (SPI): 三线同步通讯
•
•一个指令周期包含2/4/8/16个时钟周期,可由代码选择
•
± 3%
•
• 8位可以选择时钟源,边沿触发和溢出中断的实时定
时/计数器(TCC)
工作电压范围
4 MHz
TC1 : 定时/计数/捕捉
•
4组双向 I/O端口: P5, P6, P7和P8
内部 RC 频
率
•
„
„ I/O 端口结构
•
两个 8 位定时/计数器
„
注意: 本产品为绿色产品不含有害物质.
•1
EM78F564N/F664N
8位微控制器
3
引脚配置
(1) 24 引脚 SKDIP/SOP
(2) 28 引脚 SKDIP/SOP
图 3-1 24引脚 EM78Fx64N
图 3-2 28引脚 EM78Fx64N
(3) 32-引脚 QFN
图 3-3 32引脚 EM78Fx64N
2•
版本号 (V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
EM78F564N/F664N
8位微控制器
4
引脚描述
名称
P50/VREF//SS
P51/TX/SO
P52/RX/SI
P53/SCK
P54/OSCO/RCOUT
P55/OSCI/ERCin
P56/TC2
P57/TC3/PDO
功能
输入类型
P61/AD1
P62/AD2
CMOS
描述
双向 I/O 端口,可软件编程用作下拉引脚
P50
ST
VREF
AN
−
ADC 外部参考电压
/SS
ST
−
SPI 从模式选择引脚
P51
ST
CMOS
双向 I/O 端口,可软件编程用作下拉引脚
TX
−
CMOS
UART TX 输出
SO
−
CMOS
SPI 连续数据输出
CMOS
双向 I/O 端口,可软件编程用作下拉引脚
P52
ST
RX
ST
−
UART RX 输入
SI
ST
−
SPI 连续数据输入
P53
ST
CMOS
双向 I/O 端口,可软件编程用作下拉引脚
SCK
ST
CMOS
SPI 连续时钟输入/输出
P54
ST
CMOS
双向 I/O 端口
OSCO
−
XTAL
晶体振荡器的时钟输出引脚.
RCOUT
−
CMOS
内部 RC 振荡器的时钟输出引脚。外部 RC 振荡的时钟
输入引脚. (漏极开路)
CMOS
双向 I/O 端口
P55
ST
OSCI
XTAL
−
晶体振荡器的时钟输入引脚.
ERCin
AN
−
外部 RC 振荡输入引脚
P56
ST
TC2
ST
P57
ST
TC3
ST
CMOS
−
CMOS
−
−
PDO
P60/AD0//INT
输出类型
双向 I/O 端口
定时器 2 时钟输入
双向 I/O 端口
定时器 3 时钟输入
CMOS
可编程分频器的输出
CMOS
双向 I/O 端口,通过软件编程可设置为内部下拉、内部
上拉、漏极开路输出和引脚输入状态改变唤醒端口。
P60
ST
AD0
AN
−
ADC 输入 0
/INT
ST
−
外部中断引脚
P61
ST
AD1
AN
P62
ST
AD2
AN
版本号(V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
CMOS
−
CMOS
−
双向 I/O 端口,通过软件编程可设置为内部下拉、内部
上拉、漏极开路输出和引脚输入状态改变唤醒端口。
ADC 输入 1
双向 I/O 端口,通过软件编程可设置为内部下拉、内部
上拉、漏极开路输出和引脚输入状态改变唤醒端口。
ADC 输入 2
•3
EM78F564N/F664N
8位微控制器
(continuation)
名称
输入类型 输出类型
描述
双向 I/O 端口,通过软件编程可设置为内部下拉、内部上拉、漏极
P63
ST
CMOS
AD3
AN
−
P64
ST
CMOS
AD4
AN
−
P65
ST
CMOS
AD5
AN
−
P66
ST
CMOS
AD6
AN
−
P67
ST
CMOS
AD7
AN
−
P72
−
ST
CMOS
双向 I/O 端口,通过软件编程可设置为内部下拉、内部上拉
P73
−
ST
CMOS
双向 I/O 端口,通过软件编程可设置为内部下拉、内部上拉
P74
ST
CMOS
双向 I/O 端口,通过软件编程可设置为内部下拉、内部上拉
TC1
ST
−
P75
ST
CMOS
双向 I/O 端口,通过软件编程可设置为内部下拉、内部上拉
CMOS
PWMA 输出
CMOS
双向 I/O 端口,通过软件编程可设置为内部下拉、内部上拉
CMOS
PWMB 输出
双向 I/O 端口,通过软件编程可设置为内部下拉、内部上拉
P63/AD3
P64/AD4
P65/AD5
P66/AD6
P67/AD7
P74/TC1
P75/PWMA
P76/PWMB
P77/TCC
P80/CO2
(DATA)
P81/CIN2+
(CLK)
P82/CIN2-
4•
功能
−
PWMA
P76
ST
−
PWMB
开路输出和引脚输入状态改变唤醒端口。
ADC 输入 3
双向 I/O 端口,通过软件编程可设置为内部下拉、内部上拉、漏极
开路输出和引脚输入状态改变唤醒端口。
ADC 输入 4
双向 I/O 端口,通过软件编程可设置为内部下拉、内部上拉、漏极
开路输出和引脚输入状态改变唤醒端口。
ADC 输入 5
双向 I/O 端口,通过软件编程可设置为内部下拉、内部上拉、漏极
开路输出和引脚输入状态改变唤醒端口。
ADC 输入 6
双向 I/O 端口,通过软件编程可设置为内部下拉、内部上拉、漏极
开路输出和引脚输入状态改变唤醒端口。
ADC 输入 7
定时器 1 时钟输入
P77
ST
CMOS
TCC
ST
−
P80
ST
CMOS
双向 I/O 端口
CMOS
比较器 2 输出端口
−
CO2
实时时钟计数器时钟输入引脚
(DATA)
ST
CMOS
烧录时的的数据引脚
P81
ST
CMOS
双向 I/O 端口
CIN2+
AN
−
比较器 2 同向输入引脚
(CLK)
ST
−
烧录时的时钟引脚
P82
ST
CMOS
CIN2-
AN
−
双向 I/O 端口
比较器 2 反向输入引脚
版本号 (V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
EM78F564N/F664N
8位微控制器
(continuation)
名称
功能
输入类型
输出类型
描述
/RESET
ST
−
内部上拉复位引脚
(/RESET)
ST
−
烧录时的复位引脚
VDD
VDD
Power
−
电源
VSS
VSS
Power
−
地
/RESET
(/RESET)
注释: ST: 施密特触发输入
AN: 模拟引脚
XTAL: 晶体振荡引脚 CMOS: CMOS 输出t
5
功能结构图
图 5-1 功能结构图
版本号(V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
•5
EM78F564N/F664N
8位微控制器
6
功能描述
6.1 操作寄存器
6.1.1 R0 (间接寻址寄存器)
R0 并非实际存在的寄存器。它的主要功能是作为间接寻址指针。任何对 R0 操作的指
令实际上是存取由 RAM 选择寄存器 R4 指向的 RAM 内容。
6.1.2 R1 (定时时钟/计数器)
R1 由 TCC 引脚的外部信号边沿(由 CONT-4:TE 设定)或指令周期时钟触发加 1 操
作。可读写,通过设置 PSTE 位(CONT-3)来定义。
如果 PSTE 位(CONT-3)被清零,可将预分频器分配给 TCC。当给 TCC 寄存器赋值
时,预分频计数器的内容被清零。
6.1.3 R2 (程序计数器和堆栈)
根据控制器的类型,R2 和硬件堆栈为 12 位宽,它的结构请参考图 6-1
产生 4K×13 位片内 Flash ROM 地址以获取对应的程序指令编码。一个程序页是 1024
字长。
当复位产生时,R2 所有位被清零。.
"JMP" 指令允许直接装载程序计数器低 10 位。因此,"JMP"可以在同一个页内任意跳
转。
"CALL" 指令装载程序计数器的低 10 位。并将 PC+1 值入栈。因此,子程序入口地址
可以放在同一页的任一位置。
"LJMP" 指令允许直接加载程序计数器的低 A0~A11,因此, "LJMP"允许 PC 在 4K (212)
内任意跳转。
"LCALL"指令允许直接加载程序计数器的低 A0~A11, 并将 PC+1 值入栈。因此,子程
序入口地址可以放在 4K (212)内任一位置。
"RET" ("RETL k", "RETI")指令将栈顶的数据存放在 PC 中。
"ADD R2, A"允许把相对地址加到当前 PC 上,同时 PC 的第 9 位和后面的位会随着 PC
值增大而增加。
"MOV R2, A"允许从 A 寄存器装载到 PC 的低 8 位,同时 PC 的第 9 位和第 10 位保持
不变。
任何对 R2 进行写操作的指令(除了“ADD R2,A”,如“MOV R2, A”,“BC R2, 6”)都会
使 PC 的第 9,10 位(A8,A9)保持不变。
除了改变 R2 内容的指令和“LCALL”, “LJMP”, “TBRD”指令需要多于一个指令周期外,
其余的指令只需要一个指令周期(fclk/2, fclk/4, fclk/8 或者 fclk/16),“LCALL”,
“LJMP” 和“TBRD”指令需要两个指令周期。
6•
版本号 (V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
EM78F564N/F664N
8位微控制器
图 6-1 程序计数器结构
版本号(V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
•7
EM78F564N/F664N
8位微控制器
Bank 0
Bank 1
Bank 2
Bank 3
01
R1 (TCC 缓存)
02
R2 (PC)
03
R3 (状态寄存器)
04
R4 (RSR,bank 选择)
05
R5 (Port 5 /IO 口)
R5 (定时器1 控制)
R5 (ADC 输入选择寄
存器)
R5 (定时器 A 定时器 B 控
制寄存器)
IOC5 (Port 5 I/O 控制)
06
R6 (Port 6 I/O 口)
R6 (定时器1数据缓存A)
R6 (ADC控制寄存器)
R6 (TBHP: 表指针寄存器)
IOC6 (Port 6 I/O 控制)
07
R7 (Port 7 I/O 口)
R7 (定时器1数据缓存 B)
R7 (ADC 偏移校正
寄存器)
R7 (比较器 2 & PWM A/B
控制寄存器)
IOC7 (Port 7 I/O 控制)
08
R8 (Port 8 I/O 口)
R8 (定时器2控制)
R8 (AD 高8位数据缓
存)
R8 (PWMA/B周期的低2位 & 占 IOC8(Port 8 I/O 控制)
空比控制寄存器)
09
R9 (TBLP: 表指针寄存 R9 (定时器2数据缓存高 R9 (ADAD低2位数据缓
器)
存)
字节)
RA (UART控制寄存器
RA (唤醒控制寄存器) RA (定时器2数据缓存
1)
低字节)
0A
R4(7,6)
(0,1)
(1,0)
(1,1)
R9 (PRDA:PWMA 周期)
IOC9 (保留)
RA (DTAL: PWMA占空比)
IOCA (WDT 控制)
0B
RB (保留)
RB (SPI 状态)
RB (UART控制寄存器
2)
RB (PRDB:PWMB周期)
IOCB (下拉控制寄存器 2)
0C
RC (保留)
RC (SPI 控制寄存器)
RC (UART 状态)
RC (DTBL: PWMB占空比)
IOCC (漏极开漏控制寄存
器1)
0D
RD (保留)
RD (SPI读缓存)
RD (UART_RD 数据缓
存)
RD (定时器 3 控制寄
存器)
IOCD (上拉控制寄存器2)
0E
RE (模式选择寄存器)
RE (SPI 写缓存)
RE (UART_TD 数据缓
存)
RE (定时器 3数据缓存)
IOCE (中断屏蔽寄存器 2)
0F
RF (中断状态标志 1)
RF (中断状态标志2)
RF (上拉控制寄存器 1)
10
:
1F
20
:
3F
RF (下拉控制寄存器 1)
IOCF (中断屏蔽寄存器1)
16字节通用寄存器
Bank 0
32x8
Bank 1
32x8
Bank 2
32x8
Bank 3
32x8
图 6-2 数据存储器结构图.
6.1.4 R3 (状态寄存器)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
-
-
-
T
P
Z
DC
C
Bits 7 ~ 5: 未使用,始终置为 “0”.
Bit 4 (T): 时间溢出位
当执行 SLEP 和 WDTC 指令或上电后该位置 1,当 WDT 溢出时清 0。
Bit 3 (P): 省电标志位
8•
版本号 (V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
EM78F564N/F664N
8位微控制器
执行WDTC指令或上电后该位置1,执行SLEP指令后该位清0
Bit 2 (Z):零标志位
算术运算或逻辑运算结果为0时该位置1
Bit 1 (DC): 辅助进位标志
Bit 0 (C): 进位标志
6.1.5 R4 (RAM Select Register)
Bits 7 ~ 6: 用于选择 Bank 0 ~ Bank 3
Bits 5 ~ 0: 在间接寻址方式中用于选择寄存器 (地址: 00 ~ 3F)
请参考图 6-2数据存储器结构图.
6.1.6 Bank 0 R5 ~ R8 (Port 5 ~ Port 8)
R5 ~ R8 是 I/O 寄存器
6.1.7 Bank 0 R9 (TBLP : TBRD指令的表指针寄存器)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
RBit7
RBit6
RBit5
RBit4
RBit3
RBit2
RBit1
RBit0
Bits 7 ~ 0: 程序代码地址的低八位.
注意
■ Bank 0 R9 溢出将会传送到 Bank 3 R6.
■ Bank 0 R9下溢将会从Bank 3 R6借位.
6.1.8 Bank 0 RA (唤醒控制寄存器)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
CMP2WE
ICWE
ADWE
EXWE
SPIWE
-
-
-
Bit 7 (CMP2WE): 比较器2唤醒使能位.
0: 禁止比较器2唤醒
1: 使能比较器2唤醒
当比较器 2 输出状态改变用于进入中断向量或用于唤醒 EM78Fx64N 时
CMP2WE 位必需置为 “使能“.
Bit 6 (ICWE): Port 6输入状态改变唤醒使能位
0: 禁止Port 6输入状态改变唤醒
1: 使能Port 6 输入状态改变唤醒
Bit 5 (ADWE): ADC唤醒使能位
0: 禁止 ADC唤醒
1: 使能 ADC唤醒
版本号(V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
•9
EM78F564N/F664N
8位微控制器
当 AD 转换完成被用作进入中断向量或者执行 AD 转换将 EM78Fx64N
从休眠状态唤醒时,ADWE 位必须置为“使能”。
Bit 4 (EXWE): 外部 /INT 唤醒使能位
0: 禁止外部 /INT引脚 唤醒
1: 使能外部 /INT引脚 唤醒
Bit 3 (SPIWE): SPI 唤醒使能位, 当SPI为从设备时起作用
0: 禁止SPI唤醒, 当SPI作为从设备
1: 使能SPI唤醒, 当SPI作为从设备
Bits 2 ~ 0:未使用,始终置为 “0”.
6.1.9 Bank 0 RB (EEPROM 控制寄存器, 仅对 EM78F664N)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
RD
WR
EEWE
EEDF
EEPC
-
-
-
Bit 7 (RD): 读控制位
0: 执行EEPROM的读操作结束
1: 读取 EEPROM 内容, (RD 可由软件置1, 在读指令执行完成后被硬件
清零)
Bit 6 (WR): 写控制位
0: 写 EEPROM周期完成.
1: 初始化写周期, (WR可软件置1,写周期完成后WR被硬件清零)
Bit 5 (EEWE): EEPROM 写使能位
0: 禁止写EEPROM
1: 允许写 EEPROM
Bit 4 (EEDF): EEPROM 侦测标志位
0: 写周期完成
1: 写周期未完成
Bit 3 (EEPC): EEPROM 掉电控制位
0: 关闭 EEPROM
1: 打开EEPROM
Bits 2 ~ 0: 未使用,始终置为 “0”.
6.1.10 Bank 0 RC (256字节 EEPROM 地址, 仅对 EM78F664N)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
EE_A7
EE_A6
EE_A5
EE_A4
EE_A3
EE_A2
EE_A1
EE_A0
Bits 7 ~ 0: 256 字节 EEPROM 地址
10 •
版本号 (V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
EM78F564N/F664N
8位微控制器
6.1.11 Bank 0 RD (256 字节 EEPROM 数据, 仅对 EM78F664N)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
EE_D7
EE_D6
EE_D5
EE_D4
EE_D3
EE_D2
EE_D1
EE_D0
Bits 7 ~ 0: 256 字节 EEPROM 数据
6.1.12 Bank 0 RE (模式选择寄存器)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
-
TIMERSC
CPUS
IDLE
-
-
-
-
Bit 7: 未使用,始终置为 “0”.
Bit 6 (TIMERSC): TCC, TC1, TC2, TC3, 定时器 A, 定时器 B 时钟源选择.
0: Fs 作为 Fc
1: Fm 作为 Fc
Bit 5 (CPUS): CPU 振荡源选择.
0: Fs : 以WDT内部RC为时基的副频
1: Fm : 主振荡时钟
当 CPUS=0, CPU 振荡选择副频并且主频停止
Bit 4 (IDLE): 空闲模式选择位
0: IDLE=”0” + SLEP指令 → 休眠模式
1: IDLE=”1” + SLEP 指令 →空闲模式
CPU 运行模式
版本号(V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
• 11
EM78F564N/F664N
8位微控制器
振荡器
1
CPU 模式状态
(普通模式振荡源)
振荡器稳定时间 (S)
休眠/空闲 → 正常
晶体;
1M ~ 16 MHz
低速→ 正常
32 CLK
32 CLK
< 100 µs
休眠/空闲→ 低速
休眠/空闲 → 正常
455K, 4M, 8M, 16 MHz
254 CLK
< 5 µs
低速→ 正常
IRC ;
254 CLK
< 100 µs
休眠/空闲 → 正常
3.5 MHz
2
(CLK)
0.5 ms ~ 2 ms
休眠/空闲→ 低速
ERC ;
从普通/低速模式计数
< 2 µs
低速→ 正常
32 CLK
< 100 µs
休眠/空闲→ 低速
注意
1
■ 振荡器稳定时间取决于振荡器特性.
2
■ 振荡器稳定后,正常/低速模式下CPU计数254/32CLK后继续工作在正常/低速模式
例1 : 4 MHz IRC 下由休眠模式唤醒到正常模式,
总唤醒时间是 2 µs + 32 CLK @ 4 MHz.
例 2 : 4 MHz IRC 下由休眠模式唤醒到低速模式
总唤醒时间是 100 µs + 32 CLK @ 16kHz.
Bits 3 ~ 0: 未使用,始终置为 “0”.
6.1.13 Bank 0 RF (中断状态寄存器1)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
-
ADIF
SPIIF
PWMBIF
PWMAIF
EXIF
ICIF
TCIF
注意: “ 1 ” 表示有中断请求
“ 0 ” 表示没有中断发生
Bit 7: 未使用,始终置为 “0”.
Bit 6 (ADIF): 模数转换中断标志位。AD转换结束被置1,由软件清零。
Bit 5 (SPIIF): SPI 模式中断标志.由软件清零.
Bit 4 (PWMBIF): PWMB (脉冲宽度调制) 中断标志..
当到选择周期时置 1, 由软件清零
Bit 3 (PWMAIF): PWMA (脉冲宽度调制) 中断标志.
当到选择周期时置 1, 由软件清零.
Bit 2 (EXIF): 外部中断标志. /INT引脚发生边沿中断时置1,由软件清零.
Bit 1 (ICIF): Port 6输入状态改变中断标志位。由Port 6输入状态改变置1,软件清零
Bit 0 (TCIF): TCC溢出中断标志位。TCC溢出置1,由软件清零.
12 •
版本号 (V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
EM78F564N/F664N
8位微控制器
注意
■ RF可由指令清零,但不能置1
■ IOCF是中断屏蔽寄存器
■ 读出的RF的值是RF和IOCF逻辑与的结果
6.1.14 R10 ~ R3F
全部是 8 位通用寄存器。
6.1.15 Bank 1 R5 TC1CR (定时器1控制寄存器)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
TC1CAP
TC1S
TC1CK1
TC1CK0
TC1M
TC1ES
-
-
Bit 7 (TC1CAP): 软件捕捉控制
0: 禁止软件捕捉
1: 使能软件捕捉
Bit 6 (TC1S): 定时/计数器 1 开始控制
0: 停止清除计数器
1: 启动
Bit 5 ~ Bit 4 (TC1CK1 ~ TC1CK0): 定时/计数器 1 时钟源选择
TC1CK1 TC1CK0
0
0
0
1
1
0
1
1
时钟源
分辨率
(4 MHz)
最大时间
(4 MHz)
分辨率
(16kHz)
最大时间
(16kHz)
Normal, Idle
Fc=4M
Fc=4M
Fc=16K
Fc=16K
Fc/2
12
1024 µs
262144 µs
256 ms
65536 ms
Fc/2
10
256 µs
65536 µs
64 ms
16384 ms
7
32 µs
8192 µs
8 ms
2048 ms
-
-
-
-
Fc/2
外部时钟
(TC1 引脚)
Bit 3 (TC1M): 定时器/计数器 1 模式选择
0: 定时器/计数器1模式
1: 捕捉模式
Bit 2 (TC1ES): TC1 信号边沿
0: TC1引脚电压由低到高转变时(上升沿)加1
1: TC1引脚电压由高到低转变时(下降沿)加1
Bits 1 ~ 0: 未使用,始终置为 “0”.
版本号(V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
• 13
EM78F564N/F664N
8位微控制器
图 6-3 定时/计数器1 结构
在定时模式下,加计数是以内部时钟实现的。当加计数内容与 TCR1DA 相匹配时, 中
断发生,计数器被清零。在计数器清零后加计数继续。加计数器的当前内容加载到
TCR1DB 通过设定 TC1CAP 为 “1”,在捕捉之后 TC1CAP 自动清“0” 。
在计数模式, 计数是以外部时钟输入引脚(TC1 引脚)实现的。上升沿或下降沿由 TC1ES
选择, 但是两个边沿都不可同时使用. 当加计数内容与 TCR1DA 相匹配时, 中断发生,
计数器被清零。在计数器清零后加计数继续。加计数器的当前内容加载到 TCR1DB 通
过设定 TC1CAP 为 “1”,在捕捉之后 TC1CAP 自动清“0” 。
在捕捉模式,脉冲宽度, TC1 输入引脚的周期和占空比在此模式下量测, 可用于解码遥控
器信号. 计数器由内部时钟设置为独立运行的. 在 TC1 输入引脚的上升沿(下降沿), 计
数器的内容被加载到 TCR1DA, 然后计数器被清零并且产生中断。 在 TC1 输入引脚的
上升沿(下降沿), 计数器的内容被加载到 TCR1DB. 计数器仍然在计数,在 TC1 输入引
脚的下一个上升沿, 计数器的内容被加载到 TCR1DA, 计数器被清零并且再次产生中断.
如果在检测到边沿之前发生了溢出, FFH 被加载到 TCR1DA 且发生溢出中断. 在中断过
程中,可通过检测 TCR1DA 的值是否为 FFH 来决定是否溢出. 在中断(捕捉 TCR1DA 或
检测溢出)产生时,捕捉和溢出检测在 TCR1DA 被读出以前暂停.
14 •
版本号 (V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
EM78F564N/F664N
8位微控制器
图 6-4 捕捉模式时序图
6.1.16 Bank 1 R6 TCR1DA (定时器1 数据缓存 A)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
TCR1DA7 TCR1DA6 TCR1DA5 TCR1DA4 TCR1DA3 TCR1DA2 TCR1DA1 TCR1DA0
Bit 7 ~ Bit 0 (TCR1DA7 ~ TCR1DA0): 8 位定时/计数器 1 数据缓存..
6.1.17 Bank 1 R7 TCR1DB (定时器 1数据缓存 B)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
TCR1DB7 TCR1DB6 TCR1DB5 TCR1DB4 TCR1DB3 TCR1DB2 TCR1DB1 TCR1DB0
Bit 7 ~ Bit 0 (TCR1DB7 ~ TCR1DB0): 8 位定时/计数器 1 数据缓存.
6.1.18 Bank 1 R8 TC2CR (定时器2控制寄存器)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
RCM1
RCM0
TC2ES
TC2M
TC2S
TC2CK2
TC2CK1
TC2CK0
版本号(V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
• 15
EM78F564N/F664N
8位微控制器
Bits 7 ~ 6 (RCM1 ~ RCM0): IRC 模式选择位.当 Word 1 <12> COBS0 = “1”时,Bank
1 R8 <7,6>将被使能。
烧录器校正 IRC
4 MHz
16 MHz
8 MHz
455kHz
Bank 1 R8<7,6>
频率
工作电压范围
稳定时间
0
4 MHz ± 2.5%
2.2V ~ 5.5V
< 5 µs
0
1
16 MHz ± 10%
4.5V ~ 5.5V
< 1.5 µs
1
0
8 MHz ± 10%
3.0V ~ 5.5V
< 3 µs
1
1
455kHz ± 10%
2.2V ~ 5.5V
< 50 µs
RCM1
RCM0
0
0
0
4 MHz ± 10%
2.2V ~ 5.5V
< 6 µs
0
1
16 MHz ± 2.5%
4.5V ~ 5.5V
< 1.25 µs
1
0
8 MHz ± 10%
3.0V ~ 5.5V
< 3 µs
1
1
455kHz ± 10%
2.2V ~ 5.5V
< 50 µs
0
0
4 MHz ± 10%
2.2V ~ 5.5V
< 6 µs
0
1
16 MHz ± 10%
4.5V ~ 5.5V
< 1.5 µs
1
0
8 MHz ± 2.5%
3.0V ~ 5.5V
< 2.5 µs
1
1
455kHz ± 10%
2.2V ~ 5.5V
< 50 µs
0
0
4 MHz ± 10%
2.2V ~ 5.5V
< 6 µs
0
1
16 MHz ± 10%
4.5V ~ 5.5V
< 1.5 µs
1
0
8 MHz ± 10%
3.0V ~ 5.5V
< 3 µs
1
1
455kHz ± 2.5%
2.2V ~ 5.5V
< 45 µs
注意
■ Bank 1 R8<7,6>初始值将与Word 1<3,2>值保持一致。
■ 如果用户改变IRC频率由A到B MCU 需要等待一些时间才能工作在频率B,等待时间取
决于频率B.
例如:
第一步 当用户烧录器选择 4MHz 时,Bank 1 R8<7,6>初始值为”00” ,同样 Word 1
<3,2>值也为”00” ,如果 MCU 全速运行,它将工作在 4MHz ± 2.5%。参见下
表。
烧录器校正 IRC
4 MHz
16 •
Bank 1 R8<7,6>
频率
工作电压范围
稳定时间
0
4 MHz ± 2.5%
2.2V ~ 5.5V
< 5 µs
0
1
16 MHz ± 10%
4.5V ~ 5.5V
< 1.5 µs
1
0
8 MHz ± 10%
3.0V ~ 5.5V
< 3 µs
1
1
455kHz ± 10%
2.2V ~ 5.5V
< 50 µs
RCM1
RCM0
0
版本号 (V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
EM78F564N/F664N
8位微控制器
第二步 当 MCU 工作在 4MHz ± 2.5%时若设置 Bank 1 R8<7,6> = “01”,MCU 需等待
1.5 µs,然后在 16 MHz ± 10%下继续工作。
烧录器校正 IRC
Bank 1 R8<7,6>
频率
工作电压范围
稳定时间
0
4 MHz ± 2.5%
2.2V ~ 5.5V
< 5 µs
0
1
16 MHz ± 10%
4.5V ~ 5.5V
< 1.5 µs
1
0
8 MHz ± 10%
3.0V ~ 5.5V
< 3 µs
1
1
455kHz ± 10%
2.2V ~ 5.5V
< 50 µs
RCM1
RCM0
0
4 MHz
第三步 当 MCU 工作在 16 MHz ± 10%时若设置 Bank 1 R8<7,6> = “11”,MCU 需等
待 50µs,然后在 455kHz ± 10%下继续工作。
烧录器校正 IRC
Bank 1 R8<7,6>
频率
工作电压范围
稳定时间
0
4 MHz ± 2.5%
2.2V ~ 5.5V
< 5 µs
0
1
16 MHz ± 10%
4.5V ~ 5.5V
< 1.5 µs
1
0
8 MHz ± 10%
3.0V ~ 5.5V
< 3 µs
1
1
455kHz ± 10%
2.2V ~ 5.5V
< 50 µs
RCM1
RCM0
0
4 MHz
第四步 当 MCU 工作在 455kHz ± 10%时若设置 Bank 1 R8<7,6> = “00”,MCU 需等
待 5 µs,然后在 4 MHz ± 2.5%下继续工作。
烧录器校正 IRC
Bank 1 R8<7,6>
频率
工作电压范围
稳定时间
0
4 MHz ± 2.5%
2.2V ~ 5.5V
< 5 µs
0
1
16 MHz ± 10%
4.5V ~ 5.5V
< 1.5 µs
1
0
8 MHz ± 10%
3.0V ~ 5.5V
< 3 µs
1
1
455kHz ± 10%
2.2V ~ 5.5V
< 50 µs
RCM1
RCM0
0
4 MHz
Bit 5 (TC2ES): TC2 信号边沿
0: TC2引脚电压由低到高转变时(上升沿)加1
1: TC2引脚电压由高到低转变时(下降沿)加1
Bit 4 (TC2M): 定时器/计数器 2 模式选择
0: 定时器/计数器模式
1: 窗口模式
Bit 3 (TC2S): 定时器/计数器 2 启动控制
0: 停止,清计数器
1: 启动
版本号(V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
• 17
EM78F564N/F664N
8位微控制器
Bit 2 ~ Bit 0 (TC2CK2 ~ TC2CK0): 定时/计数器 2 时钟源选择
时钟源
TC2CK2 TC2CK1 TC2CK0 正常,空闲模
式
分辨率
最大时间
分辨率
最大时间
Fc=4M
Fc=4M
Fc=16K
Fc=16K
23
2.1 sec
38.2 hr
524.3 s
9544 hr
13
2.048 ms
64 µs
134.22 sec
4.194 sec
512 ms
16 ms
33554.432 s
1048.576 s
3
2 µs
250 ns
0
0
0
Fc/2
0
0
0
1
1
0
Fc/2
8
Fc/2
0
1
1
0
1
0
Fc/2
Fc
1
1
0
1
1
0
−
−
−
−
−
−
−
−
−
−
1
1
1
外部时钟 (TC2
引脚)
−
−
−
−
131.072 ms
0.5 ms
16.384 ms 0.0625 ms
32768 ms
4096 ms
图 6-5 定时器/计数器结构
在定时模式, 加计数是以内部时钟实现的。当加计数内容与 TCR2 (TCR2H+TCR2L)相
匹配时,中断发生,计数器被清零。在计数器清零后加计数继续。
图 6-6 定时器模式时序图
18 •
版本号 (V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
EM78F564N/F664N
8位微控制器
计数器模式下,加计数是以外部时钟输入引脚(TC2 引脚)实现的,上升沿或下降沿可通
过设置 TC2ES 位来选择,当加计数器内容与 TCR2 (TCR2H+TCR2L)相匹配时,中断
发生,计数器被清零。在计数器清零后加计数继续。
图 6-7 计数模式时序图
在窗口模式, 内部时钟和 TC2 引脚的脉冲(窗口脉冲)逻辑与后,在脉冲的上升沿加计
数器加 1,当加计数器内容与 TCR2 (TCR2H+TCR2L)相匹配时,中断发生,计数器被
清零。窗口脉冲频率必须低于所选内部时钟。
写 TCR2L 时,直到 TCR2H 被写入时比对停止
图 6-8 窗口模式时序图
6.1.19 Bank 1 R9 TC2DH (定时器 2数据缓存高字节)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
TC2D15
TC2D14
TC2D13
TC2D12
TC2D11
TC2D10
TC2D9
TC2D8
Bit 7 ~ Bit 0 (TCR2D15 ~ TCR2D8): 16位定时/计数器 2数据缓存高字节.
6.1.20 Bank 1 RA TC2DL (定时器 2数据缓存低字节)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
TC2D7
TC2D6
TC2D5
TC2D4
TC2D3
TC2D2
TC2D1
TC2D0
Bit 7 ~ Bit 0 (TC2D7 ~ TC2D0): 16位定时/计数器 2数据缓存低字节.
版本号(V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
• 19
EM78F564N/F664N
8位微控制器
6.1.21 Bank 1 RB SPIS (SPI 状态寄存器)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
DORD
TD1
TD0
-
OD3
OD4
-
RBF
Bit 7 (DORD): 数据传输顺序
0: 左移(最高位先传输)
1: 右移(最低位先传输)
Bit 6 ~ Bit 5 (TD1 ~ TD0): 状态输出延时选择
TD1
TD0
0
0
8 CLK
0
1
16 CLK
1
0
24 CLK
1
1
32 CLK
延时
Bit 4: 未使用,始终置为”0”.
Bit 3 (OD3): 漏极开路控制位
0: SDO 漏极开路禁止
1: SDO 漏极开路使能
Bit 2 (OD4): 漏极开路控制位
0: SCK漏极开路禁止
1: SCK漏极开路使能
Bit 1: 未使用,始终置为”0”.
Bit 0 (RBF): 读缓存器满标志位
0: 接收未完成,SPIR寄存器未完全刷新
1: 已接收完成, SPIR寄存器已完全刷新
6.1.22 Bank 1 RC SPIC (SPI控制寄存器)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
CES
SPIE
SRO
SSE
SDOC
SBRS2
SBRS1
SBRS0
Bit 7 (CES): 时钟沿选择位
0: 数据在上升沿移出,下降沿移入。低电平时数据保持
1: 数据在下降沿移出,上升沿移入。高电平时数据保持
Bit 6 (SPIE): SPI使能位
0: 禁止SPI模式
1: 使能SPI模式
Bit 5 (SRO): SPI读溢出标志位
0: 未溢出
20 •
版本号 (V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
EM78F564N/F664N
8位微控制器
1: 在先前数据仍然保持在 SPIR 寄存器时又接收到一个新数据。在此情
况下,SPIS 寄存器数据将被丢弃。如果不设置此位,即使是仅有发送
操作在执行,用户也要读取 SPIR 寄存器。 此情况仅会出现在从模
式。
Bit 4 (SSE): SPI 移位使能位
0: 移位完成时立即复位,下一个字节准备移位
1: 开始移位,正在传输现在的字节时保持为“1”,当每个一个字节的数据
由硬件移位完成时复位为0。
Bit 3 (SDOC): SDO 输出状态控制位
0: 串行数据输出后,SDO仍然为高
1: 串行数据输出后,SDO仍然为低.
Bit 2 ~ Bit 0 (SBRS 2 ~ SBRS0): SPI 波特率选择位
SBRS2 (Bit 2)
SBRS1 (Bit 1)
SBRS0 (Bit 0)
模式
0
0
0
主模式
Fosc/2
0
0
1
主模式
Fosc/4
0
1
0
主模式
Fosc/8
0
1
1
主模式
Fosc/16
1
0
0
主模式
Fosc/32
1
0
1
主模式
Fosc/64
1
1
0
从模式
/SS 使能
1
1
1
从模式
波特率
/SS 禁止
6.1.23 Bank 1 RD SPIRB (SPI读数据缓存)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
SRB7
SRB6
SRB5
SRB4
SRB3
SRB2
SRB1
SRB0
Bit 7 ~ Bit 0 (SPID7 ~ SPID0): SPI 读数据缓存
6.1.24 Bank 1 RE SPIWB (SPI 写数据缓存)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
SWB7
SWB6
SWB5
SWB4
SWB3
SWB2
SWB1
SWB0
Bit 7 ~ Bit 0 (SWB7 ~ SWB0): SPI 写数据缓存
6.1.25 Bank 1 RF (中断状态寄存器2)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
CMP2IF
-
TC3IF
TC2IF
TC1IF
UERRIF
RBFF
TBEF
Bit 7 (CMP2IF): 比较器2中断标志. 当比较器2输出变化时置位,由软件清零.
Bit 6: 未使用, 始终置为”0”
Bit 5 (TC3IF): 8位定时/计数器3 中断标志.
Bit 4 (TC2IF): 16位定时/计数器2中断标志.
版本号(V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
• 21
EM78F564N/F664N
8位微控制器
Bit 3 (TC1IF): 8位定时/计数器1中断标志..
Bit 2 (UERRIF): UART接收错误中断标志
Bit 1 (RBFF): UART接收模式数据缓存满中断标志.
Bit 0 (TBEF): UART发送模式数据缓存空中断标志.
注意
中断标志由硬件自动置位. 必须由软件清零
6.1.26 Bank 2 R5 AISR (ADC 输入选择寄存器)
AISR 寄存器定义 Port 6 引脚,分别作为模拟输入或作为数字 I/O。
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
ADE7
ADE6
ADE5
ADE4
ADE3
ADE2
ADE1
ADE0
Bit 7 (ADE7): P67引脚AD转换使能位
0: 禁止ADC7, P67作为I/O引脚
1: 使能ADC7作为模拟输入引脚
Bit 6 (ADE6): P66引脚AD转换使能位.
0: 禁止ADC6, P66作为I/O引脚
1: 使能ADC6作为模拟输入引脚
Bit 5 (ADE5): P65引脚AD转换使能位
0: 禁止ADC5, P65作为I/O引脚
1: 使能ADC5作为模拟输入引脚
Bit 4 (ADE4): P64引脚AD转换使能位
0: 禁止ADC4, P64作为I/O引脚
1: 使能ADC4作为模拟输入引脚.
Bit 3 (ADE3): P63引脚AD转换使能位
0: 禁止ADC3, P63作为I/O引脚.
1: 使能ADC3作为模拟输入引脚
Bit 2 (ADE2): P62引脚AD转换使能位.
0: 禁止ADC2, P62作为I/O引脚
1: 使能ADC2作为模拟输入引脚
Bit 1 (ADE1): P61引脚AD转换使能位
0: 禁止ADC1, P61作为I/O引脚
1: 使能ADC1作为模拟输入引脚
Bit 0 (ADE0): P60引脚AD转换使能位
0: 禁止ADC0, P60作为I/O引脚.
1: 使能ADC0作为模拟输入引脚
22 •
版本号 (V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
EM78F564N/F664N
8位微控制器
下表所示为 P60/ADC0//INT 的优先级
P60 / ADC0 / /INT 引脚优先级
高
中
低
/INT
ADC0
P60
6.1.27 Bank 2 R6 ADCON (A/D 控制寄存器)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
VREFS
CKR1
CKR0
ADRUN
ADPD
ADIS2
ADIS1
ADIS0
Bit 7 (VREFS): ADC参考电压的输入源
0: 以内部Vdd (默认值)作为ADC参考电压,P50/VREF引脚用作普通I/O
引脚P50
1: 以P50/VREF引脚上接入的电压作为ADC参考电压
Bit 6 ~ Bit 5 (CKR1 ~ CKR0): ADC振荡时钟分频比
00 = 1: 4 (默认值)
01 = 1: 1
10 = 1: 16
11 = 1: 2
CKR1/CKR0
工作模式
最大工作频率
00
FOSC/4
4 MHz
01
FOSC
1 MHz
10
FOSC/16
16 MHz
11
FOSC/2
2 MHz
Bit 4 (ADRUN): AD转换启动
0: AD转换结束被清零,该位不可以软件清零。
1: AD转换开始,该位可以被软件置1
Bit 3 (ADPD): ADC 省电模式
0: 在CPU保持运行的条件下关掉参考电阻节省功耗
1: ADC处于工作状态.
Bits 2 ~ 0 (ADIS2 ~ ADIS0): 模拟输入选择
000 = AN0/P60
001 = AN1/P61
010 = AN2/P62
011 = AN3/P63
100 = AN4/P64
101 = AN5/P65
110 = AN6/P66
111 = AN7/P67
版本号(V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
• 23
EM78F564N/F664N
8位微控制器
下表所示为 P50/VREF//SS 引脚的优先级。只有当 ADIF 位和 ADRUN 位都处于低状态
时,才能被改变。
P50/VREF//SS 引脚优先级
高
中
低
/SS
VREF
P50
6.1.28 Bank 2 R7 ADOC (A/D偏移校正寄存器)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
CALI
SIGN
VOF[2]
VOF[1]
VOF[0]
-
-
-
Bit 7 (CALI): A/D偏移量校正使能位
0: 禁止校正
1: 使能校正
Bit 6 (SIGN): 偏移电压的极性
0: 负极性电压
1: 正极性电压
Bit 5 ~ Bit 3 (VOF[2] ~ VOF[0]): 偏移电压位
Bits 2 ~ 0: 未使用, 始终置为”1”
6.1.29 Bank 2 R8 ADDH (AD 数据缓存器高8位)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
AD9
AD8
AD7
AD6
AD5
AD4
AD3
AD2
当 A/D 转换结束,结果的高 8 位装载入 ADDH。ADRUN 位被清零,ADIF 位置 1。R8
只读。
6.1.30 Bank 2 R9 ADDL (AD数据缓存器低2位)
Bit 7
-
Bit 6
-
Bit 5
-
Bit 4
-
Bit 3
-
Bit 2
-
Bit 1
AD1
Bit 0
AD0
Bits 7 ~ 2: 保留位, 全读为“0”
Bits 1 ~ 0 (AD1 ~ AD0): AD低2位数据缓存器。R9只读.
6.1.31 Bank 2 RA URC1 (UART控制寄存器1)
Bit 7
URTD8
Bit 6
Bit 5
UMODE1 UMODE0
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
BRATE2
BRATE1
BRATE0
UTBE
TXE
Bit 7 (URTD8): 发送数据的第8位
Bit 6 ~ Bit 5 (UMODE1 ~ UMODE0): UART 模式
24 •
UMODE1
UMODE0
UART 模式
0
0
模式 1: 7 位
0
1
模式 1: 8 位
1
0
模式 1: 9 位
1
1
保留
版本号 (V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
EM78F564N/F664N
8位微控制器
Bit 4 ~ Bit 2 (BRATE2 ~ BRATE0): 发送波特率选择
BRATE2
BRATE1
BRATE0
波特率
4 MHz
8 MHz
0
0
0
Fc/13
19200
38400
0
0
1
Fc/26
9600
19200
0
1
0
Fc/52
4800
9600
0
1
1
Fc/104
2400
4800
1
0
0
Fc/208
1200
2400
1
0
1
Fc/416
600
1200
1
1
0
TC3
−
−
1
1
1
保留
Bit 1 (UTBE): UART发送缓存空标志. 当发送缓存空时置1.. 当URTD写入数据时自动
清0.. UTBE 位在使能发送时会由硬件清0.
UTBE位是只读的. 因此, 当
我们要移位发送数据时就必须向URTD寄存器写入数据 。
Bit 0 (TXE): 发送使能
0: 禁止
1: 使能
6.1.32 Bank 2 RB URC2 (UART 控制寄存器2)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
-
-
SBIM1
SBIM0
UINVEN
-
-
-
Bits 7 ~ 6: 未使用, 始终置为”0”
Bit 5 ~ Bit 4 (SBIM1 ~ SBIM0): 串行总线接口工作模式选择.
SBIM1
SBIM0
0
0
I/O 模式
0
1
SPI 模式
1
0
UART 模式
1
1
工作模式
保留
Bit 3 (UNIVEN): 使能 UART TXD 和 RXD 口反相输出.
0: 禁止UART TXD 和 RXD 口输出
1: 使能 UART TXD 和 RXD 口输出
Bits 2 ~ 0: 未使用, 始终置为”0”
6.1.33 Bank 2 RC URS (UART 状态寄存器)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
URRD8
EVEN
PRE
PRERR
OVERR
FMERR
URBF
RXE
Bit 7 (URRD8): 接收数据的第8位
Bit 6 (EVEN): 选择奇偶校验
0: 奇校验
版本号(V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
• 25
EM78F564N/F664N
8位微控制器
1: 偶校验
Bit 5 (PRE): 使能奇偶校验
0: 禁止
1: 使能
Bit 4 (PRERR): 奇偶校验错误标志位, 当奇偶错误产生时置1
Bit 3 (OVERR): 数据覆盖错误标志位. 当数据覆盖错误产生时置1
Bit 2 (FMERR): 帧错误标志位.当帧错误产生时置 1
注意
中断标志由硬件自动置1,必须由软件清0.
Bit 1 (URBF): UART 读缓冲器满标志位. 当接收到一个字符后置1.读取URS寄存器后自
动清零。使能接收后URBF由硬件自动清零。URBF位仅可读。因此,为
避免发生数据覆盖错误,有必要读URS寄存器。
Bit 0 (RXE): 接收使能
0: 禁止接收
1: 使能接收
6.1.34 Bank 2 RD URRD (UART_RD数据缓存)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
URRD7
URRD6
URRD5
URRD4
URRD3
URRD2
URRD1
URRD0
Bits 7 ~ 0 (URRD7 ~ URRD0): UART 接收数据缓存. 只读.
6.1.35 Bank 2 RE URTD (UART_TD数据缓存)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
URTD7
URTD6
URTD5
URTD4
URTD3
URTD2
URTD1
URTD0
Bits 7 ~ 0 (URTD7 ~ URTD0): UART 发送数据缓存. 只写..
6.1.36 Bank 2 RF (上拉控制寄存器1)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
/PH77
/PH76
/PH75
/PH74
/PH73
/PH72
“1”
“1”
Bit 7 (/PH77): 控制P77引脚上拉使能..
0: 使能内部上拉
1: 禁止内部上拉
Bit 6 (/PH76): 控制P76引脚上拉使能
Bit 5 (/PH75): 控制P75引脚上拉使能
Bit 4 (/PH74): 控制P74引脚上拉使能
Bit 3 (/PH73): 控制P73引脚上拉使能.
Bit 2 (/PH72): 控制P72引脚上拉使能
26 •
版本号 (V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
EM78F564N/F664N
8位微控制器
Bits 1 ~ 0: 未使用, 始终置为”1”.
RF寄存器可读写.
6.1.37 Bank 3 R5 (TMRCON: 定时器A 和定时器B 控制寄存器)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
TAEN
TAP2
TAP1
TAP0
TBEN
TBP2
TBP1
TBP0
Bit 7 (TAEN): 定时器 A 使能位.
0: 禁止定时器A (默认)
1: 使能定时器 A
Bits 6 ~ 4 (TAP2 ~ TAP0): 定时器A 时钟分频比选择位.
Bit 3 (TBEN): 定时器 B 使能位.
0: 禁止定时器 B (默认)
1: 使能 定时器 B
Bits 2 ~ 0 (TBP2 ~ TBP0): 定时器 B 时钟分频比选择位
TAP2/TBP2
TAP1/TBP1
TAP0/TBP0
预分频比
0
0
0
1:2 (默认)
0
0
1
1:4
0
1
0
1:8
0
1
1
1:16
1
0
0
1:32
1
0
1
1:64
1
1
0
1:128
1
1
1
1:256
6.1.38 Bank 3 R6 (TBHP : TBRD指令的表指针寄存器)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
MLB
-
-
-
RBit11
RBit10
RBit9
RBit8
Bit 7 (MLB): 选择机器码的MSB或 LSB移入寄存器.
机器码由TBLP 和 TBHP寄存器指向.
Bits 6 ~ 4: 未使用, 始终置为”0”.
Bits 3 ~ 0: 程序代码地址的最高四位
6.1.39 Bank 3 R7 (CMPCON: 比较器2控制寄存器和 PWMA/B 控制寄
存器)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
-
-
-
CPOUT2
COS21
COS20
PWMAE
PWMBE
Bit 7 ~ Bit 5: 未使用, 始终置为”0”.
Bit 4 (CPOUT2): 比较器 2 输出结果.
版本号(V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
• 27
EM78F564N/F664N
8位微控制器
Bit 3 ~ Bit 2 (COS21 ~ COS20): 比较器选择位
COS21
COS20
0
0
比较器 2 保留位, P80 作为通用 I/O 口
0
1
作为比较器 2 且 P80 作为通用 I/O 口
1
0
作为比较器 2 且 P80 作为比较器 2 输出引脚 (CO)
1
1
保留
功能描述
Bit 1 (PWMAE): PWMA 使能位.
0: PWMA 关闭且相关引脚作为P75功能(默认)..
1: PWMA打开,相关引脚自动变为输出
Bit 0 (PWMBE): PWMB 使能位..
0: PWMB 关闭且相关引脚作为P76功能(默认).
1: PWMB打开,相关引脚自动变为输出.
6.1.40 Bank 3 R8 (PWMCON: PWMA/B周期和占空比寄存器的低两
位)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
PRDA [1]
PRDA [0]
DTA [1]
DTA [0]
PRDB [1]
PRDB [0]
DTB [1]
DTB [0]
Bits 7 ~ 6 (PRDA [1], PRDA [0]): PWMA 周期的低字节.
Bits 5 ~ 4 (DTA [1], DTA [0]): PWMA 占空比的低字节.
Bits 3 ~ 2 (PRDB [1], PRDB [0]): PWMB周期的低字节.
Bits 1 ~ 0 (DTB [1], DTB [0]): 占空比的低字节.
6.1.41 Bank 3 R9 (PRDAH: PWMA 高字节(Bit 9 ~ Bit 2))
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
PRDA [9]
PRDA [8]
PRDA [7]
PRDA [6]
PRDA[5]
PRDA [4]
PRDA [3]
PRDA [2]
Bank 3 R9 的内容是 PWMA 周期(时基)的 Bit 9~Bit 2. PWMA 的频率是周期的倒数
6.1.42 Bank 3 RA (DTAH: PWMA占空比的高字节 (Bit 9 ~ Bit 2))
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
DTA[9]
DTA[8]
DTA[7]
DTA[6]
DTA[5]
DTA[4]
DTA[3]
DTA[2]
寄存器 DTAH 的指定值保持 PWMA 的输出为高直到这指定值与 TMRA 匹配.
6.1.43 Bank 3 RB (PRDBH: PWMB的高字节 (Bit 9~Bit 2))
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
PRDB[9]
PRDB[8]
PRDB[7]
PRDB[6]
PRDB[5]
PRDB[4]
PRDB[3]
PRDB[2]
Bank 3 RB 的内容是 PWMA 周期(时基)的 Bit 9~Bit 2. PWMB 的频率是周期的倒数.
28 •
版本号 (V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
EM78F564N/F664N
8位微控制器
6.1.44 Bank 3 RC (DTBH: PWMB占空比的高字节 (Bit 9 ~ Bit 2) )
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
DTB[9]
DTB[8]
DTB[7]
DTB[6]
DTB[5]
DTB[4]
DTB[3]
DTB[2]
寄存器 DTBH 的指定值保持 PWMB 的输出为高直到这指定值与 TMRB 匹配.
6.1.45 Bank 3 RD TC3CR (定时器3控制寄存器)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
TC3FF1
TC3FF0
TC3S
TC3CK2
TC3CK1
TC3CK0
TC3M1
TC3M0
Bits 7 ~ 6 (TC3FF1 ~ TC3FF0): 定时/计数器 3 触发控制
TC3FF1
TC3FF0
操作模式
0
0
清零
0
1
触发
1
0
置位
1
1
保留
Bit 5 (TC3S): 定时/计数器 3 启动控制
0: 停止并清计数器
1: 启动
Bits 4 ~ 2 (TC3CK2 ~ TC3CK0): 定时/计数器 3 时钟源选择
TC3CK2 TC3CK1 TC3CK0
0
0
0
0
0
1
0
1
1
0
时钟源
分辨率
最大时间
分辨率
最大时间
Normal, Idle
Fc=4M
Fc=4M
Fc=16K
Fc=16K
512 µs
131072 µs
128 ms
32768 ms
32 µs
8192 µs
8 ms
2048 ms
8 µs
2048 µs
2 ms
512 ms
2 µs
512 µs
500 µs
128 ms
1 µs
256 µs
250 µs
64 ms
500 ns
128 µs
125 µs
32 ms
0
Fc/2
1
11
Fc/2
0
Fc/2
1
Fc/2
0
Fc/2
7
5
3
2
1
1
0
1
Fc/2
1
1
0
Fc
250 ns
64 µs
62.5 µs
16 ms
1
1
1
外部时钟
(TC3 引脚)
-
-
-
-
Bits 1 ~ 0 (TC3M1 ~ TC3M0): 定时/计数器 3 工作模式选择
TC3M1
TC3M0
操作模式
0
0
定时/计数器
0
1
保留
1
0
可编程分频器输出(PDO)
1
1
脉宽调制输出(PWM)
版本号(V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
• 29
EM78F564N/F664N
8位微控制器
图 6-9 定时/计数器 3 配置
定时器模式下,加计数是以内部时钟(上升沿触发)实现的,当加计数器内容与 TCR3
相匹配时,中断发生,计数器被清零。在计数器清零后加计数继续。
计数器模式下,加计数时以外部时钟输入引脚 (TC3 引脚)实现的。当加计数器内容与
TCR3 相匹配时,中断发生,计数器被清零。在计数器清零后加计数继续。
可编程分频器输出(PDO)模式下, 加计数是以内部时钟实现的,TCR3 的内容与加计
数器的内容作比较,每次匹配时 F/F 输出反相,计数器清零 F/F 输出取反并输出到
/PDO 引脚。该模式可产生 50%占空比的脉冲输出。 F/F 可被程序初始化,复位时初
始值为“0”,每次/PDO 输出被反相时产生 TC3 中断。
图6-10 PDO模式时序图
脉冲宽度调制(PWM)输出模式下,加计数器是以内部时钟实现的。TCR3 的内容与加
计数器的内容作比较,每次匹配时 F/F 输出取反。计数器仍在计数,当计数器溢出
时,F/F 又被取反,计数器清零。F/F 输出反相并输出到/PWM 引脚。每次溢出时产生
TC3 中断。TCR3 被设置成 2 级移位寄存器,输出期间,不会改变直到一个输出周期
完成,即使 TCR3 被重写。因此,输出能不断地被改变,在数据载入 TCR3 后,通过
置 TC3S 位为 1,TRC3 第一次被移位。
30 •
版本号 (V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
EM78F564N/F664N
8位微控制器
图 6-11 PWM 模式时序图
6.1.46 Bank 3 RE TC3D (定时器 3 数据缓存)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
TC3D7
TC3D6
TC3D5
TC3D4
TC3D3
TC3D2
TC3D1
TC3D0
Bits 7 ~ 0 (TC3D7 ~ TC3D0): 8位定时/计数器3数据缓存
6.1.47 Bank 3 RF (下拉控制寄存器 1)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
/PD77
/PD76
/PD75
/PD74
/PD73
/PD72
”1”
”1”
Bit 7 (/PD77): 使能P77引脚下拉控制位.
0: 使能内部下拉
1: 禁止内部下拉
Bit 6 (/PD76): 使能 P76 引脚下拉控制位
Bit 5 (/PD75): 使能 P75 引脚下拉控制位..
Bit 4 (/PD74): 使能 P74 引脚下拉控制位..
Bit 3 (/PD73): 使能 P73 引脚下拉控制位.
Bit 2 (/PD72): 使能 P72 引脚下拉控制位.
Bits 1 ~ 0: 未使用, 始终置为”1”
RF 寄存器可读写
6.2 特殊功能寄存器
6.2.1 A (累加器)
用于内部数据传输或指令操作数通常暂存在累加器中,A 是不可寻址的寄存器。.
6.2.2 CONT (控制寄存器)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
INTE
/INT
TS
TE
PSTE
PST2
PST1
PST0
版本号(V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
• 31
EM78F564N/F664N
8位微控制器
Bit 7 (INTE): INT 信号边沿
0: INT引脚上有上升沿时产生中断
1: INT引脚上有下降沿时产生中断
Bit 6 (/INT): 中断使能标志
0: 由DISI或硬件产生中断时禁止中断
1: ENI/RETI 指令开中断
Bit 5 (TS): TCC 信号源位
0: 内部指令时钟周期
1: TCC引脚输入的外部信号
Bit 4 (TE): TCC 信号边沿
0: 如果TCC引脚输入由低到高计数加1
1: 如果TCC引脚输入由高到低计数加1
Bit 3 (PSTE): TCC预设分频比使能位
0: 预分频比禁止位. TCC 分频比 1:1
1: 预分频比使能位. TCC分频比由 Bit 2 ~ Bit 0设置
Bit 2 ~ Bit 0 (PST 2 ~ PST0): TCC预分频比
PST2
PST1
PST0
TCC 分频比
0
0
0
1:2
0
0
1
1:4
0
1
0
1:8
0
1
1
1:16
1
0
0
1:32
1
0
1
1:64
1
1
0
1:128
1
1
1
1:256
CONT 寄存器可读写.
6.2.3 IOC5 ~ IOC8 (I/O口控制寄存器)
“1”定义相关引脚为高阻抗输入状态,”0”定义相关引脚为输出状态。
IOC5 ~ IOC8 寄存器可读写.
6.2.4 IOC9
保留寄存器
6.2.5 IOCA (WDT 控制寄存器)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
WDTE
EIS
-
-
PSWE
PSW2
PSW1
PSW0
Bit 7 (WDTE): 看门狗定时控制使能位
32 •
版本号 (V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
EM78F564N/F664N
8位微控制器
0: 禁止WDT
1: 使能 WDT
WDTE可读写.
Bit 6 (EIS): 控制位,用于定义P60(/INT)引脚的功能
0: P60,普通I/O引脚
1: /INT, 外部中断引脚,此时, I/O P60的控制位(IOC6的第0位)必须设
置为1
当 EIS 为 0 时,/INT 被屏蔽。当 EIS 为 1 时,也可以通过读 PORT6
(R6)而知道/INT 引脚的状态。
EIS 可读写。
Bits 5 ~ 4: 未使用, 始终置为”0”
Bit 3 (PSWE): WDT分频比使能位
0: 分频比禁止,WDT分频比为1:1
1: 分频比使能,WDT 分频比由 Bit 0~Bit 2 设置
Bit 2 ~ Bit 0 (PSW2 ~ PSW0): WDT 预分频比位
PSW2
PSW1
PSW0
WDT 预分频比
0
0
0
1:2
0
0
1
1:4
0
1
0
1:8
0
1
1
1:16
1
0
0
1:32
1
0
1
1:64
1
1
0
1:128
1
1
1
1:256
6.2.6 IOCB (下拉控制寄存器2)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
/PD63
/PD62
/PD61
/PD60
/PD53
/PD52
/PD51
/PD50
Bit 7 (/PD63): 使能P63 引脚下拉控制位..
0: 使能内部下拉
1: 禁止内部下拉
Bit 6 (/PD62): 使能P62引脚下拉控制位
Bit 5 (/PD61): 使能P61 引脚下拉控制位
Bit 4 (/PD60): 使能P60 引脚下拉控制位
Bit 3 (/PD53): 使能P53 引脚下拉控制位.
Bit 2 (/PD52): 使能P52 引脚下拉控制位.
版本号(V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
• 33
EM78F564N/F664N
8位微控制器
Bit 1 (/PD51): 使能P51 引脚下拉控制位.
Bit 0 (/PD50): 使能P50 引脚下拉控制位
IOCB 寄存器可读写
6.2.7 IOCC (漏极开路控制寄存器)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
OD67
OD66
OD65
OD64
OD63
OD62
OD61
OD60
Bit 7 (OD67): P67漏极开路使能控制位..
0: 禁止漏极开路输出
1: 使能漏极开路输出
Bit 6 (OD66): P66漏极开路使能控制位.
Bit 5 (OD65): P65漏极开路使能控制位..
Bit 4 (OD64): P64漏极开路使能控制位.
Bit 3 (OD63): P63漏极开路使能控制位..
Bit 2 (OD62): P62漏极开路使能控制位..
Bit 1 (OD61): P61漏极开路使能控制位.
Bit 0 (OD60): P60漏极开路使能控制位..
IOCC 寄存器可读写.
6.2.8 IOCD (上拉控制寄存器 2)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
/PH67
/PH66
/PH65
/PH64
/PH63
/PH62
/PH61
/PH60
Bit 7 (/PH67): 使能P67 引脚上拉控制位.
0: 使能内部上拉
1: 禁止内部上拉
Bit 6 (/PH66): 使能P66 引脚上拉控制位.
Bit 5 (/PH65): 使能P65 引脚上拉控制位..
Bit 4 (/PH64): 使能P64 引脚上拉控制位.
Bit 3 (/PH63): 使能P63 引脚上拉控制位.
Bit 2 (/PH62): 使能P62 引脚上拉控制位.
Bit 1 (/PH61): 使能P61 引脚上拉控制位..
Bit 0 (/PH60): 使能P60 引脚上拉控制位..
IOCD 寄存器可读写
34 •
版本号 (V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
EM78F564N/F664N
8位微控制器
6.2.9 IOCE (中断屏蔽寄存器2)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
CMP2IE
-
TC3IE
TC2IE
TC1IE
UERRIE
URIE
UTIE
Bit 7 (CMP2IE): CMP2IF中断使能位..
0: 禁止CMP2IF 中断
1: 使能 CMP2IF 中断
当比较器 2 输出状态改变用于进入中断向量或进入下一条指令,CMP2IE 位必须设置
为 “使能“.
Bit 6: 未使用, 始终置为”0”
Bit 5 (TC3IE): 中断使能位
0: 禁止TC3IF中断
1: 使能 TC3IF 中断
Bit 4 (TC2IE): 中断使能位
0: 禁止TC2IF中断
1: 使能 TC2IF 中断
Bit 3 (TC1IE): 中断使能位
0: 禁止 TC1IF 中断
1: 使能 TC1IF 中断
Bit 2 (UERRIE): UART 接收错误中断标志位.
0: 禁止 UERRIF 中断
1: 使能 UERRIF 中断
Bit 1 (URIE): UART接收模式使能位..
0: 禁止 RBFF 中断
1: 使能 RBFF 中断
Bit 0 (UTIE): UART 发送模式使能位.
0: 禁止 TBEF 中断
1: 使能 TBEF 中断
注意
■ 用户必须设置IOCE寄存器的Bit 6为“0” ..
■ IOCE 寄存器可读写.
6.2.10 IOCF (中断屏蔽寄存器 1)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
-
ADIE
SPIIE
PWMBIE
PWMAIE
EXIE
ICIE
TCIE
Bit 7: 未使用, 始终置为”0”
版本号(V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
• 35
EM78F564N/F664N
8位微控制器
Bit 6 (ADIE): ADIF中断使能位
0: 禁止 ADIF 中断
1: 使能 ADIF 中断
如果AD转换完成用于进入中断向量或者下一条指令,ADIE位必须置为“使能“
Bit 5 (SPIIE): SPIIF中断使能位
0: 禁止 SPIIF 中断
1: 使能 SPIIF 中断
Bit 4 (PWMBIE): PWMBIF中断使能位
0: 禁止 PWMBIF 中断
1: 使能 PWMBIF 中断
Bit 3 (PWMAIE): PWMAIF 中断使能位.
0: 禁止 PWMAIF 中断
1: 使能 PWMAIF 中断
Bit 2 (EXIE): EXIF 中断使能位
0: 禁止 EXIF 中断
1: 使能 EXIF 中断
Bit 1 (ICIE): ICIF中断使能位
0: 禁止 ICIF 中断
1: 使能 ICIF 中断
Bit 0 (TCIE): TCIF中断使能位
0: 禁止 TCIF 中断
1: 使能 TCIF 中断
注意
■ 用户必须设置IOCF寄存器的Bit 7为“0”
■ 单个中断的使能可通过设置IOCF的相关位为 "1".
■ 全局中断的使能和禁止分别通过ENI和DISI指令.
■ IOCF 寄存器可读写.
6.3 TCC/WDT和预分频比
两个 8 位的计数器分别作为 TCC 和 WDT 的预分频器, CONT 寄存器的 PST2~PST0
位
用来设置 TCC 的预分频比,IOCA 的 PWR0~PWR2 位设置 WDT 的预分频比。每
次写 TCC 都会将预分频器清 0。执行 WDTC 和 SLEP 指令会将 WDT 和其预分频器清
0。
图 6-12-1 描述了 EM78Fx64N 的 TCC/WDT 功能结构
R1(TCC)是一个 8 位定时/计数器,TCC 时钟源可以选择内部时钟或外部输入信号
(TCC 引脚的边沿可选择)。如果 TCC 选择内部时钟作为时钟源,TCC 将在 Fc 时钟加
1(无分频比)。如果 TCC 选择外部时钟输入作为时钟源,TCC 将在 TCC 引脚输入每个
36 •
版本号 (V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
EM78F564N/F664N
8位微控制器
下降沿或上升沿加 1,TCC 引脚输入脉冲宽度(高或低)必须大于 1/ Fc。当进入休眠
模式时 TCC 停止运行。
独立/WDTWDT 振荡源是一个独立运行的片内 RC 振荡器,即使在其它振荡器关闭的
情况下(也就是休眠模式下),WDT 仍保持运行。无论是正常模式还是休眠模式,WDT
定时溢出将使 MCU 复位(若 WDT 使能)。WDT 可在正常模式下随时由软件设置禁
止或使能。参考 IOCA 寄存器的 WDTE 位设置。在没有设置 WDT 的分频比的情况
1
下,WDT 溢出的时间约为 18 ms (振荡器的启动时间)。
图 6-12-1 EM78Fx64N 的 TCC和WDT的方框图
6.4 I/O 端口
I/O 寄存器, Ports 5, 6, 7 和 8, 均为三态双向 I/O 端口. Port 6 或 7 可以由软件设置为内
部上拉,另外 Port 6 可以由软件设置为漏极开路输出。 Port 6 具有输入状态改变进入
中断或唤醒的特性。 P50 ~ P53 、 P60 ~ P63 和 Port 7 端口可以由软件设置为下拉。
每个 I/O 端口可以通过 I/O 控制寄存器(IOC5 ~ IOC8)设置为输入或输出。
I/O 寄存器和控制寄存器都是可以读写的。Ports 5 ~ 8 接口电路见图 6-13, 6-14 (a), 614 (b), 和图 6-15。
1
VDD=5V, WDT 溢出时间 = 16ms ± 7.5%
VDD=3V, WDT 溢出时间 = 18ms ± 7.5%
版本号(V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
• 37
EM78F564N/F664N
8位微控制器
PCRD
Q
_
Q
PORT
Q
_
Q
P
R
C
L
D
P
R
C
L
PCWR
CLK
IOD
D
PDWR
CLK
PDRD
0
1
M
U
X
注意:下拉在图中没有画出
图 6-13 I/O端口和Ports 5 ~ 8控制寄存器和电路图
PCRD
Q
_
Q
P
R D
CLK
C
L
Q
_
Q
P
R D
CLK
C
L
P60 /INT
PORT
Bit 2 of IOCF
0
P Q
R
CLK _
C
L Q
D
1
PCWR
IOD
PDWR
M
U
X
T10
PDRD
P
R Q
CLK _
C
L Q
D
INT
注意:上拉(下拉)和漏极开路在图中没有画出
图 6-14 (a) I/O端口P60 (/INT)和I/O控制寄存器电路图
38 •
版本号 (V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
EM78F564N/F664N
8位微控制器
PCRD
P61~P63
PORT
0
1
Q
_
Q
P
R D
CLK
C
L
PCWR
Q
_
Q
P
R D
CLK
C
L
PDWR
IOD
M
U
X
PDRD
P
R
CLK
C
L
D
TIN
Q
_
Q
注意: 上拉(下拉)和漏极开路没有画出
图. 6-14 (b) I/O端口P61~P67, P72~P77和I/O控制寄存器电路图
图 6-15 I/O Port 6 输入状态改变唤醒方框图
版本号(V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
• 39
EM78F564N/F664N
8位微控制器
表 6.4-1 Port 6输入状态改变唤醒/中断功能使用方法
Port 6 输入状态改变唤醒/中断功能使用方法
(I) Port 6 输入状态改变唤醒
(II) Port 6 输入状态改变中断
(a) 休眠前
1. 读 I/O Port 6 (MOV R6,R6)
1. 禁止 WDT 2 (谨慎使用)
2. 执行 "ENI"
2. 读 I/O Port 6 (MOV R6,R6)
3. 使能中断 (置 IOCF.1)
3 a. 使能中断 (设置 IOCF.1), 唤醒后,如
果 "ENI" → 中断向量 (006H),如果
"DISI" → 下一条指令
4. 如果 Port 6 输入状态改变 (中断) →
中断向量 (006H)
3 b. 禁止中断(设置 IOCF.1), 总是执行下
一条指令
4. 使能唤醒使能位(设置 RA 第 6 位)
5. 执行"SLEP"指令
(b) 唤醒后
1. 如果 "ENI" → 中断向量 (006H)
2. 如果 "DISI" → 下一条指令
6.5 复位和唤醒
6.5.1 复位
下面的任何事件之一可以引发复位
(1) 上电复位
(2) /RESET 引脚输入低
(3) WDT 溢出 (如果使能)
在检测到复位信号后,保持约 18 ms 3 (振荡器启动时间) 的复位状态后:.
„
振荡器继续运行或起振
„
程序计数器 (R2) 设为 "0"
„
所有I/O口都被设为输入 (高阻态).
„
看门狗定时器和预分频器清零
„
上电时,R3高3位清零
„
RB, RC, RD 寄存器的所有位 都保持原来的状态.
„
CONT 寄存器的所有位清”0”
„
IOCA寄存器的所有位清”0”.
2
软件禁止 WDT (看门狗定时器) ,但是在应用 P6 输入状态改变唤醒功能前硬件必须使能(代码
选择寄存 器和第 6 位(ENWDTB)置“1”).
3
Vdd = 5V, 振荡器启动时间= 16ms ± 7.5%
Vdd = 3V, 振荡器启动时间= 18ms ± 7.5%
40 •
版本号 (V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
EM78F564N/F664N
8位微控制器
„
IOCB寄存器的所有位置”1”
„
IOCC寄存器的所有位清”0”..
„
IOCD寄存器的所有位置”1”
„
IOCE寄存器的所有位清”0”.
„
IOCF寄存器的所有位清”0”.
执行 “SLEP”指令将进入休眠模式(省电模式),当进入休眠模式,WDT(如果使能)
被清零但继续运行。唤醒后,在 RC 模式下,复位时间为 10 µs。在高晶振模式下,复
位时间为 800 µs。
控制器可被以下情况唤醒:
(1) /RESET 引脚输入外部复位信号
(2) WDT 溢出 (如果使能)
(3) Port 6 输入状态改变 (如果使能)
(4) 比较器输入状态改变(如果 CMPWE 使能)
(5) A/D 转换完成(如果 ADWE 使能)(6) 外部 (P60, /INT)引脚改变 (如果 EXWE 使能)
(7) 当 SPI 作为从设备时,SPI 接收数据。(如果 SPIWE 使能)
在前两种情况下将引起 EM78Fx64N 复位. R3 的 T 和 P 标志可以判断复位源(唤醒),
情况 3, 4, 5, 6, 7 唤醒后继续执行程序还是进入中断由全局中断(执行 ENI 或者 DISI)
是否使能决定.如果在休眠之前执行 ENI,则唤醒后进入地址 0×6, 0×15, 0×30, 0×3,
0×12 执行程序。 如果休眠之前执行 DISI,唤醒后执行下一条指令,唤醒之后,在 RC
模式唤醒的时间为 10µs,高频晶振模式唤醒时间是 800 µs。
情况 2 到 7 可在进入休眠前使能 如下,
[a] 如果WDT在休眠之前使能,RE的所有位禁止. 此时, EM78Fx64N只能在情况1,2
下被唤醒,更多细节参考“中断”章节
[b] 如果Port 6输入状态改变用于唤醒EM78Fx64N,在休眠之前RA寄存器的ICWE位使
能,WDT必须禁止。此时, EM78Fx64N只能在情况3下被唤醒
[c] 如果比较器2 输出状态改变用于唤醒EM78Fx64N且RA 寄存器的CMPWE位在进入
休眠前使能, WDT 必须由软件禁止. 此时, EM78Fx64N 只能由情况 4唤醒
[d] 如果用AD转换完成唤醒 EM78Fx64N,在休眠之前RA寄存器的ADWE位使能,
WDT必须由软件禁止,此时, EM78Fx64N只能在情况5下被唤醒。
[e] 如果外部(P60,/INT)引脚变化用来唤醒 EM78Fx64N且在进入 休眠前RA寄存器的
EXWE 位使能,WDT必须由软件禁止,此时, EM78Fx64N只能在情况6下被唤
醒。
版本号(V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
• 41
EM78F564N/F664N
8位微控制器
[f] 当 SPI作为从设备时,接收数据后将会唤醒 EM78Fx64N且在进入 休眠前RA寄存器
的SPIWE 位使能,WDT必须由软件禁止,此时, EM78Fx64N只能在情况7下被唤
醒。
如果使用 Port 6 输入状态改变唤醒 EM78Fx64N(上述情况[b]),在 SLEP 指令之前
必须执行如下指令::
MOV
A, @0xxx1000b
IOW
IOCA
WDTC
MOV
R6, R6
ENI (or DISI)
BC
R4, 7
BC
R4, 6
MOV
A, @0100xxxxb
MOV
RA,A
MOV
A, @xxxxxx1xb
IOW
IOCF
SLEP
; 选择WDT分频比,禁止WDT
; 清WDT和分频比
; 读 Port 6
; 使能 (或禁止) 全局中断
; 选择 Bank 0
; 使能 Port 6 输入状态唤醒位
; 使能 Port 6输入状态中断
;休眠
同样, 如果用比较器 2 唤醒 EM78FX64N(上述情况[c]),,在 SLEP 指令之前必须执行
BS
如下指令::
R4, 7
; 选择Bank 3
; Select Bank 3
BS
MOV
R4, 6
A, @xxxx10xxb
; 选择比较器且P80作为 CO 口
; Select a comparator and P80 act
; as CO pin
MOV
MOV
R7,A
A, @0xxx1000b
; 选择 WDT分频比且禁止WDT
; Select WDT prescaler and
; Disable the WDT
IOW
WDTC
IOCA
; 清WDT和分频比
; Clear WDT and prescaler
; 使能(或禁止)全局中断
; Enable (or disable) global
; 中断
ENI (or DISI)
BC
R4, 7
; 选择 Bank 0
; Select Bank 0
BC
MOV
R4, 6
A, @1000xxxxb
;比较器输出状态改变唤醒使能
; Enable comparator output status
; change 唤醒 bit
MOV
MOV
RA,A
A, @10000000b
; 使能比较器输出状态改变中断
; Enable comparator output status
; change 中断
IOW
SLEP
IOCE
; 休眠
; Sleep
42 •
版本号 (V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
EM78F564N/F664N
8位微控制器
所有的唤醒和中断模式如下:
唤醒信号
外部中断
DISI
ENI
DISI
ENI
唤醒无效
唤醒无效
EXWE = 0,
EXIE = 1
唤醒无效
唤醒无效
唤醒
+
下一条指令
唤醒
唤醒
+
+
下一条指令 中断向量
唤醒
+
下一条指令
唤醒
唤醒
+
+
下一条指令 中断向量
ICWE = 0,
ICIE = 0
唤醒无效
唤醒无效
ICWE = 0,
ICIE = 1
唤醒无效
唤醒无效
ICWE = 1,
ICIE = 0
唤醒
+
下一条指令
唤醒+
下一条指令
EXWE = 1,
EXIE = 0
ICWE = 1,
ICIE = 1
唤醒
+
下一条指令
唤醒
+
中断向量
唤醒
+
下一条指令
唤醒
+
中断向量
TCIE = 0
唤醒无效
TCIE = 1
唤醒无效
SPIWE = 0,
SPIIE = 0
唤醒无效
唤醒无效
SPIWE = 0,
SPIIE = 1
唤醒无效
唤醒无效
TCC 溢出中断
SPI 中断
空闲模式
EXWE = 0,
EXIE = 0
EXWE = 1,
EXIE = 1
Port 6 引脚改
变
休眠模式
信号条件
SPIWE = 1,
SPIIE = 0
SPIWE = 1,
SPIIE = 1
唤醒
+
下一条指令( SPI 必须为
从机模式)
唤醒
唤醒
+
+
中断
下一条指令
向量
( SPI 必须
为从机模 ( SPI 必须
为从机模
式)
式)
版本号(V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
唤醒无效
唤醒
+
下一条指令
唤醒
+
中断向量
低速模式
DISI
ENI
中断无效
下一条指令
中断
+
中断向量
中断无效
下一条指令
中断
+
中断向量
中断无效
下一条指令
中断
+
中断向量
中断无效
下一条指令
唤醒
+
中断
向量
中断无效
下一条指令
中断
+
中断向量
中断无效
下一条指令
中断
+
中断向量
唤醒
+
中断无效
下一条指令( SPI 必须为
从机模式)
唤醒
唤醒
+
中断
+
中断
+
下一条指令
下一条指令
向量
中断
( SPI 必须
( SPI 必须
向量
为从机模
为从机模
式)
式)
正常模式
DISI
ENI
中断无效
下一条指
令
中断
+
中断向量
中断无效
下一条指
令
中断
+
I 中断向量
中断无效
下一条指
令
中断
+
中断向量
中断无效
下一条指
令
中断+
中断向量
中断无效
下一条指
令
中断
+
中断向量
中断无效
下一条指
令
中断
+
中断向量
中断无效
下一条指
令
中断
+
中断向量
• 43
EM78F564N/F664N
8位微控制器
唤醒信号
信号条件
CMP2WE = 0,
CMP2IE = 0
比较器 2 (比较
器输出状态改
变)
CMP2WE = 0,
CMP2IE = 1
休眠模式
DISI
ENI
唤醒无效
唤醒 无效
唤醒
+
下一条指令
唤醒
唤醒
CMP2WE = 1,
+
+
中断
CMP2IE = 1
下一条指令
向量
CMP2WE = 1,
CMP2IE = 0
TC1IE = 0
唤醒 无效
TC1 中断
TC1IE = 1
唤醒 无效
UTIE = 0
唤醒 无效
空闲模式
DISI
ENI
唤醒 无效
唤醒 无效
唤醒
+
下一条指令
唤醒
唤醒
+
+
中断
下一条指令
向量
唤醒 无效
唤醒
+
下一条指令
唤醒
+
中断
向量
唤醒 无效
低速模式
DISI
中断 无效
下一条
指令
UTIE = 1
唤醒 无效
唤醒 无效
URIE = 0
唤醒 无效
唤醒 无效
下一条
指令
URIE = 1
唤醒 无效
唤醒 无效
UERRIE = 0
唤醒 无效
唤醒 无效
下一条
指令
UERRIE = 1
唤醒 无效
唤醒 无效
TC2IE = 0
唤醒 无效
唤醒 无效
TC2 中断
TC2IE = 1
44 •
唤醒 无效
唤醒
+
下一条指令
唤醒
+
中断
向量
中断
+
中断
向量
中断 无效
下一条
指令
中断
+
中断
向量
中断 无效
下一条
指令
中断
+
中断
向量
中断 无效
UART 接收错
误中断
中断
+
中断
向量
中断 无效
UART 接受数
据缓存满中断
中断
+
中断
向量
中断 无效
UART 发送完
成中断
ENI
下一条
指令
中断
+
中断
向量
中断 无效
下一条
指令
中断
+
中断
向量
正常模式
DISI
ENI
中断 无效.
下一条
指令
中断
+
中断
向量
中断 无效
下一条
指令
中断
+
中断
向量
中断 无效
下一条
指令
中断
+
中断
向量
中断 无效
下一条
指令
中断
+
中断
向量
中断 无效
下一条
指令
中断
+
中断
向量
中断 无效
下一条
指令
中断
+
中断
向量
中断 无效
下一条
指令
版本号 (V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
中断
+
中断
向量
EM78F564N/F664N
8位微控制器
唤醒信号
休眠模式
信号条件
DISI
TC3IE = 0
ENI
唤醒无效
TC3 中断
PWM A/B
(当定时器 A/B
匹配 PRDA/B)
TC3IE = 1
唤醒 无效
PWMxIE = 0
( x = A or B )
唤醒 无效
PWMxIE = 1
( x = A or B )
唤醒 无效
ADWE = 0,
ADIE = 0
唤醒 无效
ADWE = 0,
ADIE = 1
AD 转换完成中
断
ADWE = 1,
ADIE = 0
ADWE = 1,
ADIE = 1
唤醒 无效
唤醒
+
下一条指令
唤醒
唤醒
+
+
中断
下一条指令
向量
版本号(V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
空闲模式
DISI
ENI
唤醒 无效
唤醒
+
下一条指令
唤醒
+
中断
向量
唤醒 无效
唤醒
+
下一条指令
唤醒
+
中断
向量
唤醒 无效
唤醒 无效
唤醒
+
下一条指令
唤醒
唤醒
+
+
中断
下一条指令
向量
低速模式
DISI
ENI
中断 无效
下一条
指令
中断
+
中断
向量
中断 无效
下一条
指令
中断
+
中断
向量
中断 无效
下一条
指令
中断
+
中断
向量
中断 无效
下一条
指令
中断
+
中断
向量
正常模式
DISI
ENI
中断 无效
中断
+
中断
向量
下一条
指令
中断 无效
中断
+
中断
向量
下一条
指令
中断 无效
中断
+
中断
向量
下一条
指令
中断 无效
中断
+
中断
向量
下一条
指令
• 45
EM78F564N/F664N
8位微控制器
表 6.5-1 寄存器初始值概述
地址
N/A
N/A
N/A
N/A
N/A
0×00
0×01
0×02
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
位名
C57
C56
C55
C54
C53
C52
C51
C50
上电
1
1
1
1
1
1
1
1
/RESET 和 WDT
1
1
1
1
1
1
1
1
引脚状态改变唤醒
P
P
P
P
P
P
P
P
位名
C67
C66
C65
C64
C63
C62
C61
C60
上电
1
1
1
1
1
1
1
1
/RESET 和 WDT
1
1
1
1
1
1
1
1
引脚状态改变唤醒
P
P
P
P
P
P
P
P
位名
C77
C76
C75
C74
C73
C72
-
-
上电
1
1
1
1
1
1
1
1
/RESET 和 WDT
1
1
1
1
1
1
1
1
引脚状态改变唤醒
P
P
P
P
P
P
P
P
位名
-
-
-
-
-
C82
C81
C80
上电
1
1
1
1
1
1
1
1
/RESET 和 WDT
1
1
1
1
1
1
1
1
引脚状态改变唤醒
P
P
P
P
P
P
P
P
位名
INTE
INT
TS
TE
PSTE
PST2
PST1
PST0
上电
0
0
0
0
0
0
0
0
/RESET 和 WDT
0
0
0
0
0
0
0
0
引脚状态改变唤醒
P
P
P
P
P
P
P
P
位名
-
-
-
-
-
-
-
-
上电
U
U
U
U
U
U
U
U
/RESET 和 WDT
P
P
P
P
P
P
P
P
引脚状态改变唤醒
P
P
P
P
P
P
P
P
位名
-
-
-
-
-
-
-
-
上电
0
0
0
0
0
0
0
0
/RESET 和 WDT
0
0
0
0
0
0
0
0
引脚状态改变唤醒
P
P
P
P
P
P
P
P
位名
-
-
-
-
-
-
-
-
上电
0
0
0
0
0
0
0
0
/RESET 和 WDT
0
0
0
0
0
0
0
0
名称
IOC5
IOC6
IOC7
IOC8
CONT
R0 (IAR)
R1 (TCC)
R2 (PC)
复位类型
引脚状态改变唤醒
46 •
跳到中断向量地址或继续执行下一条指令.
版本号 (V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
EM78F564N/F664N
8位微控制器
地址
0×03
0×04
0×05
0×06
0×07
0×08
0×09
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
位名
-
-
-
T
P
Z
DC
C
上电
0
0
0
1
1
U
U
U
/RESET 和 WDT
0
0
0
t
t
P
P
P
引脚状态改变唤醒
P
P
P
t
t
P
P
P
位名
Bank 1
Bank 0
-
-
-
-
-
-
上电
0
0
0
0
0
0
0
0
/RESET 和 WDT
0
0
0
0
0
0
0
0
引脚状态改变唤醒
P
P
P
P
P
P
P
P
位名
P57
P56
P55
P54
P53
P52
P51
P50
上电
0
0
0
0
0
0
0
0
/RESET 和 WDT
0
0
0
0
0
0
0
0
引脚状态改变唤醒
P
P
P
P
P
P
P
P
位名
P67
P66
P65
P64
P63
P62
P61
P60
上电
0
0
0
0
0
0
0
0
/RESET 和 WDT
0
0
0
0
0
0
0
0
引脚状态改变唤醒
P
P
P
P
P
P
P
P
位名
P77
P76
P75
P74
P73
P72
-
-
上电
0
0
0
0
0
0
0
0
/RESET 和 WDT
0
0
0
0
0
0
0
0
引脚状态改变唤醒
P
P
P
P
P
P
P
P
位名
-
-
-
-
-
P82
P81
P80
上电
0
0
0
0
0
0
0
0
/RESET 和 WDT
0
0
0
0
0
0
0
0
引脚状态改变唤醒
P
P
P
P
P
P
P
P
位名
RBit7
RBit6
RBit5
RBit4
RBit3
RBit2
RBit1
RBit0
上电
0
0
0
0
0
0
0
0
/RESET 和 WDT
0
0
0
0
0
0
0
0
引脚状态改变唤醒
P
P
P
P
P
P
P
P
名称
R3 (SR)
R4 (RSR)
P5
(Bank 0)
P6
(Bank 0)
P7
(Bank 0)
P8
(Bank 0)
R9
(Bank 0)
复位类型
版本号(V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
• 47
EM78F564N/F664N
8位微控制器
地址
名称
复位类型
位名
0×0A
0×0B
0×0D
0×0E
0×0F
48 •
CMP2WE ICWE
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
ADWE
EXWE
SPIWE
-
-
-
0
0
0
0
0
0
0
0
/RESET 和 WDT
0
0
0
0
0
0
0
0
引脚状态改变唤醒
P
P
P
P
P
P
P
P
位名
RD
WR
EEWE
EEDF
EEPC
-
-
-
RB (ECR) 上电
(Bank 0) /RESET 和 WDT
0
0
0
0
0
0
0
0
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
位名
EE_A7
EE_A6
EE_A5
EE_A4
EE_A3
EE_A2
EE_A1
EE_A0
上电
0
0
0
0
0
0
0
0
/RESET 和 WDT
P
P
P
P
P
P
P
P
引脚状态改变唤醒
P
P
P
P
P
P
P
P
位名
EE_D7
EE_D6
EE_D5
EE_D4
EE_D3
EE_D2
EE_D1
EE_D0
上电
0
0
0
0
0
0
0
0
/RESET 和 WDT
P
P
P
P
P
P
P
P
引脚状态改变唤醒
P
P
P
P
P
P
P
P
位名
-
IDLE
-
-
-
-
上电
0
1
1
1
0
0
0
0
/RESET 和 WDT
0
1
1
1
0
0
0
0
引脚状态改变唤醒
P
P
P
P
P
P
P
P
位名
-
ADIF
SPIIF
EXIF
ICIF
TCIF
RF (ISR) 上电
(Bank 0) /RESET 和 WDT
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
P
P
P
P
P
P
P
P
位名
TC1CAP
TC1S
TC1ES
-
-
上电
0
0
0
0
0
0
0
0
/RESET 和 WDT
0
0
0
0
0
0
0
0
引脚状态改变唤醒
P
P
P
P
P
P
P
P
RC
(Bank 0)
RD
(Bank 0)
RE
(Bank 0)
引脚状态改变唤醒
0×05
Bit 6
上电
RA
(Bank 0)
引脚状态改变唤醒
0×0C
Bit 7
R5
(Bank 1)
TIMERS
CPUS
C
PWMBIF PWMAIF
TC1CK1 TC1CK0 TC1M
版本号 (V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
EM78F564N/F664N
8位微控制器
地址
名称
复位类型
位名
0×06
R6
(Bank 1)
0×08
R7
(Bank 1)
0×0A
0×0B
0×0C
RA
(Bank 1)
RB
(Bank 1)
RC
(Bank 1)
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
TC1DA7 TC1DA6 TC1DA5 TC1DA4 TC1DA3 TC1DA2 TC1DA1 TC1DA0
0
0
0
0
0
0
0
/RESET 和 WDT
0
0
0
0
0
0
0
0
引脚状态改变唤醒
P
P
P
P
P
P
P
P
TC1DB7 TC1DB6 TC1DB5 TC1DB4 TC1DB3 TC1DB2 TC1DB1 TC1DB0
上电
0
0
0
0
0
0
0
0
/RESET 和 WDT
0
0
0
0
0
0
0
0
引脚状态改变唤醒
P
P
P
P
P
P
P
P
位名
RCM1
RCM0
TC2ES
TC2M
上电
WORD1
<3,2>
0
0
0
0
0
0
/RESET 和 WDT
WORD1
<3,2>
0
0
0
0
0
0
引脚状态改变唤醒
P
P
P
P
P
P
P
R8
(Bank 1)
R9
(Bank 1)
Bit 5
0
位名
0×09
Bit 6
上电
位名
0×07
Bit 7
TC2S TC2CK2 TC2CK1 TC2CK0
TC2D15 TC2D14 TC2D13 TC2D12 TC2D11 TC2D10 TC2D9
P
TC2D8
上电
0
0
0
0
0
0
0
0
/RESET 和 WDT
0
0
0
0
0
0
0
0
引脚状态改变唤醒
P
P
P
P
P
P
P
P
位名
TC2D7
TC2D6
TC2D5
TC2D4
TC2D3
TC2D2
TC2D1
TC2D0
上电
0
0
0
0
0
0
0
0
/RESET 和 WDT
0
0
0
0
0
0
0
0
引脚状态改变唤醒
P
P
P
P
P
P
P
P
位名
DORD
TD1
TD0
-
OD3
OD4
-
RBF
上电
0
0
0
0
0
0
0
0
/RESET 和 WDT
0
0
0
0
0
0
0
0
引脚状态改变唤醒
P
P
P
P
P
P
P
P
位名
CES
SPIE
SRO
SSE
SDOC
上电
0
0
0
0
0
0
0
0
/RESET 和 WDT
0
0
0
0
0
0
0
0
引脚状态改变唤醒
P
P
P
P
P
P
P
P
版本号(V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
SBRS2 SBRS1 SBRS0
• 49
EM78F564N/F664N
8位微控制器
地址
0×0D
0×0E
0×0F
0×05
0×06
0×07
0×08
50 •
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
位名
SRB7
SRB6
SRB5
SRB4
SRB3
SRB2
SRB1 SRB0
上电
U
U
U
U
U
U
U
U
/RESET 和 WDT
P
P
P
P
P
P
P
P
引脚状态改变唤醒
P
P
P
P
P
P
P
P
位名
SWB7
SWB6
SWB5
SWB4
SWB3
SWB2
上电
U
U
U
U
U
U
U
U
/RESET 和 WDT
P
P
P
P
P
P
P
P
引脚状态改变唤醒
P
P
P
P
P
P
P
P
位名
CMP2IF
-
TC3IF
TC2IF
TC1IF
上电
0
0
0
0
0
0
0
0
/RESET 和 WDT
0
0
0
0
0
0
0
0
引脚状态改变唤醒
P
P
名称
RD
(Bank 1)
RE
(Bank 1)
RF
(Bank 1)
R5
(Bank 2)
R6
(Bank 2)
R7
(Bank 2)
R8
(Bank 2)
复位类型
Bit 0
SWB1 SWB0
UERRIF RBFF
TBEF
P
P
P
P
P
P
位名
ADE7
ADE6
ADE5
ADE4
ADE3
ADE2
上电
0
0
0
0
0
0
0
0
/RESET 和 WDT
0
0
0
0
0
0
0
0
引脚状态改变唤醒
P
P
P
P
P
P
P
P
位名
VREFS
CKR1
CKR0
上电
0
0
0
0
0
0
0
0
/RESET 和 WDT
0
0
0
0
0
0
0
0
引脚状态改变唤醒
ADRUN ADPD
ADIS2
ADE1 ADE0
ADIS1 ADIS0
P
P
P
P
P
P
P
P
位名
CALI
SIGN
VOF[2]
VOF[1]
VOF[0]
-
-
-
上电
0
0
0
0
0
0
0
0
/RESET 和 WDT
0
0
0
0
0
0
0
0
引脚状态改变唤醒
P
P
P
P
P
P
P
P
位名
AD9
AD8
AD7
AD6
AD5
AD4
AD3
AD2
上电
0
0
0
0
0
0
0
0
/RESET 和 WDT
0
0
0
0
0
0
0
0
引脚状态改变唤醒
P
P
P
P
P
P
P
P
版本号 (V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
EM78F564N/F664N
8位微控制器
地址
0×09
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
位名
-
-
-
-
-
-
AD1
AD0
上电
0
0
0
0
0
0
0
0
/RESET 和 WDT
0
0
0
0
0
0
0
0
引脚状态改变唤醒
P
P
P
P
P
P
P
P
名称
R9
(Bank 2)
复位类型
位名
0×0A
0×0B
0×0C
RA
(Bank 2)
RB
(Bank 2)
RC
(Bank 2)
RD
(Bank 2)
U
0
0
0
0
0
0
0
/RESET 和 WDT
P
P
P
P
P
P
0
0
引脚状态改变唤醒
P
P
P
P
P
P
P
P
位名
-
-
SBIM1
-
-
-
上电
0
0
0
0
0
0
0
0
/RESET 和 WDT
0
0
P
P
P
0
0
0
引脚状态改变唤醒
P
P
P
P
P
URBF
RXE
0×0F
RE
(Bank 2)
RF
(Bank 2)
SBIM0 UINVEN
P
P
P
位名
URRD8
EVEN
PRE
上电
0
0
0
0
0
0
0
0
/RESET 和 WDT
P
P
P
0
0
0
0
0
引脚状态改变唤醒
P
P
P
P
P
P
P
P
PRERR OVERR FMERR
URRD7 URRD6 URRD5 URRD4 URRD3 URRD2 URRD1 URRD0
上电
U
U
U
U
U
U
U
U
/RESET 和 WDT
P
P
P
P
P
P
P
P
引脚状态改变唤醒
P
P
P
P
P
P
P
P
位名
0×0E
TXE
上电
位名
0×0D
URTD8 UMODE1 UMODE0 BRATE2 BRATE1 BRATE0 UTBE
URTD7 URTD6 URTD5 URTD4 URTD3 URTD2 URTD1 URTD0
上电
U
U
U
U
U
U
U
U
/RESET 和 WDT
P
P
P
P
P
P
P
P
引脚状态改变唤醒
P
P
P
P
P
P
P
P
位名
/PH77
/PH76
/PH75
/PH74
/PH73
/PH72
-
-
上电
1
1
1
1
1
1
1
1
/RESET 和 WDT
1
1
1
1
1
1
1
1
引脚状态改变唤醒
P
P
P
P
P
P
P
P
版本号(V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
• 51
EM78F564N/F664N
8位微控制器
地址
0×05
0×06
0×07
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
位名
TAEN
TAP2
TAP1
TAP0
TBEN
TBP2
TBP1
TBP0
上电
0
0
0
0
0
0
0
0
/RESET 和 WDT
0
0
0
0
0
0
0
0
引脚状态改变唤醒
P
P
P
P
P
P
P
P
位名
MLB
-
-
-
RBit11
RBit10
RBit9
RBit8
上电
0
0
0
0
0
0
0
0
/RESET 和 WDT
0
0
0
0
0
0
0
0
引脚状态改变唤醒
P
P
P
P
P
P
P
P
位名
-
-
-
上电
0
0
0
0
0
0
0
0
/RESET 和 WDT
0
0
0
0
0
0
0
0
引脚状态改变唤醒
P
P
P
P
P
P
P
P
名称
R5
(Bank 3)
R6
(Bank 3)
R7
(Bank 3)
复位类型
位名
0×08
R8
(Bank 3)
0×0A
R9
(Bank 3)
RA
(Bank 3)
52 •
RB
(Bank 3)
DTB[0]
0
0
0
0
0
0
0
0
/RESET 和 WDT
0
0
0
0
0
0
0
0
引脚状态改变唤醒
P
P
P
P
P
P
P
P
PRDA[9] PRDA[8] PRDA[7] PRDA[6] PRDA[5] PRDA[4] PRDA[3] PRDA[2]
上电
0
0
0
0
0
0
0
0
/RESET 和 WDT
0
0
0
0
0
0
0
0
引脚状态改变唤醒
P
P
P
P
P
P
P
P
位名
DTA[9]
DTA[8]
DTA[7]
DTA[6]
DTA[5]
DTA[4]
DTA[3]
DTA[2]
上电
0
0
0
0
0
0
0
0
/RESET 和 WDT
0
0
0
0
0
0
0
0
引脚状态改变唤醒
P
P
P
P
P
P
P
P
位名
0×0B
DTA[0] PRDB[1] PRDB[0] DTB[1]
上电
位名
0×09
PRDA[1] PRDA[0] DTA[1]
CPOUT2 COS21 COS20 PWMAE PWMBE
PRDB[9] PRDB[8] PRDB[7] PRDB[6] PRDB[5] PRDB[4] PRDB[3] PRDB[2]
上电
0
0
0
0
0
0
0
0
/RESET 和 WDT
0
0
0
0
0
0
0
0
引脚状态改变唤醒
P
P
P
P
P
P
P
P
版本号 (V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
EM78F564N/F664N
8位微控制器
地址
0×0C
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
位名
DTB[9]
DTB[8]
DTB[7]
DTB[6]
DTB[5]
DTB[4]
DTB[3]
DTB[2]
上电
0
0
0
0
0
0
0
0
/RESET 和 WDT
0
0
0
0
0
0
0
0
引脚状态改变唤醒
P
P
P
P
P
P
P
P
名称
RC
(Bank 3)
复位类型
位名
0×0D
RD
(Bank 3)
0×0F
0×0A
0×0B
0×0C
RE
(Bank 3)
RF
(Bank 3)
IOCA
IOCB
IOCC
TC3S TC3CK2 TC3CK1 TC3CK0 TC3M1 TC3M0
上电
0
0
0
0
0
0
0
0
/RESET 和 WDT
0
0
0
0
0
0
0
0
引脚状态改变唤醒
P
P
P
P
P
P
P
P
位名
0×0E
TC3FF1 TC3FF0
TCR3D7 TCR3D6 TCR3D5 TCR3D4 TCR3D3 TCR3D2 TCR3D1 TCR3D0
上电
0
0
0
0
0
0
0
0
/RESET 和 WDT
0
0
0
0
0
0
0
0
引脚状态改变唤醒
P
P
P
P
P
P
P
P
位名
/PD77
/PD76
/PD75
/PD74
/PD73
/PD72
-
-
上电
1
1
1
1
1
1
1
1
/RESET 和 WDT
1
1
1
1
1
1
1
1
引脚状态改变唤醒
P
P
P
P
P
P
P
P
位名
WDTE
EIS
-
-
PSWE
PSW2
PSW1
PSW0
上电
0
0
0
0
0
0
0
0
/RESET 和 WDT
0
0
0
0
0
0
0
0
引脚状态改变唤醒
P
P
P
P
P
P
P
P
位名
/PD63
/PD62
/PD61
/PD60
/PD53
/PD52
/PD51
/PD50
上电
1
1
1
1
1
1
1
1
/RESET 和 WDT
1
1
1
1
1
1
1
1
引脚状态改变唤醒
P
P
P
P
P
P
P
P
位名
OD67
OD66
OD65
OD64
OD63
OD62
OD61
OD60
上电
0
0
0
0
0
0
0
0
/RESET 和 WDT
0
0
0
0
0
0
0
0
引脚状态改变唤醒
P
P
P
P
P
P
P
P
版本号(V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
• 53
EM78F564N/F664N
8位微控制器
地址
0×0D
0×0E
0×0F
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
位名
/PH67
/PH66
/PH65
/PH64
/PH63
/PH62
/PH61
/PH60
上电
1
1
1
1
1
1
1
1
/RESET 和 WDT
1
1
1
1
1
1
1
1
引脚状态改变唤醒
P
P
P
P
P
P
P
P
位名
CMP2IE
-
TC3IE
TC2IE
TC1IE
上电
0
0
0
0
0
0
0
0
/RESET 和 WDT
0
0
0
0
0
0
0
0
引脚状态改变唤醒
P
P
P
P
P
P
P
P
位名
-
ADIE
EXIE
ICIE
TCIE
上电
0
0
0
0
0
0
0
0
/RESET 和 WDT
0
0
0
0
0
0
0
0
引脚状态改变唤醒
P
P
P
P
P
P
P
P
位名
-
-
-
-
-
-
-
-
U
U
U
U
U
U
U
U
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
名称
IOCD
IOCE
IOCF
复位类型
上电
0×10 ~
R10~R3F
0×3F
/RESET 和 WDT
引脚状态改变唤醒
符号: “×” =保留位
SPIIE PWMBIE PWMAIE
UERRIE URIE
UTIE
“P” =复位前的值
“u” =未知或不关心
“t” =参考表 6-5-2-1
6.5.2 状态寄存器RST, T和 P的状态
复位可由下列事件引起:
1. 上电复位
2. 复位引脚输入高-低-高脉冲
3. 看门狗定时器溢出
6-5-2-1 列出了 T,P 的值,用来检测是什么类型的唤醒
6-5-2-2 列出了可能影响 T,P 位的事件
表 6-5-2-1 复位后 RST, T和P 的状态
复位类型
上电
T
P
1
1
*P
*P
/RESET 从休眠模式唤醒
1
0
WDT 在运行模式
0
*P
WDT 从休眠模式唤醒
0
0
在休眠模式引脚变化唤醒
1
0
/RESET 在运行模式
* P:复位前的值
54 •
版本号 (V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
EM78F564N/F664N
8位微控制器
表 6-5-2-2 时间影响后的T 和P 的状态
T
事件
P
上电
1
1
WDTC 指令
1
1
WDT 溢出
0
*P
SLEP 指令
1
0
在休眠模式由引脚变化唤醒
1
0
* P:复位前的值-
图 6-16 控制器复位框图
版本号(V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
• 55
EM78F564N/F664N
8位微控制器
6.6 中断
EM78Fx64N 有 14 个中断 (3 个外部, 11 个内部) 列表如下:
中断源
使能条件
中断标志
中断向量
优先级
-
-
0000
High 0
内部/
外部
复位
外部
INT
ENI + EXIE=1
EXIF
0003
1
外部
Port 6 引脚改变
ENI +ICIE=1
ICIF
0006
2
内部
TCC
ENI + TCIE=1
TCIF
0009
3
内部
SPI
ENI + SPIIE=1
SPIIF
0012
4
外部
比较器 2
ENI+CMP2IE=1
CMP2IF
0015
5
内部
TC1
ENI + TC1IE=1
TC1IF
0018
6
内部
UART 发送
ENI + UTIE=1
TBEF
001B
7
内部
UART 接收
ENI + URIE=1
RBFF
001E
8
内部
UART 接收错误
ENI+UERRIE=1
UERRIF
0021
9
内部
TC2
ENI + TC2IE=1
TC2IF
0024
10
内部
TC3
ENI + TC3IE=1
TC3IF
0027
11
内部
PWMA
ENI+PWMAIE=1
PWMAIF
002A
12
内部
PWMB
ENI+PWMBIE=1
PWMBIF
002D
13
内部
AD
ENI+ADIE=1
ADIF
0030
14
RE 和 RF 是中断状态寄存器,在相关的标志/位中记录中断需求. IOCE 和 IOCF 是中断
屏蔽 寄存器。通过 ENI 指令使能总中断,DISI 指令禁止总中断。当一个中断发生时
(使能情况下),下一条指令将进入它们各自的中断向量地址。在返回中断之前和使
能中断之前必须清中断标志位以避免循环的进入中断。
中断状态寄存器(RF & RE)的标志位(除了 ICIF)的置位,与总中断是否使能无关。
RETI 指令结束中断,使能全局中断(执行 ENI)。 .
外部中断带有数字噪声抑制电路(输入脉冲(脉宽)小于 8 倍系统时钟周期则被当作噪
声滤除), 但在低频振荡模式(LXT),应禁止噪声滤除电路。 当外部中断 (下降沿)(如果
使能)发生时,下一条指令地址从 003H 取出。
在中断子程序执行前,硬件保存 ACC,R3 和 R4 寄存器的值,如果另外一个中断发
生,ACC,R3 和 R4 将被新的值覆盖.中断服务子程序结束后 ACC,R3 和 R4 的值恢复..
56 •
版本号 (V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
EM78F564N/F664N
8位微控制器
VCC
IRQn
D PR Q
_
CLK
CL Q
RF
/IRQn
RFRD
INT
IRQm
ENI/DISI
Q PR D
_
CLK
Q CL
IOCF
IOD
IOCFWR
/RESET
IOCFRD
RFWR
图 6-17 中断输入电路
图 6-18 中断备份框图
6.7 数据 EEPROM (仅对EM78F664N)
在整个 Vdd 范围,正常工作下,数据 EEPROM 是可读写的。 数据 EEPROM 的操作
是基于单字节。一个写操作包含了擦除-写周期。数据 EEPROM 储存器提供了高擦除写次数。一个字节的写:自动擦除并写入新值。
6.7.1 数据 EEPROM 控制寄存器
6.7.1.1
RB (EEPROM 控制寄存器)
EECR (EEPROM 控制寄存器)用于配置和初始化控制寄存器状态
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
RD
WR
EEWE
EEDF
EEPC
-
-
-
Bit 7 (RD): 读控制位
0: 执行读 EEPROM 完成
1: 读EEPROM 内容, (RD可由软件置位, 读指令完成后RD被硬件清0)
Bit 6 (WR): 写控制位
0: 一个写EEPROM的周期完成.
版本号(V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
• 57
EM78F564N/F664N
8位微控制器
1: 开始一个写EEPROM的周期(WR由软件置1,写周期完成后由硬件
清0)
Bit 5 (EEWE): EEPROM 写使能位
0: 禁止写EEPROM
1: 允许写EEPROM.
Bit 4 (EEDF): EEPROM 检测标志位
0: 写周期完成
1: 写周期未完成
Bit 3 (EEPC): EEPROM 掉电控制位
0: 关闭 EEPROM
1: 开启EEPROM
Bits 2 ~ 0: 未使用, 始终置为 “0”
6.7.1.2
RC (256 字节 EEPROM 地址)
当要访问 EEPROM 数据存储器时,RC(256 字节 EEPROM 地址寄存器)存储要访问
的地址。依照操作,RD(256 字节 EEPROM 数据寄存器)保存的是要写的或者从 RC
地址中读出的数据
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
EE_A7
EE_A6
EE_A5
EE_A4
EE_A3
EE_A2
EE_A1
EE_A0
Bits 7 ~ 0: 256 字节 EEPROM 地址
6.7.1.3
RD (256 字节 EEPROM 数据)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
EE_D7
EE_D6
EE_D5
EE_D4
EE_D3
EE_D2
EE_D1
EE_D0
Bits 7 ~ 0: 256 字节EEPROM 数据
6.7.2 编程步骤/示例程序
6.7.2.1
编程步骤
按照下面步骤对 EEPROM 写入或读出数据:
(1) 置RB的EEPC位为1以使能EEPROM.
(2) 写地址到 RC (256 字节 EEPROM 地址).
a.1. 如果应用写功能,设置RB.EEWE位为1
a.2. 写8位数据值到RD (256字节 EEPROM数据)
a.3. RB的WR位置1,然后执行写功能
b. 置RB的RD位为1,接着执行读功能
(3) a. 等待RB的EEDF或RB的WR被清零
b. 等待RB的EEDF被清零
(4) 下一次操作,重复步骤二(若需要)
58 •
版本号 (V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
EM78F564N/F664N
8位微控制器
(5) 如果用户需要节省功耗并确定EEPROM不被使用时,可以清RB.EEPC位
6.7.2.2
示例程序
;定义控制寄存器
;写数据到EEPROM
RC == 0x0C
RB == 0x0B
RD == 0x0D
Read == 0x07
WR == 0x06
EEWE == 0x05
EEDF == 0x04
EEPC == 0x03
BS RB, EEPC
MOV A,@0x0A
MOV RC,A
BS RB, EEWE
MOV A,@0x55
MOV RD,A
BS RB,WR
JBC RB,EEDF
JMP $-1
; 设置EEPROM上电
; 分配EEPROM地址
; 使能EEPROM 写功能
; 设置EEPROM数据
; 写值到EEPROM
; 检查EEPROM 位判断是否完成
6.8 模数转换器(ADC)
A/D 转换电路包括一个 10 位模拟多路复用器,3 个控制寄存器(AISR/R5 (Bank 2),
ADCON/R6 (Bank 2), ADOC/R7 (Bank 2)),2 个数据寄存器(ADDH, ADDL/R8, R9)和
一个分辨率为 10 位的 ADC。图 6-19 所示为 ADC 的功能框图。模拟参考电压(Vref)和
模拟地由独立引脚接入。
逐次逼近式 ADC 模块将未知的模拟量转换为数字量,结果存放在 ADDH 和 ADDL。由
多路复用器 ADCON 寄存器的位 ADIS2 ~ ADIS0 选择模拟输入通道
图 6-19 模数转换器框图
版本号(V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
• 59
EM78F564N/F664N
8位微控制器
6.8.1 ADC控制寄存器(AISR/R5, ADCON/R6, ADOC/R7)
6.8.1.1
Bank 2 R5 AISR (ADC 输入选择寄存器)
AISR 寄存器逐个定义 Port 6 引脚作为模拟输入或数字 I/O
Bit
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
符号
ADE7
ADE6
ADE5
ADE4
ADE3
ADE2
ADE1
ADE0
*初始值
0
0
0
0
0
0
0
0
Bit 7 (ADE7): P67引脚 AD转换使能位.
0: 禁止 ADC7, P67作为 I/O 引脚
1: 使能 ADC7作为模拟输入引脚
Bit 6 (ADE6): P66引脚 AD转换使能位.
0: 禁止 ADC6, P66作为 I/O 引脚
1: 使能 ADC6作为模拟输入引脚
Bit 5 (ADE5): P65引脚 AD转换使能位.
0: 禁止 ADC5, P65作为 I/O 引脚
1: 使能 ADC5作为模拟输入引脚
Bit 4 (ADE4): P64引脚 AD转换使能位.
0: 禁止 ADC4, P64作为 I/O 引脚
1: 使能 ADC4作为模拟输入引脚
Bit 3 (ADE3): P63引脚 AD转换使能位..
0: 禁止 ADC3, P63作为 I/O 引脚
1: 使能 ADC3作为模拟输入引脚
Bit 2 (ADE2): P62引脚 AD转换使能位.
0: 禁止 ADC2, P62作为 I/O 引脚
1: 使能 ADC2作为模拟输入引脚
Bit 1 (ADE1): P61引脚 AD转换使能位.
0: 禁止 ADC1, P61作为 I/O 引脚
1: 使能 ADC1作为模拟输入引脚
Bit 0 (ADE0): P60引脚 AD转换使能位.
0: 禁止 ADC0, P60作为 I/O 引脚
1: 使能 ADC0作为模拟输入引脚
6.8.1.2
Bank 2 R6 ADCON (A/D 控制寄存器)
ADCON 寄存器 控制 ADC 操作并确定当前哪一引脚有效。.
Bit
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
符号
VREFS
CKR1
CKR0
ADRUN
ADPD
ADIS2
ADIS1
ADIS0
Bit 7 (VREFS): ADC的参考电压输入选择
60 •
版本号 (V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
EM78F564N/F664N
8位微控制器
0: Vdd作为ADC的参考电压(默认值),P50/VREF引脚用作普通IO
1: 以P50/VREF输入作为ADC参考电压
Bit 6 ~ Bit 5 (CKR1 ~ CKR0): ADC时钟频率预分频比
00 = 1: 4 (默认值)
01 = 1: 1
10 = 1: 16
11 = 1: 2
CKR1/CKR0
工作模式
最高工作频率
00
FOSC/4
4 MHz
01
FOSC
1 MHz
10
FOSC/16
16 MHz
11
FOSC/2
2 MHz
Bit 4 (ADRUN): ADC开始运行
0: AD转换结束清零。该位不能由软件清零。
1: AD转换开始。该位可以软件置1
Bit 3 (ADPD): ADC掉电模式
0: 关闭参考电阻以省电
1: ADC工作
Bit 2 ~ Bit 0 (ADIS2 ~ ADIS0): 模拟输入选择
000 = AN0/P60
001 = AN1/P61
010 = AN2/P62
011 = AN3/P63
100 = AN4/P64
101 = AN5/P65
110 = AN6/P66
111 = AN7/P67
只有当 ADIF 位和 ADRUN 位都为 0 时,它们才能被更改。
6.8.1.3
Bank 2 R7 ADOC (A/D 偏移校正寄存器)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
CALI
SIGN
VOF[2]
VOF[1]
VOF[0]
-
-
-
Bit 7 (CALI): A/D偏移校正使能位
0: 禁止校正
1: 使能校正
Bit 6 (SIGN): 偏移电压极性
0: 负极性电压
1: 正极性电压
Bit 5 ~ Bit 3 (VOF[2] ~ VOF[0]): 偏移电压位
版本号(V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
• 61
EM78F564N/F664N
8位微控制器
Bits 2 ~ 0: 未使用,始终置为 “0”
6.8.2 ADC 数据缓存 (ADDH, ADDL/R8, R9)
A/D 转换结束后,转换结果存放到 ADDH, ADDL。ADRUN 位清零,ADIF 位置 1。
6.8.3 A/D 采样时间
逐次逼近式 AD 转换器的精确性,线性,速度由 AD 转换器和比较器特性决定。外部
AD 电路的输入阻抗和内部采样阻抗直接影响采样电路中电容的充电时间。应用程序控
制采样时间长短以满足特定精度需要。一般来说,对于每千欧姆模拟输入阻抗,程序
应等待 2µs,对于低阻源应至少等待 2µs,建议外部 AD 电路的输入阻抗是最大
10KΩ ,Vdd=5V。模拟输入通道选定后,在转换开始之前这个采样时间应该先满足。
6.8.4 A/D 转换时间
CKR0 和 CKR1 依照指令周期来选择转换时间(Tct)。在不影响 A/D 转换精度的条件
下,允许 MCU 以最高频率运行。对于 EM78FX64N,每位转换时间约为 1µs。 表 6-84-1 列出了 Tct 与最高频率的关系。 .
表 6-8-4-1 Tct 和最高工作频率
CKR1: CKR0
工作模式
最高工作频率
最大转换率/位
最大转换率
00
Fosc/4
4 MHz
1 MHz (1 µs)
16 × 1 µs = 16 µs (62.5kHz)
01
Fosc
1 MHz
1 MHz (1 µs)
16 × 1 µs = 16 µs (62.5kHz)
10
Fosc/16
16 MHz
1 MHz (1 µs)
16 × 1 µs = 16 µs (62.5kHz)
11
Fosc/2
2 MHz
1 MHz (1 µs)
16 × 1 µs = 16 µs (62.5kHz)
注意
没有被用作模拟输入的引脚可以被用作普通输入输出引脚.
转换时,不要运行输出指令以保持所有引脚的稳定.
6.8.5 A/D工作在休眠模式
为了得到更精确的 ADC 值和较低功耗,AD 转换可以在休眠模式下进行。当执行
SLEP 指令后,主控制器停止工作,但振荡器,TCC,TC1, TC2, TC3,定时器 A,定时
器 B 和 AD 转换继续工作。
当以下情况发生时说明 AD 转换结束
1
R6 寄存器的 ADRUN 位清零
2
在休眠模式下运行,由 A/D 转换唤醒.
转换结束后,结果送入 ADDATA。如果 ADWE 使能,控制器将被唤醒。否则,不论
ADPD 位是什么状态,A/D 转换器将关闭。
62 •
版本号 (V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
EM78F564N/F664N
8位微控制器
6.8.6 编程步骤/事项
6.8.6.1
编程步骤
按照以下步骤可以得到 ADC 数据:
1.设置 R5(AISR)寄存器的 8 个位(ADE7 ~ ADE0)以定义 R6 的特性:(数字 I/O,模拟
通道和参考电压引脚 )
2.设置 R6/ADCON 寄存器以配置 AD 模块
a) 选择A/D输入通道(ADIS2 : ADIS0)
b) 定义A/D转换时钟比率(CKR1 ~ CKR0)
c) 选择ADC的参考电压VREFS输入源
d) ADPD位置1开始采样
3.若使用唤醒功能,请设置ADWE位
4.若使用中断功能,请设置ADIE位
5.若使用中断功能,请执行”ENI”指令
6.ADRUN 位置” 1”
7.等待唤醒或者 ADRUN 位清零
8.读取 ADDATAH 和 ADDATAL
9.当 A/D 中断功能发生,清除中断标志位(ADIF)
10.下一次转换,必须至步骤 1 或步骤 2,下一次采样之前至少等待 2TCT 时间。
注意
为了获得准确的结果,在转换过程中需要避免I/O端口上传输数据
6.8.6.2
程序示例
; 定义通用寄存器
R_0 == 0
; 间接寻址寄存器
PSW == 3
; 状态寄存器
PORT5 == 5
PORT6 == 6
RA== 0XA
; 唤醒控制寄存器
RF== 0XF
; 中断状态寄存器
; 定义控制寄存器
IOC50 == 0X5
; Port 5 控制寄存器
IOC60 == 0X6
; Port 6 控制寄存器
C_INT == 0XF
; 中断控制寄存器
;ADC Control Registers
ADDATAH == 0x8
ADDATAL == 0x9
版本号(V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
; 内容为 AD 转换结果
; 内容为 AD 转换结果
• 63
EM78F564N/F664N
8位微控制器
AISR == 0x05
ADCON == 0x6
ADOC == 0x07
; ADC 输入选择寄存器
;7 6 5 4 3 2 1 0
(VREFS)(CKR1:0)(ADRUN)(ADPD)(ADIS2:0)
; ADC 偏置校正寄存器
;To define bits
;In ADCON
ADRUN == 0x4
ADPD == 0x3
; 此位置位则 ADC 开始执行
; ADC 电源
ORG 0
JMP INITIAL
ORG 0x30
; 初始地址
(User’s program)
; 由用户决定
BANK
CLR RF
BANK
BS
ADCON
RETI
INITIAL:
BANK
MOV A
MOV AISR
MOV A
MOV
ADCON
MOV A
MOV ADOC
En_ADC:
MOV A
IOW IOCR6
BANK
MOV A
MOV RA
MOV A
IOW C_INT
ENI
BANK
BS ADCON
SLEP
POLLING:
64 •
; 中断向量
0
; 清 ADIF 位
2
, ADRUN
2
, @0B00000001
,A
, @0B00001000
; 如果需要则 AD 开始下一次转换
; 定义 P60 作为模拟输入
; 选择 P60 模拟输入通道,打开 AD 电源
,A
; 定义 P60 作为输入引脚且时钟频率为 fosc/4
, @0B00000000
,A
; 禁止校正
, @0BXXXXXXX1
; 定义 P60 作为输入引脚,其它的根据应用
0
, @0BXX1XXXXX
,A
, @0BX1XXXXXX
; 使能 ADC 的 ADWE 唤醒功能
“X” 根据应用
; 使能 ADC 的中断功能, “X” 根据应用
; 使能中断功能
2
, ADRUN
; 开始运行 ADC
; 如果使用中断功能,以下三行可以忽略
; 进入休眠模式
版本号 (V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
EM78F564N/F664N
8位微控制器
JBC
, ADRUN
ADCON
JMP POLLING
(User’s program)
; 持续检测 ADRUN 位
; ADRUN 位在 AD 转换完成时复位
; 从 ADDATAH/L 读 AD 的数据
6.9 双 PWM (脉宽调制)
6.9.1 概述
在 PWM 模式, PWMA 和 PWMB 引脚为 10 位分辨率的输出。(参考图 6-20 的功能方
框图). 一个 PWM 包括周期和占空比, 保持输出为高. PWM 的波特率是周期的倒数.
图 6-21 描述了周期和占空比的关系.
图 6-20 两个PWM的功能方框图
图 6-21 PWM输出时序
版本号(V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
• 65
EM78F564N/F664N
8位微控制器
6.9.2 定时器计数器的增量 (TMRX: TMRAH/L或 TMRBH/L)
TMRX 是 10-位时钟计数器,分频比可编程。它们是为 PWM 模块的波特率时钟产生器
设计的。 TMRX 只可以被读. 如果使用,它们可以通过设置[R5<7> Bank 3]的 TAEN 位
或 [R5<3> Bank 3] 的 TBEN 位为 0 来关闭它们以节省耗电量。
6.9.3 PWM 周期 (PRDX : PRDA或 PRDB)
PWM 的周期是写 PRDX 寄存器来定义的. 当 TMRX 和 PRDX 相同时,在下一个加周期
将发生以下事件:
(1) TMRX 被清 0.
(2) PWMX 引脚为 1.
(3) PWM 占空比是从 DTA/DTB 加载到 DLA/DLB.
注意
如果占空比为 0,PWM输出不会置1.
(4) PWMXIF 置为 1
以下公式描述了如何计算 PWM 的周期:
 1 
周期 = (PRDX + 1) × 
 × (TMRX 分频比)
 Fosc 
例如:
PRDX = 49;
Fosc = 4 MHz
TMRX (0, 0, 0) = 1 : 2,
则
 1 
周期 = (49 + 1) × 
 × 2 = 25 µs
 4M 
6.9.4 PWM 占空比 (DTX: DTA 或DTB)
PWM 占空比通过写寄存器 DTX 定义, 当 TMRX 清 0 时占空比从 DTX 锁存到 DLX。当
DLX 与 TMRX 相等时, PWMX 引脚被清 0。 DTX 在任何时候都可以被载入。然而,
它不能被锁存到 DLX,直到 PRDX 的当前值与 TMRX 值相等
如下公式描述了如何计算 PWM 占空比:
:
 1
占空比 = (DTX ) × 
 FOSC
66 •

 × (TMRX 分频比)

版本号 (V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
EM78F564N/F664N
8位微控制器
例如:
DTX = 10;
Fosc = 4 MHz;
TMRX (0, 0, 0) = 1 : 2,
则
 1
占空比 = (10 )× 
 4M

 × 2 = 5 µs

6.9.5 比较器 X
当匹配发生,输出状态将发生改变同时 PWMXIF 标志位置位。
6.9.6 PWM编程过程/步骤
(1) 向 PRDX 寄存器加载 PWM 周期
(2) 向 DTX 寄存器加载 PWM 占空比。
(3) 如果需要,通过写 IOCF 使能中断功能。
(4) 通过写适当的值给 Bank 3 R7,设置 PWMX 为输出
(5) 写入一个适当的值给 Bank 3 R5 设定 TMRX 预分频比并使能 TMRX 和 PWM
6.9.7 定时器模式
6.9.7.1
概述
定时器X :定时器 A(TMRA), 定时器B (TMRB)是各自带有可编程分频比的10位时钟计
数器。它们被设计用来做为PWM模块的波特率时钟发生器。TMRX是只读的。当进入
休眠模式并且AD转换不运行时,定时器A, 定时器B将停止运行。 但是, 当进入休眠模
式时AD转换正在运行,定时器A, 定时器B将仍然保持运行。
6.9.7.2
功能描述
图 6-22 描述了 TMRX 功能框图. 每个信号和模块描述如下
版本号(V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
• 67
EM78F564N/F664N
8位微控制器
图 6-22 TMRX功能框图
Fosc: 内部时钟
分频比 (TAP2, TAP1 和 TAP0 / TBP2, TBP1 和 TBP0): 分频比 1:2, 1:4, 1:8, 1:16,
1:32, 1:64, 1:128, 和 1:256 由 TMRX 定义. 当任何一种复位发生时清 0.
TMRAX 和 TMRBX (TMRAH/TMRAL 和 TMRBH/TMRBL: 定时器 X 寄存器; TMRX 加
1 直到与 PRDX 匹配, 然后复位为 1 (默认值).
PRDX (PRDA 和 PRDB): PWM 周期寄存器
Comparator X (Comparator A 和 Comparator B): 当匹配发生时 TMRX 复位. 同时
PWMXIF 置位.
6.9.7.3
编程相关寄存器
当定义 TMRX 时, 请参考相关的工作寄存器, 如下表 6.9.7-1 所示.要注意如果相关的
TMRX 要使用, PWMX 位必须禁止. 也就是, Bank 3 R7 寄存器的 Bit 1: Bit 0 必须置为
‘0’.
表 6.9.7.1 TMRA和 TMRB相关控制寄存器
地址
R5 Bank 3
68 •
名称
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
定时器 A 和定时器 B
TAEN TAP2 TAP1 TAP0 TBEN TBP2 TBP1 TBP0
控制寄存器
版本号 (V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
EM78F564N/F664N
8位微控制器
6.9.7.4
定时器编程过程/步骤
(1) 向 PRDX 载入定时时间。
(2) 如果需要,写 IOCF 使能中断功能
(3) 通过设置 PWMCON 和 TMRCON,载入适当的 TMRX 分频比值,使能 TMRX,
禁止 PWMX 。
6.10 定时/计数器 1
图 6-23 定时/计数器 1配置
定时器模式下,加计数是以内部时钟实现的。当加计数内容与 TCR1DA 相匹配时,中
断发生,计数器被清零。在计数器清零后加计数继续。加计数器的当前值被加载到
TCR1DB 通过设置 TC1CAP 为 “1”,且 TC1CAP 在捕捉后自动清零。
计数器模式下,加计数是以外部时钟输入引脚(TC1 引脚)实现的,上升沿或下降沿可通
过设置 TC1ES 位来选择,但是不可同时使用两个边沿。当加计数器内容与 TCR1DA
相匹配时,中断发生,计数器被清零。在计数器清零后加计数继续。加计数器的当前
值被加载到 TCR1DB 通过设置 TC1CAP 为 “1”,且 TC1CAP 在捕捉后自动清零。
捕捉模式下,TC1 输入引脚的脉冲宽度,周期和占空比在此模式下测量,可用于解码
遥控器信号。计数器是由内部时钟独立运行的。在 TC1 输入引脚的上升沿(下降沿),
计数器的内容被加载到 TCR1DA, 然后计数器清零且产生中断。在 TC1 输入引脚的上
升沿(下降沿),计数器的内容被加载到 TCR1DB。计数器继续计数,在 TC1 输入引脚
的下一个上升沿,计数器的内容被加载到 TCR1DA ,然后计数器清零且再次产生中
断,如果在检测到边沿前就溢出,将加载 FFH 到 TCR1DA 且产生溢出中断.在中断过程
版本号(V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
• 69
EM78F564N/F664N
8位微控制器
中,可通过检测 TCR1DA 的值是否为 FFH 来决定是否有溢出。在中断(捕捉 TCR1DA
或溢出检测)产生之后,直到读出 TCR1DA,捕捉和溢出才暂停。
图 6-24 捕捉模式时序图
6.11 定时器/计数器 2
图 6-25 定时器/计数器 2配置
定时器模式下,加计数是以内部时钟实现的,当加计数器内容与 TCR2
(TCR2H+TCR2L)相匹配时,中断发生,计数器被清零。在计数器清零后加计数重新计
数。
70 •
版本号 (V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
EM78F564N/F664N
8位微控制器
图 6-26 定时器模式时序图
计数器模式下,加计数时以外部时钟输入引脚 (TC2 引脚)实现的。上升沿或下降沿可
通过设置 TC2ES 位来选择. 当加计数器内容与 TCR2 (TCR2H+TCR2L)相匹配时,中
断发生,计数器被清零。在计数器清零后加计数重新开始。
图6-27 计数器模式时序图
窗口模式下,内部时钟和 TC2 引脚的脉冲(窗口脉冲)逻辑与后,在脉冲的上升沿加
计数器加 1,当加计数器内容与 TCR2 (TCR2H+TCR2L)相匹配时,中断发生,计数器
被清零。(窗口脉冲)频率必须低于所选内部时钟。
写 TCR2L 时,比对被禁止直到 TCR2H 被写入
版本号(V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
• 71
EM78F564N/F664N
8位微控制器
图 6-28 窗口模式时序图
6.12 定时器/计数器3
图 6-29 定时器/计数器3 配置
定时器模式下,加计数是以内部时钟(上升沿触发)实现的,当加计数器内容与 TCR3
相匹配时,中断发生,计数器被清零。在计数器清零后加计数重新开始。
计数器模式下,加计数时以外部时钟输入引脚 (TC3 引脚)实现的。. 当加计数器内容与
TCR3 相匹配时,中断发生,计数器被清零。在计数器清零后加计数重新开始。
可编程分频器输出(PDO)模式下, 加计数是以内部时钟实现的,TCR3 的内容与加计
数器的内容作比较,每次匹配时 F/F 输出反相,计数器清零。F/F 输出取反并输出到
/PDO 引脚。该模式可产生 50%占空比的脉冲输出。F/F 可被程序初始化,复位时初始
值为“0”,每次/PDO 输出被反相时产生 TC3 中断。
72 •
版本号 (V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
EM78F564N/F664N
8位微控制器
图 6-30 PDO模式时序图
脉宽调制(PWM)输出模式下,加计数器是以内部时钟实现的。TCR3 的内容与加计数
器的内容作比较,每次匹配时 F/F 输出取反。计数器仍在计数,当计数器溢出时,F/F
又被取反,计数器清零。F/F 输出反相并输出到/PWM 引脚。每次溢出时产生 TC3 中
断。TCR3 被设置成 2 级移位寄存器,输出期间,不会改变直到一个输出周期完成,即
使 TCR3 被重写。因此,输出能连续地被改变,在数据载入 TCR3 后,通过置 TC3S
位为 1,TRC3 第一次被移位。
图 6-31 PWM 模式时序图
版本号(V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
• 73
EM78F564N/F664N
8位微控制器
6.13 比较器
EM78Fx64N 有两个比较器, 比较器有两个模拟输入和一个输出. 比较器可以用于从休
眠模式唤醒. 图 6-32 是比较器的电路图
图 6-32 比较器工作模式
6.13.1 外部参考信号
Cin–引脚的电压与 Cin+的电压进行比较,结果由比较器的 CO 引脚输出,数字输出结
果可参考如下注意事项进行调整:
„
参考电压范围必须在 Vss 和 Vdd 之间..
„
参考电压值可被引脚或者比较器使用.
„
阈值 探测器可能采用相同的参考电压值.
„
比较器可以根据相同或者不同的参考电压源工作..
6.13.2 比较器输出
„
比较器结果保存在寄存器 Bank 3 R7 寄存器的第四位 CPOUT2.
„
可编程 Bank 3 R7 寄存器的 Bit 3<COS21, COS20>, Bit 2 设定比较器的输出为
CO2 (P80) 。
„
74 •
图 6-33 为比较器输出方框图。
版本号 (V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
EM78F564N/F664N
8位微控制器
图6-33 比较器输出配置
6.13.3 中断
„
CMP2IE (IOCE.7)必须使能,且必须执行 “ENI” 指令
„
当比较器输出引脚信号任何时候产生改变都会触发中断。
„
引脚的实际改变可通过读取 Bank 3R7 的 CPOUT2 位获知
„
CMP2IF (RF.7 Bank 1),比较器中断标志, 仅可由软件清零.
6.13.4 从休眠模式唤醒
„
若使能,即使是在休眠模式,比较器仍将保持运行并具有中断功能
„
如果产生非匹配,中断将使器件从休眠模式唤醒
„
为节省能源,需要考虑到功耗因素。
„
如果在休眠模式下不使用此功能,则在进入休眠模式前必须关闭比较器
6.14 UART
UART 是一个通信协议, 控制如下:
6.14.1 Bank 2 RA URC1 (UART 控制寄存器1)
Bit 7
URTD8
Bit 6
Bit 5
UMODE1 UMODE0
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
BRATE2
BRATE1
BRATE0
UTBE
TXE
Bit 7 (URTD8): 发送数据的 第8位.
版本号(V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
• 75
EM78F564N/F664N
8位微控制器
Bits 6 ~ 5 (UMODE1 ~ UMODE0): UART 模式.
UMODE1
UMODE0
UART 模式
0
0
模式 1: 7-bit
0
1
模式 1: 8-bit
1
0
模式 1: 9-bit
1
1
保留
Bits 4 ~ 2 (BRATE2 ~ BRATE0): 发送波特率选择.
BRATE2
0
0
BRATE1
0
0
BRATE0
0
1
波特率
Fc/13
Fc/26
4 MHz
19200
9600
8 MHz
38400
19200
0
0
1
1
0
1
Fc/52
Fc/104
4800
2400
9600
4800
1
1
0
0
0
1
Fc/208
Fc/416
1200
600
2400
1200
1
1
1
1
0
1
TC3
−
保留
−
Bit 1 (UTBE): UART发送缓存区为空的标志位. 当发送缓存区空时置1. 当URTD写入
数据时清0. UTBE 位在使能发送时会由硬件清0. UTBE位是只读的. 因
此, 当我们要移位发送数据时就必须给URTD寄存器写入数据。
Bit 0 (TXE): 使能发送
0: 禁止
1: 使能
6.14.2 Bank 2 RB URC2 (UART控制寄存器 2)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
-
-
SBIM1
SBIM0
UINVEN
-
-
-
Bits 7 ~ 6: 未使用, 始终置为”0”
Bit 5 ~ Bit 4 (SBIM1 ~ SBIM0): 串行总线接口模式选择.
SBIM1
0
0
1
1
SBIM0
0
1
0
1
工作模式
I/O 模式
SPI 模式
UART 模式
保留
Bit 3 (UNIVEN):使能UART TXD 和RXD 口反相输出
0: 禁止 TXD 和 RXD 口反相输出
1: 使能 TXD 和 RXD 口反相输出
Bits 2 ~ 0: 未使用, 始终置为”0”
6.14.3 Bank 2 RC URS (UART状态寄存器)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
URRD8
EVEN
PRE
PRERR
OVERR
FMERR
URBF
RXE
Bit 7 (URRD8): 接收数据的 第 8位
76 •
版本号 (V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
EM78F564N/F664N
8位微控制器
Bit 6 (EVEN): 选择奇偶校验
0: 奇校验
1: 偶校验
Bit 5 (PRE): 使能校验
0: 禁止
1: 使能
Bit 4 (PRERR): 奇偶校验错误标志. 当校验错误时置为1.
Bit 3 (OVERR): 数据覆盖错误标志位.当数据覆盖错误产生时置1,.
Bit 2 (FMERR): 帧错误标志位.当帧错误产生时置1,
注意
中断标志自动由硬件置1,由软件清零.
Bit 1 (URBF): UART 读缓冲区为满标志位. 当接收到一个字符后置 1.读取 URS 寄存器
后自动清零。使能接收后 URBF 由硬件自动清零。URBF 位仅可读。因
此,为避免发生数据覆盖错误,有必要读 URS 寄存器。
Bit 0 (RXE): 接收使能
0: 禁止接收
1: 使能接收
6.14.4 Bank 2 RD URRD (UART_RD数据缓存)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
URRD7
URRD6
URRD5
URRD4
URRD3
URRD2
URRD1
URRD0
Bits 7 ~ 0 (URRD7 ~ URRD0): UART 接收数据缓冲器.仅可读.
6.14.5 Bank 2 RE URTD (UART_TD 数据缓存)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
URTD7
URTD6
URTD5
URTD4
URTD3
URTD2
URTD1
URTD0
Bits 7 ~ 0 (URTD7 ~ URTD0): UART 发送数据缓冲器.仅可写.
版本号(V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
• 77
EM78F564N/F664N
8位微控制器
图 6-34 UART 功能方框图
在通用异步接收发送(UART)模式下,每个字符的发送或接收由帧的起始位和停止位
来同步。
UART 可以实现全双工数据传输因为它有独立的发送和接收部件。为两个部件配置的双
缓冲器允许 UART 被编程实现连续传输数据。
下图所示为发送或接收一个字符的一般格式, 通讯通道通常会保持在一个特定的状态(高
电平). 发送或接收字符开始于一个间隔状态(低电平)的跳变.
发送或接收的第一位为起始位(低电平), 紧跟其后的是数据位, 这样最低位(LSB)便先形
成了, 紧跟在数据位后的为奇偶位,然后出现停止位或多位(高电平) , 那么可以确定一
帧的结束.
图 6-35 UART的数据格式
在接收中, UART 同步于起始位的下降沿. 在三个采样期间, 当两或三个”0”被侦测到后,
即认为是普通的起始位, 接收运作启动.
78 •
版本号 (V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
EM78F564N/F664N
8位微控制器
6.14.6 UART Mode
UMODE
模式 1
模式 2
模式 3
1
PRE
2
3
4
5
6
7
8
9
10
11
0
0
0
起始位
7 位数据
停止位
0
0
1
起始位
7 位数据
校验位 停止位
0
1
0
起始位
8 位数据
停止位
0
1
1
起始位
8 位数据
校验位停止位
1
0
X
起始位
9 位数据
停止位
图 6-36 UART模式
有三种 UART 模式。模式 1(7 位数据)、模式 2(8 位数据)允许增加一个奇偶校验
位,模式 3 中奇偶校验位无效。. 图 6-36 显示了各个模式的数据格式
6.14.7 发送
在发送串行数据时,UART 操作如下
1. 置 URC1 寄存器 TXE 位来使能 UART 发送功能.
2. 写数据到 URTD 寄存器,URCR1 寄存器的 UTBE 位将由硬件置位。 然后发送数据
3. 串行发送数据在 TX 引脚上遵循以下顺序.
(a) 起始位: 输出一位”0”..
(b) 发送数据: 7, 8或 9个位的数据从 LSB 到MSB发送.
(c) 校验位: 输出一位校验位(选择奇或偶校验)..
(d) 停止位: 输出一位”1”(停止位)..
(e) 符号位: 持续输出”1”直到下一个数据传输起始位的到来..
4. 传输完停止位后, UART 产生 TBEF 中断(如果使能)
6.14.8 接收
在接收模式下, UART 操作如下:..
1. 置 URS 寄存器 RXE 位来使能 UART 接收功能.当侦测到起始位后, UART 监测 RX
引脚并 内部同步
2. 接收到的数据按从低位(LSB)到高位(MSB)顺序移入 URRD 寄存器..
3. 接收奇偶位与停止位.
一个字符接收完毕, UART 产生一个 RBFF 中断(如果使能), URS 寄存器的 URBF
位将被置 1.
4. UART 做如下检测:
版本号(V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
• 79
EM78F564N/F664N
8位微控制器
(a) 奇偶校验: 接收到的数据的数字”1”须与URS寄存器的EVEN位的奇偶校验的设
置相匹配
(b) 帧校验: 起始位须为 0, 停止位须为 1.
(c) 覆盖校验:在下一个接收数据载入URRD寄存器之前,URS寄存器的URBF位
必须清零(就是说URRD寄存器应该被读出)。
如果任一校验失败,就产生 UERRIF 中断(若使能),PRERR、OVERR 或
RMERR 位表示相应的错误标志。这些错误标志必须由软件清零,否则在接收下一
个字节时又会产生中断。
5. 从 URRD 寄存器读取接收数据,URBF 位将由硬件清零。
6.14.9 波特率发生器
波特率发生器有一产生时钟脉冲的电路构成用以定义 UART 发送/接收的传输速度。
URCR1 寄存器的 BRATE2~BRATE0 位可设定想要的波特率.
注意:
1. P52/RX/SI 引脚优先级
P52/RX/SI 引脚优先级
高
中
低
SI
RX
P52
2. P51/TX/SO 引脚优先级
P51/TX/SO 引脚优先级
高
中
低
SO
TX
P51
6.15 SPI
6.15.1 概述和特性
概述:
图 6-37, 6-38 and 6-39 显示了 EM78Fx64N 通过 SPI 模式与其它设备的通信 若
EM78Fx64N 作主设备,, 它通过 SCK 引脚发送时钟脉冲.一对 8 位数据同时发送和接收
若 EM78Fx64N 作从设备, 它的 SCK 引脚可以被编程为输入引脚. 数据将在时钟频率
和选择的边沿寄出上持续的传送.用户也可通过设置 SPIS Bit 7 (DORD) 决定 SPI 的发
送顺序, 在串行数据输出状态和 SPIS Bit 6 (TD1), Bit 5 (TD0) 决定 SO 引脚的输出状态
延时时间后 SPIC Bit 3 (SDOC)控制 SO 引脚.
特性:
80 •
„
可工作在主或从模式
„
3 线或 4 线全双工同步通信
„
通信的波特率可编程
„
可编程时钟极性, (Bank 1 0x0C CES bit)
版本号 (V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
EM78F564N/F664N
8位微控制器
„
读缓存满置中断标志
„
SPI 传送顺序
„
在串行数据输出后 SO 状态可选择
„
SO 状态输出延时时间
„
SPI 握手协议引脚
„
高达 8 MHz (最大) 位频率
图 6-37 SPI 主设备/从设备通信
图 6-38 单个主设备和多个从设备SPI通信
版本号(V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
• 81
EM78F564N/F664N
8位微控制器
图 6-39 单个主设备和多个从设备SPI通信
6.15.2
SPI功能描述
图 6-40 SPI 功能结构图
82 •
版本号 (V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
EM78F564N/F664N
8位微控制器
图 6-41 SPI 发送功能结构图
下面介绍每个模块的功能以及说明 SPI 是如何通过图 6-40 和图 6-41 所示信号进行通
信的
„
P52 / SI : 串行数据输入
„
P51 / SO : 串行数据输出
„
P53 / SCK : 串行时钟
„
P50 / /SS : 从机选择. 此引脚(/SS)在从机模式用
„
RBF: 由缓存满检测器置位, 由硬件复位.
„
缓存填满检测:8-位数据传输完成后置“1”
„
SSE: 将数据载入 SPIS 寄存器,并开始传输
„
SPIS 寄存器: 数据移入和移出。最高有效位(MSB)首先移位。SPIR 和 SPIW 寄
存器被同时移位。一旦数据被写入,SPIS 开始发送 / 接收。当 8 位数据移位完,
被接收到的数据会移入到 SPIR 寄存器。 RBF (读缓存满)标志和 SPIIF (SPI 中断)
标志位置“1”。
„
SPIRB 寄存器 : 读缓存器. 当 8 位数据移位完后,缓存器被更新。其数据需在下次
接收完成前被读取。在读取 SPIRB 寄存器时,RBF 标志位清零
„
SPIWB 寄存器.: 写缓存器。直到 8 位数据移位完成后,才可以对缓存器进行写操
作。
如果通信正在进行,SSE 位保持为“1”,移位完成后,此标志位必须清零。这样,用户
可判定下一次写操作是否有效。.
„
SBRS2~SBRS0 : 编程控制时钟的频率/比率和时钟源
„
时钟选择 : 可选择内部或外部时钟作为移位时钟。
„
边沿选择 : 编程 CES 位,可以选择合适的时钟沿。
版本号(V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
• 83
EM78F564N/F664N
8位微控制器
6.15.3 SPI信号和引脚描述
关于图 6-40 中 SDI, SDO, SCK, 和 /SS 四个引脚的详细功能描述如下:
SI/P52
„
串行数据输入
„
顺序接收, 最高有效位(MSB)最先,最低有效位(LSB)最后接收
„
若未选择,定义为高阻态
„
编程设置相同时钟率和时钟边沿以同时锁定主设备和从设备。
„
接收字节将更新发送字节。
„
SPI 传输完成,RBF 和 SPIIF (在 Bank 1 的寄存器 0x0B 和 Bank 0 的 0x0F)将被
置“1”
„
时序如图 6-42 和 6-43.示
SO/P51
„
串行数据输出
„
顺序发送,最高有效位(MSB)最先,最低有效位(LSB)最后。
„
编程设置相同时钟率和时钟边沿以同时锁定主设备和从设备。
„
接收字节将更新发送字节
„
当 SPI 操作结束后 CES(寄存器 0x0c)位将被清零。
„
时序如图 6-42 和 6-43.示
SCK/P53
„
串行时钟
„
由主设备产生
„
同步 SDI 和 SDO 引脚的数据通信
„
CES 位(在 0X0C 寄存器中)选择通信时钟的边沿
„
The SBRS2~SBRS0 (located in Register 0x0C) (在 0X0C 寄存器中)设定通信时钟
的波特率
„
CES, SBRS2, SBRS1, 和 SBRS0 位在从模式下无效
„
时序如图 6-42 和 6-43 示
/SS/P50
„
从模式选择 : 低电平有效
„
主设备产生控制信号通知从设备接收数据
„
在第一个 SCK 出现前,置低电平,并保持在低电平直到最后一个(第八个)周期
完成
84 •
版本号 (V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
EM78F564N/F664N
8位微控制器
„
当 /SS 为高电平时,忽略 SDI 和 SDO 引脚上的数据,因为 SDO 不再被驱动。
„
时序如图 6-42 和 6-43 示
6.15.4 编程相关寄存器
若定义, SPI 模式,相关寄存器如表 6.15.4-1 和表 6.15.4-2.
表 6.15.4-1 SPI模式相关控制寄存器
Bit 7
Bit 6
Bit 5
Bit 4
Bank 1 0x0C *SPIC/RC CES
SPIE
SRO
SSE
ADIE
SPIIE PWMBIE PWMAIE EXIE
地址
0x0F
名称
IOCF
−
Bit 3
Bit 2
Bit 1
Bit 0
SDOC SBRS2 SBRS1 SBRS0
ICIE
TCIE
*SPIC: SPI 控制寄存器
Bit 7 (CES): 时钟边沿选择位
0: 数据在上升沿移出,在下降沿移入。数据在低电平保持
1: 数据在下降沿移出,在上升沿移入。数据在高电平保持
Bit 6 (SPIE): SPI使能位
0: 禁止SPI模式
1: 使能SPI模式
Bit 5 (SRO): SPI 读溢出位
0: 未发生溢出
1: 当接收到一个新数据而先前数据仍然保存在SPIB寄存器时,SPIS寄存
器中的数据将被破坏。为避免设置此位,用户必须读取SPIRB寄存
器,尽管此时只是在执行发送。
这种情况只会发生在从模式。
Bit 4 (SSE): SPI 移位使能位
0: 一旦移位完成即复位,并且下一个字节准备移位。
1: 开始移位,在当前字节仍在传送时保持在“1”
„
此位在每发送一个字节时都由硬件复位为0.
Bit 3 (SDOC): SDO 输出状态控制位
0: 串行数据输出后,SDO保留为高。
1: 串行数据输出后,SDO保留为低。
版本号(V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
• 85
EM78F564N/F664N
8位微控制器
Bit 2 ~ Bit 0 (SBRS2 ~ SBRS0): SPI 波特率选择位
SBRS2 (Bit 2)
SBRS1 (Bit 1)
SBRS0 (Bit 0)
模式
0
0
0
主设备
Fosc/2
0
0
1
主设备
Fosc/4
0
1
0
主设备
Fosc/8
0
1
1
主设备
Fosc/16
1
0
0
主设备
Fosc/32
1
0
1
主设备
Fosc/64
1
1
0
从设备
/SS 使能
1
1
1
从设备
/SS 禁止
波特率
IOCF: 中断屏蔽寄存器
Bit 7: 未使用, 始终置为”0”
Bit 6 (ADIE): ADIF 中断使能位
0: 禁止 ADIF 中断
1: 使能ADIF 中断
当 ADC 完成状态用于进入中断向量或进入下一条指令, ADIE 位必须置为“使能“.
Bit 5 (SPIIE): SPIIF 中断使能位
0: 禁止SPIIF 中断
1:使能SPIIF 中断
Bit 4 (PWMBIE): PWMBIF 中断 使能位t
0: 禁止 PWMBIF 中断
1: 使能 PWMBIF 中断
Bit 3 (PWMAIE): PWMAIF 中断 使能位
0: 禁止 PWMAIF 中断
1: 使能 PWMAIF 中断
Bit 2 (EXIE): EXIF 中断 使能位
0: 禁止EXIF 中断
1: 使能 EXIF 中断
Bit 1 (ICIE): ICIF 中断 使能位
0: 禁止 ICIF 中断
1: 使能ICIF 中断
Bit 0 (TCIE): TCIF 中断使能位
0: 禁止TCIF 中断
1: 使能 TCIF 中断
86 •
版本号 (V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
EM78F564N/F664N
8位微控制器
表 6-15-4-2 SPI模式的相关状态/数据寄存器
地址
名称
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
Bank 1 0×0B
SPIS/RB
DORD
TD1
TD0
-
OD3
OD4
-
RBF
SRB7
SRB6
SRB5
SRB4
SRB3
SRB2
SRB1
SRB0
Bank 1 0×0D SPIRB/RD
Bank 1 0×0E SPIWB/RE SWB7 SWB6 SWB5 SWB4 SWB3 SWB2 SWB1 SWB0
SPIS: SPI 状态寄存器
Bit 7 (DORD): 读缓存满中断标志
0: 左移 (MSB首先移位)
1: 右移(LSB首先移位)
Bit 6 ~ Bit 5 (TD1 ~ TD0): SDO 状态输出延迟时间选择位
TD1
TD0
延时时间
0
0
8 CLK
0
1
16 CLK
1
0
24 CLK
1
1
32 CLK
Bit 4: 未使用, 始终置为”0”
Bit 3 (OD3): 漏极开路控制位(P51)
0: SO 引脚漏极开路禁止
1: SO引脚漏极开路使能
Bit 2 (OD4): 漏极开路控制位(P53)
0: SCK引脚漏极开路禁止
1: SCK 引脚漏极开路使能
Bit 1: 未使用, 始终置为”0”
Bit 0 (RBF): 读缓存满标志位
0: 接收未完成, SPIB为空
1: 接收完成, SPIB满
SPIRB: SPI 读缓存. 一旦串行数据接收完成,将会从SPISR加载到SPIRB. RBF 位和
SPIIF位。
SPIWB: SPI 写缓存。 加载发送数据时, 当检测到SCK边沿且SSE为 “1”时SPIS 寄存
器停止且开始移位数据.
版本号(V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
• 87
EM78F564N/F664N
8位微控制器
6.15.5 SPI 模式时序
图 6-42 SPI 模式 /SS禁止
SCK 的边沿通过设置 CES 来选择. 图 6-42 的波形适用于 EM78FX64N 为主设备或从
设备, /SS 禁止. ,图 6-43 的波形只适用于从设备模式, /SS 使能.
图 6-43 SPI 模式 /SS使能
88 •
版本号 (V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
EM78F564N/F664N
8位微控制器
6.15.6 SPI软件应用
SPI范例:(未使用中断)
作为主设备
ORG 0X0
SETTING:
BANK
0
MOV A
, @0B00000000
MOV 0x05
,A
MOV A
, @0B00000100
; SDI 输入, SDO, SCK 输出
IOW 0x05
BANK
2
MOV A
, @0B00010000
MOV 0x0B
,A
BANK
1
MOV A
, @0B01000000
MOV 0x0C
,A
MOV A
, @0B00000000
MOV 0x0B
,A
; 选择 SPI 模式
; 使能 SPI, 主设备 波特率 = Fosc/2
; 左移(最高位首先移位)
START:
BANK
1
MOV A
, @0XAA
MOV 0X0E
,A
BS 0X0C
,4
; 开始移位SPI 数据
JBC 0X0C
,4
; 轮询检查SPI发送是否完成
; 写0XAA 给 SPI写缓存
JMP $-1
JMP START
版本号(V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
; 再次发送数据.
• 89
EM78F564N/F664N
8位微控制器
SPI范例:(未使用中断)
For Slave
ORG 0X0
SETTING:
BANK
0
MOV A
, @0B00000000
MOV 0x05
,A
MOV A
, @0B00000100
; SDI 输入,SDO, SCK
; 输出
IOW 0x05
BANK
2
MOV A
, @0B00010000
MOV 0x0B
,A
BANK
1
MOV A
, @0B01000111
; 选择SPI模式
; 使能 SPI, 从设备
; 且 /SS 禁止
MOV 0x0C
MOV A
, @0B00000000
MOV 0x0B
,A
START:
BANK
BS 0X0C
JBS 0X0B
JMP $-1
MOV A
MOV 0X10
JBC 0X0B
JMP $-1
JMP START
90 •
,A
1
,4
,0
, 0X0D
,A
,0
; 左移(最高位首先移位)
;开始接收 SPI数据
; 轮询检查SPI接收是否完成
; 读SPI 缓存 且将0x10写给SRAM
; 轮询检查SPI缓存是否被读
;再次接收数据.
版本号 (V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
EM78F564N/F664N
8位微控制器
6.16 振荡器
6.16.1 振荡模式
EM78FX64N 可工作在四种不同的振荡模式下,即内部 RC 振荡模式(IRC),外部 RC
振荡模式(ERC)、高频晶振模式 (HXT)、低频晶振模式(LXT)。可通过代码选项寄存器
的 OSC2, OCS1, OSC0 位选择其中一种模式,表 6-16-1 描述了如何定义这四种振荡
模式的。表 6-16-1 列出了晶体/谐振器在不同的 VDD 下最高工作频率:
表 6-16-1 由OSC2 ~ OSC0定义的四种振荡模式
OSC2
OSC1
OSC0
XT (晶体振荡模式)
0
0
0
HXT (高频晶振振荡模式)
0
0
1
LXT1 (低频晶振 1 模式)
0
1
0
LXT2 (低频晶振 2 模式)
IRC (内部RC振荡模式);
P55, P54 作为 I/O 引脚
0
1
1
1
0
0
IRC (内部 RC 振荡模式);
P55 作为 I/O 引脚
P54 作为 RCOUT 引脚
1
0
1
ERC (外部 RC 振荡模式);
P55 作为 ERCin 引脚
P54 作为 I/O 引脚
1
1
0
ERC (外部 RC 振荡模式);
P55 作为 ERCin 引脚
P54 作为 RCOUT 且开漏
1
1
1
模式
在 LXT2, LXT1, XT, HXT 和 ERC 模式, OSCI 和 OSCO 被使用, 它们不能作为通用 I/O
引脚.
在 IRC 模式, P55 用作 I/O 引脚.
注意
1. HXT模式的频率范围是16 MHz ~ 6 MHz.
2. XT模式的频率范围是6 MHz ~ 1 MHz.
3. LXT1模式的频率范围是1 MHz ~ 100kHz.
4. LXT2模式的频率范围是 32kHz.
表 6-16-2 最大工作频率总结
条件
2 个时钟周期
版本号(V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
VDD
最大频率 (MHz)
2.5
4.0
3.0
8.0
4.5
16.0
• 91
EM78F564N/F664N
8位微控制器
6.16.2 晶体振荡器/陶瓷谐振器 (晶体)
EM78Fx64N 可以由 OSCI 引脚的外部输入时钟驱动,如图 6-44 所示
图 6-44 外部时钟输入电路
大多数应用情况下, OSCI 引脚和 OSCO 引脚连接晶体或是陶瓷谐振器来产生振荡。图.
6-45 为电路图,同样适用于 HXT 模式和 LXT 模式。表 6-16-3 给出了 C1,C2 参考建
议值,因为每个谐振器都有自己的特性,用户应根据谐振器规格选择 C1,C2 的合适
值。对 AT 切片晶体和低频模式可能需要串联一个电阻 RS。
图 6-45 晶体/谐振器电路
92 •
版本号 (V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
EM78F564N/F664N
8位微控制器
表 6-16-3 晶体振荡或陶瓷谐振器电容值选择如下
振荡类型
频率模式
LXT1
(100K~1 MHz)
陶瓷振荡器
XT
(1M~6 MHz)
LXT2 (32.768kHz)
LXT1
(100K~1 MHz)
晶体振荡器
XT
(1~6 MHz)
HXT
(6~16 MHz)
频率
C1 (pF)
C2 (pF)
100kHz
200kHz
455kHz
1.0 MHz
1.0 MHz
2.0 MHz
4.0 MHz
45pF
20pF
20pF
20pF
25pF
20pF
20pF
45pF
20pF
20pF
20pF
25pF
20pF
20pF
32.768kHz
40pF
40pF
100kHz
200kHz
455kHz
1.0 MHz
455kHz
1.0 MHz
2.0 MHz
4.0 MHz
6.0 MHz
6.0 MHz
8.0 MHz
10.0 MHz
12.0 MHz
45pF
20pF
20pF
20pF
30pF
20pF
20pF
20pF
20pF
25pF
20pF
20pF
20pF
45pF
20pF
20pF
20pF
30pF
20pF
20pF
20pF
20pF
25pF
20pF
20pF
20pF
16.0 MHz
15pF
15pF
6.16.3 外部RC 振荡模式
在一些不需要计时很精确的地方,使用 RC 振荡(如右图 6-46)可节省成本,但是应当
注意到 RC 的振荡频率容易受电压,电阻值(Rext),电容值(Cext)甚至周围温度的影
响,而且由于制程的不同,不同的芯片频率也会有微小的差异。为了维持一个比较稳
定的系统频率,电容值 Cext 不应低于 20pF,电阻值 Rext 不应大于 1MΩ。如果不能
保证在这个范围,频率很容易受噪声,湿度,漏电流的影响。
在 RC 模式中,电阻 Rext 越小,频率越快。相对地,对于一个很小的 Rext 值,例如 1
KΩ,由于 NMOS 不能及时的释放电容电荷,所以振荡器振荡将变得不稳定。
基于以上原因,必须牢记的是操作电压、工作温度、RC 振荡器的元件、封装形式、
PCB 布线都会对系统的频率有影响。
版本号(V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
• 93
EM78F564N/F664N
8位微控制器
Vcc
Rext
ERCin
Cext
图 6-46 外部l RC振荡模式电路
表 6-16-4 RC 振荡频率
Cext
20 pF
100 pF
300 pF
Rext
Fosc 平均值 5V, 25°C
Fosc 平均值 3V, 25°C
3.3k
3.5 MHz
3.2 MHz
5.1k
2.5 MHz
2.3 MHz
10k
1.30 MHz
1.25 MHz
100k
140kHz
140kHz
3.3k
1.27 MHz
1.21 MHz
5.1k
850kHz
820kHz
10k
450kHz
450kHz
100k
48kHz
50kHz
3.3k
560kHz
540kHz
5.1k
370kHz
360kHz
10k
196kHz
192kHz
100k
20kHz
20kHz
1
注: : 测量值取自直插封装形式样品
2
: 值仅供设计参考
6.16.4 内部 RC振荡模式
EM78Fx64N 有一个通用的内部 RC 模式,默认频率是 4MHz。.内部振荡模式还有其他
频率 (16MHz, 8MHz, 和 455kHz) 可以通过代码选项(Word 1)RCM1, RCM0 设置。
这四种主频率可通过编程代码选项(Word 1)bits, C4~C0 来校正。
表 6-16-5 内部 RC 偏移率(Ta=25°C, VDD=5V ± 5%, VSS=0V)
偏移率
内部 RC
94 •
温度
(-40°C~85°C)
电压
(2.5V~5.5V)
制程
总计
4 MHz
± 3%
± 5%
± 2.5%
± 10.5%
16 MHz
± 3%
± 5%
± 2.5%
± 10.5%
8 MHz
± 3%
± 5%
± 2.5%
± 10.5%
455kHz
± 3%
± 5%
± 2.5%
± 10.5%
版本号 (V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
EM78F564N/F664N
8位微控制器
6.17 代码选项寄存器
EM78Fx64N 有一个代码选项字,它不属于普通程序存储空间的一部分。在通常的程序
中不能够访问。
代码选项寄存器和客户 ID 寄存器分配:
Word 0
Word 1
Word 2
Bit 12~Bit 0
Bit 12~Bit 0
Bit 12~Bit 0
6.17.1 代码选项寄存器(Word 0)
Word 0
Bit
Bit 12 Bit 11
Bit 10 Bit 9
Bit 8
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2 Bit 1 Bit 0
助记
符
–
NRHL
NRE
–
1
–
8/fc
禁止
–
High
High
使能
High High
High
使能
0
–
32/fc
使能
–
Low
Low
禁止
Low
Low
禁止
CLKS1 CLKS0 ENWDTB OSC2 OSC1 OSC0
Low
Protect
Bit 12: 未使用,始终置为”0”
Bit 11 (NRHL): 噪声抑制高低脉冲选择位,INT 引脚是个下降沿触发。
0: 脉冲宽度等于 32/fc 为有效信号(默认)
1: 脉冲宽度等于 8/fc 为有效信号
注意
噪声抑制功能在LXT2 和休眠模式是关闭的。
Bit 10 (NRE): 噪声抑制使能位. INT 引脚下降沿触发.
0: 使能噪声抑制 (默认). 在(LXT2) 模式下,噪声抑制电路是禁止的。
1: 禁止噪声抑制
Bit 9: 未使用,始终置为”1”
Bit 8 ~ Bit 7 (CLKS1 ~ CLKS0): 指令周期选择位
指令周期
CLKS1
CLKS0
4 个时钟周期 (默认)
0
0
2 个时钟周期
0
1
8 个时钟周期
1
0
16 个时钟周期
1
1
参考指令集.
Bit 6 (ENWDTB): 看门狗使能位
0: 禁止 (默认)
1: 使能
Bit 5 ~ Bit 3 (OSC2 ~ OSC0): 振荡模式选择位
版本号(V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
• 95
EM78F564N/F664N
8位微控制器
振荡模式由 OSC2 ~ OSC0 定义
OSC2
OSC1
OSC0
XT (晶体振荡模式) (默认)
0
0
0
HXT (高频晶振振荡模式)
0
0
1
LXT1 (低频晶振 1 模式)
0
1
0
LXT2 (低频晶振 2 模式)
IRC (内部RC振荡模式);
P55, P54 作为 I/O 引脚
0
1
1
1
0
0
IRC (内部 RC 振荡模式);
P55 作为 I/O 引脚
P54 作为 RCOUT 引脚
1
0
1
ERC (外部 RC 振荡模式);
P55 作为 ERCin 引脚
P54 作为 I/O 引脚
1
1
0
ERC (外部 RC 振荡模式);
P55 作为 ERCin 引脚
P54 作为 RCOUT 且开漏
1
1
1
模式
注意: 1. HXT的频率范围是16 MHz ~ 6 MHz.
2. f XT 的频率范围是6 MHz ~ 1 MHz.
3. LXT1的频率范围是 1 MHz ~ 100kHz.
4. LXT2的频率范围是 32kHz.
Bit 2 ~ Bit 0 (Protect): 保护位. 保护类型如下
Protect
保护
1
使能
0
禁止
6.17.2 代码选项寄存器(Word 1)
Word 1
Bit
Bit 12
Bit 11 Bit 10 Bit 9
助记符 COBS0 TCEN
Bit 8
Bit 7
Bit 6
Bit 5
Bit 4
–
–
C4
C3
C2
C1
C0
Bit 3
Bit 2
Bit 1
Bit 0
RCM1 RCM0 LVR1 LVR0
1
寄存器 r
TCC
–
–
High
High
High
High
High
High
High
High
High
0
选择
P77
–
–
Low
Low
Low
Low
Low
Low
Low
Low
Low
Bit 12 (COBS0): IRC 模式选择位
0: 由代码选择 IRC 频率(默认)
1: 由寄存器选择IRC 频率
Bit 11 (TCEN): TCC 使能位
0: P77/TCC 作为 P77 (默认)
1: P77/TCC 作为 TCC.
Bit 10:未使用, 始终置为”1”
Bit 9: 未使用, 始终置为”1”
Bit 8 ~ Bit 4 (C4 ~ C0): 内部 RC模式的频率校准位。. C4 ~ C0始终置为0 (自动校准)
96 •
版本号 (V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
EM78F564N/F664N
8位微控制器
Bit 3 ~ Bit 2 (RCM1 ~ RCM0): RC 模式选择位
RCM 1
RCM 0
*频率(MHz)
0
0
4 (默认)
0
1
16
1
0
8
1
1
455kHz
Bit 1 ~ Bit 0 (LVR1 ~ LVR0): 低电压复位使能位
LVR1
LVR0
Reset 电压
Release 电压
0
0
NA
NA
0
1
2.7V
2.9V
1
0
3.7V
3.9V
1
1
4.1V
4.3V
LVR1, LVR0=“0, 0” : LVR 禁止, EM78F664N 的上电复位电压为 2.0~2.2V(默认)
LVR1, LVR0=“0, 1” : 若 Vdd < 2.7V, EM78Fx64N 将会复位.
LVR1, LVR0=“1, 0” : 若 Vdd < 3.7V, EM78Fx64N 将会复位.
LVR1, LVR0=“1, 1” : 若 Vdd < 4.1V, EM78Fx64N 将会复位.
6.17.3 用户ID 寄存器(Word 2)
Word 2
Bit
Bit 12 Bit 11 Bit 10 Bit 9
助记符 SC3
Bit 8
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
SC2
SC1
SC0
–
–
–
–
ID4
ID3
ID2
ID1
ID0
1
High
High
High
High
–
–
–
–
High
High
High
High
High
0
Low
Low
Low
Low
–
–
–
–
Low
Low
Low
Low
Low
Bits 12 ~ 9 (SC3 ~ SC0): 副频校正位(WDT 频率, 自动校正)
Bit 8: 未使用, 始终置为”0”
Bit 7: 未使用, 始终置为”1”
Bits 6 ~ 5: 未使用, 始终置为”0”
Bits 4 ~ 0: 用户 ID 码.
6.18 上电探讨
在供电电压未达到稳定状态下,任何微控制器都不能保证正常工作。EM78Fx64N 内置
有一个上电电压检测器(PVOD),其检测电压范围为 2.0V 到 2.2V。电路省略了外部
复位电路,如果 vdd 上升时间足够快(50 ms 或更快),它将很好的工作。然而在要
求严格的应用中,有必要增加额外器件以辅助解决上电问题。
6.19 外部上电复位电路
图 6-47 描绘了一个由外部 RC 提供复位脉冲的复位电路 脉冲宽度(时间常数)应保持
足够长的时间使 VDD 达到最低工作电压。这个电路应用在电源电压上升时间比较慢的
情况。
版本号(V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
• 97
EM78F564N/F664N
8位微控制器
因为/RESET 引脚上的驱动电流大约±5µA,所以建议 R 值不应大于 40K。这种方法使
复位引脚上的电压保持在 0.2V 以下。二极管(D)在掉电时作为短路回路,电容 C 将
迅速充分放电,限流电阻 Rin 防止大电流或 ESD(静电释放)进入复位引脚。
Vdd
R
/RESET
D
Rin
C
图 6-47 外部上电复位电路
6.20 残留电压保护
当更换电池时,单片机的电源 VDD 断开,但仍然存在残留电压。残留电压可能小于最
低工作电压,但不为 0。这种情况下可能导致不良复位。 图 6-48 和 图 6-49 给出了如
何防止残留电压的保护电路。
Vdd
Vdd
33K
Q1
10K
/RESET
40K
1N4684
图 6-48 残留电压保护电路 1
98 •
版本号 (V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
EM78F564N/F664N
8位微控制器
Vdd
Vdd
R1
Q1
/RESET
40K
R2
图 6-49 残留电压保护电路2
6.21 指令集
指令集的每条指令为 13 位字宽,由操作码和一个或多个操作数组成。一般情况下,执
行一条指令需要一个指令周期(一条指令需要两个振荡周期),但那些使程序计数器
改变的指令如"MOV R2,A," "ADD R2,A,"或对 R2 执行算术或逻辑操作的指令(如, "SUB
R2,A," "BS(C) R2,6," "CLR R2," 等)除外。 在这种情况下,这些指令的执行需要两个指
令周期。
如果因为某些原因,规格书的指令周期不适用于特定的应用,试着对指令作如下改
变:
(A) 改变一个指令周期包含四个振荡周期.
(B) "LJMP", "LCALL", "TBRD", "RET", "RETL", "RETI", 或跳转指令("JBS", "JBC",
"JZ", "JZA", "DJZ", "DJZA")为真时, 指向包含两个指令周期,写程序计数器的指令
包含两个指令周期
情况 (A)由代码选项的 CLK1:0 来选择. 如果 CLK1:0 是 ”01”则一条指令包含两个
振荡时钟,CLK1:0 是 ”00”时一条指令包含四个振荡时钟
注意如果像情况(A)中选择一个指令周期选择四个振荡周期,则 TCC 内部时钟源应
该为 CLK = Fc/4,如图 6-12-1 所示 。
另外,指令集有如下特性:
(1) 任何寄存器的每个位可以被置位,清零,或直接测试。
(2) I/O 寄存器可作为普通寄存器,即相同指令可对 I/O 寄存器进行操作。
版本号(V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
• 99
EM78F564N/F664N
8位微控制器
惯例:
R =寄存器(包括通用寄存器和工作寄存器)中某一个指定的寄存器。
b =当前寄存器R的一个指定位。
k = 8 或 10位常数或立即数。
二进制指令
十六进制
助记符
操作
0 0000 0000 0000
0000
NOP
空操作
0 0000 0000 0001
0001
DAA
十进制校正 A
0 0000 0000 0010
0002
CONTW
0 0000 0000 0011
0003
0 0000 0000 0100
受影响的状态位
无
C
A → CONT
无
SLEP
0 → WDT, 停止振荡
T, P
0004
WDTC
0 → WDT
T, P
0 0000 0000 rrrr
000r
IOW R
A → IOCR
无
0 0000 0001 0000
0010
ENI
使能中断
无
0 0000 0001 0001
0011
DISI
禁止中断
无
0 0000 0001 0010
0012
RET
[栈顶] → PC
无
0 0000 0001 0011
0013
RETI
[栈顶] → PC,
使能中断
无
0 0000 0001 0100
0014
CONTR
CONT → A
无
0 0000 0001 rrrr
001r
IOR R
IOCR → A
0 0000 01rr rrrr
00rr
MOV R,A
A→R
0 0000 1000 0000
0080
CLRA
0→A
Z
0 0000 11rr rrrr
00rr
CLR R
0→R
Z
0 0001 00rr rrrr
01rr
SUB A,R
R-A → A
Z, C, DC
0 0001 01rr rrrr
01rr
SUB R,A
R-A → R
Z, C, DC
0 0001 10rr rrrr
01rr
DECA R
R-1 → A
Z
0 0001 11rr rrrr
01rr
DEC R
R-1 → R
Z
0 0010 00rr rrrr
02rr
OR A,R
A∨R→A
Z
0 0010 01rr rrrr
02rr
OR R,A
A∨R→R
Z
0 0010 10rr rrrr
02rr
AND A,R
A&R→A
Z
0 0010 11rr rrrr
02rr
AND R,A
A&R→R
Z
0 0011 00rr rrrr
03rr
XOR A,R
A⊕R→A
Z
0 0011 01rr rrrr
03rr
XOR R,A
A⊕R→R
Z
0 0011 10rr rrrr
03rr
ADD A,R
A+R→A
Z, C, DC
0 0011 11rr rrrr
03rr
ADD R,A
A+R→R
Z, C, DC
0 0100 00rr rrrr
04rr
MOV A,R
R→A
Z
0 0100 01rr rrrr
04rr
MOV R,R
R→R
Z
无
1
1
无
1
注: 此 指令 只适用于 IOC5~IOC7, IOCA ~ IOCF
100 •
版本号 (V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
EM78F564N/F664N
8位微控制器
二进制 指令
十六进制
助记符
操作
受影响的状态位
0 0100 10rr rrrr
04rr
COMA R
/R → A
Z
0 0100 11rr rrrr
04rr
COM R
/R → R
Z
0 0101 00rr rrrr
05rr
INCA R
R+1 → A
Z
0 0101 01rr rrrr
05rr
INC R
R+1 → R
Z
0 0101 10rr rrrr
05rr
DJZA R
R-1 → A, 若为 0,跳过
无
0 0101 11rr rrrr
05rr
DJZ R
R-1 → R, 若为 0,跳过
无
0 0110 00rr rrrr
06rr
RRCA R
R(n) → A(n-1),
R(0) → C, C → A(7)
C
0 0110 01rr rrrr
06rr
RRC R
R(n) → R(n-1),
R(0) → C, C → R(7)
C
0 0110 10rr rrrr
06rr
RLCA R
R(n) → A(n+1),
R(7) → C, C → A(0)
C
0 0110 11rr rrrr
06rr
RLC R
R(n) → R(n+1),
R(7) → C, C → R(0)
C
0 0111 00rr rrrr
07rr
SWAPA R
R(0-3) → A(4-7),
R(4-7) → A(0-3)
无
0 0111 01rr rrrr
07rr
SWAP R
R(0-3) ↔ R(4-7)
无
0 0111 10rr rrrr
07rr
JZA R
R+1 → A, 若为 0,跳过
无
0 0111 11rr rrrr
07rr
JZ R
R+1 → R, 若为 0,跳过
无
0 100b bbrr rrrr
0xxx
BC R,b
0 → R(b)
无
2
0 101b bbrr rrrr
0xxx
BS R,b
1 → R(b)
无
3
0 110b bbrr rrrr
0xxx
JBC R,b
若 R(b)=0, 跳过
无
0 111b bbrr rrrr
0xxx
JBS R,b
若 R(b)=1, 跳过
无
1 00kk kkkk kkkk
1kkk
CALL k
PC+1 → [SP],
(Page, k) → PC
无
1 01kk kkkk kkkk
1kkk
JMP k
(Page, k) → PC
无
1 1000 kkkk kkkk
18kk
MOV A,k
k→A
无
1 1001 kkkk kkkk
19kk
OR A,k
A∨k→A
Z
1 1010 kkkk kkkk
1Akk
AND A,k
A&k→A
Z
1 1011 kkkk kkkk
1Bkk
XOR A,k
A⊕k→A
Z
1 1100 kkkk kkkk
1Ckk
RETL k
k → A,
[栈顶] → PC
无
1 1101 kkkk kkkk
1Dkk
SUB A,k
k-A → A
Z, C, DC
1 1111 kkkk kkkk
1Fkk
ADD A,k
k+A → A
Z, C, DC
1 1110 1001 kkkk
1E9k
BANK k
K → R4(7:6)
无
2
注: 此指令不建议用于中断状态寄存器操作.
3
此指令不能在中断状态寄存器下操作
版本号(V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
• 101
EM78F564N/F664N
8位微控制器
二进制指令
十六进制
助记符
操作
1 1110 1010 kkkk
1EAk
LCALL k
下一条指令 : k kkkk kkkk kkkk
PC+1 → [SP], k → PC
k kkkk kkkk kkkk
1 1110 1011 kkkk
受影响的状态位
1EBk
LJMP k
k kkkk kkkk kkkk
下一条指令: k kkkk kkkk
kkkk
无
无
k → PC
1 1110 11rr
rrrr
1Err
TBRD R
若
Bank3 R6.7=0,
机器码(7:0) → R
另外
无
Bank3 R6.7=1,
机器码(12:8) → R(4:0),
R(7:5)=(0,0,0)
7
时序图
AC 测试输入/输出波形
注: AC 测试: 输入驱动在 2.4V 为逻辑 “1,” 0.4V 为逻辑 “0”
时序测量是 2.0V 为逻辑 “1,” 0.8V 为逻辑 “0”
图 7-1 AC 测试输入/输出波形时序图
复位时序(CLK1:0 = "01")
图 7-2 复位时序图
102 •
版本号 (V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
EM78F564N/F664N
8位微控制器
8
最大绝对值范围
项目
范围
工作温度
-40°C
到
85°C
储存温度
-65°C
到
150°C
工作电压
2.3
到
5.5V
工作频率
DC
到
16 MHz
输入电压
Vss-0.3V
到
Vdd+0.5V
输出电压
Vss-0.3V
到
Vdd+0.5V
注意: 这些参数是理论值,未经测试.
9
直流电气特性
Ta=25°C, VDD=5.0V ± 5%, VSS=0V
符号
参数
晶振: VDD = 3V
晶振: VDD = 5V
Fxt
条件
指令周期为 2 个时钟周期
最小值
典型
值.
最大值
单位
DC
−
8
MHz
DC
−
16
MHz
ERC: VDD = 5V
R: 5.1KΩ, C: 300 pF
F-30%
370
F+30%
kHz
IRC: VDD = 5 V
4 MHz, 16 MHz, 8 MHz,
455kHz
F-2.5%
F
F+2.5%
Hz
输入引脚输入漏电流
VIN = VDD, VSS
−
−
±1
µA
VIHRC
输入高临界电压
(施密特触发)
OSCI 在 RC 模式
−
3.5
−
V
IERC1
灌电流
VI 从低到高, VI=5V
21
22
23
mA
VILRC
输入低临界电压
(施密特触发)
OSCI 在 RC 模式
−
1.5
−
V
IERC2
灌电流
VI 从高到低, VI=2V
16
17
18
mA
VIH1
输入高电压(施密特触发)
Ports 5, 6, 7, 8
0.7VDD
−
VDD + 0.3V
V
VIL1
输入低临界电压
(施密特触发)
Ports 5, 6, 7, 8
-0.3V
−
0.3VDD
V
VIHT1
输入高临界电压
(施密特触发)
/RESET
0.7VDD
−
VDD + 0.3V
V
VILT1
输入低临界电压
(施密特触发)
/RESET
-0.3V
−
0.3VDD
V
IIL
版本号(V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
• 103
EM78F564N/F664N
8位微控制器
符号
参数
条件
最小值.
典型
值.
最大值.
单位
VIHT2
输入高临界电压
(施密特触发)
TCC, INT
0.7VDD
−
VDD + 0.3V
V
VILT2
输入低临界电压
(施密特触发)
TCC, INT
-0.3V
−
0.3VDD
V
VIHX1
时钟输入高电压
OSCI 在晶振模式
−
3.0
−
V
VILX1
时钟输入低电压
OSCI 在晶振模式
−
1.8
−
V
IOH1
输出高电压
(Ports 5, 6, 7, 8)
VOH = VDD-0.5V
(IOH =3.7mA)
-3.0
-4.2
−
mA
IOL1
输出低电压
(Ports 5, 7, 8)
VOL = GND+0.5V
9
11
−
mA
IOL2
输出低电压
(Port 6)
VOL = GND+0.5V
15
18
−
mA
IPH
上拉电流
上拉激活,
输入引脚接 VSS
−
-70
-80
µA
IPL
下拉电流
下拉激活,
输入引脚接 Vdd
−
20
30
µA
ISB1
掉电电流
所有输入和 I/O 引脚接 VDD,
输出引脚悬空,
WDT 禁止
−
1.0
1.5
µA
ISB2
掉电电流
所有输入和 I/O 引脚接 VDD,
输出引脚悬空,
WDT 使能
−
8
10
µA
为 2 个时钟的供电电流
/RESET= '高', Fosc=32kHz
(晶振类型, CLKS1:0="01"),
输出引脚悬空,
WDT 禁止
−
37
40
µA
为 2 个时钟的供电电流
/RESET= '高', Fosc=32kHz
(晶振类型, CLKS1:0="01"),
输出引脚悬空,
WDT 使能
−
39
43
µA
−
110
120
µA
ICC1
ICC2
ICC3
为 2 个时钟的供电电流
/RESET= '高', Fosc=455kHz
(晶振类型, CLKS1:0="01"),
输出引脚悬空,
WDT 使能.
(*VDD = 3V)
104 •
版本号 (V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
EM78F564N/F664N
8位微控制器
符号
ICC4
ICC5
ICC6
参数
条件
/RESET = '高', Fosc=455kHz
(IRC 类型, CLKS1:0="01"),
最小值. 典型值. 最大值.
单位
−
100
110
µA
为 2 个时钟的供电电流
/RESET = '高',
Fosc = 4 MHz (晶振类型,
CLKS1:0 = "01"),
输出引脚悬空,
WDT 使能.
−
1.1
1.5
mA
为 2 个时钟的供电电流
/RESET = '高',
Fosc = 10 MHz (晶振类型,
CLKS1:0 = "01"),
输出引脚悬空,
WDT 使能.
−
2.7
3
mA
为 2 个时钟的供电电流
输出引脚悬空,
WDT 使能. (*VDD = 3V)
注意: 这些参数是理论值,未经测试.
*数据最大值,典型值和最小值是在 25°C时的值. 这些数据仅供设计参考未经测试.
数据 EEPROM 电气特性 (仅对 EM78F664N)
符号
参数
Tprog
擦除/写 周期时间
Treten
数据保持
Tendu
持久性
条件
Vdd = 2.5~ 5.5V
温度 = -40°C ~ 85°C
最小值. 典型值. 最大值. 单位
−
4.5
−
ms
−
10
−
年
−
1000K
−
次
闪存程序存储器电气特性
符号
参数
Tprog
擦除/写 周期时间
Treten
数据保持
Tendu
持久性
版本号(V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
条件
Vdd = 5.0V
温度 = -40°C ~ 85°C
最小值. 典型值. 最大值. 单位
−
−
−
ms
−
10
−
年
−
100K
−
次
• 105
EM78F564N/F664N
8位微控制器
A/D转换特性 (Vdd=2.5V to 5.5V, Vss=0V, Ta=25°C)
符号
参数
VAREF
模拟参考电压
VASS
VAI
IAI1
模拟输入电压
Ivdd
模拟供电电流
Ivref
Ivdd
IAI2
模拟供电电流
IVref
最小值.
典型
值.
最大值.
单位
2.5
−
Vdd
V
Vss
−
Vss
V
VASS
−
VAREF
V
Vdd=VAREF=5.0V,
VASS =0V
(V 参考 Vdd)
1150
1300
1450
µA
-10
0
10
µA
Vdd=VAREF=5.0V,
VASS =0V
(V 参考 VREF)
700
800
900
µA
450
500
550
µA
条件
VAREF - VASS ≥ 2.5V
−
RN
分辨率
Vdd=VAREF=5.0V,
VASS =0V
8
9
−
Bits
LN
线性错误
Vdd = 2.5 to 5.5V
Ta=25°C
−
±2
±4
LSB
DNL
差分非线性错误
Vdd = 2.5 to 5.5V
Ta=25°C
−
±0.5
±0.9
LSB
FSE
满量程误差
Vdd=VAREF=5.0V,
VASS =0V
−
±1
±2
LSB
OE
偏差错误
Vdd=VAREF=5.0V,
VASS =0V
−
±1
±2
LSB
ZAI
参考电压源的建议电阻
−
−
8
10
KΩ
TAD1
A/D 时钟周期
Vdd=VAREF=2.5~5.5V,
VASS =0V
4
−
−
us
TAD2
A/D 时钟周期
Vdd=VAREF=3.0~5.5V,
VASS =0V
1
−
−
us
TCN
A/D 转换时间
Vdd=VAREF=5.0V,
VASS =0V
14
−
14
TAD
ADIV
A/D OP 输入电压范围
Vdd=VAREF=5.0V,
VASS =0V
0
−
VAREF
V
PSR
电源抑制比
Vdd=5.0V±0.5V
−
−
±2
LSB
注意: 1. 这些参数是理论值未经测试. 仅供设计参考.
2. 当A/D关闭时, 除了小的漏电流之外没有其它耗电流。
3. 当 A/D转换结果不随着输入电压的增加而减小时,不会丢失代码.
4. 规格书如有改动不另行通知.
106 •
版本号 (V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
EM78F564N/F664N
8位微控制器
比较器电气特性
符号
VOS
参数
最小 典型 最大
单位
值.
值.
值.
条件
1
−
RL = 5.1K (Note )
输入偏差电压
2
−
10
mV
(Note )
GND
−
VDD
V
−
−
200
−
µA
响应时间
Vin(-)=2.5V, Vdd=5V, CL=15p
(比较器输出负载), 超驱动
3
=30mV (注意 )
−
0.7
−
µs
TLRS
大信号响应时间
Vin(-)=2.5V, Vdd=5V, CL=15p
(比较器输出负载),
−
300
−
ns
VS
工作电压范围
−
2.5
−
5.5
V
Vcm
输入通用模式电压范围
ICO
比较器的供电电流
TRS
1
注意: 输出电压在单位增益电路且超过全输入通用模式范围。
2
输入通用模式电压或是输入信号电压不允许低于负的0.3V. 通用模式的上限电压为VDD.
3
响应时间规定为100 mV 输入,每一阶为30 mV 的超驱动.
设备特性
以下几页的图表都是源于有限抽样的结果,此处仅供参考.. 此处所述的设备特性并不能
保证其精确性. 有些图表中的数据可能超出规格的工作范围
P5/P6/P7/P8 Vih/Vil vs VDD (85℃)
3.5
3.0
Vih/Vil (V)
2.5
2.0
VIH
VIL
1.5
1.0
0.5
0.0
2.3
2.5
3.0
3.5
4.0
VDD (V)
4.5
5.0
5.5
图 9-1(a) Vih/Vil vs VDD @ 85°C
版本号(V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
• 107
EM78F564N/F664N
8位微控制器
P5/P6/P7/P8 Vih/Vil vs VDD (70℃)
3.5
3.0
Vih/Vil (V)
2.5
2.0
VIH
VIL
1.5
1.0
0.5
0.0
2.3
2.5
3.0
3.5
4.0
VDD (V)
4.5
5.0
5.5
图 9-1(b) Vih/Vil vs VDD @ 70°C
P5/P6/P7/P8 Vih/Vil vs VDD (25℃)
3.5
3.0
Vih/Vil (V)
2.5
2.0
VIH
VIL
1.5
1.0
0.5
0.0
2.3
2.5
3.0
3.5
4.0
VDD (V)
4.5
5.0
5.5
图 9-1(c) Vih/Vil vs VDD @ 25°C
108 •
版本号 (V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
EM78F564N/F664N
8位微控制器
P5/P6/P7/P8 Vih/Vil vs VDD (0℃)
3.5
3.0
Vih/Vil (V)
2.5
2.0
VIH
VIL
1.5
1.0
0.5
0.0
2.3
2.5
3.0
3.5
4.0
VDD (V)
4.5
5.0
5.5
图 9-1(d) Vih/Vil vs VDD @ 0°C
P5/P6/P7/P8 Vih/Vil vs VDD (-40℃)
3.5
3.0
Vih/Vil (V)
2.5
2.0
VIH
VIL
1.5
1.0
0.5
0.0
2.5
3.0
3.5
4.0
VDD (V)
4.5
5.0
5.5
图 9-1(e) Vih/Vil vs VDD @ -40°C
版本号(V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
• 109
EM78F564N/F664N
8位微控制器
Vih/Vil (V)
Reset Vih/Vil vs VDD (Vih, input pins with inverter)
5.0
4.5
4.0
3.5
3.0
2.5
2.0
1.5
1.0
0.5
0.0
2.3
2.5
3.0
3.5
4.0
4.5
5.0
5.5
VDD(V)
Vih max(-40℃~85℃)
Vih typ(25℃)
Vih min(-40℃~85℃)
图 9-1(f) 复位引脚 Vih vs VDD
Reset Vih/Vil vs VDD (Vil, input pins with inverter)
5.0
4.5
4.0
Vih/Vil (V)
3.5
3.0
2.5
2.0
1.5
1.0
0.5
0.0
2.3
2.5
3.0
3.5
4.0
4.5
5.0
5.5
VDD(V)
Vil max(-40℃~85℃)
Vil typ(25℃)
Vil min(-40℃~85℃)
图 9-1(g)复位引脚Vil vs VDD
110 •
版本号 (V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
EM78F564N/F664N
8位微控制器
Voh vs Ioh1 (VDD=5V)
0
-5
Ioh1 (mA)
85℃
25℃
-10
-40℃
-15
-20
-25
0.5
1.0
1.5
2.0
2.5
3.0
Voh (V)
3.5
4.0
4.5
图9-2(a) Voh vs Ioh1, VDD=5V
Voh vs Ioh1 (VDD=3V)
0
-5
Ioh1 (mA)
85℃
-10
25℃
-40℃
-15
-20
-25
0.3
0.6
0.9
1.2
1.5
1.8
2.1
2.4
2.7
Voh (V)
Figure 9-2(b) Voh vs Ioh1, VDD=3V
版本号(V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
• 111
EM78F564N/F664N
8位微控制器
Vol vs Iol1 (VDD=5V)
80
Iol1 (mA)
70
60
85℃
50
25℃
-40℃
40
30
20
10
0
0.5
1.0
1.5
2.0
2.5
3.0
3.5
4.0
4.5
Vol (V)
图 9-2(c) Vol vs Iol1, VDD=5V
Vol vs Iol1 (VDD=3V)
80
70
Iol1 (mA)
60
85℃
50
25℃
40
-40℃
30
20
10
0
0.3
0.6
0.9
1.2
1.5
1.8
2.1
2.4
2.7
Vol (V)
图 9-2(d) Vol vs Iol1, VDD=3V
112 •
版本号 (V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
EM78F564N/F664N
8位微控制器
Vol vs Iol2 (VDD=5V)
120.0
100.0
Iol2 (mA)
80.0
85℃
25℃
60.0
-40℃
40.0
20.0
0.0
0.5
1.0
1.5
2.0
2.5
3.0
3.5
4.0
4.5
Vol (V)
图 9-2(e) Vol vs Iol2, VDD=5V
Vol vs Iol2 (VDD=3V)
60.0
50.0
Iol2 (mA)
40.0
85℃
25℃
30.0
-40℃
20.0
10.0
0.0
0.3
0.6
0.9
1.2
1.5
1.8
2.1
2.4
2.7
Vol (V)
图 9-2(f) Vol vs Iol2, VDD=3V
版本号(V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
• 113
EM78F564N/F664N
8位微控制器
IPH vs Temperature for P50 (VDD=3V&5V)
100
90
80
IPH (uA)
70
60
3.0V
50
5.0V
40
30
20
10
0
-40
-20
0
25
50
70
85
Temperature(℃)
图 9-3(a) IPH vs 温度
IPL vs Temperature for P60 (VDD=3V&5V)
100
90
80
IPL(uA)
70
60
3.0V
50
5.0V
40
30
20
10
0
-40
-20
0
25
50
Temperature(℃)
70
85
图 9-3(b) IPL vs 温度
114 •
版本号 (V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
EM78F564N/F664N
8位微控制器
Typical ICC1 and ICC2 vs Temperature (VDD=5V)
60
55
50
Current(uA)
45
40
ICC1
35
ICC2
30
25
20
15
10
-40
-20
0
25
50
Temperature (℃)
75
85
图 9-4(a) 典型工作电流 ICC1/ICC2 vs 温度 (VDD=5V)
Typical ICC1 and ICC2 vsTemperature (VDD=3V)
60
55
50
Current(uA)
45
40
ICC1
35
ICC2
30
25
20
15
10
-40
-20
0
25
50
Temperature(℃)
70
85
图 9-4(b) 典型工作电流 ICC1/ICC2 vs 温度 (VDD=3V)
版本号(V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
• 115
EM78F564N/F664N
8位微控制器
Typical ICC3 and ICC5 vs Temperature (VDD=5V)
1.4
1.2
Current (mA)
1.0
0.8
ICC3
0.6
ICC5
0.4
0.2
0.0
-40
-20
0
25
50
Temperature (℃)
70
85
图 9-4(c) 典型工作电流 ICC3/ICC5 vs 温度 (VDD=5V)
Typical ICC3 and ICC5 vs Temperature (VDD=3V)
1.0
0.9
0.8
Current(mA)
0.7
0.6
ICC3
0.5
ICC5
0.4
0.3
0.2
0.1
0.0
-40
-20
0
25
50
Temperature(℃)
70
85
图 9-4(d) 典型工作电流 ICC3/ICC5 vs温度 (VDD=3V)
116 •
版本号 (V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
EM78F564N/F664N
8位微控制器
Typical ICC6 vs Temperature (VDD=5V)
4.5
4.0
Current (mA)
3.5
3.0
2.5
ICC6
2.0
1.5
1.0
0.5
0.0
-40
-20
0
25
50
Temperature (℃)
70
85
图9-4(e) 典型工作电流ICC6 vs温度 (VDD=5V)
Typical ICC6 vs Temperature (VDD=3V)
4.5
4.0
Current(mA)
3.5
3.0
2.5
ICC6
2.0
1.5
1.0
0.5
0.0
-40
-20
0
25
50
Temperature(℃)
70
85
图 9-4(f) 典型工作电流 ICC6 vs 温度 (VDD=3V)
版本号(V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
• 117
EM78F564N/F664N
8位微控制器
P6 Wake-up Time when Sleep to Normal Mode with XTAL
14
12
Time(ms)
10
85℃
8
25℃
6
-40℃
4
2
0
2.3
2.5
3.0
3.5
4.0
VDD(V)
4.5
5.0
5.5
图 9-5(a) Sleep 唤醒时间 vs工作电压 (XTAL=4MHz)
P6 Wake-up Time when Sleep to Normal Mode with IRC
14
12
Time(us)
10
85℃
8
25℃
6
-40℃
4
2
0
2.3
2.5
3.0
3.5
4.0
4.5
5.0
5.5
VDD(V)
图 9-5(b) 休眠唤醒时间 vs工作电压 (IRC=4 MHz)
118 •
版本号 (V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
EM78F564N/F664N
8位微控制器
P6 Wake-up Time when Idle to Normal Mode with XTAL
14
12
Time(ms)
10
85℃
8
25℃
6
-40℃
4
2
0
2.3
2.5
3.0
3.5
4.0
VDD(V)
4.5
5.0
5.5
图9-5(c) 低速模式唤醒时间vs工作电压 (XTAL=4 MHz)
P6 Wake-up Time when Idle to Normal Mode with IRC
14
12
Time(us)
10
85℃
8
25℃
6
-40℃
4
2
0
2.3
2.5
3.0
3.5
4.0
VDD(V)
4.5
5.0
5.5
图 9-5(d) 低速模式唤醒时间 vs 工作电压 (IRC=4 MHz)
版本号(V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
• 119
EM78F564N/F664N
8位微控制器
WDT Timer Time Out in Normal, Crystal mode
16.8
16.6
Time(ms)
16.4
85℃
16.2
25℃
16.0
-40℃
15.8
15.6
15.4
2.5
3.0
3.5
4.0
4.5
VDD(Volt)
5.0
5.5
图 9-6(a) WDT定时器溢出vs 工作电压 (XTAL=4 MHz)
WDT Timer Time Out in Normal, IRC mode
17.0
16.5
Time(ms)
16.0
85℃
15.5
25℃
-40℃
15.0
14.5
14.0
2.5
3.0
3.5
4.0
4.5
VDD(Volt)
5.0
5.5
图 9-6(b) WDT 定时器溢出 vs 工作电压 (IRC=4 MHz)
120 •
版本号 (V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
EM78F564N/F664N
8位微控制器
Power On Reset Time vs VDD in Normal, XTAL Mode
35
30
Time(ms)
25
20
15
85℃
25℃
10
-40℃
5
0
2.5
3.0
3.5
4.0
VDD(V)
4.5
5.0
5.5
图 9-7(a) 上电复位时间 vs 工作电压 (XTAL=4 MHz)
Power On Reset Time vs VDD in Normal, IRC Mode
35
30
Time(ms)
25
20
15
85℃
25℃
10
-40℃
5
0
2.5
3.0
3.5
4.0
4.5
5.0
5.5
VDD(V)
图 9-7(b) 上电复位时间vs 工作电压 (IRC=4 MHz)
版本号(V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
• 121
EM78F564N/F664N
8位微控制器
Typical ICMP vs Temperature
200
180
160
Current (mA)
140
120
100
ICMP3V
80
ICMP5V
60
40
20
0
-40
-20
0
25
50
Temperature (℃)
70
85
图 9-8 ICMP vs Temperature
Typical IAI1 and IAI2 vs Temperature
1.4
1.2
Current (mA)
1.0
0.8
IAI1
IAI2_Vref
0.6
IAI2
0.4
0.2
0.0
-40
-20
0
25
50
Temperature (℃)
70
85
图 9-9 AD Current vs Temperature
122 •
版本号 (V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
EM78F564N/F664N
8位微控制器
LVR Level vs Temperature
6
5
VDD (V)
4
3
2
1
0
-40
-20
0
25
50
70
85
Temperature(℃)
4.0reset
4.0release
3.5reset
3.5release
2.7reset
2.7release
图 9-10 LVR Level vs Temperature
Offset voltage vs Temperature (V+ is variable)
5.0
4.5
Offset voltage (mV)
4.0
3.5
3.0
0.1
2.5
2.5
2.0
4.9
1.5
1.0
0.5
0.0
-40
-20
0
25
50
Temperature(℃)
70
85
图 9-11(a) CMP Offset voltage vs Temperature (V+ is variable)
版本号(V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
• 123
EM78F564N/F664N
8位微控制器
Offset voltage vs Temperature (V- is variable)
5.0
4.5
Offset voltage (mV)
4.0
3.5
3.0
0.1
2.5
2.5
2.0
4.9
1.5
1.0
0.5
0.0
-40
-20
0
25
50
Temperature(℃)
70
85
图 9-11(b) CMP 补偿电压 vs温度(V- 变化的)
10 交流电气特性
EM78Fx64N, 0 ≤ Ta ≤ 70°C, VDD=5V, VSS=0V
-40 ≤ Ta ≤ 85°C, VDD=5V, VSS=0V
符号
参数
条件
最小值
典型值
最大值
单位
Dclk
输入 CLK 占空比
−
45
50
55
%
Tins
指令周期时间
(CLKS1:0="01")
晶体类型
100
−
DC
ns
RC 类型
500
−
DC
ns
Ttcc
TCC 输入周期
−
(Tins+20)/N*
−
−
ns
Tdrh
设备复位保持时间
−
14
16
18
ms
Trst
/RESET 脉冲宽度
Ta = 25°C
2000
−
−
ns
Twdt
看门狗周期
Ta = 25°C
14
16
18
ms
Tset
输入引脚建立时间
−
−
0
−
ns
Thold
输入引脚保持时间
−
−
20
−
ns
Tdelay
输出引脚延迟时间
Cload = 20 pF
−
50
−
ns
注: 这些参数是理论值未经测试。参数仅供设计参考.
数据的最大值,典型值和最大值实在25°C的结果.
*N = 选择预分频比.
124 •
版本号 (V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
EM78F564N/F664N
8位微控制器
附录
A 封装类型
Flash MCU
封装类型
引脚数
封装尺寸
EM78Fx64NK24J/S
小型 DIP
24
300 mil
SOP
24
300 mil
小型 DIP
28
300 mil
EM78Fx64NSO28J/S
SOP
28
300 mil
EM78Fx64NQN32J/S
QFN
32
5×5 mm
EM78Fx64NSO24J/S
EM78Fx64NK28J/S
绿色产品不含有害物质 Sony SS-00259 标准第三版
铅含量少于 100ppm,铅含量符合 Sony 规格
项目
EM78Fx64NxJ/xS
电镀类型
纯锡
成份(%)
Sn: 100%
熔点(°C)
232°C
电阻率(µΩ cm)
11.4
硬度(hv)
8~10
伸长(%)
>50%
版本号(V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
• 125
EM78F564N/F664N
8位微控制器
B 封装信息
B.1 EM78Fx64NK24
13
24
E
12
Min
0.381
3.175
0.203
31.750
6.426
7.370
8.380
0.356
1.470
3.048
0
Normal
Max
5.334
3.302
3.429
0.254
0.356
31.801 31.852
6.628
6.830
7.620
7.870
8.950
9.520
0.457
0.559
1.520
1.630
3.302
3.556
2.540(TYP)
15
A1
A2
1
Symbal
A
A1
A2
c
D
E1
E
eB
B
B1
L
e
θ
e
TITLE:
PDIP-24L SKINNY 300MIL
PACKAGE OUTLINE
DIMENSION
File :
K24
Edtion: A
Unit : mm
Scale: Free
Material:
Sheet:1 of 1
图 B-1 EM78Fx64N 24引脚小型DIP 封装类型
126 •
版本号 (V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
EM78F564N/F664N
8位微控制器
B.2 EM78Fx64NSO24
Symbal
A
A1
b
c
E
H
D
L
e
θ
b
Min
2.350
0.102
Normal
Max
2.650
0.300
0.406(TYP)
0.230
7.400
10.000
15.200
0.630
0
0.838
1.27(TYP)
0.320
7.600
10.650
15.600
1.100
8
e
c
TITLE:
SOP-24L(300MIL) PACKAGE
OUTLINE DIMENSION
File :
Edtion: A
SO24
Unit : mm
Scale: Free
Material:
Sheet:1 of 1
图 B-2 EM78Fx64N 24引脚SOP 封装类型
版本号(V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
• 127
EM78F564N/F664N
8位微控制器
B.3 EM78Fx64NK28
Min
0.381
3.175
0.152
35.204
7.213
7.620
8.382
0.356
1.422
3.251
0
Normal
Max
5.334
3.302
3.429
0.254
0.356
35.255 35.306
7.315
7.417
7.874
8.128
8.890
9.398
0.457
0.559
1.626
1.524
3.302
3.353
2.540(TYP)
10
A
Symbal
A
A1
A2
c
D
E1
E
eB
B
B1
L
e
θ
TITLE:
PDIP-28L SKINNY 300MIL
PACKAGE OUTLINE
DIMENSION
File :
Edtion: A
K28
Unit : mm
Scale: Free
Material:
Sheet:1 of 1
图 B-3 EM78Fx64N 28-引脚小型DIP 封装类型
128 •
版本号 (V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
EM78F564N/F664N
8位微控制器
B.4 EM78Fx64NSO28
Symbal
A
A1
b
c
E
E1
D
L
L1
e
θ
Min
2.370
0.102
0.350
7.410
10.000
17.700
0.678
1.194
0
Normal
2.500
0.406
0.254(TYP)
7.500
10.325
17.900
0.881
1.397
1.27(TYP)
Max
2.630
0.300
0.500
7.590
10.650
18.100
1.084
1.600
8
TITLE:
SOP-28L(300MIL)
PACKAGE OUTLINE
DIMENSION
File :
Edtion: A
SO28
Unit : mm
Scale: Free
Material:
Sheet:1 of 1
图 B-4 EM78Fx64N 28引脚 SOP封装类型
版本号(V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
• 129
EM78F564N/F664N
8位微控制器
B.5 EM78Fx64NQN32
BOTTOM VIEW
TOP VIEW
D
32
D2
25
1
25
24
32
1
24
e
E2
E
8
17
17
9
Symbal
A
A1
A3
b
D
D2
E
E2
e
L
Min
0.70
0.00
0.18
2.60
2.60
0.30
Normal
0.75
0.02
0.20 REF
0.25
5.00BSC
2.70
5.00BSC
2.70
0.5BSC
0.35
Max
0.80
0.05
0.30
2.80
2.80
0.40
8
L
16
16
9
b
A
A1
A3
TITLE:
QFN 32L ( 5 *5* 0.8 MM )
PACKAGE OUTLINE DIMENSION
File :
QFN 32L
Edtion: A
Unit : mm
Scale: Free
Material:
Sheet:1 of 1
图 B-5 EM78Fx64N 32引脚 QFN 封装类型
130 •
版本号 (V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
EM78F564N/F664N
8位微控制器
C 品质保证和可靠性
测试类别
测试条件
焊料温度=245 ± 5°C, 使用松香在上面停留 5 秒
可焊性
备注
–
步骤 1: TCT, 65°C (15 分钟)~150°C (15 分钟), 10 次
步骤 2: Bake at 125°C, TD (持久性)=24 hrs
步骤 3: Soak at 30°C/60%,TD (持久性)=192 hrs
步骤 4: IR 变化 3 次
前提条件
(Pkg 厚度 ≥ 2.5 mm 或
Pkg 体积 ≥ 350 mm3 ----225±5°C)
使用于 SMD 封装的 IC
(如 SOP, QFP, SOJ,
等)
(Pkg 厚度 ≤ 2.5 mm or
Pkg 体积 ≤ 350 mm3 ----240 ± 5°C)
温度周期测试
-65°C (15 分钟)~150°C (15 分钟), 200 次
–
高压锅测试
TA =121°C, RH=100%, 压力=2 atm,
TD (持久性)= 96 hrs
–
高温 /
高湿测试
TA=85°C , RH=85%,TD (持久性) = 168 , 500 hrs
–
高温保存期
TA=150°C, TD (持久性) = 500, 1000 hrs
–
高温工作寿命
TA=125°C, VCC = 最高工作电压,
TD (持久性) = 168, 500, 1000 hrs
–
Latch-up
TA=25°C, VCC =最高工作电压,, 150mA/20V
–
ESD (HBM)
TA=25°C, ≥∣± 3KV∣
IP_ND,OP_ND,IO_ND
IP_NS,OP_NS,IO_NS
IP_PD,OP_PD,IO_PD,
TA=25°C, ≥ ∣± 300V∣
ESD (MM)
IP_PS,OP_PS,IO_PS,
VDD-VSS(+),VDD_VSS
(-) 模式
C.1 地址缺陷检测
地址缺陷检测是 MCU 嵌入式自动防止故障危害功能的一种,检测 MCU 由噪声或类似
原因造成的功能故障。无论何时 MCU 试图从 ROM 区获取一条指令,内部恢复电路将
自动开始。如果检测到噪声引起地址错误,MCU 重复执行程序直到噪声消除。 MCU
将继续执行下一条指令。
版本号(V2.2) 04.07.2010
(产品更新后规格书不保证同步更新)
• 131