EM78P301N

EM78P301N
8-位
OTP微控制器
产品规格书
版本1.0
义隆电子股份有限公司.
2012. 12
商标告知:
IBM 为一个注册商标,PS/2 是 IBM 的商标之一。
Windows 是微软公司的商标。
ELAN 和 ELAN 标志
是义隆电子股份有限公司的商标。
版权所有 © 2012 义隆电子股份有限公司
所有权利保留
台湾印制
本规格书内容如有变动恕不另作通知。关于该规格书的准确性、适当性或者完整性,义隆电子股份有限公
司不承担任何责任。 义隆电子股份有限公司不承诺对本规格书之内容及信息有更新及校正之义务。 本规
格书的内容及信息将为符合确认之指示而变更。
在任何情况下,义隆电子股份有限公司对本规格书中的信息或内容的错误、遗漏,或者其它不准确性不承
担任何责任。由于使用本规格书中的信息或内容而导致的直接,间接,特别附随的或结果的损害, 义隆
电子股份有限公司没有义务负责。
本规格书中提到的软件(如果有),都是依据授权或保密合约所合法提供的,并且只能在这些合约的许可
条件下使用或者复制。
义隆电子股份有限公司的产品不是专门设计来应用于生命维持的用具,装置或者系统。 义隆电子股份有
限公司的产品不支持而且禁止在这些方面的应用。
未经义隆电子股份有限公司书面同意,任何个人或公司不得以任何形式或方式对本规格书的内容之任一
部分进行复制或传输。
义隆电子股份有限公司
总公司:
地址:台湾新竹科学园区创新
一路 12 号
电话:+886 3 563-9977
传真:+886 3 563-9966
[email protected]
http://www.emc.com.tw
香港分公司:
USA:
义隆电子(香港)有限公司
九龙观塘巧明街 95 号世达中心
19 楼 A 室
电话:+852 2723-3376
传真:+852 2723-7780
Elan Information
Technology Group
(U.S.A.)
PO Box 601
Cupertino, CA 95015
U.S.A.
Tel: +1 408 366-8225
Fax: +1 408 366-8225
Korea:
深圳分公司:
上海分公司:
Elan Korea Electronics
Company, Ltd.
Rm No. 1101, Incheon
Business Center, 636,
Kojan-dong,
Namdong-gu INCHEON,
KOREA 405-817
Tel: +82 32 814-7730
义隆电子(深圳)有限公司
深圳市南山区高新技术产业园南区
高新南六道迈科龙大厦 8A
518057
电话: +86 755 2601-0565
传真: +86 755 2601-0500
[email protected]
义隆电子(上海)有限公司
上海市浦东新区张江高科技园
区碧波路5号科苑大楼6楼
201203
电话: +86 21 5080-3866
传真: +86 21 5080-0273
[email protected]
Fax: +82 32 813-7730
目录
目录
1
2
3
4
5
6
综述.............................................................................................................. 1
产品特性....................................................................................................... 1
引脚分配....................................................................................................... 2
引脚描述....................................................................................................... 3
功能结构框图 ............................................................................................... 5
功能描述....................................................................................................... 6
6.1 操作寄存器.............................................................................................. 6
6.1.1 R0 (间接寻址寄存器)..................................................................... 6
6.1.2 R1 (定时时钟/计数器)..................................................................... 6
6.1.3 R2 (程序计数器)和堆栈 .................................................................. 6
6.1.4 R3 (状态寄存器) ............................................................................. 9
6.1.5 R4 (RAM 选择寄存器) .................................................................... 9
6.1.6 Bank 0 R5 ~ R7 (端口 5 ~ 端口 7).................................................. 9
6.1.7 Bank 0 R8 (AISR: ADC 输入选择寄存器) ..................................... 10
6.1.8 Bank 0 R9 (ADCON: ADC 控制寄存器)........................................ 12
6.1.9 Bank 0 RA (ADOC: ADC 补偿校准寄存器)................................... 13
6.1.10 Bank 0 RB (ADDATA: ADC 转换结果) ........................................ 14
6.1.11 Bank 0 RC (ADDATA1H: ADC 转换结果) ................................... 14
6.1.12 Bank 0 RD (ADDATA1L: ADC 转换结果).................................... 15
6.1.13 Bank 0 RE (中断状态 2 和唤醒控制寄存器) ................................ 15
6.1.14 Bank 0 RF (中断状态 2 寄存器) ................................................. 16
6.1.15 Bank 1 R5 (TBHP: TBRD 指令的表指向寄存器) ......................... 17
6.1.16 Bank 1 R6 (TBLP: TBRD 指令的表指向寄存器) .......................... 17
6.1.17 Bank 1 R7 (PWMCON: PWM 控制寄存器) ................................ 17
6.1.18 Bank 1 R8 (TMRCON: 定时器控制寄存器) ................................ 18
6.1.19 Bank 1 R9 (PRD1: PWM 1 时间周期) ........................................ 18
6.1.20 Bank 1 RA (PRD2: PWM 2 时间周期) ........................................ 19
6.1.21 Bank 1 RB (DT1: PWM 1 占空比周期) ....................................... 19
6.1.22 Bank 1 RC (DT2: PWM 2 占空比周期) ....................................... 19
6.1.23 Bank 1 RD (PWM 1 和 PWM 2 时间和占空比周期的高字节) ..... 19
6.1.24 Bank 1 RE (LVD 中断和唤醒寄存器) .......................................... 19
6.1.25 Bank 1 RF (系统控制寄存器) ..................................................... 20
6.1.26 R10 ~ R3F ................................................................................. 24
6.2 特殊功能寄存器 .................................................................................... 24
6.2.1 A (累加器)..................................................................................... 24
6.2.2 CONT (控制寄存器) ..................................................................... 24
6.2.3 IOC50 ~ IOC70 (I/O Port 控制寄存器) ......................................... 25
产品版本(V1.0) 12.17.2012
• iii
目录
6.2.4 IOC80 (定时器 1 和 2 的高字节) ................................................... 25
6.2.5 IOC90 (TMR1: PWM 1 定时器) .................................................... 25
6.2.6 IOCA0 (TMR2: PWM 2 定时器).................................................... 25
6.2.7 IOCB0 (下拉控制寄存器).............................................................. 26
6.2.8 IOCC0 (漏极开路控制寄存器) ...................................................... 26
6.2.9 IOCD0 (上拉控制寄存器) ............................................................. 27
6.2.10 IOCE0 (WDT 控制寄存器和中断屏蔽寄存器 2) ............................ 27
6.2.11 IOCF0 (中断屏蔽寄存器) ............................................................ 28
6.2.12 IOC51 (高灌电流控制寄存器 1) .................................................. 29
6.2.13 IOC61 (高灌电流控制寄存器 2) .................................................. 29
6.2.14 IOC71 (高驱动电流控制寄存器 1) .............................................. 30
6.2.15 IOC81 (高驱动电流控制寄存器 2) .............................................. 30
6.2.16 IOCF1 (上拉控制寄存器)............................................................ 31
6.3 TCC/WDT & 预分频器 .......................................................................... 31
6.4 I/O 端口 ................................................................................................ 32
6.4.1 使用 Port5 输入状态改变唤醒/中断功能 ....................................... 35
6.5 复位和唤醒 ........................................................................................... 35
6.5.1 复位和唤醒操作............................................................................ 35
6.5.2 状态寄存器的 T 和 P 状态 ............................................................ 46
6.6 中断 ...................................................................................................... 47
6.7 模数转换器(ADC) ................................................................................. 49
6.7.1 ADC 控制寄存器 (AISR/R8, ADCON/R9, ADOC/RA) ................... 50
6.7.2 ADC 数据寄存器 (ADDATA/RB, ADDATA1H/RC, ADDATA1L/RD)53
6.7.3 ADC 采样时间 .............................................................................. 54
6.7.4 AD 转换时间................................................................................. 54
6.7.5 休眠期间的 A/D 转换 .................................................................... 55
6.7.6 编程步骤/考虑的事项.................................................................... 55
6.8 一对 PWM (脉宽调制器) ....................................................................... 58
6.8.1 概述.............................................................................................. 58
6.8.2 递增定时计数器 (TMRX: TMR1 or TMR2).................................... 59
6.8.3 PWM 周期 (TMRX: TMR1 或 TMR2) ........................................... 59
6.8.4 PWM 占空比 (DTX: DT1 or DT2; DLX: DL1 or DL2) .................... 60
6.8.5 比较器 X....................................................................................... 60
6.8.6 PWM 编程步骤............................................................................. 60
6.9 定时器/计数器....................................................................................... 60
6.9.1 概述.............................................................................................. 60
6.9.2 功能描述 ...................................................................................... 61
6.9.3 相关寄存器设置............................................................................ 61
6.9.4 定时器编程步骤............................................................................ 62
6.9.5 PWM 级联模式 ............................................................................. 62
iv •
产品版本(V1.0) 12.17.2012
目录
6.10 振荡器 ................................................................................................ 63
6.10.1 振荡器模式................................................................................. 63
6.10.2 晶体振荡器/陶瓷谐振器 (晶振) ................................................... 64
6.10.3 外部 RC 振荡模式 ...................................................................... 67
6.10.4 内部 RC 振荡模式 ...................................................................... 68
6.11 上电探讨 ............................................................................................. 68
6.11.1 可编程 WDT 溢出周期 ................................................................ 68
6.11.2 外部上电复位电路 ...................................................................... 69
6.11.3 残留电压保护.............................................................................. 69
6.12 代码选项 ............................................................................................. 70
6.12.1 代码选项寄存器 (Word 0)........................................................... 70
6.12.2 代码选项寄存器 (Word 1)........................................................... 72
6.12.3 用户 ID 寄存器(Word 2).............................................................. 73
6.12.4 用户 ID 寄存器(Word 3).............................................................. 74
6.13 低电压侦测/低电压复位................................................................................74
6.13.1 低电压复位................................................................................. 74
6.13.2 低电压侦测................................................................................. 75
6.13.3 编程过程 ................................................................................... 77
6.14 指令集 ................................................................................................ 78
7 绝对最大值 ................................................................................................. 80
8 DC 电气特性............................................................................................... 80
8.1 AD 转换特性 ......................................................................................... 82
8.2 VREF 2V/3V/4V 特性 ........................................................................... 83
9 AC 电气特性............................................................................................... 84
10 时序图 ........................................................................................................ 85
附录
A
B
C
封装类型..................................................................................................... 86
排序和制造信息.......................................................................................... 87
封装结构..................................................................................................... 88
C.1 EM78P301ND14.................................................................................. 88
C.2 EM78P301NSO14 ............................................................................... 89
C.3 EM78P301NMS10 ............................................................................... 90
C 品质保证和可靠性 ...................................................................................... 91
C.1 地址缺陷检测 ....................................................................................... 91
产品版本(V1.0) 12.17.2012
•v
目录
规格修订历史
Doc. 版本
vi •
修订描述
日期
0.9
原始版本
2012/12/12
1.0
最初版本
2012/12/17
产品版本(V1.0) 12.17.2012
EM78P301N
8位OTP微控制器
综述
1
EM78P301N是采用低功耗高速CMOS工艺设计开发的8位微控制器。该控制器有片内1KX13位一
次性编程ROM(OTP-ROM)。它提供一个保护位用以保护用户在OTP存储器内的程序不被读取,三
个代码选项以满足用户的需要.
基于增强的OTP-ROM特性,EM78P301N可方便地开发和校验用户代码,另外,使用开发与编程
工具,使此OTP代码更新更加简单和有效,用户可利用义隆烧录器很容易地烧录其开发代码.
产品特性
2
„
„
„
CPU 配置
• 1K×13位片内ROM
• 80×8位片内寄存器(SRAM)
„
快速启动时间,在XT模式(VDD: 5V, 晶振: 4 MHz, C1/C2:
15pF)下只需0.8ms, 在IRC模式(VDD: 5V, IRC: 4 MHz)
下只需10µs
• 8-级堆栈用于子程序嵌套
• 5V/4 MHz 工作条件下耗电流低于 1.5 mA
• 3V/32kHz 工作条件下耗电流典型值为 15 µA
• 休眠模式下耗电流典型值为 2 µA
I/O端口配置
• 3组双向I/O端口: P5, P6, P7
• 12 I/O引脚
• 唤醒端口: P5
• 8个可编程下拉I/O引脚(P50~P57)
• 10个可编程上拉I/O引脚(P50~P57, P60, P67)
• 2个可编程漏极开路I/O引脚(P60, P67)
• 8个可编程高灌I/O引脚(P50~P57, P60, P67)
• 外部中断 : P60
„
外设配置
• 8位实时时钟/计数器 (TCC),其时钟源、边沿触发和溢
出中断可选
• 4个可编程低电压检测
(LVD) : 4.5V, 4.0V, 3.3V, 2.2V
• 上电复位和三个可编程电平复位
POR: 1.8V (默认), LVR: 4.0, 3.5, 2.7V
• 8通道解析度为12位参考电压为(2/3/4v)的模数转换
器
• 两个脉宽调制器 (PWM),8位分辨率
„
工作电压范围:
• 2.1V~5.5V at 0°C~70°C (商规)
• 2.3V~5.5V at -40°C~85°C (工规)
„
工作频率范围(基于2个时钟周期):
• 晶振模式: DC ~ 16 MHz, 4.5V;
DC ~ 8 MHz, 3V; DC ~ 4 MHz, 2.1V
4 MHz
16 MHz
8 MHz
1 MHz
制程
总计
±2%
±2%
±2%
±2%
±1% *(2.1~5.5V)
±1% *(4.5~5.5V)
±1% *(3.0~5.5V)
±1% *(2.1~5.5V)
±2%
±2%
±2%
±2%
±5%
±5%
±5%
±5%
外部中断
ADC 转换完成中断
低电压检测(LVD) 中断
PWM1~2 周期匹配中断
PWM1~2 占空比匹配中断
„
封装类型:
偏移率
电压
输入端口状态改变中断(可唤醒休眠模式)
特性
• 可编程的自由运行看门狗定时器
(4.5 ms : 18 ms)
• 休眠省电模式
• 上电电压侦测器
• 高抗EFT特性 (4MHz及以下抗EFT性能更好)
• IRC 模式
振荡模式: 16 MHz, 4 MHz, 1 MHz, 8 MHz
温度
(-40~85°C)
TCC 溢出中断
„
• ERC 模式: DC ~ 2 MHz, 2.1V;
内部 RC
频率
9个可用中断
•
•
•
•
•
•
•
•
•
•
10-pin MSOP 118mil : EM78P301NMS10J
14-pin DIP 300mil
: EM78P301ND14J
14-pin SOP 150mil
: EM78P301NSO14J
注意: 绿色产品不含有害物质.
*工作电压范围
„
以上四个主频都可通过编程设置ICE300N仿真器的六个校
正位来校正,OTP可由义隆烧录器自动校正.
产品版本(V1.0) 12.17.2012
(产品更新不保证规格书同步更新)
•1
EM78P301N
8位OTP微控制器
3
引脚分配
1
14
2
13
3
12
4
11
5
10
6
9
7
8
图 3-1 EM78P301ND14/SO14
2•
图 3-2 EM78P301NMS10
产品版本(V1.0) 12.17.2012
(产品更新后不保证规格书同步更新)
EM78P301N
8位OTP微控制器
4
引脚描述
符号
P50
P51
P52
P53
P54
P55
P56
P57
产品版本(V1.0) 12.17.2012
(产品更新不保证规格书同步更新)
输入类
型
输出类
型
描述
P50
ST
CMOS
双向 I/O 引脚,可编程内部下拉、内部上拉和
引脚状态改变唤醒
ADC0
AN
−
P51
ST
CMOS
ADC1
AN
−
PWM2
−
CMOS
PWM2 输出
P52
ST
CMOS
双向 I/O 引脚,可编程内部下拉、内部上拉、
高驱动、高灌和引脚状态改变唤醒
ADC2
AN
−
P53
ST
CMOS
ADC3
AN
−
P54
ST
CMOS
TCC
ST
−
实时时钟/计数器的时钟输入
VREF
AN
−
ADC 外部参考电压
P55
ST
CMOS
ADC6
AN
−
OSCO
−
ERCin
功能
ADC 输入通道 0
双向 I/O 引脚,可编程内部下拉、内部上拉、
高驱动、高灌和引脚状态改变唤醒
ADC 输入通道 1
ADC 输入通道 2
双向 I/O 引脚,可编程内部下拉、内部上拉、
高驱动、高灌和引脚状态改变唤醒
ADC 输入通道 3
双向 I/O 引脚,可编程内部下拉、内部上拉、
高驱动、高灌和引脚状态改变唤醒
双向 I/O 引脚,可编程内部下拉、内部上拉和
引脚状态改变唤醒
ADC 输入通道 6
XTAL
晶体振荡器/陶瓷谐振器的时钟输出引脚
AN
−
外部 RC 输入引脚
P56
ST
CMOS
双向 I/O 引脚,可编程内部下拉、内部上拉、
高驱动、高灌和引脚状态改变唤醒
P57
ST
CMOS
双向 I/O 引脚,可编程内部下拉、内部上拉、
高驱动、高灌和引脚状态改变唤醒
ADC7
ST
−
ADC 输入通道 7
•3
EM78P301N
8位OTP微控制器
符号
P60//INT
P67/ADC4/PWM1
P70/ADC5/OSCI/
RCOUT
输入类
型
输出类
型
P60
ST
CMOS
双向 I/O 引脚,可编程漏极开路、内部上拉、
高驱动和高灌
/INT
ST
−
外部中断引脚
P67
ST
CMOS
双向 I/O 引脚,可编程漏极开路、内部上拉、
高驱动和高灌
ADC4
AN
−
PWM1
−
CMOS
PWM1 输出
P70
P70
−
双向 I/O 引脚
ADC5
AN
−
ADC 输入通道 5
OSCI
XTAL
−
晶体振荡器/陶瓷谐振器的时钟输入引脚
功能
ADC 输入通道 4
内部 RC 振荡器的时钟输出引脚
−
CMOS
P71
ST
CMOS
/RESET
ST
−
系统复位引脚(需要外部上拉)
ROCUT
P71
描述
外部 RC 振荡器的时钟输出引脚(漏极开路)
双向 I/O 引脚(漏极开路)
VDD
VDD
Power
−
电源
VSS
VSS
Power
−
地
注意: ST: 施密特触发输入引脚
XTAL: 晶体振荡器/陶瓷谐振器的振荡引脚
4•
AN: 模拟引脚
CMOS: CMOS 输出
产品版本(V1.0) 12.17.2012
(产品更新后不保证规格书同步更新)
EM78P301N
8位OTP微控制器
5
功能结构框图
图 5-1 EM78P301N 功能结构框图
产品版本(V1.0) 12.17.2012
(产品更新不保证规格书同步更新)
•5
EM78P301N
8位OTP微控制器
6
功能描述
6.1 操作寄存器
6.1.1 R0 (间接寻址寄存器)
R0 不是一个在物理寄存器空间存在的寄存器。它用于作为间接寻址指针,任何使用R0
作为存取数据指针的指令,实际上存取的是RAM选择寄存器(R4)所指向的数据.
6.1.2 R1 (定时时钟/计数器)
„
对来自TCC引脚的外部信号沿(边沿由CONT寄存器的第5位(TE)设置)或对内部指令
周期时钟进行加1计数.
„
与其它寄存器一样可读写.
„
TCC 预分频计数器分配给TCC使用
„
下列任何一种情况发生,CONT寄存器内容被清零–
• 给TCC寄存器赋值
• 给TCC预分频位赋值(CONT寄存器的第3, 2, 1, 0位)
• 上电复位,/RESET复位,或WDT溢出复位
6.1.3 R2 (程序计数器)和堆栈
图 6-1 程序存储器组织图
6•
产品版本(V1.0) 12.17.2012
(产品更新后不保证规格书同步更新)
EM78P301N
8位OTP微控制器
„
R2 和硬件堆栈是 10位宽,它的结构于6.1.3.1节的数据存储配置表中有描述.
„
产生1K×13位片内OTP ROM 地址以寻址相应的程序指令码。一个程序页是1024字
长.
„
复位时R2的所有位都被置为”0”.
„
"JMP" 指令可直接加载程序计数器的低10位。因此,"JMP"指令允许PC跳转到一个
程序页的任一位置.
„
""CALL"指令首先加载PC的低10位,然后将PC+1推入堆栈。因此,子程序入口地址
可位于一个程序页的任一位置.
„
"RET" ("RETL k", "RETI") 指令将栈顶值加载到当前PC.
„
"ADD R2, A" 可将一个相对地址与当前PC相加,PC的第九位及以上各位逐次递增.
„
"MOV R2, A" 可从"A"寄存器加载一个地址到PC的低8位,PC的第九位与第十位(A8
~ A9)保持不变.
„
任何(除“ADD R2,A”指令外)向R2写入值的指令(例如. "MOV R2, A", "BC R2, 6")都会
使PC的第九位与第十位(A8~A9)保持不变.
„
除了"LCALL"与"LJMP"外,其它任何指令都是单指令周期(fclk/2),"LCALL"与"LJMP"
指令需要两个指令周期.
产品版本(V1.0) 12.17.2012
(产品更新不保证规格书同步更新)
•7
EM78P301N
8位OTP微控制器
6.1.3.1
数据存储器配置
图 6-2 数据存储结构框图
8•
产品版本(V1.0) 12.17.2012
(产品更新后不保证规格书同步更新)
EM78P301N
8位OTP微控制器
6.1.4 R3 (状态寄存器)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
RST
IOCS
−
T
P
Z
DC
C
Bit 7 (RST): 复位类型位
若休眠模式由引脚状态改变或AD转换完成等唤醒,其值为“1”。其它复
位类型唤醒,其值为“0”.
Bit 6 (IOCS): IO控制寄存器段选择位
0: 选择段0 (IOC50 ~ IOCF0)
1: 选择段1 (IOC51 ~ IOCC1)
Bit 5: 未使用,一直设为“0".
Bit 4 (T): 溢出位。执行“SLEP”和“WDTC”指令或上电后置1,WDT溢出时清0(详见6.5.2
节,状态寄存器的T和P状态).
Bit 3 (P): 掉电位。 当上电或执行"WDTC"指令后置1,执行"SLEP"指令后该位清“0” (详
见6.5.2节,状态寄存器的T和P状态).
Bit 2 (Z): 零标志位. 如果逻辑或算术运算的结果为零时置”1”.
Bit 1 (DC): 辅助进位标志位
Bit 0 (C): 进位标志位
6.1.5 R4 (RAM选择寄存器)
Bit 7 (SBANK): 特殊功能寄存器 0x05~0x0F bank 选择位.
Bit 6 (BANK): 用于选择寄存器的Bank 0和Bank 1
Bits 5 ~ 0: 用于间接寻址模式下的寄存器选择(地址: 00~0F, 10~3F).
请参考上面章节6.1.3.1的数据存储器配置.
6.1.6 Bank 0 R5 ~ R7 (端口 5 ~ 端口 7)
R5 和P60 和 P67, P70 和 P71是 I/O 寄存器.
产品版本(V1.0) 12.17.2012
(产品更新不保证规格书同步更新)
•9
EM78P301N
8位OTP微控制器
6.1.7 Bank 0 R8 (AISR: ADC输入选择寄存器)
AISR寄存器分别单独定义I/O端口作为模拟输入或数字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): P57引脚的AD转换使能位
0: 禁止ADC7,P57作为普通I/O口
1: 使能ADC7作为模拟输入引脚
Bit 6 (ADE6): P55引脚的AD转换使能位
0: 禁止ADC6,P55作为普通I/O口
1: 使能ADC6作为模拟输入引脚
Bit 5 (ADE5): P70引脚的AD转换使能位
0: 禁止ADC5,P70作为普通I/O口
1: 使能ADC5作为模拟输入引脚
Bit 4 (ADE4): P67引脚的AD转换使能位
0: 禁止ADC4,P67作为普通I/O口
1: 使能ADC4作为模拟输入引脚
Bit 3 (ADE3): P53引脚的AD转换使能位
0: 禁止ADC3,P53作为普通I/O口
1: 使能ADC3作为模拟输入引脚
Bit 2 (ADE2): P52引脚的AD转换使能位
0: 禁止ADC2,P52作为普通I/O口
1: 使能ADC2作为模拟输入引脚
Bit 1 (ADE1): P51引脚的AD转换使能位
0: 禁止ADC1,P51作为普通I/O口
1: 使能ADC1作为模拟输入引脚
Bit 0 (ADE0): P50引脚的AD转换使能位
0: 禁止ADC0,P50作为普通I/O口
1: 使能ADC0作为模拟输入引脚
10 •
产品版本(V1.0) 12.17.2012
(产品更新后不保证规格书同步更新)
EM78P301N
8位OTP微控制器
注意
P55/ADC6/OSCO/ERCin引脚不能同时用作OSCO与ADC6,如果
P55/ADC6/OSCO/ERCin作为OSCO振荡器输入引脚, 此时,R8的ADE6位须为”0”且
ADIS2~0不能选择 “110”。 P55/ADC6/OSCO/ERCin 引脚的优先级如下
:
P55/ADC6/OSCO 引脚优先级
高
中
低
OSCO/ERCin
ADC6
P55
P70/ADC5/OSCI/RCOUT引脚不能同时用作OSCI与ADC5,如果
P70/ADC5/OSCI/RCOUT作为OSCI振荡器输入引脚, 此时,R8的ADE5位须为”0”且
ADIS2~0不能选择 “101”。 P70/ADC5/OSCI/RCOUT引脚的优先级如下:
P70/ADC5/OSCI/ROCUT 引脚优先级
高
中
低
OSCI/RCOUT
ADC5
P70
P67/ADC4/PWM1引脚不能同时用作PWM1与ADC4,如果P67/ADC4/PWM1作为ADC4
模拟输入引脚,此时,P67/ADC4/PWM1引脚的优先级如下:
P67/ADC4/PWM1 引脚优先级
高
中
低
ADC4
PWM1
P67
P51/ADC1/PWM2引脚不能同时用作PWM2与ADC1,如果P51/ADC1/PWM2作为ADC1
模拟输入引脚,此时,P51/ADC1/PWM2引脚的优先级如下:
P51/ADC1/PWM2 引脚优先级
高
中
低
ADC1
PWM2
P51
P50/ADC0引脚不能同时用作ADC0,如果P50/ADC0作为ADC0模拟输入引脚,此时,
P50/ADC0引脚的优先级如下:
P50/ADC0 引脚优先级
产品版本(V1.0) 12.17.2012
(产品更新不保证规格书同步更新)
高
低
ADC0
P50
• 11
EM78P301N
8位OTP微控制器
6.1.8 Bank 0 R9 (ADCON: ADC 控制寄存器)
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的参考电压(默认值),VREF/TCC/P54引脚执
行P54功能(默认)
1: 引脚VREF/TCC/P54上的电压作为ADC的参考电压
注意
„ P54/TCC/VREF 引脚不能同时作为 TCC 和 VREF ,如果 P54/TCC/VREF 用作 VREF
模拟输入引脚,此时,CONT寄存器第5位”TS”须设为“0”
„ VREF/TCC/P54引脚的优先级如下:
P54/TCC/VREF引脚优先级
高
中
低
VREF
TCC
P54
Bit 6 and Bit 5 (CKR1 and CKR0): ADC 的振荡器时钟预分频
00 = 1 : 16 (默认值)
01 = 1 : 4
10 = 1 : 64
11 = 1 : 1
Bit 4 (ADRUN): ADC开始启动
0: 当转换完成时由硬件复位,该位不能由软件复位(默认)
1: AD转换开始,该位可由软件置位
Bit 3 (ADPD): ADC 上电
0: ADC处于省电模式(默认)
1: ADC 正常工作
12 •
产品版本(V1.0) 12.17.2012
(产品更新后不保证规格书同步更新)
EM78P301N
8位OTP微控制器
Bit 2 ~ Bit 0 (ADIS2 ~ ADIS0): 模拟输入选择
ADICS
ADIS2
ADIS1
ADIS0
模拟输入选择
0
0
0
0
ADIN0/P50
0
0
0
1
ADIN1/P51
0
0
1
0
ADIN2/P52
0
0
1
1
ADIN3/P53
0
1
0
0
ADIN4/P67
0
1
0
1
ADIN5/P70
0
1
1
0
ADIN6/P55
0
1
1
1
ADIN7/P57
1
0
X
X
OPOUT
1
1
X
X
内部 1/4 VDD
这些位仅在ADIF位和ADRUN位均为低时才可改变。请参见6.1.13章节RE寄存器(中断状
态 2 和唤醒控制寄存器) .
6.1.9 Bank 0 RA (ADOC: ADC 补偿校准寄存器)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
CALI
SIGN
VOF[2]
VOF[1]
VOF[0]
VREF1
VREF0
ADICS
Bit 7 (CALI): ADC补偿校准使能位
0: 禁止校准 (默认)
1: 使能校准
Bit 6 (SIGN): 补偿电压极性选择位
0: 负电压 (默认)
1: 正电压
Bit 5 ~ Bit 3 (VOF[2] ~ VOF[0]): 补偿电压位
VOF[2]
VOF[1]
VOF[0]
EM78P301N
0
0
0
0LSB
0
0
1
2LSB
0
1
0
4LSB
0
1
1
6LSB
1
0
0
8LSB
1
0
1
10LSB
1
1
0
12LSB
1
1
1
14LSB
产品版本(V1.0) 12.17.2012
(产品更新不保证规格书同步更新)
• 13
EM78P301N
8位OTP微控制器
Bit 2 ~ Bit 1 (VREF1 ~ VREF0): ADC 内部参考电压源
VREF1
VREF0
ADC 内部参考电压
0
0
VDD (默认)
0
1
4.0V ± 1%
1
0
3.0V ± 1%
1
1
2.0V ± 1%
注意
„
„
如果VREF [1:0]=00, 内部参考电压没有启动,如果VREF[1:0]≠ 00则将自动启
动,而且,内部参考电压的电源与ADC无关.
使用内部参考电压的时候,用户第一次使能和稳定参考电压需要等待至少50µs.不
稳定的参考电压将导致转换结果出错,之后,用户任何时候开关参考电压仅仅需要
等候至少6µs.
Bit 0 (ADICS): ADC 内部通道选择位(选择ADC内部1/4 VDD或OP输出引脚接至ADC输
入脚)
0: 禁止 (默认)
1: 使能
6.1.10 Bank 0 RB (ADDATA: ADC转换结果)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
AD11
AD10
AD9
AD8
AD7
AD6
AD5
AD4
当AD转换完成时,结果存入ADDATA, ADRUN位清“0”,ADIF置“1”,见6.1.13部分,
Bank 0 RE(中断状态 2 和唤醒控制寄存器).
RB为只读寄存器.
6.1.11 Bank 0 RC (ADDATA1H: ADC转换结果)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
“0”
“0”
“0”
“0”
AD11
AD10
AD9
AD8
当AD转换完成时,结果存入ADDATA1H, ADRUN位清“0”,ADIF置“1”,见6.1.13部分,
Bank 0 RE(中断状态 2 和唤醒控制寄存器).
RC为只读寄存器.
14 •
产品版本(V1.0) 12.17.2012
(产品更新后不保证规格书同步更新)
EM78P301N
8位OTP微控制器
6.1.12 Bank 0 RD (ADDATA1L: ADC转换结果)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
AD7
AD6
AD5
AD4
AD3
AD2
AD1
AD0
当AD转换完成时,结果存入ADDATA1L, ADRUN位清“0”,ADIF置“1”,见6.1.13部分,
Bank 0 RE(中断状态 2 和唤醒控制寄存器).
RD为只读寄存器
6.1.13 Bank 0 RE (中断状态 2 和唤醒控制寄存器)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
/LVD
LVDIF
ADIF
−
ADWE
−
ICWE
LVDWE
注意: 1. RE <6, 5>可由指令清零,但不能置位.
2. IOCE0 是中断屏蔽寄存器.
3. 读RE的值是RE与IOCE0“逻辑与"的结果.
Bit 7 (/LVD): 低电压侦测器状态位,该位为只读位。当VDD引脚电压小于LVD中断电平
(通过LVD1和LVD0位来选择)时,该位被清零.
0: 检测到低电压
1: 未检测到低电压或LVD功能禁止(默认)
Bit 6 (LVDIF): 低电压侦测器中断标志位
LVDIF由软件复位为“0”.
Bit 5 (ADIF): 模数转换中断标志位,当AD转换完成时置位,由软件复位.
0: 没有中断发生(默认)
1: 中断请求
Bit 4: 未使用. 一直置"0".
Bit 3 (ADWE): ADC 唤醒使能位
0: 禁止ADC 唤醒(默认)
1: 使能ADC 唤醒
当AD转换进入休眠/空闲模式时,该位必须设为“使能"。.
Bit 2: 未使用. 一直置"0".
产品版本(V1.0) 12.17.2012
(产品更新不保证规格书同步更新)
• 15
EM78P301N
8位OTP微控制器
Bit 1 (ICWE): 端口5输入状态改变唤醒使能位
0: 禁止端口5输入状态改变唤醒(默认)
1: 使能端口5输入状态改变唤醒
当Port5状态改变用于唤醒休眠/空闲模式时,该位必须设为“使能"。
Bit 0 (LVDWE): 低电压侦测唤醒使能位
0: 禁止低电压侦测唤醒(默认)
1: 使能低电压侦测唤醒
在低电压侦测运行情况下,当其用于进入中断或将IC由休眠/空闲模式唤
醒时,LVDWE位必须设为“使能”。
6.1.14 Bank 0 RF (中断状态 2 寄存器)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
-
DT2IF
DT1IF
PWM2IF
PWM1IF
EXIF
ICIF
TCIF
注意: 1. “1” 表示有中断请求, “0”
2. RF 可由指令清“0",但不能置1.
3. IOCF0是中断屏蔽寄存器.
4. 读RF的值是RF与IOCF0“逻辑与"的结果
Bit 7: 未使用. 一直置"0".
Bit 6 (DT2IF): PWM2 占空比中断标志,当PWM2占空比匹配时置位,由软件清零.
Bit 5 (DT1IF): PWM1 占空比中断标志,当PWM1占空比匹配时置位,由软件清零.
Bit 4 (PWM2IF): PWM2 周期中断标志,当PWM2周期匹配时置位,由软件清零.
Bit 3 (PWM1IF): PWM1 周期中断标志,当PWM1周期匹配时置位,由软件清零.
Bit 2 (EXIF): 外部中断标志位,在/INT引脚下降沿时置位,由软件清零.
Bit 1 (ICIF): 端口5输入状态改变中断标志,当端口5输入状态改变时置位,由软件清零.
Bit 0 (TCIF): TCC溢出中断标志,当TCC溢出时置位,由软件清零.
16 •
产品版本(V1.0) 12.17.2012
(产品更新后不保证规格书同步更新)
EM78P301N
8位OTP微控制器
6.1.15 Bank 1 R5 (TBHP: TBRD指令的表指向寄存器)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
MLB
-
-
-
-
-
RBit9
RBit8
Bit 7 (MLB): 选择机械码的MSB或LSB值移到寄存器.
机械码由TBLP与TBHP寄存器指向.
Bit 6 ~ Bit 2: 未用,一直设为“0”。
Bit 1 ~ Bit 0: 程序码地址的最高2个有效位
6.1.16 Bank 1 R6 (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
Bit 7 ~ Bit 0: 程序码地址的最低8个有效位.
6.1.17 Bank 1 R7 (PWMCON: PWM 控制寄存器)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
”0”
“0”
“0”
“0”
“0”
PWMCAS
PWM2E
PWM1E
Bit 7~ Bit 3: 未用,一直设为“0”
Bit 2 (PWMCAS): PWM 级联模式
0: 两个独立的 8 位 PWM 功能(默认值)
1: 16-位 PWM 模式(由两个 8 位 PWM 级联而来)
Bit 1 (PWM2E): PWM2 使能位
0: PWM2 关闭(默认值),其相关的引脚用作 P51 功能.
1: PWM2 开启,其相关引脚自动设为输出.
Bit 0 (PWM1E): PWM1 使能位
0: PWM1 关闭(默认值),其相关的引脚用作 P67 功能
1: PWM1 开启,其相关引脚自动设为输出
产品版本(V1.0) 12.17.2012
(产品更新不保证规格书同步更新)
• 17
EM78P301N
8位OTP微控制器
6.1.18 Bank 1 R8 (TMRCON: 定时器控制寄存器)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
T2EN
T1EN
T2P2
T2P1
T2P0
T1P2
T1P1
T1P0
Bit 7 (T2EN): TMR2 使能位
0: TMR2 关闭(默认)
1: TMR2 开启
Bit 6 (T1EN): TMR1 使能位
0: TMR1 关闭(默认)
1: TMR1 开启
Bit 5 ~ Bit 3 (T2P2 ~ T2P0): TMR2时钟分频器选项位
T2P2
T2P1
T2P0
分频比
0
0
0
1:1 (默认)
0
0
1
1:2
0
1
0
1:4
0
1
1
1:8
1
0
0
1:16
1
0
1
1:64
1
1
0
1:128
1
1
1
1:256
Bit 2 ~ Bit 0 (T1P2 ~ T1P0): TMR1时钟分频器选项位
T1P2
T1P1
T1P0
分频比
0
0
0
1:1 (默认)
0
0
1
1:2
0
1
0
1:4
0
1
1
1:8
1
0
0
1:16
1
0
1
1:64
1
1
0
1:128
1
1
1
1:256
6.1.19 Bank 1 R9 (PRD1: PWM 1时间周期)
Bank 1-R9 内容是PWM1的时间周期(时基),PWM1的频率是其周期的倒数.
18 •
产品版本(V1.0) 12.17.2012
(产品更新后不保证规格书同步更新)
EM78P301N
8位OTP微控制器
6.1.20 Bank 1 RA (PRD2: PWM 2时间周期)
Bank 1-RA 内容是PWM2的时间周期(时基),PWM2的频率是其周期的倒数
6.1.21 Bank 1 RB (DT1: PWM 1占空比周期)
使PWM1的输出一直保持高电平直到其值与TMR1内容相匹配的一个特定值
6.1.22 Bank 1 RC (DT2: PWM 2占空比周期)
使PWM2的输出一直保持高电平直到其值与TMR2内容相匹配的一个特定值
6.1.23 Bank 1 RD (PWM 1 和 PWM 2 时间和占空比周期的高字节)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
DT2[9]
DT2[8]
DT1[9]
DT1[8]
PRD2[9]
PRD2[8]
PRD1[9]
PRD1[8]
Bits 7~6 (DT2 [9~8]): Bank 1 RD中对应的内容是PWM 2占空比的高字节
Bits 5~4 (DT1 [9~8]): Bank 1 RD中对应的内容是PWM 1占空比的高字节
Bits 3~2 (PRD2 [9~8]): Bank 1 RD中对应的内容是PWM 2周期的高字节.
Bits 1~0 (PRD1 [9~8]): Bank 1 RD中对应的内容是PWM 1周期的高字节.
6.1.24 Bank 1 RE (LVD 中断和唤醒寄存器)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
LVDIE
LVDEN
LVD1
LVD0
-
-
-
EXWE
Bit 7 (LVDIE): 低电压侦测器中断使能位
0: 禁止低电压侦测器中断(默认)
1: 使能低电压侦测器中断
„
当低电压侦测用于进入中断向量或进入下一条指令时,LVDIE位必须设为“使能”.
Bit 6 (LVDEN): 低电压侦测器使能位
0: 禁止低电压侦测器功能(默认)
1: 使能低电压侦测器功能
产品版本(V1.0) 12.17.2012
(产品更新不保证规格书同步更新)
• 19
EM78P301N
8位OTP微控制器
Bit 5 ~ Bit 4: 低电压侦测器电平选择位
LVDEN
LVD1, LVD0
1
11 (默认)
1
10
1
01
1
00
0
××
LVD 中断电平
/LVD
Vdd ≤ 2.2V
0
Vdd > 2.2V
1
Vdd ≤ 3.3V
0
Vdd > 3.3V
1
Vdd ≤ 4.0V
0
Vdd > 4.0V
1
Vdd ≤ 4.5V
0
Vdd > 4.5V
1
N/A
1
注意
当VDD变化时,如果Vdd达到LVD中断电平,LVD中断产生
Bit 3 ~ Bit 1: 未用,一直设为“0”.
Bit 0 (EXWE): 外部/INT引脚唤醒使能位
0: 禁止外部/INT引脚唤醒(默认)
1: 使能外部/INT引脚唤醒
6.1.25 Bank 1 RF (系统控制寄存器)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
-
TIMERSC
CPUS
IDLE
SHS1
SHS0
RCM1
RCM0
Bit 7: 未用,一直设为“0”.
Bit 6 (TIMERSC): TCC, PWM1, PWM2时钟源选择位.
0: Fs 用作 Fc
1: Fm 用作 Fc (默认)
Bit 5 (CPUS): CPU振荡源选择位
0: Fs : 副频(WDT内部RC时基16kHz)
1: Fm : 主频(Fm) (默认)
当CPUS=0,CPU振荡器选择副振荡器,主振荡器停止
20 •
产品版本(V1.0) 12.17.2012
(产品更新后不保证规格书同步更新)
EM78P301N
8位OTP微控制器
Bit 4 (IDLE): 空闲模式使能位.
该位将决定执行SLEP指令后CPU将进入哪个工作模式
0: IDLE = ‘0’ + SLEP 指令 → 休眠模式 (默认)
1: IDLE = ‘1’ + SLEP 指令 → 空闲模式
„
CPU 工作模式
图 6-3 CPU 工作模式框图
振荡器
(正常模式振荡源)
晶体
1M ~ 16 MHz
CPU 模式状态
休眠/空闲 → 普通
低速 → 普通
休眠/空闲 → 低速
IRC
1M, 4M, 8M, 16 MHz
低速 → 普通
休眠/空闲 → 低速
休眠/空闲 → 普通
振荡器稳定时间
0.5 ms ~ 2 ms
< 100 µs
< 2 µs
1
普通/低速模式下计数
2
(CLK)
510 CLK
510 CLK
8 CLK
8 CLK
< 100 µs
注意
1
■ 振荡器的稳定时间取决于振荡器的特性.
■
2
振荡器稳定后,CPU在普通/低速模式下将计数510/8 CLK,然后继续工作在普通/低
速模式。
例 1 : 4MHz IRC条件下从休眠模式唤醒至正常模式,总的唤醒时间是 2 µs + 8 CLK @
4 MHz
例 2 : 4MHz IRC条件下从休眠模式唤醒至低速模式,总的唤醒时间是 100 µs + 8 CLK
@ 16kHz
产品版本(V1.0) 12.17.2012
(产品更新不保证规格书同步更新)
• 21
EM78P301N
8位OTP微控制器
Bit 3 ~ Bit 2 (SHS1 ~ SHS0): 选择AD采样和保持周期
(建议至少4µs, TAD: ADC工作时钟周期).
ADC 采样和保持周期(TAD)
SHS1
SHS0
0
0
2 x TAD
0
1
4 x TAD
1
0
8 x TAD
1
1
12 x TAD (默认)
Bits 1 ~ 0 (RCM1 ~ RCM0): IRC模式选择位.
RCM 1
RCM 0
频率 (MHz)
1
1
4
1
0
16
0
1
8
0
0
1
Bank 1 RF<1, 0> 将被使能.
烧录器校正 IRC
4 MHz
16 MHz
8 MHz
1 MHz
Bank 1 RF<1,0>
频率
工作电压范围
稳定时间
1
4 MHz ± 2%
2.1V ~ 5.5V
< 5 µs
1
0
16 MHz ± 10%
4.5V ~ 5.5V
< 1.5 µs
0
1
8 MHz ± 10%
3.0V ~ 5.5V
< 3 µs
0
0
1MHz ± 10%
2.1V ~ 5.5V
< 24 µs
RCM1
RCM0
1
1
1
4 MHz ± 10%
2.1V ~ 5.5V
< 6 µs
1
0
16 MHz ± 2%
4.5V ~ 5.5V
< 1.25 µs
0
1
8 MHz ± 10%
3.0V ~ 5.5V
< 3 µs
0
0
1MHz ± 10%
2.1V ~ 5.5V
< 24 µs
1
1
4 MHz ± 10%
2.1V ~ 5.5V
< 6 µs
1
0
16 MHz ± 10%
4.5V ~ 5.5V
< 1.5 µs
0
1
8 MHz ± 2%
3.0V ~ 5.5V
< 2.5 µs
0
0
1MHz ± 10%
2.1V ~ 5.5V
< 24 µs
1
1
4 MHz ± 10%
2.1V ~ 5.5V
< 6 µs
1
0
16 MHz ± 10%
4.5V ~ 5.5V
< 1.5 µs
0
1
8 MHz ± 10%
3.0V ~ 5.5V
< 3 µs
0
0
1MHz ± 2%
2.1V ~ 5.5V
< 20 µs
注意
■ Bank1 RF<1,0>初始值将保持与Word 1<6,5>的值一致.
■ 如果用户改变IRC频率由A-频率到B-频率,MCU须等待一段时间后才工作,等待时间
与B-频率有关.
22 •
产品版本(V1.0) 12.17.2012
(产品更新后不保证规格书同步更新)
EM78P301N
8位OTP微控制器
例如:
1st步骤 当用户在烧录时选择的频率为4MHz, Bank 1 RF<1,0>的初始值为“11”,与
Word 1<6,5>的值(“11”)一致.
如果MCU全速运行,它将工作在4 MHz ± 2%,参考下表.
烧录器校准 IRC
4 MHz
Bank 1 RF<1,0>
频率
工作电压范围
稳定时间
1
4 MHz ± 2%
2.1V ~ 5.5V
< 5 µs
1
0
16 MHz ± 10%
4.5V ~ 5.5V
< 1.5 µs
0
1
8 MHz ± 10%
3.0V ~ 5.5V
< 3 µs
0
0
1MHz ± 10%
2.1V ~ 5.5V
< 24 µs
RCM1
RCM0
1
2nd 步骤 当MCU工作在4 MHz ± 2%下,若希望设置RF<1,0> = “10”,MCU须保持1.5µs ,
然后在16 MHz ± 10%下继续工作.
烧录器校准 IRC
4 MHz
Bank 1 RF<1,0>
频率
工作电压范围
稳定时间
1
4 MHz ± 2%
2.1V ~ 5.5V
< 5 µs
1
0
16 MHz ± 10%
4.5V ~ 5.5V
< 1.5 µs
0
1
8 MHz ± 10%
3.0V ~ 5.5V
< 3 µs
0
0
1MHz ± 10%
2.1V ~ 5.5V
< 24 µs
RCM1
RCM0
1
3rd 步骤 当MCU工作在16 MHz ± 10%下,若希望设置RF<1,0> = “00”,MCU须保持
24µs ,然后在1 MHz ± 10%下继续工作.
烧录器校准 IRC
4 MHz
产品版本(V1.0) 12.17.2012
(产品更新不保证规格书同步更新)
Bank 1 RF<1,0>
频率
工作电压范围
稳定时间
1
4 MHz ± 2%
2.1V ~ 5.5V
< 5 µs
1
0
16 MHz ± 10%
4.5V ~ 5.5V
< 1.5 µs
0
1
8 MHz ± 10%
3.0V ~ 5.5V
< 3 µs
0
0
1MHz ± 10%
2.1V ~ 5.5V
< 24 µs
RCM1
RCM0
1
• 23
EM78P301N
8位OTP微控制器
4th步骤 当MCU工作在1 MHz ± 10%下,若希望设置RF<1,0> = “11”,MCU须保持5µs ,
然后在4 MHz ± 2%下继续工作.
烧录器校准 IRC
Bank 1 RF<1,0>
频率
工作电压范围
稳定时间
1
4 MHz ± 2%
2.1V ~ 5.5V
< 5 µs
1
0
16 MHz ± 10%
4.5V ~ 5.5V
< 1.5 µs
0
1
8 MHz ± 10%
3.0V ~ 5.5V
< 3 µs
0
0
1 MHz ± 10%
2.1V ~ 5.5V
< 24 µs
RCM1
RCM0
1
4 MHz
6.1.26 R10 ~ R3F
这些寄存器都是 8位通用寄存器.
6.2 特殊功能寄存器
6.2.1 A (累加器)
用于内部数据传输或指令操作数通常暂存在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
注意: CONT寄存器可读写.
Bit 6 为只读位.
Bit 7 (INTE): INT 信号边沿
0: 中断发生在INT引脚信号上升沿
1: 中断发生在INT引脚信号下降沿
Bit 6 (INT): 中断使能标志位
0: 由DISI指令或硬件中断屏蔽
1: 由ENI或RETI指令使能
该位为只读位
Bit 5 (TS): TCC 信号源
0: 内部指令周期时钟,若P54作为双向I/O口
1: 由 TCC 引脚传输信号
Bit 4 (TE): TCC 信号边沿
0: TCC引脚上的传输信号由低到高变化时,TCC加1
1: TCC引脚上的传输信号由高到低变化时,TCC加1
24 •
产品版本(V1.0) 12.17.2012
(产品更新后不保证规格书同步更新)
EM78P301N
8位OTP微控制器
Bit 3 (PSTE): TCC预分频使能位
0: 预分频比禁止,TCC 分频比为1:1
1: 预分频比使能,TCC分频比由Bit 2 ~ Bit 0设置
Bit 2 ~ Bit 0 (PST2 ~ PST0): TCC 预分频位
PST2
PST1
PST0
TCC 分频比
0
0
0
0
1
1
1
0
0
1
1
0
0
1
0
1
0
1
0
1
0
1:2
1:4
1:8
1:16
1:32
1:64
1:128
1
1
1
1:256
注意: Tcc 溢出时间 [1/FT x 预分频比 x (256 − Tcc cnt) x 1
FT = Fm 或 Fs, 由 Bank 1 RF TIMERSC 位定义.
6.2.3 IOC50 ~ IOC70 (I/O Port 控制寄存器)
"0" 定义相关I/O引脚为输出口
"1" 定义相关I/O引脚为高阻态输入
6.2.4 IOC80 (定时器 1和 2的高字节)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
TMR2[9]
TMR2[8]
-
-
-
-
TMR1[9]
TMR1[8]
注意: IOC80寄存器的第7~6和第1~0位都是可读可写位.
Bits 7~ 6 (TMR2[9], TMR2[8]): PWM2 定时器的最高有效位
Bits 5~2 : 一直为0.
Bits 1~ 0 (TMR1[9], TMR1[8]): PWM1定时器的最高有效位
IOC80 对应的这两个位的内容只读.
6.2.5 IOC90 (TMR1: PWM 1定时器)
6.2.6 IOCA0 (TMR2: PWM 2定时器)
产品版本(V1.0) 12.17.2012
(产品更新不保证规格书同步更新)
• 25
EM78P301N
8位OTP微控制器
6.2.7 IOCB0 (下拉控制寄存器)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
/PD57
/PD56
/PD55
/PD54
/PD53
/PD52
/PD51
/PD50
IOCB0寄存器可读写.
Bit 7 (/PD57): 控制位用于使能P57引脚内部下拉功能.
0:使能内部下拉
1:禁止内部下拉(默认)
Bit 6 (/PD56): 控制位用于使能P56引脚内部下拉功能
Bit 5 (/PD55): 控制位用于使能P55引脚内部下拉功能
Bit 4 (/PD54): 控制位用于使能P54引脚内部下拉功能
Bit 3 (/PD53): 控制位用于使能P53引脚内部下拉功能
Bit 2 (/PD52): 控制位用于使能P52引脚内部下拉功能
Bit 1 (/PD51): 控制位用于使能P51引脚内部下拉功能
Bit 0 (/PD50): 控制位用于使能P50引脚内部下拉功能
6.2.8 IOCC0 (漏极开路控制寄存器)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
OD67
-
-
-
-
-
-
OD60
IOCC0寄存器可读写.
Bit 7 (OD67): 控制位用于使能P67引脚漏极开路功能.
0: 禁止漏极开路输出
1: 使能漏极开路输出
Bits 6~1: 未使用
Bit 0 (OD60): 控制位用于使能P60引脚漏极开路功能.
26 •
产品版本(V1.0) 12.17.2012
(产品更新后不保证规格书同步更新)
EM78P301N
8位OTP微控制器
6.2.9 IOCD0 (上拉控制寄存器)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
/PH57
/PH56
/PH55
/PH54
/PH53
/PH52
/PH51
/PH50
IOCD0寄存器可读写.
Bit 7 (/PH57): 控制位用于使能P57引脚内部上拉功能.
0: 使能内部上拉
1: 禁止内部上拉
Bit 6 (/PH56): 控制位用于使能P56引脚内部上拉功能
Bit 5 (/PH55): 控制位用于使能P55引脚内部上拉功能
Bit 4 (/PH54): 控制位用于使能P54引脚内部上拉功能
Bit 3 (/PH53): 控制位用于使能P53引脚内部上拉功能
Bit 2 (/PH52): 控制位用于使能P52引脚内部上拉功能
Bit 1 (/PH51): 控制位用于使能P51引脚内部上拉功能
Bit 0 (/PH50): 控制位用于使能P50引脚内部上拉功能
6.2.10 IOCE0 (WDT 控制寄存器和中断屏蔽寄存器 2)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
WDTE
EIS
ADIE
CMPIE
PSWE
PSW2
PSW1
PSW0
Bit 7 (WDTE): 控制位用于使能看门狗定时器
0: 禁止 WDT (默认)
1: 使能 WDT
WDTE位可读写.
Bit 6 (EIS): 控制位用于定义P60 (/INT)引脚的功能
0: P60, 双向I/O引脚
1: /INT, 外部中断引脚,这种情况下,P60 的I/O控制位(IOC60的位 0 )必
须设置为“1”.
注意
■ 当EIS为“0”时,/INT通道被屏蔽。当EIS为“1”时,/INT引脚状态也可由读取Port6(R6)
读取到。参考图6-5(6.4部分(I/O端口)的I/O端口和I/O控制寄存器电路)
■ EIS位可读写.
Bit 5 (ADIE): ADIF中断使能位
0: 禁止ADIF中断
1: 使能ADIF中断
产品版本(V1.0) 12.17.2012
(产品更新不保证规格书同步更新)
• 27
EM78P301N
8位OTP微控制器
Bit 4 (CMPIE): CMPIF 中断使能位
0: 禁止CMPIF中断
1: 使能CMPIF中断
Bit 3 (PSWE): WDT预分频使能位
0: 预分频禁止,WDT分频比为1:1
1: 预分频使能,WDT分频比由位 2 ~ 位 0
Bit 2 ~ Bit 0 (PSW2 ~ PSW0): WDT预分频比位
PSW2
PSW1
PSW0
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
WDT分频比
6.2.11 IOCF0 (中断屏蔽寄存器)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
-
DT2IE
DT1IE
PWM2IE
PWM1IE
EXIE
ICIE
TCIE
注意: IOCF0寄存器是可读写的.
通过设定IOCF0和IOCE0的位4,5相关位为“1”来使能单个中断.
全局中断由ENI 指令使能,由DISI指令禁止。参考以下第6部分中断的图 6-7中断输入电路
Bit 7: 未使用. 一直置"0".
Bit 6 (DT2IE): DT2IE中断使能位
0: 禁止 DT2IF 中断
1: 使能 DT2IF 中断
Bit 5 (DT1IE): DT1IE中断使能位
0: 禁止DT1IF 中断
1: 使能DT1IF 中断
Bit 4 (PWM2IE): PWM2IE中断使能位
0: 禁止PWM2IF中断
1: 使能PWM2IF中断
Bit 3 (PWM1IE): PWM1IE中断使能位
0: 禁止PWM1IF中断
1: 使能PWM1IF中断
28 •
产品版本(V1.0) 12.17.2012
(产品更新后不保证规格书同步更新)
EM78P301N
8位OTP微控制器
Bit 2 (EXIE): EXIF中断使能位
0: 禁止EXIF中断
1: 使能EXIF中断
Bit 1 (ICIE): ICIF 中断使能位
0: 禁止ICIF中断
1: 使能ICIF中断
Bit 0 (TCIE): TCIF 中断使能位.
0: 禁止TCIF中断
1: 使能TCIF中断
6.2.12 IOC51 (高灌电流控制寄存器1)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
HS57
HS56
HS55
HS54
HS53
HS52
HS51
HS50
Bit 7 (HS57): P57输出高灌电流的选择位.
Bit 6 (HS56): P56输出高灌电流的选择位.
Bit 5 (HS55): P55输出高灌电流的选择位
Bit 4 (HS54): P54输出高灌电流的选择位.
Bit 3 (HS53): P53输出高灌电流的选择位.
Bit 2 (HS52): P52输出高灌电流的选择位.
Bit 1 (HS51): P51输出高灌电流的选择位.
Bit 0 (HS50): P50输出高灌电流的选择位
HSxx
VDD = 5V, 灌电流
0
12 mA (in 0.1VDD)
1
25 mA (in 0.1VDD)
6.2.13 IOC61 (高灌电流控制寄存器2)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
HS67
-
-
-
-
-
-
HS60
Bit 7 (HS67): P67输出高灌电流的选择位.
Bits 6~1: 未使用,一直置0
Bit 0 (HS60): P60输出高灌电流的选择位.
产品版本(V1.0) 12.17.2012
(产品更新不保证规格书同步更新)
HSxx
VDD = 5V, 灌电流
0
12 mA (in 0.1VDD)
1
25 mA (in 0.1VDD)
• 29
EM78P301N
8位OTP微控制器
6.2.14 IOC71 (高驱动电流控制寄存器1)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
HD57
HD56
HD55
HD54
HD53
HD52
HD51
HD50
Bit 7 (HD57): P57输出高驱动电流的选择位.
Bit 6 (HD56): P56输出高驱动电流的选择位.
Bit 5 (HD55): P55输出高驱动电流的选择位.
Bit 4 (HD54): P54输出高驱动电流的选择位.
Bit 3 (HD53): P53输出高驱动电流的选择位.
Bit 2 (HD52): P52输出高驱动电流的选择位.
Bit 1 (HD51): P51输出高驱动电流的选择位.
Bit 0 (HD50): P50输出高驱动电流的选择位.
HDxx
VDD = 5V, 驱动电流
0
6 mA (in 0.9VDD)
1
18 mA (in 0.9VDD)
6.2.15 IOC81 (高驱动电流控制寄存器2)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
HD67
-
-
-
-
-
-
HD60
Bit 7 (HD67): P67输出高驱动电流的选择位.
Bits 6~1: 未使用
Bit 0 (HD60): P60输出高驱动电流的选择位.
30 •
HDxx
VDD = 5V, 驱动电流
0
6 mA (in 0.9VDD)
1
18 mA (in 0.9VDD)
产品版本(V1.0) 12.17.2012
(产品更新后不保证规格书同步更新)
EM78P301N
8位OTP微控制器
6.2.16 IOCF1 (上拉控制寄存器)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
/PH67
-
-
-
-
-
-
/PH60
注意: IOCD0 寄存器是可读写的.
Bit 7 (/PH67): 控制位用于使能P67引脚的内部上拉功能.
0: 使能内部上拉
1: 禁止内部上拉
Bits 6~1: 未使用.
Bit 0 (/PH60): 控制位用于使能P60引脚的内部上拉功能.
6.3 TCC/WDT & 预分频器
有两个8位计数器分别作为TCC和WDT的分频器。CONT寄存器的PST2~PST0位决定
TCC的分频系数。IOCE0寄存器的PSW0~PSW2位决定WDT的分频系数。每次给TCC
赋值都将TCC预分频计数器清零。执行 “WDTC”和“SLEP” 指令可将WDT和预分频比清
0。TCC/WDT的电路结构图如图6-3所示。
TCC(R1)是一个8位定时/计数器,TCC时钟源可以选择内部时钟(Fm/Fs)或外部信号输
入(从TCC引脚输入的时钟边沿可选择)。如果TCC信号源来自内部时钟,TCC将在每
个指令周期(没有分频比)加1。如果TCC信号源来自外部时钟,TCC将在TCC引脚输入
每个下降沿或上升沿时加1, TCC引脚输入脉冲宽度(保持高或低电平)必须大于Fm时
钟或Fs时钟,由BANK 1 RF CPUS位决定。
注意
在休眠模式下,内部TCC将停止运行,然而,在AD转换期间,即使执行”SLEP”指令,
如果RE寄存器的ADWE位使能,TCC仍继续运行.
产品版本(V1.0) 12.17.2012
(产品更新不保证规格书同步更新)
• 31
EM78P301N
8位OTP微控制器
看门狗定时器是一个自由运行的片内RC振荡器。甚至当振荡器关闭后(如在休眠模式),
WDT仍在继续运行。无论是正常模式还是休眠模式,WDT溢出(若使能)将使MCU复
位。在正常模式下,可通过软件编程随时使能或禁止WDT。 参考IOCE0寄存器的WDTE
位(6.2.10节的IOCE0(WDT控制&中断屏蔽寄存器2)。在没有设置WDT的分频比下,
WDT溢出的时间约为18ms1 或 4.5ms2.
图 6-3 TCC 和 WDT 结构框图
6.4 I/O 端口
I/O寄存器(Port 5, Port 6,和 Port 7)是双向三态I/O端口。Port5可由软件设置内部
上拉或下拉。同样,P6可由软件设置漏极开路功能。Port5具有输入状态改变中断(或唤
醒)的功能,每个I/O引脚可通过设置I/O控制寄存器(IOC50 ~ IOC70)设置为输入或输出
引脚。I/O寄存器和I/O控制寄存器都是可读写的。Port 5, Port 6, 和 Port7的I/O接口电路
描述见图 6-4, 6-5, 6-6, & 6-7。
32 •
1
VDD=5V, 25°C 时,WDT 溢出周期 = 16.5ms ± 30%
VDD=3V, 25°C 时,WDT 溢出周期 = 18ms ± 30%
2
VDD=5V, 25°C 时,WDT 溢出周期 = 4.2ms ± 30%
VDD=3V, 25°C 时,WDT 溢出周期 = 4.5ms ± 30%
产品版本(V1.0) 12.17.2012
(产品更新后不保证规格书同步更新)
EM78P301N
8位OTP微控制器
PCRD
Q
_
Q
PORT
Q
_
Q
P
R
D
PCW R
C LK
C
L
P
R
IO D
D
C LK
PDW R
C
L
PDRD
0
1
M
U
X
注意: 上拉和漏极开路没有在图中显示.
图 6-4 Port6和Port7的 I/O端口和 I/O控制寄存器电路
PCRD
P
Q R D
_ CLK
Q C
L
Q P
R D
_ CLK
Q C
L
PORT
Bit 6 of IOCE0
P
R Q
CLK _
C Q
L
D
PCWR
IOD
PDWR
0
1
M
U
X
PDRD
INT
注意: 上拉和漏极开路没有在图中显示.
图 6-5 P60 (/INT)的I/O端口和I/O控制寄存器电路
产品版本(V1.0) 12.17.2012
(产品更新不保证规格书同步更新)
• 33
EM78P301N
8位OTP微控制器
PCRD
Q
_
Q
P
R
D
CLK
PCWR
C
L
P50 ~ P57
Q
PORT
_
Q
0
1
P
R
IOD
D
CLK
PDWR
C
L
M
U
X
PDRD
TI n
D
P
R
CLK
C
L
Q
_
Q
注意: 上拉(下拉)和漏极开路没有在图中显示.
图 6-6 Ports 50~57的 I/O端口和I/O控制寄存器电路
I O C F.1
中断
R F.1
ENI 指 令
TI 0
TI 1
….
TI 8
D IS I 指 令
中断
(从 休 眠 唤 醒 )
下一条指令
(从 休 眠 唤 醒 )
图 6-7 Port5输入状态改变中断/唤醒功能块图
34 •
产品版本(V1.0) 12.17.2012
(产品更新后不保证规格书同步更新)
EM78P301N
8位OTP微控制器
6.4.1 使用Port5输入状态改变唤醒/中断功能
(1) 唤醒
(2) 唤醒和中断
(a) 休眠前
(a) 休眠前
1. 禁止 WDT
1. 禁止 WDT
2. 读 Port5 的 I/O 状态 (MOV R5,R5)
2. 读 Port5 的 I/O 状态 (MOV R5,R5)
3. 执行 "ENI" 或 "DISI"
3. 执行 "ENI" 或 "DISI"
4. 使能唤醒位(设置 RE ICWE =1)
4. 使能唤醒位(设置 RE ICWE =1)
5. 执行 "SLEP" 指令
5. 使能中断 (设置 IOCF ICIE =1)
(b) 唤醒后
→ 下一条指令
6. 执行 "SLEP" 指令
(b) 唤醒后
1. 如果 "ENI" → 中断向量(006H)
2. 如果 "DISI" → 下一条指令
(3) 中断
(a) Port5 引脚输入状态改变前
1. 读 Port5 的 I/O 状态 (MOV R5,R5)
2. 执行 "ENI" 或 "DISI"
3. 使能中断 (设置 IOCF ICIE =1)
(b) Port5 引脚输入状态改变后 (中断)
1. 如果"ENI" → 中断向量 (006H)
2. 如果"DISI" → 下一条指令
6.5 复位和唤醒
6.5.1 复位和唤醒操作
复位由下列情况之一引起:
1. 上电复位
2. /RESET引脚输入"低"
3. WDT溢出(若使能)
检测到复位之后,控制器将保持复位状态约18ms3 (除在LXT模式下). 在LXT2模式下,
复位时间是 500ms。 两种选择(18ms3 or 4.5ms4)都是WDT溢出周期。一旦复位发生,
将会执行以下功能(初始地址是000h):
„
振荡器继续运行或开始运行(如果在休眠模式下).
„
程序计数器 (R2) 设置为全 "0".
3
VDD=5V, 25°C 下,启动时间周期 = 16.5 ms ± 30%
VDD=3V, 25°C 下,启动时间周期 = 18 ms ± 30%.
4
VDD=5V, 25°C 下,启动时间周期 = 4.2 ms ± 30%
VDD=3V, 25°C 下,启动时间周期 = 4.5 ms ± 30%.
产品版本(V1.0) 12.17.2012
(产品更新不保证规格书同步更新)
• 35
EM78P301N
8位OTP微控制器
„
所有的I/O端口引脚设置为输入模式(高阻态)
„
看门狗定时器和分频器清零
„
上电时,R3的高三位被清零
„
IOCB0寄存器的所有位被置“1”
„
IOCC0寄存器的所有位被置“0”
„
IOCD0 寄存器的所有位被置“1”
„
IOCE0 寄存器的位 7, 位5, 和 位4 清零
„
RE寄存器的位5和位4 清零
„
RF 和 IOCF0 寄存器清零
执行“SLEP”指令可进入休眠(低功耗)模式(当IDLE=”0”)。进入休眠模式时,振荡器、TCC、
TMR1和TMR2都停止工作。WDT(若使能)被清除但仍继续运行。
在A/D转换期间,执行“SLEP”指令,振荡器、TCC、TMR1和TMR2将继续运行,WDT
(若使能)被清除但仍继续运行。
控制器可由以下几种情况唤醒:
情况 1 /RESET引脚上有外部复位信号输入
情况 2 WDT溢出(若使能)
情况 3 Port5引脚输入状态改变(若ICWE使能)
情况 4 A/D转换完成(若ADWE使能)
情况 5 低电压侦测器(如果LVDWE使能)
前两种情况(1 和 2)将引起EM78P301N复位。R3的T和P标志位可用于确定复位(唤醒)
源。第3、4、5种情况下,唤醒后将继续执行程序,由全局中断(执行ENI或者DISI)决
定唤醒后是否进入中断向量。如果在SLEP之前执行了ENI指令,唤醒后程序将从地址
0X06(情况3)、0X0C(情况4)、 0X21(情况5)开始执行。如果在SLEP之前执行了
DISI指令,唤醒后程序将紧接着SLEP的下一条指令开始执行。
36 •
产品版本(V1.0) 12.17.2012
(产品更新后不保证规格书同步更新)
EM78P301N
8位OTP微控制器
在进入休眠模式之前,在情况2到情况5之中只有一种可以被使能。即:
情况 [a] 如果执行SLEP之前WDT使能,RE所有位禁止,此时,EM78P301N仅可由情
况1或情况2唤醒,详细说明请参考中断部分(6.6节)。
情况 [b] 执行SLEP之前,如果Port5输入状态改变用于唤醒EM78P301N且RE寄存器的
ICWE位为使能,WDT必须禁止,因此,EM78P301N仅可由情况3唤醒,唤醒
时间取决于振荡器的模式。在RC模式下,唤醒时间是10µs(对于性能稳定的振
荡器);在XT(4MHz)模式下,唤醒时间是800µs(对于性能稳定的振荡器);在
LXT2模式下,唤醒时间是2s~3s。
情况 [c] 执行SLEP之前,如果AD转换完成用于唤醒EM78P301N且RE寄存器的ADWE
位为使能,则WDT必须由软件禁止。因此,EM78P301N仅可由情况4唤醒,
唤醒时间为16TAD(ADC时钟周期).
情况[d] 在执行SLEP之前,如果低电压侦测器用于唤醒EM78P301N且Bank 0-RE寄存
器的LVDWE位为使能,WDT必须由软件禁止。因此,EM78P301N仅可由情
况5唤醒,唤醒时间取决于振荡器模式。
如果Port5输入状态改变产生中断用于唤醒EM78P301N(如上述的情况[b],在SLEP指
令前必须执行以下指令:
BC
R3, 6
; 选择控制寄存器段0
MOV
A, @00xx1110b
; 选择WDT预分频比和关闭WDT
IOW
IOCE0
; 清WDT和预分频比
WDTC
MOV
R5, R5
; 使能(或禁止) 全局中断
ENI (or DISI)
MOV
A, @xxxxxx1xb
MOV
RE
MOV
A, @xxxxxx1xb
IOW
IOCF0
SLEP
产品版本(V1.0) 12.17.2012
(产品更新不保证规格书同步更新)
; 读端口 5
; 使能端口 5输入状态改变唤醒位
; 使能端口 5输入状态改变中断
; 休眠
• 37
EM78P301N
8位OTP微控制器
同样地,如果比较器输出状态改变中断用于唤醒EM78P301N(如上述的情况[c]),在
执行指令SLEP前必须执行以下指令:
BC
R3, 6
; 选择控制寄存器段 0
MOV
A, @xxx10XXXb
; 选择比较器且 P64 作为 CO 引脚
IOW
IOC80
MOV
A, @00x11110b
IOW
IOCE0
WDTC
; 清 WDT 和分频比
ENI (or DISI)
; 使能(或 禁止) 全局中断
MOV
A, @xxx0x1xxb
MOV
RE
SLEP
38 •
; 选择WDT预分频比和关WDT并使能比较器输
; 出状态改变中断
; 使能比较器输出状态改变唤醒位
; 休眠
产品版本(V1.0) 12.17.2012
(产品更新后不保证规格书同步更新)
EM78P301N
8位OTP微控制器
6.5.1.1 唤醒和中断模式操作概述
微控制器可由休眠模式和空闲模式唤醒,唤醒信号如下表所列.
唤醒信号
休眠模式
信号条件
DISI
外部 INT
Port 5
变
唤醒无效
EXWE = 0
EXIE = 1
唤醒无效
唤醒无效
EXWE = 1,
EXIE = 0
ICWE = 0
ICIE = 0
唤醒无效
唤醒无效
ICWE = 0
ICIE = 1
唤醒无效
唤醒无效
ICWE = 1
ICIE = 0
低速模式
DISI
ENI
中断无效
下一条指令
正常模式
DISI
ENI
中断无效
中断
中断
下一条指
+
+
令
中断向量
中断向量
唤醒
唤醒
+
+
中断无效
中断无效
下一条指令
下一条指令
唤醒
唤醒
唤醒
唤醒
中断
中断
+
+
下一条指
+
+
下一条指令
+
+
下一条指
下一条指
令
中断向量
中断向量
中断向量
中断向量
令
令
中断无效
下一条指令
中断无效
中断
中断
下一条指
+
+
令
中断向量
中断向量
唤醒
唤醒
+
+
中断无效
中断无效
下一条指令
下一条指令
唤醒
唤醒
唤醒
唤醒
中断
中断
+
+
下一条指
+
+
下一条指令
+
+
下一条指
下一条指
令
中断向量
中断向量
中断向量
中断向量
令
令
TCIE = 0
唤醒无效
唤醒无效
TCC 溢出
TCIE = 1
成
ENI
唤醒无效
ICWE = 1
ICIE = 1
AD 转换完
DISI
EXWE = 0
EXIE = 0
EXWE = 1
EXIE = 1
引脚状态改
ENI
空闲模式
中断无效
中断无效
唤醒
唤醒
中断
中断
+
下一条指
+
下一条指令
+
+
下一条指
令
中断向量
中断向量
中断向量
令
ADWE = 0
ADIE = 0
唤醒无效
唤醒无效
ADWE = 0
ADIE = 1
唤醒无效
唤醒无效
中断无效
下一条指令
中断无效
中断
中断
下一条指
+
+
令
中断向量
中断向量
唤醒
唤醒
+
+
中断无效
中断无效
下一条指令
下一条指令
唤醒
唤醒
唤醒
唤醒
中断
中断
ADWE = 1,
+
+
下一条指
+
+
下一条指令
+
+
ADIE = 1 下一条指
下一条指
令
中断向量
中断向量
中断向量
中断向量
令
令
ADWE = 1
ADIE = 0
产品版本(V1.0) 12.17.2012
(产品更新不保证规格书同步更新)
• 39
EM78P301N
8位OTP微控制器
唤醒信号
信号条件
休眠模式
DISI
ENI
PWM1IE=0
PWM1 周期
匹配中断
PWM1IE=1
PWM2IE=0
匹配中断
PWM2IE=1
DT1IE = 0
比匹配中断
DT1IE = 1
DT2IE = 0
比匹配中断
低电压侦测
器
WDT 溢出
低电压复位
40 •
DT2IE = 1
DISI
正常模式
ENI
中断无效
DISI
ENI
中断无效
中断无效
中断无效
唤醒
唤醒
中断
中断
下一条指
下一条指
+
+
+
+
令
令
下一条指
中断向量
中断向量
中断向量
令
中断无效
中断无效
唤醒
唤醒
中断
中断
下一条指
下一条指
+
+
+
+
令
令
下一条指
中断向量
中断向量
中断向量
令
唤醒无效
唤醒无效
低速模式
唤醒
唤醒
中断
中断
下一条指
下一条指
+
+
+
+
令
令
下一条指
中断向量
中断向量
中断向量
令
唤醒无效
唤醒无效
PWM2 占空
ENI
唤醒无效
唤醒无效
PWM1 占空
DISI
唤醒无效
唤醒无效
PWM2 周期
空闲模式
中断无效
中断无效
唤醒
唤醒
中断
中断
下一条指
下一条指
+
+
+
+
令
令
下一条指
中断向量
中断向量
中断向量
令
LVDWE = 0
LVDIE = 0
唤醒无效
唤醒无效
LVDWE = 0
LVDIE = 1
唤醒无效
唤醒无效
中断无效
下一条指
令
中断无效.
中断
中断
下一条指
+
+
令
中断向量
中断向量
唤醒
唤醒
+
中断无效.
中断无效.
+
下一条指令
下一条指令
唤醒
唤醒
唤醒
唤醒
中断
中断
LVDWE = 1
下一条指
下一条指
+
+
+
+
+
+
令
令
LVDIE = 1 下一条指
下一条指
中断向量
中断向量
中断向量
中断向量
令
令
WDTE = 1
唤醒+ 复位
唤醒+ 复位
复位
复位
LVWE = 1
LVDIE = 0
唤醒+ 复位
唤醒+ 复位
复位
复位
产品版本(V1.0) 12.17.2012
(产品更新后不保证规格书同步更新)
EM78P301N
8位OTP微控制器
复位后寄存器的初始值
6.5.1.2
„
地址
N/A
寄存器初始值归纳如下表
名称
IOC50
复位类型
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
引脚状态改变唤醒
位名
N/A
N/A
N/A
IOC60
IOC70
IOC80
C67
×
×
×
×
×
×
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
×
×
×
×
×
×
C71
C70
上电
0
0
0
0
0
0
1
1
/RESET 引脚复位
和 WDT 复位
0
0
0
0
0
0
1
1
P
P
引脚状态改变唤醒
位名
TMR2[9] TMR2[8]
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
/PD57
/PD56
/PD55
/PD54
/PD53
/PD52
/PD51
/PD50
上电
IOCB0
(PDCR) /RESET 引脚复位
和 WDT 复位
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
引脚状态改变唤醒
位名
P
P
P
P
P
P
P
P
OD67
×
×
×
×
×
×
OD60
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
引脚状态改变唤醒
位名
N/A
上电
N/A
IOCC0
(ODCR) /RESET 引脚复位
和 WDT 复位
引脚状态改变唤醒
位名
N/A
上电
IOCD0
(PHCR) /RESET 引脚复位
和 WDT 复位
引脚状态改变唤醒
位名
N/A
TMR1[9] TMR1[8]
IOCE0
上电
(WDTCR
/RESET 引脚复位
and
IMR2) 和 WDT 复位
引脚状态改变唤醒
产品版本(V1.0) 12.17.2012
(产品更新不保证规格书同步更新)
P
P
P
P
P
P
P
P
/PH57
/PH56
/PH55
/PH54
/PH53
/PH52
/PH51
/PH50
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
P
P
P
P
P
P
P
P
WDTE
EIS
ADIE
CMPIE
PSWE
PSW2
PSW1
PSW0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
P
P
P
P
P
P
P
P
• 41
EM78P301N
8位OTP微控制器
地址
N/A
N/A
N/A
N/A
N/A
N/A
N/A
0×00
0×01
42 •
名称
IOCF0
(IMR)
复位类型
位名
上电
/RESET 引脚复位
和 WDT 复位
引脚状态改变唤醒
位名
上电
IOC51
(HSCR1) /RESET 引脚复位
和 WDT 复位
引脚状态改变唤醒
位名
上电
IOC61
(HSCR2) /RESET 引脚复位
和 WDT 复位
引脚状态改变唤醒
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
×
DT2IE
DT1IE
EXIE
ICIE
TCIE
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
P
P
P
P
P
P
P
P
HS57
HS56
HS55
HS54
HS53
HS52
HS51
HS50
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
P
P
P
P
P
P
P
P
PWM2IE PWM1IE
HS67
×
×
×
×
×
×
HS60
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
P
P
P
P
P
P
P
P
位名
上电
IOC71
(HDCR1) /RESET 引脚复位
和 WDT 复位
HD57
HD56
HD55
HD54
HD53
HD52
HD51
HD50
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
引脚状态改变唤醒
位名
上电
IOC81
(HDCR2) /RESET 引脚复位
和 WDT 复位
引脚状态改变唤醒
位名
上电
IOCF1
(PHCR) /RESET 引脚复位
和 WDT 复位
引脚状态改变唤醒
位名
上电
CONT /RESET 引脚复位
和 WDT 复位
P
P
P
P
P
P
P
P
引脚状态改变唤醒
位名
上电
R0 (IAR) /RESET 引脚复位
和 WDT 复位
引脚状态改变唤醒
位名
上电
R1 (TCC) /RESET 引脚复位
和 WDT 复位
引脚状态改变唤醒
HD67
×
×
×
×
×
×
HD60
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
P
P
P
P
P
P
P
P
/PH67
×
×
×
×
×
×
/PH60
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
P
P
P
P
P
P
P
P
INTE
INT
TS
TE
PSTE
PST2
PST1
PST0
1
0
1
1
0
0
0
0
1
0
1
1
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
–
–
–
–
–
–
–
–
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
P
P
P
P
P
P
P
P
产品版本(V1.0) 12.17.2012
(产品更新后不保证规格书同步更新)
EM78P301N
8位OTP微控制器
地址
名称
复位类型
位名
0×02
上电
R2 (PC) /RESET 引脚复位
和 WDT 复位
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
–
–
–
–
–
–
–
–
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
跳转到 0x06 或继续执行下一条指令
引脚状态改变唤醒
0×03
位名
RST
IOCS
-
T
P
Z
DC
C
上电
0
0
0
1
1
U
U
U
0
0
0
t
t
P
P
P
R3 (SR) /RESET 引脚复位
和 WDT 复位
引脚状态改变唤醒
0×04
0×05
0×06
0×07
0×08
1
P
P
t
t
P
P
P
位名
SBANK
BS0
–
–
–
–
–
–
上电
0
0
U
U
U
U
U
U
R4 (RSR) /RESET 引脚复位
和 WDT 复位
0
0
P
P
P
P
P
P
引脚状态改变唤醒
Bank 0
R5
Bank 0
R6
Bank 0
R7
Bank 0
R8
(AISR)
0
P
P
P
P
P
P
P
位名
P57
P56
P55
P54
P53
P52
P51
P50
上电
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
位名
P67
×
×
×
×
×
×
P60
上电
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
位名
–
–
–
–
–
–
P71
P70
上电
0
0
0
0
0
0
1
1
/RESET 引脚复位
和 WDT 复位
0
0
0
0
0
0
1
1
引脚状态改变唤醒
P
P
P
P
P
P
P
P
位名
ADE7
ADE6
ADE5
ADE4
ADE3
ADE2
ADE1
ADE0
上电
0
0
0
0
0
0
0
0
/RESET 引脚复位
和 WDT 复位
0
0
0
0
0
0
0
0
引脚状态改变唤醒
位名
0×09
Bank 0 上电
R9
/RESET 引脚复位
(ADCON) 和 WDT 复位
引脚状态改变唤醒
0
0
0
P
P
P
P
CKR1
CKR0
ADRUN
ADPD
ADIS2
ADIS1
ADIS0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
P
P
P
P
P
0
P
P
CALI
SIGN
VOF[2]
VOF[1]
VOF[0]
VREF1
VREF0
ADICS
Bank 0 上电
RA
/RESET 引脚复位
(ADOC) 和 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
位名
0×0A
0
VREFS
产品版本(V1.0) 12.17.2012
(产品更新不保证规格书同步更新)
• 43
EM78P301N
8位OTP微控制器
地址
0×0B
0×0C
0×0D
0×0E
0×0F
0×05
0×06
0×07
44 •
名称
Bank 0
RB
(ADDATA)
Bank 0
RC
(ADDATA1H)
Bank 0
RD
(ADDATA1L)
Bank 0
RE
(ISR2
and
WUCR)
Bank 0
RF
(ISR2)
Bank 1
R5
(TBHP)
Bank 1
R6
(TBLP)
Bank 1
R7
(PWMCON)
复位类型
位名
上电
/RESET 引脚复
位和 WDT 复位
引脚状态改变唤
醒
位名
上电
/RESET 引脚复
位和 WDT 复位
引脚状态改变唤
醒
位名
上电
/RESET 引脚复
位和 WDT 复位
引脚状态改变唤
醒
位名
上电
/RESET 引脚复
位和 WDT 复位
引脚状态改变唤
醒
位名
上电
/RESET 引脚复
位和 WDT 复位
引脚状态改变唤
醒
位名
上电
/RESET 引脚复
位和 WDT 复位
引脚状态改变唤
醒
位名
上电
/RESET 引脚复
位和 WDT 复位
引脚状态改变唤
醒
位名
上电
/RESET 引脚复
位和 WDT 复位
引脚状态改变唤
醒
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
AD11
AD10
AD9
AD8
AD7
AD6
AD5
AD4
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
P
P
P
P
P
P
P
P
×
×
×
×
AD11
AD10
AD9
AD8
0
0
0
0
U
U
U
U
0
0
0
0
U
U
U
U
P
P
P
P
P
P
P
P
AD7
AD6
AD5
AD4
AD3
AD2
AD1
AD0
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
U
P
P
P
P
P
P
P
P
/LVD
LVDIF
ADIF
-
ADWE
-
ICWE
LVDWE
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
P
P
P
P
P
P
P
P
×
DT2IF
DT1IF
EXIF
ICIF
TCIF
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
P
P
P
P
P
P
P
P
MLB
×
×
×
×
×
RBit9
RBit8
0
0
0
0
0
0
0
0
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
0
0
0
0
0
0
0
0
P
P
P
P
P
P
P
P
×
×
×
×
×
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
P
P
P
P
P
P
P
P
PWM2IF PWM1IF
PWMCAS PWM2E PWM1E
产品版本(V1.0) 12.17.2012
(产品更新后不保证规格书同步更新)
EM78P301N
8位OTP微控制器
地址
0×08
名称
复位类型
Bank 1
R8
(TMRCO
N)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
位名
T2EN
T1EN
T2P2
T2P1
T2P0
T1P2
T1P1
T1P0
上电
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×09
0×0A
0×0B
0×0C
0×0D
0×0E
0×0F
0x10
~
0x3F
Bank 1
R9
(PRD1)
Bank 1
RA
(PRD2)
Bank 1
RB
(DT1)
Bank 1
RC
(DT2)
PWM1[7] PWM1[6] PWM1[5] PWM1[4] PWM1[3] PWM1[2] PWM1[1] PWM1[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
位名
上电
/RESET 引脚复位
和 WDT 复位
PWM2[7] PWM2[6] PWM2[5] PWM2[4] PWM2[3] PWM2[2] PWM2[1] PWM2[0]
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
P
引脚状态改变唤醒
DT1[7]
位名
0
上电
/RESET 引脚复位
和 WDT 复位
引脚状态改变唤醒
位名
上电
0
P
P
P
P
P
DT1[4]
DT1[3]
DT1[2]
DT1[1]
DT1[0]
0
0
0
0
0
0
0
0
0
0
0
0
0
0
P
P
P
P
P
P
P
P
DT2[6]
DT2[5]
DT2[4]
DT2[3]
DT2[2]
DT2[1]
DT2[0]
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
P
P
P
P
Bank 1
0
上电
RD
(DT and /RESET 引脚复位
0
PRD HB) 和 WDT 复位
P
引脚状态改变唤醒
LVDIE
Bank 1 位名
0
上电
RE
(LVDCR /RESET 引脚复位
0
and
和 WDT 复位
WUCR) 引脚状态改变唤醒
P
Bank 1
RF
(SCR)
P
DT1[5]
DT2[7]
/RESET 引脚复位
0
和 WDT 复位
P
引脚状态改变唤醒
DT2[9]
位名
位名
上电
P
DT1[6]
P
P
P
DT2[8]
DT1[9]
DT1[8]
0
0
0
0
0
0
0
0
0
0
0
0
0
0
PRD2[9] PRD2[8] PRD1[9] PRD1[8]
P
P
P
P
P
P
P
LVDEN
LVD1
LVD0
×
×
×
EXWE
0
1
1
0
0
0
0
0
1
1
0
0
0
0
P
P
P
P
P
P
P
-
TIMERSC
CPUS
IDLE
SHS1
SHS0
RCM1
RCM0
0
1
1
0
1
1
Word 1<6~5>
Word 1<6~5>
/RESET 引脚复位
和 WDT 复位
引脚状态改变唤醒
0
1
1
0
1
1
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
R10~R3F /RESET 引脚复位
和 WDT 复位
引脚状态改变唤醒
符号说明: “×” = 未用
“u” = 未知或无须理会
产品版本(V1.0) 12.17.2012
(产品更新不保证规格书同步更新)
P
P
“P” = 复位前的值
“t” =对照6.5.2节的”复位类型表
• 45
EM78P301N
8位OTP微控制器
6.5.1.3
复位控制器结构图
图 6-8 复位控制器结构图
6.5.2 状态寄存器的 T和 P 状态
复位由以下事件产生:
1. 上电复位
2. /RESET 引脚输入低电平
3. WDT 溢出(如果使能)
T 和 P的值如下表所示,用于检测控制器是如何唤醒的.
复位类型
RST
T
P
上电
0
1
1
在正常模式下/RESET 引脚复位
0
*P
*P
在休眠模式下/RESET 引脚唤醒复位
0
1
0
在正常模式下 LVR
在休眠模式下 LVR 唤醒
0
0
*P
*P
1
0
在正常模式下 WDT 溢出复位
0
0
1
在休眠模式下 WDT 唤醒
0
0
0
在休眠模式下引脚状态改变唤醒
1
1
0
*P: 复位前的状态
下表列出了可能影响T和P状态的事件.
事件
上电
WDTC 指令
RST
T
P
0
*P
1
1
1
1
WDT 溢出
0
0
*P
SLEP 指令
*P
1
0
休眠模式下引脚状态改变唤醒
1
1
0
*P: 复位前的状态
46 •
产品版本(V1.0) 12.17.2012
(产品更新后不保证规格书同步更新)
EM78P301N
8位OTP微控制器
6.6 中断
EM78P301N 有以下9个中断源:
1. PWM1~2 周期匹配和占空比时间匹配溢出中断
2. Port 5 输入状态改变中断
3. 外部中断[(P60, /INT) 引脚]
4. 模数转换完成
5. 低电压侦测中断
在Port5输入状态改变中断使能前,读Port5(例如:"MOV R5,R5")是必要的。Port5
每个引脚均具有这个功能。在执行SLEP指令进入休眠模式前,如果Port5输入状态改变
中断被使能,Port5输入状态改变会将EM78P301N从休眠模式唤醒。如果总的中断被禁
止,唤醒后控制器将继续向下逐行地执行程序。如果总的中断使能,程序将分支到中断
向量地址006H。
外部中断装备有数字噪声抑制电路(输入脉冲低于系统时钟周期被当作噪声而滤除)。然
而,在低频晶体振荡器(LXT2)模式下的噪声抑制电路将被禁止。由CONT寄存器的INTE
位选择触发边沿。当由外部产生中断时(若使能),下一条指令将从向量地址003H获取。
数字噪声抑制的定义请参考6.14.2节的代码选项寄存器Word 1的位8、位9。
RF和RE是中断状态寄存器,它的相关标志位记录了中断请求状态。IOCF0和IOCE0是
中断屏蔽寄存器。全局中断由执行指令ENI使能,由执行DISI指令禁止。在中断服务程
序里,通过轮询RF的标志位来确定中断源。在离开中断服务程序前,必须用指令清除中
断标志,以免发生重复中断。
若中断屏蔽位为”使能”,中断状态寄存器(RF)标志位的置位,与是否执行了ENI指令
无关。需注意地是RF的结果是RF和IOCF0逻辑与的结果(参见下图),RETI指令结束
中断子程序并使能全局中断(自动执行ENI指令)。
当一个中断由定时器时钟/计数器产生(若使能),下一条指令将从地址009,012, 015,018,
和01BH(PWM1~2周期和占空比分别匹配)获取。
当一个中断由A/D转换完成后产生(若使能),下一条指令将从地址00CH中获取。
当一个中断由低电压侦测产生(若使能),下一条指令将从地址021H获取(低电压侦测
器中断)。
产品版本(V1.0) 12.17.2012
(产品更新不保证规格书同步更新)
• 47
EM78P301N
8位OTP微控制器
在执行中断服务子程序前,ACC,R3和R4值将会由硬件自动保存,如果有另外一个中
断产生,ACC,R3和R4寄存器将由新中断时的值取代。中断服务子程序结束后,ACC,
R3和R4内容将被还原。
图 6-9 中断备份框图
EM78P301N的每个中断源都有各自的中断向量,详见下表.
中断向量
中断状态
优先级 *
003H
外部中断
2
006H
Port 5 引脚状态改变
3
009H
TCC 溢出中断
4
00CH
AD 转换完成中断
5
012H
比较器中断
6
015H
PWM1 周期匹配中断
7
018H
PWM2 周期匹配中断
8
01BH
PWM1 占空比匹配中断
9
021H
PWM2 占空比匹配中断
1
注意: *优先级: 1 = 最高 ; 9 =最低优先级
48 •
产品版本(V1.0) 12.17.2012
(产品更新后不保证规格书同步更新)
EM78P301N
8位OTP微控制器
6.7 模数转换器(ADC)
模数转换电路包括一个8位模拟多路转换器,三个控制寄存器(AISR/R8, ADCON/R9,
ADOC/RA),三个数据寄存器((ADDATA/RB, ADDATA1H/RC和ADDATA1L/RD)和一
个12位精度的AD转换器,其功能方框图如下。模拟参考电压(Vref)和模拟地由不同引脚
接入。接外部参考电压(VREF)比接内部VDD其转换结果更精确。
ADC模块采用逐次逼近式把未知的模拟信号转换为数字值,其结果存入ADDATA,
ADDATA1H 和 ADDATA1L中。通过ADCON寄存器的ADIS2, ADIS1和ADIS0位的设置
来选择输入通道。
图 6-10 模数转换器功能方框图
这是一个 12 位逐次逼近模数转换寄存器(SAR ADC)
,有两个参考电压供 SAR ADC。
通过设定 ADCR2 的 VREFP 和 VPIS[1:0]位可选择内部 AVDD,内部电压源或者外部输
入引脚作为正参考电压。和内部 AVDD 相比较,连接至外部正参考电压提供的电压更精
确。
产品版本(V1.0) 12.17.2012
(产品更新不保证规格书同步更新)
• 49
EM78P301N
8位OTP微控制器
6.7.1 ADC 控制寄存器 (AISR/R8, ADCON/R9, ADOC/RA)
6.7.1.1
Bank 0 R8 (AISR: ADC 输入选择寄存器)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
ADE7
ADE6
ADE5
ADE4
ADE3
ADE2
ADE1
ADE0
AISR寄存器分别单独定义P5, P6和P7引脚作为模拟输入或数字I/O口。
Bit 7 (ADE7): P57引脚的AD转换使能位
0: 禁止ADC7,P57作为普通I/O口
1: 使能ADC7作为模拟输入引脚
Bit 6 (ADE6): P55引脚的AD转换使能位
0: 禁止ADC6,P55作为普通I/O口
1: 使能ADC6作为模拟输入引脚
Bit 5 (ADE5): P70引脚的AD转换使能位
0: 禁止ADC5,P70作为普通I/O口
1: 使能ADC5作为模拟输入引脚
Bit 4 (ADE4): P67引脚的AD转换使能位
0: 禁止ADC4,P67作为普通I/O口
1: 使能ADC4作为模拟输入引脚
Bit 3 (ADE3): P53引脚的AD转换使能位
0: 禁止ADC3,P53作为普通I/O口
1: 使能ADC3作为模拟输入引脚
Bit 2 (ADE2): P52引脚的AD转换使能位
0: 禁止ADC2,P52作为普通I/O口
1: 使能ADC2作为模拟输入引脚
Bit 1 (ADE1): P51引脚的AD转换使能位
0: 禁止ADC1,P51作为普通I/O口
1: 使能ADC1作为模拟输入引脚
Bit 0 (ADE0): P50引脚的AD转换使能位
0: 禁止ADC0,P50作为普通I/O口
1: 使能ADC0作为模拟输入引脚
50 •
产品版本(V1.0) 12.17.2012
(产品更新后不保证规格书同步更新)
EM78P301N
8位OTP微控制器
6.7.1.2
Bank 0 R9 (ADCON: ADC 控制寄存器)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
VREFS
CKR1
CKR0
ADRUN
ADPD
ADIS2
ADIS1
ADIS0
ADCON寄存器控制AD转换器的运行以及确定哪个引脚当前有效.
Bit 7(VREFS): ADC参考电压的输入源
0: 以工作电压VDD作为ADC的参考电压(默认值),VREF/TCC/P54引脚
执行P54功能(默认)
1: 引脚VREF/TCC/P54上的电压作为ADC的参考电压。
注意
P54/TCC/VREF引脚不能同时作为TCC和VREF,如果P54/TCC/VREF用作VREF模拟输
入引脚,此时,CONT寄存器第5位(TS)须设为“0”。
VREF/TCC/P54引脚的优先级如下:
P54/TCC/VREF引脚优先级
高
中
低
VREF
TCC
P54
Bit 6 ~ Bit 5 (CKR1 ~ CKR0): ADC的振荡器时钟预分频
00 = 1: 16 (默认值)
01 = 1: 4
10 = 1: 64
11 = 1: 1
系统模式
正常模式
低速模式
CKR[1:0]
ADC 的运行时钟
(FAD = 1 / TAD)
主频最大值
(VDD = 2.5V ~ 3V)
主频最大值
(VDD = 3V ~ 5.5V)
00 (默认)
FOSC /16
4 MHz
16 MHz
01
FOSC /4
1 MHz
4 MHz
10
FOSC /64
16 MHz
−
11
FOSC /1
−
1 MHz
xx
−
16k/128kHz
16k/128kHz
Bit 4 (ADRUN): ADC开始启动
0: 当转换完成时复位,该位不能由软件复位(默认)
1: AD转换开始,该位可由软件置位.
产品版本(V1.0) 12.17.2012
(产品更新不保证规格书同步更新)
• 51
EM78P301N
8位OTP微控制器
Bit 3 (ADPD): ADC低功耗模式
0: 关闭ADC参考电阻使其进入低功耗状态,尽管此时CPU可能仍在工作
1: ADC 正在运行
Bit 2 ~ Bit 0 (ADIS2 ~ ADIS0): 模拟输入选择
ADICS
ADIS2
ADIS1
ADIS0
模拟输入选择
0
0
0
0
ADIN0/P50
0
0
0
1
ADIN1/P51
0
0
1
0
ADIN2/P52
0
0
1
1
ADIN3/P53
0
1
0
0
ADIN4/P67
0
1
0
1
ADIN5/P70
0
1
1
0
ADIN6/P55
0
1
1
1
ADIN7/P57
1
0
X
X
OPOUT
x
Internal, 1/4 VDD
1
1
x
这些位仅在ADIF位和ADRUN位均为低时才可改变.
6.7.1.3
RA (ADOC: AD 补偿校准寄存器)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
CALI
SIGN
VOF[2]
VOF[1]
VOF[0]
VREF1
VREF0
ADICS
Bit 7 (CALI): ADC补偿校准使能位
0: 禁止校准
1: 使能校准
Bit 6 (SIGN): 补偿电压极性选择位
0: 负电压
1: 正电压
Bit 5 ~ Bit 3 (VOF[2] ~ VOF[0]): 补偿电压位
52 •
VOF[2]
VOF[1]
VOF[0]
EM78P301N
0
0
0
0LSB
0
0
1
2LSB
0
1
0
4LSB
0
1
1
0
1
0
6LSB
8LSB
1
0
1
10LSB
1
1
0
12LSB
1
1
1
14LSB
产品版本(V1.0) 12.17.2012
(产品更新后不保证规格书同步更新)
EM78P301N
8位OTP微控制器
Bit 2 ~ Bit 1: ADC 内部参考电压源.
VREF1
VREF0
ADC内部参考电压
0
0
VDD
0
1
4.0V ± 1%
1
0
3.0V ± 1%
1
1
2.0V ± 1%
Bit 0 (ADICS): ADC内部通道选择位(选择ADC内部的1/4 VDD或者OP输出引脚连接到
ADC输入引脚)
0: 禁止
1: 使能
注意
1. 假如VREF [1:0]=00,内部参考将不会打开,假如 VREF[1:0]≠ 00,内部参考将自
动开启。此外,内部参考电源和ADC无关。
2. 当使用内部参考电压,用户在第一次使能和稳定参考电压需要等候至少50µs,不稳
定的参考电压会使转换结果出错。之后,不论开启和关闭参考电压,用户仅仅需要
等候至少6µs
6.7.1.4
Bank 1 RF (IRC 切换寄存器)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
-
TIMERSC
CPUS
IDLE
SHS1
SHS0
RCM1
RCM0
Bits 3 ~ 2 (SHS1 ~ SHS0): 选择AD采用和保持周期 (建议至少 4 µs, TAD: ADC运行时钟
周期)
ADC 采样和保持周期(TAD)
SHS1
SHS0
0
0
2 x TAD
0
1
4 x TAD
1
0
8 x TAD
1
1
12 x TAD (默认)
6.7.2 ADC 数据寄存器 (ADDATA/RB, ADDATA1H/RC,
ADDATA1L/RD)
当 AD 转换完成时,结果载入 ADDATA1H 和 ADDATA1L. 如果 ADIE 使能则 ADIF 置
位。
产品版本(V1.0) 12.17.2012
(产品更新不保证规格书同步更新)
• 53
EM78P301N
8位OTP微控制器
6.7.3 ADC 采样时间
逐次逼近式 AD 转换的精确性、线性和速度由 ADC 和比较器的特性决定。源电阻和内部
采样电阻直接影响采样保持电容充电所需时间。应用过程控制采样时间长短以满足特定
精度的需要。Vdd=5V 时,建议源电阻的最大阻抗为 10KΩ。模拟输入通道选定后,在
转换开始前需等待的时间应先满足。
6.7.4 AD 转换时间
CKR[2:0]选择转换时间(TAD)。在不降低用户 AD 转换精度的情况下,它允许 MCU 在
最高频下运行。下表显示了 TAD 和最大运行频率之间的关系。 3V~5.5V 下,TAD 为 1 µs。
2.5V~3V 下,TAD 为 4 µs。
VDD = 3V ~ 5.5V (TAD 为 1 µs)
系统模式
普通模式
低速模式
主频的最大值
(VDD = 3V ~ 5.5V)
一个字节的转换时间
CKR[1:0]
ADC 运行时钟
(FAD = 1 / TAD)
00
FMain / 16
16 MHz
20 µs
01
FMain / 4
4 MHz
20 µs
10
FMain / 64
-
20 µs
11
FMain / 1
1 MHz
20 µs
xx
FSub
128 kHz
157 µs
(SHS[1:0] = 10*)
*转换时间 = 采样和保持时间 (SHS [1:0]=10, 8 × TAD) + 12 × 位转换时间
VDD = 2.5V ~ 3V (TAD is 4 µs)
系统模式
普通模式
低速模式
一个字节的转换时间
CKR[1:0]
ADC 运行时钟
(FAD = 1 / TAD)
主频的最大值
(VDD = 2.5V ~ 3V)
00
FMain / 16
4 MHz
80 µs
01
FMain / 4
1 MHz
80 µs
10
FMain / 64
16 MHz
80 µs
11
FMain / 1
-
-
xx
FSub
128 kHz
157us
(SHS[1:0] = 10*)
*转换时间 = 采样和保持时间 (SHS [1:0]=10, 8 × TAD) + 12 × 位转换时间
54 •
产品版本(V1.0) 12.17.2012
(产品更新后不保证规格书同步更新)
EM78P301N
8位OTP微控制器
注意
„ 没有被用作模拟输入脚的引脚可用作通用输入或输出脚.
„ 转换期间,为了维持精度所有引脚不要执行输出指令.
6.7.5 休眠期间的A/D转换
为了获得更精确的ADC值和减少功耗,A/D转换可以在休眠模式下进行。当执行SLEP
指令,除了振荡器、TCC、PWM1、PWM2和A/D转换外,所有的MCU操作都会停止。
通过以下情况判断AD转换已经完成:
1. R9寄存器的ADRUN位被清“0”.
2. BANK 0 RE寄存器的ADIF位置“1”.
3. 从ADC转换唤醒(在休眠模式期间它保持运行状态),BANK0 RE寄存器的ADWE
位置“1”。
4. 如果IOCE0的ADIE位使能,并执行DISI指令,唤醒休眠后执行下一条指令。
5. 如果IOCE0的ADIE位使能,并执行ENI指令,唤醒并进入中断向量(地址0x00C)。
6. 如果IOCE0的ADIE位使能,并执行ENI指令,进入中断向量(地址0x00C)。
当转换结束后,转换的结果载入ADDATA, ADDATA1H 和ADDATA1L寄存器中。如果
ADIE使能,单片机将被唤醒。否则,无论ADPD位的状态如何,AD转换器都被关闭。
6.7.6 编程步骤/考虑的事项
6.7.6.1
编程步骤
按以下步骤来获得ADC值:
1. 设置R8(AISR)寄存器的8个位(ADE7:ADE0)来定义R5寄存器的特性(数字I/O引脚, 模
拟信道, 以及参考电压引脚)。
2. 设置R9/ADCON寄存器来设定AD模块:
a) 选择ADC输入通道( ADIS2:ADIS0 )
b) 定义AD转换时钟比( CKR1:CKR0 )
c) 选择ADC参考电压的输入源
d) 置ADPD位为“1”, 开始采样
产品版本(V1.0) 12.17.2012
(产品更新不保证规格书同步更新)
• 55
EM78P301N
8位OTP微控制器
3. 若使用唤醒功能,置ADWE位为“1”。
4. 若使用中断功能,置ADIE位为“1”。
5. 若使用中断功能,下"ENI"指令
6. 置ADRUN位为“1”。
7. 下"SLEP"指令或循环检测
8. 等待唤醒或ADRUN位清除(值为零),中断标志(ADIF)置“1”或ADC中断发生
9. 读转换数据寄存器的ADDATA 或ADDATA1H和ADDATA1L的值。如果此时ADC输入
通道变化,ADDATA, ADDATA1H, 和 ADDATA1L值可被清“0”
10. 清除中断标志位(ADIF)
11. 根据需要,进行下一个转换程序,跳到步骤1或步骤2。下一次采样之前,至少等待2
个Tct。
注意
为了获得准确的值,必须避免AD转换期间I/O引脚有任何数据传输.
6.7.6.2
范例
R_0 == 0
PSW == 3
PORT5 == 5
PORT6 == 6
R_E== 0XE
; 间接寻址寄存器
; 状态寄存器
; 中断状态寄存器
B. 定义控制寄存器
IOC50 == 0X5
IOC60 == 0X6
IOCE0== 0XE
C_INT== 0XF
; Port 5控制寄存器
; Port 6控制寄存器
; 中断屏蔽寄存器2
; 中断屏蔽寄存器
C. ADC 控制寄存器
ADDATA == 0xB
ADDATA1H == 0xC
ADDATA1L == 0xD
AISR == 0x08
ADCON == 0x9
56 •
; 其内容是ADC[11:4]的结果
; 其内容是ADC[11:8]的结果
; 其内容是ADC[7:0]的结果
; ADC输入选择寄存器
; 7
6
5
4
3
2
1
0
; VREFS CKR1 CKR0 ADRUN ADPD ADIS2 ADIS1 ADIS0
产品版本(V1.0) 12.17.2012
(产品更新后不保证规格书同步更新)
EM78P301N
8位OTP微控制器
D. 定义ADCON寄存器中的位
ADRUN == 0x4
ADPD == 0x3
; 该位置位后,ADC开始执行
; ADC电源模式
E. 程序开始
ORG 0
JMP INITIAL
; 初始地址
ORG 0x0C
; 中断向量
JMP CLRRE
;
;(用户程序部分)
;
CLRRE:
MOV A,RE
AND A, @0BXX0XXXXX ; 清除ADIF位, “X” 根据应用而定
MOV RE,A
BS ADCON, ADRUN
; 如需要,开始执行下一个AD转换
;
RETI
INITIAL:
MOV A,@0B00000001 ; 选择P50为模拟输入
MOV AISR,A
MOV A,@0B00001000 ; 选择P50为模拟输入通道,并且AD上电;
MOV ADCON,A
; 定义P50为输入脚,时钟比设置为fosc/16;
En_ADC:
MOV A, @0BXXXXXXX1 ; 定义P50为输入脚,其它位根据需要设置
IOW PORT5
MOV A, @0BXXXX1XXX ; 使能ADC唤醒功能(ADWE),“X”根据需要设置
;
MOV RE,A
MOV A, @0BXX1XXXXX ; 使能ADC中断功能(ADIE),“X”根据需要设置;
IOW IOCE0
ENI
; 使能全局中断
BS ADCON, ADRUN
; 启动运行ADC
; 若使用中断功能,以下三行可忽略;
; 若进入休眠模式:
SLEP
;
产品版本(V1.0) 12.17.2012
(产品更新不保证规格书同步更新)
• 57
EM78P301N
8位OTP微控制器
; (用户程序部分)
;
或
;若循环检查:
POLLING:
JBC ADCON, ADRUN
JMP POLLING
;
; (用户程序部分)
; 连续检测ADRUN 位;
; AD转换结束后,ADRUN位清0
6.8 一对PWM (脉宽调制器)
6.8.1 概述
在PWM模式下,PWM1和PWM2 引脚产生8位精度的PWM输出(见下面的功能结构图).
PWM输出由周期时间和占空比(保持输出高电平)组成,PWM的波特率是周期时间的
倒数。 图6-13 PWM输出时序描述了周期时间和占空比的关系。
图 6-12 PWM 系统结构图
58 •
产品版本(V1.0) 12.17.2012
(产品更新后不保证规格书同步更新)
EM78P301N
8位OTP微控制器
图 6-13 PWM 输出时序
6.8.2 递增定时计数器 (TMRX: TMR1 or TMR2)
TMRX 为8-位带可编程预分频的时钟计数器。它们设计用来作为PWM模块的波特率时钟
发生器。若采用,它们可通过设置T1EN位[Bank 1-R8<6>] 或 T2EN 位 [Bank 1-R8<7>] 为
"0"而关闭以节省功耗。
TMR1 和 TMR2 是内部设计的,不可读
6.8.3 PWM 周期 (TMRX: TMR1 或 TMR2)
PWM 周期(PRDX: PRD1 或 PRD2),PWM周期通过写值到PRDX寄存器而定义。当
TMRX与PRDX相等,在下一个递增周期发生如下事件:
1) TMR 清零
2) PWMX 引脚置 “1”
3) PWMX 占空比由DT1/DT2 锁存到 DL1/DL2。
注意
PWM 输出不会置位,如果占空比为“0”.
4) PWMXIF 引脚置为 “1”
以下公式描述了如何计算PWM周期:
⎛ 1 ⎞
周期 = (PRDX + 1) × ⎜
⎟ × (TMRX 分频比)
⎝ FOSC ⎠
范例:
PRDX=49; Fosc=4 MHz; TMRX (0, 0, 0) = 1:1,
那么
产品版本(V1.0) 12.17.2012
(产品更新不保证规格书同步更新)
⎛ 1 ⎞
周期 = (49 + 1) × ⎜
⎟ × 1 = 12.5
⎝ 4M ⎠
µS
• 59
EM78P301N
8位OTP微控制器
6.8.4 PWM 占空比 (DTX: DT1 or DT2; DLX: DL1 or DL2)
PWM占空比通过写值到DTX寄存器而定义,当TMRX清除时其值由DTX锁存到DLX。当
DLX与TRMX相等时,PWMX引脚清除。DTX可在任何时侯被加载。然而,DTX不可被
锁存到DLX直到DLX的当前值与TMRX相等。
如下公式描述了如何计算PWM占空比:
⎛ 1 ⎞
⎟⎟ × ⎛⎜ TMRX 分频比 ⎞⎟
占空比= (DTX) × ⎜⎜
⎝
⎠
⎝ FOSC ⎠
范例:
DTX=10; Fosc=4 MHz; TMRX (0, 0, 0) = 1:1,
那么
⎛ 1 ⎞
占空比 = 10 × ⎜
⎟ × 1 = 2.5
⎝ 4M ⎠
µS
6.8.5 比较器 X
当匹配发生时改变输出状态将同时置位PWMXIF(TMRXIF)标志.
6.8.6 PWM 编程步骤
1. 加载PWM周期PRDX
2. 加载PWM占空比DTX
3. 若需要,写IOCF0寄存器以使能中断功能
4. 写预设值到BANK1-R7,设置PWMX引脚为输出
5. 加载TMRX分频比值的预设值到Bank 1-R7 或 Bank 1-R8,使能PWMx和TMRx。
6.9 定时器/计数器
6.9.1 概述
定时器1(TMR1)和定时器2(TMR2)(TMRX)是一个带可编程预分频的8位时钟计数器。它
们设计用来作为PWM模块的波特率时钟发生器。TMRX寄存器只读。在AD转换器不运
行情况下进入休眠模式时,定时器 1和定时器 2将停止运行。然而,在AD转换器运行情
况下进入休眠模式时,定时器 1和定时器 2将继续保持运行。
60 •
产品版本(V1.0) 12.17.2012
(产品更新后不保证规格书同步更新)
EM78P301N
8位OTP微控制器
6.9.2 功能描述
图 6-14 定时器结构图
说明如下:
Fosc: 时钟输入
预分频器 (T1P2, T1P1 and T1P0 / T2P2, T2P1 and T2P0): 定义TMRX分频比选项
1:1, 1:2, 1:4, 1:8, 1:16, 1:64, 1:128, 和 1:256。任何复位发生时这些位被清零。
TMR1 和 TMR2: 定时器 X寄存器,TMRX一直递增直到与PRDX匹配,此时TMRX复位
为"0"(默认值)。
PRDX (PRD1, PRD2): PWM 周期寄存器
比较器 X (比较器 1 和 比较器 2): 当匹配发生复位TMRX,同时置TMRXIF (PWMXIF)
标志。
6.9.3 相关寄存器设置
定义TMRX时,相关寄存器的操作参考下表。需注意地是如果TMRX被使用了,其相关
PWMX位须禁止,这样,PWMCON寄存器的位7 ~ 位3必须设为“0”。
„
TMR1 和 TMR2的相关控制寄存器
地址
名称
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
0x07
PWMCON/R7
”0”
“0”
“0”
“0”
“0”
0x08
TMRCON/R8
产品版本(V1.0) 12.17.2012
(产品更新不保证规格书同步更新)
T2EN T1EN T2P2 T2P1 T2P0
Bit 2
Bit 1
Bit 0
PWMCAS PWM2E PWM1E
T1P2
T1P1
T1P0
• 61
EM78P301N
8位OTP微控制器
6.9.4 定时器编程步骤
1. 加载定时器定时时长至PRDX
2. 若需要,写IOCF0以使能中断功能
3.
载入一个预设值至TMRX分频器,使能TMRX,禁止PWM。
6.9.5 PWM级联模式
PWM级联模式合并了两个8位PWM为一个16位PWM功能。在这种模式下,需要的参数
在下表中重新定义:
参数
DT (占空
比)
PRD (周
期)
TMR (时
钟)
MSB (15~8)
DT2
PRD2
TMR2
LSB (7~0)
DT1
PRD1
TMR1
16-位 PWM
16位PWM预分频使用TMR1的预分频,LSB进位时TMR的MSB计数,PWM1IF位/PWM1
引脚将重新定义为PWMIF位/PWM引脚.
图 6-14 16位PWM功能板块框图(由两个8位合并)
62 •
产品版本(V1.0) 12.17.2012
(产品更新后不保证规格书同步更新)
EM78P301N
8位OTP微控制器
6.10 振荡器
6.10.1 振荡器模式
EM78P301N可工作于6种不同的振荡模式, 如:晶体振荡器模式(XT),高频晶体振
荡器模式1(HXT1),高频晶体振荡器模式2(HXT2),低频晶体振荡器模式1(LXT1),
低频晶体振荡器模式2(LXT2),外部RC振荡模式(ERC)和内部RC振荡器模式(IRC)。
用户可通过编程代码选项寄存器的OSC3、OSC2、OCS1、和OSC0位选择其中一种振
荡模式。
振荡模式由OSC3、OSC2、OSC1 和 OSC0位定义,如下表所述.
OSC3
OSC2
OSC1
OSC0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
3
0
1
0
0
3
0
1
0
1
3
0
1
1
0
3
0
1
1
1
1
1
1
1
振荡模式
1
ERC (外部 RC 振荡模式);
P55/ERCin 作为 ERCin
P70/RCOUT 作为 P70
1
ERC (外部 RC 振荡模式);
P55/ERCin 作为 ERCin
P70/RCOUT 作为 RCOUT
2
IRC (内部 RC 振荡模式);
P55/ERCin 作为 P55
P70/RCOUT 作为 P70
(默认)
2
IRC (内部 RC 振荡模式);
P55/ERCin 作为 P55
P70//RCOUT 作为 RCOUT
LXT1 (XT 模式频率范围为 100kHz ~ 1 MHz)
HXT1 (XT 模式频率范围为 12 MHz ~ 16 MHz)
LXT2 (XT 模式频率范围为 32.768kHz)
HXT2 (XT 模式频率范围为 6 MHz ~ 12 MHz)
3
XT (XT 模式频率范围为 1 MHz ~ 6 MHz)
1
在 ERC 模式, ERCin 作为振动引脚. RCOUT/P70由代码选项字1(Word1)的位4~位1定义
2
在IRC模式,P55为普通I/O引脚,RCOUT/P70由代码选项字1(Word1)的位4~位1定义.
3
在LXT1, LXT2, HXT1, HXT2和XT模式,OSCI 和OSCO 用做振荡器引脚,这些引脚不能也不许
定义成I/O引脚.
产品版本(V1.0) 12.17.2012
(产品更新不保证规格书同步更新)
• 63
EM78P301N
8位OTP微控制器
以下是不同电压下晶振/陶振的最大工作频率限度:
条件
两个时钟
VDD
最大频率(MHz)
2.1V
4
3.0V
8
4.5V
16
6.10.2 晶体振荡器/陶瓷谐振器 (晶振)
EM78P301N可通过OSCI引脚,由外部时钟信号来驱动,如下图所示.
OSCI
OSCO
图 6-17 外部时钟输入电路
大多数应用中,引脚OSCI和OSCO可接晶体或陶瓷谐振器以产生振荡。下图6-18描述了
此类电路,同样也可应用于HXT1模式,HXT2模式,LXT1模式,LXT2和XT模式。
图 6-18 晶体/谐振器电路
下表为C1和C2的推荐值,由于每个谐振器都有其自身的特性,用户应参照其规格选择
C1、C2的合适值。对于AT 切片晶振或低频模式,有必要接入串联电阻RS。图6-21为
晶体电路PCB布线建议。当系统工作在晶体模式(16MHz),OSCI与OSCO之间接一个10
KΩ电阻。
64 •
产品版本(V1.0) 12.17.2012
(产品更新后不保证规格书同步更新)
EM78P301N
8位OTP微控制器
晶体振荡器或陶瓷谐振器电容的选择参考如下:
振荡器类型
频率模式
频率
LXT1
(100 K ~ 1 MHz)
C1 (pF)
C2 (pF)
100kHz
200kHz
455kHz
60 pF
60 pF
40 pF
60 pF
60 pF
40 pF
1 MHz
1.0 MHz
2.0 MHz
4.0 MHz
30 pF
30 pF
30 pF
20 pF
30 pF
30 pF
30 pF
20 pF
32.768kHz
40 pF
40 pF
LXT1
(100 K ~ 1 MHz)
100kHz
200kHz
455kHz
60 pF
60 pF
40 pF
60 pF
60 pF
40 pF
XT
(1~6 MHz)
1 MHz
1.0 MHz
2.0 MHz
4.0 MHz
30 pF
30 pF
30 pF
20 pF
30 pF
30 pF
30 pF
20 pF
6.0 MHz
6.0 MHz
8.0 MHz
12.0 MHz
30 pF
30 pF
20 pF
30 pF
30 pF
30 pF
20 pF
30 pF
12.0 MHz
30 pF
30 pF
16.0 MHz
20 pF
20 pF
陶瓷谐振器
XT
(1 M ~ 6 MHz)
LXT2 (32.768kHz)
晶体振荡器
HXT2
(6~12 MHz)
HXT1
(12~20 MHz)
串联和并联模式晶振/谐振器的电路图:
330
330
C
OSCI
7404
7404
7404
晶体
图 6-19 串联模式晶振/谐振器的电路图
产品版本(V1.0) 12.17.2012
(产品更新不保证规格书同步更新)
• 65
EM78P301N
8位OTP微控制器
图 6-20 并联模式晶振/谐振器的电路图
图 6-21 并联模式晶振/谐振器的电路图
66 •
产品版本(V1.0) 12.17.2012
(产品更新后不保证规格书同步更新)
EM78P301N
8位OTP微控制器
6.10.3 外部RC振荡模式
对于不需要精确计时的应用,使用RC振
荡器 (图 6-22) 可以节省一些费用。但
是,需要注意地是RC振荡器的频率会受
到供电电压,电阻值(REXT) , 电容(CEXT),
甚至环境温度的影响。此外,由于制造
工艺的不同,不同芯片的频率也会有微
小的差异.
Vcc
Rext
ERCin
Cext
图 6-22 外部 RC 振荡模式电路
为了获得稳定的系统频率,电容值需不小于20pF, 电阻值需不大于1 MΩ.如果它们不能
保持在这个范围,频率就很容易受噪声,湿度,漏电流的影响 .
RC振荡器的电阻值REXT 越小,频率越高。另一方面,对于很小的电阻值,如1 kΩ,由于
NMOS不能恰当的将电容放电,振荡器将变得不稳定.
因此,须注意地是电源电压,环境温度,RC振荡器器件,封装形式及PCB布线方式均
会影响系统频率.
RC 振荡器频率:
电容
20 pF
100 pF
300 pF
电阻
平均频率 5V, 25°C
平均频率 3V, 25°C
3.3k
2.064 MHz
1.901 MHz
5.1k
1.403 MHz
1.316 MHz
10k
750.0kHz
719.0kHz
100k
81.45kHz
81.33kHz
3.3k
647.0kHz
615.0kHz
5.1k
430.8kHz
414.3kHz
10k
225.8kHz
219.8kHz
100k
23.88kHz
23.96kHz
3.3k
256.6kHz
245.3kHz
5.1k
169.5kHz
163.0kHz
10k
88.53kHz
86.14kHz
100k
9.283kHz
9.255kHz
1
注意: : 基于DIP封装测量.
2
: 数值仅供设计参考.
3
: 频率漂移率为 ± 30%
产品版本(V1.0) 12.17.2012
(产品更新不保证规格书同步更新)
• 67
EM78P301N
8位OTP微控制器
6.10.4 内部RC振荡模式
EM78P301N 提供一个丰富的内部RC模式,其默认频率为4MHz。它还可通过代码选项
(WORD1)的RCM1和RCM0位设置其它频率(16MHz、1MHz 和 8MHz)。下表描述了
EM78P301N内部RC 漂移受电压、温度和制程工艺的影响。
内部RC 偏移率(Ta=25°C, VDD=5V, VSS=0V)
偏移率
内部 RC 频率
温度
(-40°C ~+85°C)
4 MHz
±2%
16 MHz
±2%
8 MHz
±2%
1 MHz
±2%
电压
(2.1V~5.5V)
±1%
*(2.1~5.5V)
±1%
*(4.5~5.5V)
±1%
*(3.0~5.5V)
±1%
*(2.1~5.5V)
温度
(-40°C ~+85°C)
总计
±2%
±5%
±2%
±5%
±2%
±5%
±2%
±5%
* 工作电压范围
注意: 理论值仅供参考,实际值可能依据实际制程变化
6.11 上电探讨
在供电电压未达到稳定状态前,任何微控制器都不能保证正常工作。EM78P301N的POR
电压范围是1.8V ~ 1.9V。在用户应用中,当电源关闭时,Vdd必须降到1.8 V以下,在重
新上电之前需保持关闭状态10µs。这样,EM78P301N被可靠复位,并正常工作。的电
压检测器(POVD)。在Vdd上升足够快(50 ms 或更短)的条件下,它将很好的工作。如
果Vdd上升的足够快(50 ms或更少),外部复位电路会可靠工作。然而,在很多要求
严格的应用中,仍然需要附加的外部电路来帮助解决上电问题。
6.11.1 可编程WDT溢出周期
选项字节 (WDTPS)用于定义WDT溢出周期(18ms5 或 4.5ms6). 理论上的范围是4.5ms
或18ms。对大多数晶振和陶瓷振荡器来说,工作频率越低,启动时间越长。
68 •
5
VDD=5V, WDT 溢出周期= 16.5ms ± 30% at 25°C.
VDD=3V, WDT 溢出周期= 18ms ± 30% at 25°C.
6
VDD=5V, WDT 溢出周期= 4.2ms ± 30% at 25°C.
VDD=3V, WDT 溢出周期= 4.5ms ± 30% at 25°C.
产品版本(V1.0) 12.17.2012
(产品更新后不保证规格书同步更新)
EM78P301N
8位OTP微控制器
6.11.2 外部上电复位电路
下图电路描述了使用外部
RC 产生复位脉冲。脉冲的宽
度(时间常数)应保持足够
长时间,以使电源 Vdd 达到
最低工作电压。该电路应用
在电源电压上升比较慢的情
况下,因为/RESET 引脚的漏
电大约为±5µA,所以建议 R
要小于 40 KΩ,这样,引脚
/RESET 的电压保持在 0.2V
以下。二极管(D)在掉电时作
VDD
/RESET
R
Rin
D
C
图 6-23 外部上电复位电路
为短路回路。电容C将快速充分放电。限流电阻Rin用来避免过大的电流或ESD(静电放
电)流入/RESET 引脚。
6.11.3 残留电压保护
更换电池时,单片机的电源(Vdd)被断开,但残余电压仍存在。残余电压可能低于Vdd
的最小工作电压,但不为零。这种情况可能引起上电复位不良。图6-24及图6-25显示如
何建立一个残留电压的保护电路。
VDD
VDD
33K
Q1
10K
/RESET
100K
1N4684
图 6-24 残留电压保护电路1
产品版本(V1.0) 12.17.2012
(产品更新不保证规格书同步更新)
• 69
EM78P301N
8位OTP微控制器
VDD
VDD
R1
Q1
/RESET
R2
R3
图 6-25 残留电压保护电路2
6.12 代码选项
EM78P301N有两个代码选项字和一个用户ID 字,它们不属于一般程序内存的一部分。
Word 0
Word 1
Word 2
Word 3
Bit 12 ~ Bit 0
Bit 12 ~ Bit 0
Bit12 ~ Bit 0
Bit12 ~ Bit 0
6.12.1 代码选项寄存器 (Word 0)
Word 0
Bit
Bit 12
助记符 PWMS
Bit 11
P70_HD
/HS
Bit 10
Bit 9
Bit 8
Bit 7
Bit 6
Bit 5
Bit 4
WK_CLK
CLKS
LVR1
LVR0 RESETEN ENWDT NRHL
Bit 3
Bit 2 ~ 0
NRE
Protect
1
8-位
禁止
8 时钟
高
高
高
禁止
禁止
32/fc
使能
禁止
0
10-位
使能
32 时钟
低
低
低
使能
使能
8/fc
禁止
使能
Bit 12 (PWMS): PWM 选择位
0: 10位PWM功能
1: 8位PWM功能(默认)
Bit 11 (P70_HD/HS):
0: 使能
1: 禁止 (默认)
Bit 10 (WK_CLK): 选择 8 或 32 个时钟由休眠和空闲模式唤醒 (仅对于IRC模式)
0: IRC 稳定时间 + 32 时钟
1: IRC 稳定时间 + 8 时钟 (默认)
70 •
产品版本(V1.0) 12.17.2012
(产品更新后不保证规格书同步更新)
EM78P301N
8位OTP微控制器
Bit 9 (CLKS): 指令周期选项位
0: 两个振荡器周期
1: 四个振荡器周期(默认)
Bits 8 ~ 7 (LVR1 ~ LVR0): 低电压复位使能位
VDD 复位电平
LVR1, LVR0
11
VDD 释放电平
NA (上电复位) (默认)
10
2.7V
2.9V
01
3.5V
3.7V
00
4.0V
4.2V
Bit 6 (RESETEN): RESET/P71 引脚选择位
0: P71设为/RESET引脚
1: P71为通用输入引脚或开漏输出端口(默认)
Bit 5 (ENWDT): 看门狗定时器使能位
0: 使能
1: 禁止 (默认)
Bit 4 (NRHL): 噪声抑制高/低脉冲定义位,INT引脚下降沿或上升沿触发器.
0: 等于8/fc [s]脉冲被当作是信号
1: 等于32/fc [s]脉冲被当作是信号 (默认)
注意
在LXT2和休眠模式下,噪声抑制功能被关闭.
Bit 3 (NRE): 噪声抑制使能位
0: 禁止噪声抑制
1: 使能噪声抑制(默认),但在低频晶体振荡器(LXT)模式下,噪声抑制电
路始终是禁止的。
Bits 2 ~ 0 (Protect): 保护位
产品版本(V1.0) 12.17.2012
(产品更新不保证规格书同步更新)
保护位
保护
0
使能
1
禁止 (默认)
• 71
EM78P301N
8位OTP微控制器
6.12.2 代码选项寄存器 (Word 1)
Word 1
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
RCM1 RCM0 OSC3 OSC2 OSC1 OSC0
Bit 0
Mnemonic
C5
C4
C3
C2
C1
C0
RCOUT
1
High
High
High
High
High
High
High
High
High
High
High
High System_clk
0
Low
Low
Low
Low
Low
Low
Low
Low
Low
Low
Low
Low
Open_
drain
Bits 12 ~ 7 (C5 ~ C0): 内部 RC 模式校准选择位,C5 ~ C0 必须置“1”(自动校对)
Bit 6 ~ 5 (RCM1 ~ RCM0): RC 模式选择位
RCM 1
RCM 0
频率(MHz)
1
1
4 (默认)
1
0
16
0
1
8
0
0
1
Bits 4 ~ 1 (OSC3 ~ OSC0): 振荡器模式选择位
振荡器模式
OSC3 OSC2 OSC1 OSC0
1
ERC (外部 RC 振荡模式);
P55/ERCin 作为 ERCin
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
3
0
1
0
0
3
0
1
0
1
3
0
1
1
0
3
0
1
1
1
1
1
1
1
P70/RCOUT 作为 P70
1
ERC (外部 RC 振荡模式);
P55/ERCin 作为 ERCin
P70/RCOUT 作为 RCOUT
2
IRC (内部 RC 振荡模式);
P55 作为 P55
P70/RCOUT 作为 P70 (默认)
2
IRC (内部 RC 振荡模式);
P55 作为 P55
P70/RCOUT 作为 RCOUT
LXT1 (XT 模式频率范围为 100kHz ~ 1 MHz)
HXT1 (XT 模式频率范围为 12 MHz ~ 16 MHz)
LXT2 (XT 模式频率范围为 32.768kHz)
HXT2 (XT 模式频率范围为 6MHz ~ 12 MHz)
3
XT (XT 模式频率范围为 1 MHz ~ 6 MHz)
1
在 ERC 模式, ERCin 作为振荡引脚. RCOUT/P70由代码选项字1(Word1)的位4~位1定义
在IRC模式,P55为普通I/O引脚,RCOUT/P70由代码选项字1(Word1)的位4~位1定义.
2
3
在LXT1, LXT2, HXT1, HXT2和XT模式,OSCI 和OSCO 用做振荡器引脚,这些引脚不能也不许
定义成I/O引脚.
72 •
产品版本(V1.0) 12.17.2012
(产品更新后不保证规格书同步更新)
EM78P301N
8位OTP微控制器
Bit 0 (RCOUT): 在IRC或ERC模式下,指令时钟输出使能位.
0: RCOUT引脚漏极开路.
1: RCOUT引脚输出指令时钟(默认)
6.12.3 用户ID寄存器(Word 2)
Word 2
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
助记符
–
–
–
SFS
–
–
–
HLP
–
WDTPS
–
–
–
1
–
–
–
16kHz
–
–
–
高
–
18ms
–
–
–
0
–
–
–
128kHz
–
–
–
低
–
4.5ms
–
–
–
Bit 12: 不用(保留). 该位一直设置为 “1”
Bit 11: 不用(保留). 该位一直设置为 “0”
Bit 10: 不用(保留). 该位一直设置为 “1”
Bit 9 (SFS): GREEN 模式和 TCC, PWM1, PWM2 时钟源(不含 WDT 溢出和自由运行启
动时间)的副振荡器选择位。
0: 128kHz.
1: 16kHz (默认)
Bit 8: 不用(保留). 该位一直设置为 “0”
Bit 7: 不用(保留). 该位一直设置为 “1”
Bit 6: 不用(保留). 该位一直设置为 “1”
Bit 5 (HLP): 电源损耗选择位
0:电源低损耗模式,适用于工作频率为400kHz或低于400kHz下
1: 电源高损耗模式, 适用于工作频率大于400kHz下 (默认)
(在晶体模式下用户选择LXT1或LXT2,HLP功能自动选择低损耗)
Bit 4: 不用(保留). 该位一直设置为 “1”
Bit 3 (WDTPS): WDT 溢出周期
WDTPS
看门狗定时器*
1
18 ms (默认)
0
4.5 ms
*Theoretical values, for reference only.
Bits 2 ~ 0: 不用(保留). 该位一直设置为 “1”.
产品版本(V1.0) 12.17.2012
(产品更新不保证规格书同步更新)
• 73
EM78P301N
8位OTP微控制器
6.12.4 用户ID寄存器(Word 3)
Word 3
Bit
Mnem
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
ID12
ID11
ID10
ID9
ID8
ID7
ID6
ID5
ID4
ID13
ID2
ID1
ID0
1
High
High
High
High
High
High
High
High
High
High
High
High
High
0
Low
Low
Low
Low
Low
Low
Low
Low
Low
Low
Low
Low
Low
onic
Bits 12 ~ 0: 用户的ID码
低电压侦测/低电压复位
低电压复位(LVR)和低电压侦测(LVD)是为电源不稳的情况而设计的,例如外部电源的噪
音干扰或在EMS测试条件下。
当LVR使能,系统供电压(Vdd)降到低于Vdd复位电平(VRESET)并持续10µs时,系统产生
复位并保持复位状态。系统一直保持复位状态直到Vdd电压上升到高于Vdd的release电
平,参考图6-26 LVD/LVR 波形。
当LVD使能,如果Vdd降到低于低电压侦测电平,/LVD (RE的位7)被清零以作为低电压
信号,该信号可用于低电压的侦测。
6.13.1 低电压复位
LVR属性可由代码选项字(Word0)的位8和7设置,详细操作如下:
Word 0
Bit 12
Bit 11 Bit 10
Bit 9
Bit 8
Bit 7
Bit 6
Bit 5
Bit 4 Bit 3 Bit 2~Bit 0
PWMS
P70_H
WK_CLK CLKS
D/HS
LVR1
LVR0 RESETEN ENWDT NRHL
NRE
Protect
Bits 8~7 (LVR1 ~ LVR0): 低电压复位使能位.
LVR1, LVR0
VDD 复位电平
11
74 •
VDD 释放电平
NA (上电复位)
10
2.7V
2.9V
01
3.5V
3.7V
00
4.0V
4.2V
产品版本(V1.0) 12.17.2012
(产品更新后不保证规格书同步更新)
EM78P301N
8位OTP微控制器
6.13.2 低电压侦测
LVD 属性设置和详细操作如下:
6.13.2.1 Bank 1 RE (LVD 中断和唤醒寄存器)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
LVDIE
LVDEN
LVD1
LVD0
-
-
-
EXWE
注意
■ Bank 1 RE< 6 >寄存器可读写
■ 单个中断可通过设置相关控制位(Bank 1 RE< 7 >)为 "1"来使能
■ 全局中断可通过ENI指令使能,DISI指令禁止。请参考6.6章节(中断)的图6-8(中断输
入电路).
Bit 7 (LVDIE): 低电压侦测中断使能位.
0: 禁止低电压侦测中断
1: 使能低电压侦测中断
当侦测低电平电压状态用于进入中断向量或下一条指令,LVDIE位须设置
为”使能”.
Bit 6 (LVDEN): 低电压侦测使能位
0: 禁止低电压侦测
1: 使能低电压侦测
Bits 5 ~ 4 (LVD1 ~ LVD0): 低电压侦测电平选择位.
LVDEN
LVD1, LVD0
1
11
1
10
1
01
1
00
0
××
产品版本(V1.0) 12.17.2012
(产品更新不保证规格书同步更新)
LVD中断电平
/LVD
Vdd ≤ 2.2V
0
Vdd > 2.2V
1
Vdd ≤ 3.3V
0
Vdd > 3.3V
1
Vdd ≤ 4.0V
0
Vdd > 4.0V
1
Vdd ≤ 4.5V
0
Vdd > 4.5V
1
NA
0
• 75
EM78P301N
8位OTP微控制器
6.13.2.2 Bank 0 RE (中断状态 2 和唤醒控制寄存器)
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
/LVD
LVDIF
ADIF
−
ADWE
−
ICWE
LVDWE
注意
■ BANK0 RE <6, 5, 4> 可由指令清零,但不能置位。
■ BANK1 RE 和IOCE0 是中断屏蔽寄存器。
■ 读BANK 0 RE的值是BANK 1 RE与IOCE0“逻辑与"的结果。
Bit 7 (/LVD): 低电压侦测状态位,该位为只读位。当VDD引脚电压小于LVD中断电平(通
过LVD1和LVD0位来选择)时,该位被清零。
0: 检测到低电压
1: 未检测到低电压或LVD功能禁止
Bit 6 (LVDIF): 低电压侦测中断标志位
LVDIF由软件或硬件复位为“0”
Bit 0 (LVDWE): 低电压侦测唤醒使能位.
0: 禁止低电压侦测唤醒
1: 使能低电压侦测唤醒
在低电压侦测运行情况下,当其用于进入中断向量或将IC由休眠/空闲模
式唤醒时,LVDWE位必须设为“使能”
。
76 •
产品版本(V1.0) 12.17.2012
(产品更新后不保证规格书同步更新)
EM78P301N
8位OTP微控制器
6.13.3 编程过程
按以下步骤可获得LVD数据:
1. 写LVDCR寄存器的两个位(LVD1: LVD0)以定义LVD电平
2. 如果唤醒功能被采用,置LVDWE位。
3. 如果中断功能被采用,置LVDIE位。
4. 如果中断功能被采用,写 “ENI” 指令。
5. 置LVDEN位为1
6. 写 “SLEP” 指令或查询/LVD 位
7. 低电压侦测中断标志位(LVDIF)清零 ,当低电压侦测中断产生。
LVD模块使用的是内部电路,当LVDEN (BANK1-RE的位6)置为“1”,LVD模块被使能。
当LVDWE (RE 的位0) 置为“1”,在休眠/空闲模式下LVD模块将继续进行。如果Vdd慢慢
往下降至侦测点(VLVD)时,LVDIF (RE的位6)将被置”1”, /LVD (RE的位7)将被清”0”,
系统将由休眠/空闲模式唤醒。当系统复位发生,LVDIF将被清零。
当Vdd保持在高于VLVD 时,LVDIF保持为”0”,/LVD保持为”1”。当Vdd下降至低于VLVD
时,LVDIF置”1”,下一条指令将从中断向量021H处开始执行,LVDIF由软件清”0”。请
参考下图6-26。
图 6-26 LVD/LVR 波形
产品版本(V1.0) 12.17.2012
(产品更新不保证规格书同步更新)
• 77
EM78P301N
8位OTP微控制器
指令集
指令集的每条指令是13位字宽,由一个操作码和一个或多个操作数组成成。正常情况下,
所有指令花费一个指令周期(一个指令周期由两个振荡周期组成),但改变程序计数器
R2的指令如“MOV R2,A” “ADD R2,A”,或对R2进行算术或逻辑运算的指令(如“SUB
R2,A,” “BSI R2”6“" "CLR ”2,"等)除外。
另外,指令集有以下特性:
1. 任何寄存器的每一位均可置1,清零或直接测试。
2. I/O 寄存器可视为通用的寄存器。即相同的指令可用于操作I/O 寄存器。
以下符号用在指令集表中:
惯例:
R =寄存器指示符,指定寄存器(包括操作寄存器和通用寄存器)中的哪个寄存器被使用。
R4的位 6 和 7 定义用于选择寄存器bank。
b =位域指示符,指定寄存器”R”中的哪个位被选择,影响操作指令。
k = 8或10位常数或立即数。
助记符
NOP
DAA
CONTW
SLEP
WDTC
IOW R
ENI
DISI
RET
RETI
CONTR
IOR R
MOV R,A
CLRA
CLR R
SUB A,R
SUB R,A
DECA R
DEC R
OR A,R
OR R,A
78 •
操作
无操作
A 进行十进制调整
A → CONT
0 → WDT, 振荡器停止
0 → WDT
A → IOCR
使能中断
禁止中断
[栈顶] → PC
[栈顶] → PC, 使能中断
CONT → A
IOCR → A
A→R
0→A
0→R
R-A → A
R-A → R
R-1 → A
R-1 → R
A ∨ VR → A
A ∨ VR → R
受影响的状态标志
无
C
无
T, P
T, P
1
无
无
无
无
无
无
1
无
无
Z
Z
Z, C, DC
Z, C, DC
Z
Z
Z
Z
产品版本(V1.0) 12.17.2012
(产品更新后不保证规格书同步更新)
EM78P301N
8位OTP微控制器
助记符
操作
A&R→A
A&R→R
A⊕R→A
A⊕R→R
A+R→A
A+R→R
R→A
R→R
/R → A
/R → R
R+1 → A
R+1 → R
R-1 → A, 为零跳转
R-1 → R, 为零跳转
R(n) → A(n-1), R(0) → C, C → A(7)
R(n) → R(n-1), R(0) → C,
RRC R
C → R(7)
R(n) → A(n+1), R(7) → C,
RLCA R
C → A(0)
R(n) → R(n+1), R(7) → C,
RLC R
C → R(0)
R(0-3) → A(4-7),
SWAPA R
R(4-7) → A(0-3)
SWAP R R(0-3) ↔ R(4-7)
JZA R
R+1 → A, 为零跳转
JZ R
R+1 → R, 为零跳转
BC R,b
0 → R(b)
BS R,b
1 → R(b)
JBC R,b
if R(b)=0, 跳转
JBS R,b
if R(b)=1, 跳转
CALL k
PC+1 → [SP], (Page, k) → PC
JMP k
(Page, k) → PC
MOV A,k k → A
OR A,k
A∨k→A
AND A,k A & k → A
XOR A,k A ⊕ k → A
RETL k
k → A, [栈顶] → PC
SUB A,k
k-A → A
BANK k
k →R4(6)
AND A,R
AND R,A
XOR A,R
XOR R,A
ADD A,R
ADD R,A
MOV A,R
MOV R,R
COMA R
COM R
INCA R
INC R
DJZA R
DJZ R
RRCA R
受影响的状态标
志
Z
Z
Z
Z
Z, C, DC
Z, C, DC
Z
Z
Z
Z
Z
Z
无
无
C
C
C
C
无
无
无
无
2
无
3
无
无
无
无
无
无
Z
Z
Z
无
Z, C, DC
无
LCALL k
PC+1→[SP], k→PC
无
LJMP k
k→PC
无
If Bank1 R5.7=0, machine code(7~0) → R
TBRD R
Else Bank1 R5.7=1, machine code(12~8)
无
→ R(4~0), R(7~5)=(0,0,0)
注意: 1这条指令仅适用于IOC50 ~ IOCF0, IOC51 ~ IOCF1寄存器.
2这条指令不建议用于RF操作。
产品版本(V1.0) 12.17.2012
(产品更新不保证规格书同步更新)
• 79
EM78P301N
8位OTP微控制器
3这条指令不能在RF上操作。
7
绝对最大值
项目
8
范围
温度范围
-40°C
到
85°C
存储温度
-65°C
到
150°C
输入电压
Vss-0.3V
到
Vdd+0.5V
输出电压
Vss-0.3V
到
Vdd+0.5V
工作电压
2.1V
到
5.5V
工作频率
DC
到
16 MHz
DC电气特性
Ta= 25°C, VDD= 5.0V, VSS= 0V
符号
80 •
参数
条件
最小值
典型值
最大值
单位
32.768k
4
16
MHz
760
950
1140
kHz
FXT
晶振: VDD 为 5V
指令周期为 2 个时钟周期
ERC
ERC: VDD 为 5V
R: 5.1KΩ, C: 100pF
VIH1
输入高电压
(施密特触发)
Ports 5, 6, 7
0.7VDD
−
VDD+0.3
V
VIL1
输入低电压
(施密特触发)
Ports 5, 6, 7
-0.3V
−
0.3VDD
V
VIHT1
输入高临界电压(施密特触
发)
/RESET
−
1.8
−
V
VILT1
输入低临界电压(施密特触
/RESET
发)
−
1.1
−
V
VIHT2
输入高临界电压(施密特触
发)
0.7VDD
−
VDD+0.3
V
VILT2
输入低临界电压(施密特触
TCC,INT
发)
-0.3V
−
0.3VDD
V
IOH1
输出高电压
(Ports 5, 6, 7)
−
-6
−
IOH2
输出高电压
(Ports 51~54, 56~57,
60, 67)
IOL1
输出低电压
(Ports 5, 6, 7)
IOL2
输出低电压
(Ports 51~54, 56~57,
60, 67)
TCC,INT
VOH = 0.9VDD
mA
−
−
−
-15
10
−
VOL = 0.1VDD
mA
−
25
−
产品版本(V1.0) 12.17.2012
(产品更新后不保证规格书同步更新)
EM78P301N
8位OTP微控制器
(接上页)
符号
参数
条件
最小值 典型值 最大值 单位
Ta= 25°C
2.41
2.7
2.99
V
Ta= -40~85°C
2.14
2.7
3.25
V
Ta= 25°C
3.1
3.5
3.92
V
Ta= -40~85°C
2.73
3.5
4.25
V
Ta= 25°C
3.56
4.0
4.43
V
Ta= -40~85°C
3.16
4.0
4.81
V
激活上拉,输入引脚接 VSS
−
70
−
µA
下拉电流
激活下拉, 输入引脚接 Vdd
−
40
−
µA
ISB1
掉电电流
所有输入引脚和 I/O 引脚接 VDD,
输出悬空引脚, WDT 禁止
−
1.0
2.0
µA
ISB2
掉电电流
所有输入引脚和 I/O 引脚接 VDD,
输出悬空引脚, WDT 禁止
−
−
10
µA
ICC1
/RESET= '高', Fosc=32.768kHz (晶
2 个时钟周期的工作供电电
振类型,CLKS="0"), 输出悬空引脚,
流 (VDD = 3V)
WDT 禁止
−
15
20
µA
ICC2
/RESET= '高', Fosc=32.768kHz (晶
2 个时钟周期的工作供电电
振类型,CLKS="0"), 输出悬空引脚,
流 (VDD = 3V)
WDT 使能
−
15
25
µA
ICC3
/RESET= '高', Fosc=4 MHz (晶振类
2 个时钟周期的工作供电电
型, CLKS="0"), 输出悬空引脚,
流
WDT 使能
−
1.5
1.7
mA
ICC4
/RESET= '高', Fosc=10 MHz (晶振
2 个时钟周期的工作供电电
类型, CLKS="0"),
流
输出悬空引脚, WDT 使能
−
2.8
3.0
mA
LVR1
低电压复位电平
LVR2
低电压复位电平
LVR3
低电压复位电平
IPH
上拉电流
IPL
注意: 1. 这些参数是理论值(没有测试)仅供参考.
2. 最小值,典型值和最大值 这几列的数据是25°C下的理论值,仅供参考.
内部 RC 电气特性(Ta=25°C, VDD=5V, VSS=0V)
内部 RC
漂移率
温度
Voltage
温度
Typ.
温度
4 MHz
25°C
5V
3.92 MHz
4 MHz
4.08 MHz
16 MHz
25°C
5V
15.68 MHz
16 MHz
16.32 MHz
1 MHz
25°C
5V
0.98 MHz
1 MHz
1.02 MHz
8 MHz
25°C
5V
7.84 MHz
8 MHz
8.16 MHz
内部 RC 电气特性(Ta=-40 ~ 85°C, VDD=2.1~5.5V, VSS=0V)
内部 RC
漂移率
温度
Voltage
温度
Typ.
温度
4 MHz
-40°C ~85°C
2.1V~5.5V
3.80 MHz
4 MHz
4.20 MHz
16 MHz
-40°C ~85°C
2.1V~5.5V
15.2 MHz
16 MHz
16.8 MHz
1 MHz
-40°C ~85°C
2.1V~5.5V
0.95 MHz
1 MHz
1.05 MHz
8 MHz
-40°C ~85°C
2.1V~5.5V
7.60 MHz
8 MHz
8.40 MHz
产品版本(V1.0) 12.17.2012
(产品更新不保证规格书同步更新)
• 81
EM78P301N
8位OTP微控制器
8.1 AD 转换特性
Vdd=5V, Vss=0V, Ta= 25°C
符号
VAREF
VASS
VAI
参数
2.5
−
Vdd
V
Vss
−
Vss
V
VASS
−
VAREF
V
−
−
1400
µA
模拟供电电流
VAREF=VDD=5.0V,
*1
VASS=0.0V, FS =100kHz,
*1
FIN =1kHz
(VREF 为内部 VDD)
−
−
10
µA
−
−
900
µA
模拟供电电流
VAREF=VDD=5.0V,
*1
VASS=0.0V, FS =100kHz,
*1
FIN =1kHz
(VREF 为外部 VREF pin)
−
−
500
µA
−
12
−
Bits
模拟参考电压
模拟输入电压
Ivdd
IAI1
Ivref
Ivdd
IAI2
IVref
VAREF - VASS ≥ 2.5V
−
−
RN
分辨率
INL
积分非线性误差
VAREF=VDD=5.0V
*1
VASS=0.0V, FS =100kHz,
*1
FIN =1kHz
−
−
±4
LSB
DNL
差分非线性误差
VAREF=VDD=5.0V
*1
VASS=0.0V, FS =100kHz,
*1
FIN =1kHz
−
−
±1
LSB
FSE
全局误差
VAREF=VDD=5.0V
*1
VASS=0.0V, FS =100kHz
−
−
±8
LSB
OE
偏移误差
VAREF= Vdd=5.0V
*1
VASS=0.0V, FS =100kHz
−
−
±4
LSB
ZAI
ADC 输入信道外部阻抗
−
−
10
KΩ
TAD
Tsh
82 •
最小 典型 最大
单位
值
值
值
条件
ADC 时钟周期
采样时间
−
VDD=3~5.5V, VASS =
*1
0.0V, FIN =1kHz
0
.5
VDD=2.5~3V, VASS =
*1
0.0V, FIN =1kHz
2
−
−
−
−
µ
s
µ
s
VDD=3~5.5V,
VASS = 0.0V, Ta=25°C
4
−
−
µs
VDD=2.5~3V,
VASS = 0.0V, Ta=25°C
16
−
−
µs
产品版本(V1.0) 12.17.2012
(产品更新后不保证规格书同步更新)
EM78P301N
8位OTP微控制器
(接上页)
符号
参数
TCN
A/D 转换时间
最小 典型 最大
单位
值
值
值
条件
VDD=2.5~5.5V,
VASS = 0.0V
TADD ADRUN 和启动第一个
TAD 之间的 AD 延时
1
−
14
VDD=2.5~5.5V,
VASS=0.0V
0
24
−
.5
TAD
−
T
AD
VAREF= 2.5V,
PSRR
供电电源抑制比
VAREF=2.5V, VASS=0V,
*1
−
−
2
LSB
−
±3
−
%
*1
VIN =0V~2.5V, FS =25kHz
V1/4VDD
1/4 VDD 精度
−
注意:
* FS是采样率和转换率。FIN是输入测试正弦波形的频率
1. 参数是理论值,未经测试。因此参数仅供参考。
2. 除了微小的漏电流,ADC关闭时没有电流消耗。
3. 输入电压上升,并且没有掉CODE,AD转换结果不会下降
4. 参数改变不另行通知
8.2 VREF 2V/3V/4V 特性
Vdd = 5.0V, Vss=0V, Ta= -40 to 85°C
符号
参数
条件
VDD
供电电压
IVDD
Vref
最小 典型 最大
单位
值
值
值
–
2.1
−
5.5
V
DC 供电电流
无负载
−
−
250
µA
参考电压输出
2V, 3V, 4V
−
±1
1.75
%
−
30
50
µs
−
V
VDD=VDDmin - 5.5V,
Warn up
time
参考电压准备时间
Cload = 19.2pf
Rload=15.36KΩ
Vref
VDDmin
最小供电电压
−
−
+
0.2*
*VDDmin : 不能工作在(Vref+0.1V), 但有微弱的PSRR.
产品版本(V1.0) 12.17.2012
(产品更新不保证规格书同步更新)
• 83
EM78P301N
8位OTP微控制器
9
AC 电气特性
Ta=25°C, VDD=5V ± 5%, VSS=0V
符号
参数
条件
最小值
典型值
最大值
单位
–
45
50
55
%
Dclk
输入 CLK 占空比
Tins
指令周期(CLKS="0")
晶振类型
125
–
DC
ns
Tpor
上电复位 release 后延迟时
间
FSS0=1
(16kHz)
–
16 ± 30%
–
ms
–
WSTO + 510/Fm
–
µs
–
WSTO + 8/Fs
–
us
–
WSTO + 8/Fm
–
µs
–
WSTO + 8/Fs
–
µs
晶振类型
/Reset, WDT, 和 LVR
release 后延迟时间
Trstrl
IRC 类型
Trsth1
/RESET 引脚复位后保
持时间
–
–
1 µs
–
–
Trsth2
LVR 引脚复位后保持时
间
–
–
1 µs
–
–
Twdt
看门狗定时器溢出时间 FSS0=1 (16kHz)
–
16 ± 30%
–
ms
Tset
输入引脚启动时间
–
–
0
–
ns
Thold
输入引脚保持时间
–
15
20
25
ns
Tdelay
输出引脚延迟时间
Cload=20 pF
Rload=1MΩ
–
20
–
ns
注意: 1. WSTO: 起振等候时间
2. 这些参数是假设的(未经测试),仅供参考
3. 最小值,典型值和最大值 这几列的数据是 25°C 下的理论值,仅供参考
*. Tpor and Twdt are 16+/- 30% ms at FSS0=1(16kHz), Ta=-40°~85°C, and
VDD=2.1~5.5V
84 •
产品版本(V1.0) 12.17.2012
(产品更新后不保证规格书同步更新)
EM78P301N
8位OTP微控制器
10 时序图
AC 测试输入/输出波形
注意: AC 测试: 输入在 VDD-0.5V 驱动时为逻辑“1”,在 GND+0.5V 时为逻辑“0”.
时序测量是以 0.75VDD 代表逻辑“1”,0.25VDD 代表逻辑“0”。
图 10-1a AC 测试输入/输出波形时序图
Reset 时序 (CLK = "0")
图 10-1b Reset 时序图
TCC 输入时序 (CLKS = "0")
图 10-1c TCC输入时序图
产品版本(V1.0) 12.17.2012
(产品更新不保证规格书同步更新)
• 85
EM78P301N
8位OTP微控制器
附录
A
封装类型
封装类型
引脚数
封装尺寸
MSOP
10
118 mil
EM78P301ND14J
DIP
14
300 mil
EM78P301NSO14J
SOP
14
150 mil
OTP MCU
EM78P301NMS10J
针对产品代码“J”
绿色产品符合RoHS标准.
项目
86 •
EM78P301NxJ
电镀类型
纯锡
成份 (%)
Sn: 100%
熔点(°C)
232°C
电阻率 (µΩ-cm)
11.4
硬度(hv)
8~10
伸长 (%)
>50%
产品版本(V1.0) 12.17.2012
(产品更新后不保证规格书同步更新)
EM78P301N
8位OTP微控制器
B
排序和制造信息
产品版本(V1.0) 12.17.2012
(产品更新不保证规格书同步更新)
• 87
EM78P301N
8位OTP微控制器
C
封装结构
C.1
EM78P301ND14
D
14
E1
8
C
E
eB
1
A
7
θ
Symbal
A
A1
A2
c
D
E
E1
eB
B
B1
L
e
θ
Min
0.381
3.175
0.203
18.796
6.174
7.366
8.409
0.356
1.143
3.048
0
Normal
Max
4.318
3.302
3.429
0.254 0.356
19.050 19.304
6.401
6.628
7.696
8.025
9.017
9.625
0.457 0.559
1.524 1.778
3.302 3.556
2.540(TYP)
15
A1
A2
L
B
e
B1
TITLE:
PDIP-14L 300MIL PACKAGE
OUTLINE DIMENSION
File :
Edtion: A
D14
Unit : mm
Scale: Free
Material:
Sheet:1 of 1
图 B-1 EM78P301N 14-引脚 PDIP 封装类型
88 •
产品版本(V1.0) 12.17.2012
(产品更新后不保证规格书同步更新)
EM78P301N
8位OTP微控制器
C.2
EM78P301NSO14
E
Symbal
A
A1
b
c
E
H
D
L
e
θ
H
Min
1.350
0.100
0.330
0.190
3.800
5.800
8.550
0.600
Normal
Max
1.750
0.250
0.510
0.250
4.000
6.200
8.750
1.270
1.27(TYP)
0
8
e
b
c
D
A2
A
TITLE:
SOP-14L(150MIL) PACKAGE
OUTLINE DIMENSION
File :
Edtion: A
NSO14
Unit : mm
Scale: Free
Material:
Sheet:1 of 1
图 B-2 EM78P301N 14-引脚 SOP 封装类型
产品版本(V1.0) 12.17.2012
(产品更新不保证规格书同步更新)
• 89
EM78P301N
8位OTP微控制器
C.3
EM78P301NMS10
图 B-9 EM78P301N 10-pin MSOP Package 类型
图 B-9 EM78P301N 10-引脚 MSOP 封装类型
90 •
产品版本(V1.0) 12.17.2012
(产品更新后不保证规格书同步更新)
EM78P301N
8位OTP微控制器
C
品质保证和可靠性
测试类别
测试条件
焊料温度=245 ± 5°C, 使用松香在上面停留 5 秒
可焊性
备注
−
步骤 1: TCT, 65°C (15mins)~150°C (15mins), 10 个循环
步骤 2: 在 125°C 烤, TD (持久性)=24 hrs
步骤 3: 放置在 30°C /60% , TD (持久性)=192 hrs
步骤 4: IR 变化 3 次
前提条件
(Pkg 厚度 ≥ 2.5mm 或
Pkg 体积 ≥ 350mm3 ----225 ± 5°C)
使用于 SMD 封装的 IC (如
SOP, QFP, SOJ, 等)
(Pkg 厚度 ≤ 2.5mm 或
Pkg 体积 ≤ 350mm3 ----240 ± 5°C )
温度周期测试
-65° (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=最大工作电压, 800mA/40V
−
ESD (HBM)
TA=25°C, ≥ | ± 4KV |
IP_ND,OP_ND,IO_ND
IP_NS,OP_NS,IO_NS
IP_PD,OP_PD,IO_PD,
TA=25°C, ≥ | ± 400V |
ESD (MM)
IP_PS,OP_PS,IO_PS,
VDD-VSS(+),VDD_VSS
(-) 模式
C.1 地址缺陷检测
地址缺陷检测是MCU嵌入式自动防止故障危害功能的一种,检测MCU由噪声或类似造
成的功能故障。无论何时MCU试图从ROM区获取一条指令,内部恢复电路将自动开始。
如果检测到噪声引起地址错误,MCU重复执行程序直到噪声消除。 MCU 将继续执行下
一条指令。
产品版本(V1.0) 12.17.2012
(产品更新不保证规格书同步更新)
• 91