EM78P458/459 8位 OTP微控制器 产品规格书 版本1.6 义隆电子股份有限公司 2010.12 本文内容是由英文规格书翻译而 来,目的是为了您的阅读更加方 便。它无法跟随原稿的更新,文 中可能存在翻译上的错误,请您 参考英文规格书以获得更准确的 信息。 商标告知: IBM 为一个注册商标,PS/2 是 IBM 的商标之ㄧ.。 Windows 是微软公司的商标。 ELAN 和 ELAN 标志 是义隆电子股份有限公司的商标。 版权所有 © 2009~2010 义隆电子股份有限公司 所有权利保留 台湾印制 本规格书内容如有变动恕不另作通知。关于该规格书的准确性、适当性或者完整性,义隆电子股份有限 公司不承担任何责任。 义隆电子股份有限公司不承诺对本规格书之内容及信息有更新及校正之义务。 本 规格书的内容及信息将为符合确认之指示而变更。 在任何情况下,义隆电子股份有限公司对本规格书中的信息或内容的错误、遗漏,或者其它不准确性不 承担任何责任。由于使用本规格书中的信息或内容而导致的直接,间接,特别附随的或结果的损害, 义 隆电子股份有限公司没有义务负责。 本规格书中提到的软件(如果有),都是依据授权或保密合约所合法提供的,并且只能在这些合约的许 可条件下使用或者复制。 义隆电子股份有限公司的产品不是专门设计来应用于生命维持的用具,装置或者系统。 义隆电子股份有 限公司的产品不支持而且禁止在这些方面的应用。 未经义隆电子股份有限公司书面同意,任何个人或公司不得以任何形式或方式对本规格书的内容之任一部 分进行复制或传输。 义隆电子股份有限公司 总公司: 地址:台湾新竹科学园区 创新一路 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 (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 [email protected] 邮编:201203 电话:+86 21 5080-3866 传真:+86 21 5080-0273 [email protected] Contents 目录 1 综述 ...................................................................................................................... 1 2 特性 ...................................................................................................................... 1 3 引脚配置.................................................................................................................... 2 4 功能描述.................................................................................................................... 5 4.1 操作寄存器 ....................................................................................................... 5 4.1.1 R0 (间接寻址寄存器) .......................................................................................... 5 4.1.2 R1 (时钟 /计数器)................................................................................................ 5 4.1.3 R2 (程序计数器) & 堆栈 ...................................................................................... 5 4.1.4 R3 (状态寄存器).................................................................................................. 7 4.1.5 R4 (RAM 选择寄存器)......................................................................................... 8 4.1.6 4.1.7 4.1.8 R5 ~ R6 (Port 5 ~ Port 6).................................................................................... 8 R7 ~ R8............................................................................................................... 8 R9 (ADCON:模数转换控制寄存器) ..................................................................... 8 4.1.9 RA (ADDATA: ADC 转换值) ................................................................................ 9 4.1.10 4.1.11 4.1.12 4.1.13 4.1.14 RB ....................................................................................................................... 9 RC....................................................................................................................... 9 RD....................................................................................................................... 9 RE ....................................................................................................................... 9 RF (中断状态寄存器) .......................................................................................... 9 4.1.15 R10 ~ R3F ....................................................................................................... 10 4.2 特殊功能寄存器 .............................................................................................. 10 4.2.1 A (累加器) ......................................................................................................... 10 4.2.2 CONT (控制寄存器) ......................................................................................... 10 4.2.3 IOC50 ~ IOC60 (I/O 端口控制寄存器) ...............................................................11 4.2.4 IOC90 (GCON: ADC I/O 配置&控制寄存器) ......................................................11 4.2.5 4.2.6 IOCA0 ( AD-CMPCON ): .................................................................................. 12 IOCB0 (下拉控制寄存器) .................................................................................. 13 4.2.7 IOCC0 (漏极开路控制寄存器)........................................................................... 13 4.2.8 IOCD0 (下拉控制寄存器 ) ................................................................................. 14 4.2.9 IOCE0 (WDT 控制寄存器) ................................................................................ 14 4.2.10 IOCF0 (中断屏蔽寄存器) .................................................................................. 14 4.2.11 IOC51 ( PWMCON ): ........................................................................................ 15 4.2.12 IOC61 ( DT1L: PWM1 的占空周期低位字节( Bit 7 ~ Bit 0) )............................. 16 4.2.13 IOC71 ( DT1H: PWM1 的占空周期高两位( Bit 1 ~ Bit 0 ) )............................... 16 4.2.14 IOC81 ( PRD1: Period of PWM1 ): ................................................................... 17 4.2.15 IOC91 ( DT2L: PWM2 的占空周期低位字节( Bit 7 ~ Bit 0) )............................. 17 4.2.16 IOCA1 ( DT2H: PWM2 的占空周期高两位( Bit 1 ~ Bit 0 ) ) .............................. 17 4.2.17 IOCB1 ( PRD2: PWM2 周期 )........................................................................... 17 版本号(V1.6) 12.01.2010 • iii Contents 4.2.18 IOCC1(DL1L: PWM1 占空周期锁存值的低位字节(Bit 7~Bit 0))........................ 17 4.2.19 IOCD1(DL1H: PWM1 占空周期锁存值的高两位(Bit 1~Bit 0)) .......................... 17 4.2.20 IOCE1(DL2L: PWM2 占空周期锁存值的低位字节(Bit 7~Bit 0))........................ 17 4.2.21 IOCF1(DL2H: PWM2 占空周期锁存值的高两位(Bit 1~Bit 0))........................... 17 4.3 TCC/WDT & 预分频器 .................................................................................... 18 4.4 I/O 端口 .......................................................................................................... 19 4.5 复位和唤醒 ..................................................................................................... 21 4.5.1 复位和唤醒功能................................................................................................. 21 4.5.2 状态寄存器的 T 和 P 状态 ................................................................................. 23 4.6 中断 ................................................................................................................ 24 4.7 模数转换器(ADC)............................................................................................ 25 4.8 4.7.1 ADC 控制寄存器(ADCON/R9, AD-CMP-CON/IOCA0, GCON/IOC90) ............ 26 4.7.2 4.7.1.1 ADCON/R9 ........................................................................................ 26 4.7.1.2 AD-CMP-CON/IOCA0 ....................................................................... 27 4.7.1.3 GCON/IOC90..................................................................................... 27 ADC 数据寄存器(ADDATA/RA)......................................................................... 28 4.7.3 A/D 采样时间 .................................................................................................... 28 4.7.4 A/D 转换时间 .................................................................................................... 28 4.7.5 A/D 运行在休眠模式.......................................................................................... 28 4.7.6 编程步骤 /考量 .................................................................................................. 28 4.7.6.1 编程步骤 ............................................................................................ 28 4.7.6.2 示例代码 ............................................................................................ 29 两路 PWM (脉宽调制) ..................................................................................... 31 4.8.1 综述................................................................................................................... 31 4.8.2 加定时计数器( TMRX: TMR1H/TWR1L 或 TMR2H/TWR2L ).......................... 33 4.8.3 PWM 周期( PRDX : PRD1 或 PRD2 ) .............................................................. 33 4.8.4 PWM 占空周期( DTX: DT1H/ DT1L 和 DT2H/ DT2L; DTL: DL1H/DL1L 和 DL2H/DL2L ) ................................................................................................................. 33 4.8.5 比较器 X............................................................................................................ 33 4.8.6 4.9 PWM 编程步骤.................................................................................................. 33 定时器............................................................................................................. 34 4.9.1 综述................................................................................................................... 34 4.9.2 功能描述 ........................................................................................................... 34 4.9.3 编程相关寄存器................................................................................................. 35 4.9.4 定时器编程步骤................................................................................................. 35 4.10 比较器............................................................................................................. 35 4.10.1 外部参考信号 .................................................................................................... 35 4.10.2 比较器输出........................................................................................................ 35 4.10.3 用作运算放大器................................................................................................. 36 4.10.4 中断................................................................................................................... 36 4.10.5 从休眠模式唤醒................................................................................................. 36 iv • 版本号 (V1.6) 12.01.2010 Contents 4.11 复位后的初始值 .............................................................................................. 37 4.12 振荡器............................................................................................................. 39 4.12.1 振荡模式 ........................................................................................................... 39 4.12.2 晶振 / 陶瓷谐振器 (XTAL) ................................................................................. 40 4.12.3 外部 RC 振荡模式 ............................................................................................. 41 4.12.4 带内部电容的 RC 振荡模式............................................................................... 42 4.13 上电考量 ......................................................................................................... 42 4.13.1 外置上电复位电路 ............................................................................................. 42 4.13.2 残留电压保护 .................................................................................................... 43 4.14 代码选项 ......................................................................................................... 44 4.14.1 代码选项寄存器(Word 0)................................................................................... 44 4.15 指令集............................................................................................................. 45 4.16 时序图............................................................................................................. 47 5 最大绝对值 .............................................................................................................. 48 6 电气特性................................................................................................................. 48 6.1 直流电气特性 (Ta=0°C ~ 70 °C, VDD=5.0V±5%, VSS=0V) ............................. 48 6.2 AC 电气特性(Ta=0°C ~ 70 °C, VDD=5V±5%, VSS=0V) .................................. 49 6.3 A/D 转换器特性(Vdd=3.0V 至 5.5V,Vss=0V,Ta=0 至 70℃).............................. 49 6.4 比较器 (OP) 特性(Vdd = 5.0V,Vss=0V,Ta=0 至 70℃) ...................................... 50 6.5 器件特性 ......................................................................................................... 51 附录 A 封装类型.................................................................................................................. 62 B 封装信息.................................................................................................................. 62 版本号(V1.6)12.01.2010 •v Contents 规格修订历史 文件版本 vi • 修订描述 日期 1.0 初版 1.1 修正 ERC 频率 2003/03/06 1.2 增加 AD & OP 规格 2003/05/07 1.3 修改上电复位内容 2003/07/01 1.4 在 6.5 节增加器件特性 2004/06/25 1.5 更新封装类型 2005/04/01 1.6 修改了引脚描述的内容 2010/12/01 版本号 (V1.6) 12.01.2010 EM78P458/459 8位OTP微控制器 1 综述 EM78P458 和 EM78P459 是采用低功耗、高速CMOS技术设计和开发的8位微处理器。它配备有 一个4K*13-位一次性可编程只读存储器(OTP-ROM)。 利用其OTP-ROM特性,可以很方便的开发和验证用户程序。另外,用户可使用EMC 烧录器很容 易地烧写其开发代码。 2 特性 CPU 配置 • 8-bit 实时时钟/计数器,具有可选择信号源,触 发沿和溢出中断功能 • 8-bit 多通道模数转换,具有 8-bit 分辨率 • 双脉宽调制器,具有10-bit 分辨率 • 一对比较器 • 掉电模式 • 4K×13 bits 片上可读存储器 • 84×8 bits 片上静态随机存储器 • 8级堆栈用于嵌套 低功耗 •在 5V/4MHz低于 1.5 mA •在3V/32kHz典型值 15 µA •在睡眠模式典型值为1 µA •2 组双向IO口 •8个可编程下拉引脚 •7 个可编程上拉引脚 工作电压范围: 2.3V~5.5V 工作温度范围: 0~70°C 工作频率范围(基于2个时钟): •晶振模式: DC~20MHz/2clks @ 5V DC~8MHz/2clks @ 3V •RC 模式: 六个中断: • • • • • • I/O 口配置 •8 个可编程开漏引脚 •单指令周期为两个时钟 外围配置 TCC溢出中断 输入口状态改变中断 (从睡眠模式唤醒) 外部中断 ADC结束产生中断 PWM 周期匹配中断 比较器中断 特性 • 可编程自由运行看门狗定时器 封装类型: • • • • • 18-引脚 DIP 300mil 18-引脚 SOP 300mil 20-引脚 DIP 300mil 20-引脚 SOP 300mil 24-引脚 SDIP 300mil : : : : : EM78P458BP EM78P458BM EM78P458AP EM78P458AM EM78P459AK DC~4 MHz/2clks @ 5V DC~4 MHz/2clks @ 3V 版本号 (V1.6) 12.01.2010 (产品更新后规格书不保证同步更新) •1 EM78P458/459 8位OTP微控制器 3 引脚配置 P56/CIN+ 1 24 P55/CIN- P57/CO 2 23 P54/TCC P60/ADC1 3 22 OSCI P61/ADC2 4 21 OSCO ENTCC 5 20 RESET Vss 6 19 VDD Vss 7 18 VDD P62/ADC3 8 17 P53/VREF 20 P55/CIN- P57/CO 2 19 P54/TCC P60/ADC1 3 18 OSCI P61/ADC2 4 17 OSCO Vss 5 16 VDD P62/ADC3 6 15 P53/VREF P63/ADC4 7 14 P52/PWM2 P63/ADC4 9 16 P52/PWM2 P64/ADC5 8 13 P51/PWM1 P64/ADC5 10 15 P51/PWM1 P65/ADC6 9 12 P50/INT P65/ADC6 11 14 P50/INT P66/ADC7 10 11 P67/ADC8 P66/ADC7 12 13 P67/ADC8 1 18 P54/TCC P60/ADC1 2 17 OSCI P61/ADC2 3 16 OSCO Vss 4 15 VDD 14 P53/VREF 13 P52/PWM2 EM78P458B P57 P62/ADC3 5 P63/ADC4 6 P64/ADC5 7 12 P51/PWM1 P65/ADC6 8 11 P50/INT P66/ADC7 9 10 P67/ADC8 EM78P459 1 EM78P458A P56/CIN+ 图 1 引脚配置 2• 版本号(V1.6) 12.01.2010 (产品更新后规格书不保证同步更新) EM78P458/459 8位OTP微控制器 表 3-1 EM78P458 引脚描述 DIP 18 引脚名称 引脚序号 引脚类型 功能 VDD 15 - 电源 OSCI 17 I 晶体 类型: 晶振输入引脚或外部时钟输入引脚 RC 类型: RC振荡器输入引脚. 16 O 晶体类型: 晶振输出引脚或外部时钟输入引脚 RC 类型: 输出以单指令周期时间为周期的时钟,其预分频比由CONT寄存 器定义。 外部时钟信号输入 P60 ~ P67 2,3 5 ~ 10 I/O 通用I/O引脚。 上电复位时为默认值。 P51 ~ P57 1, 12~14, 16~18 I/O 通用I/O引脚。 上电复位时为默认值。 P50 11 I 通用I/O引脚。 上电复位时为默认值。 INT 11 I 由下降沿触发的外部中断引脚 ADC1~ADC8 2, 3, 5 ~ 10 I 模数转换器。 由 AD-CMPCON (IOCA0)<2:4>定义 PWM1, PWM2 13, 14 O 脉宽调制输出。 由 PWMCON (IOC51)<6, 7>定义 VREF 14 I ADC 外部参考电压 由 AD-CMPCON (IOCA0)<7>定义. TCC 18 I 带施密特输入引脚的实时时钟/计数器;不用时,必须连接到VDD或VSS. VSS 4 - 地 OSCO DIP 20 引脚名称 引脚序号 引脚类型 功能 VDD 16 - 电源 OSCI 18 I 晶体 类型: 晶振输入引脚或外部时钟输入引脚 RC 类型: RC振荡器输入引脚. 17 O 晶体类型: 晶振输出引脚或外部时钟输入引脚。 RC 类型: 输出以单指令周期时间为周期的时钟,其预分频比由CONT 寄存器定义。 外部时钟信号输入。 P60 ~ P67 3, 4, 6~11 I/O 通用I/O引脚。 上电复位时为默认值。 P51 ~ P57 13~15 19 ~ 20, 1, 2 I/O 通用I/O引脚。 上电复位时为默认值。 P50 12 I 仅作为通用输入引脚。 上电复位时为默认值。 INT 12 I 由下降沿触发的外部中断引脚 ADC1~ADC8 3 ~ 4, 6 ~ 11 I 模数转换器。 由 AD-CMPCON (IOCA0)<2:4>定义 PWM1, PWM2 13, 14 O 脉宽调制输出。 OSCO 版本号 (V1.6) 12.01.2010 (产品更新后规格书不保证同步更新) •3 EM78P458/459 8位OTP微控制器 由 PWMCON (IOC51)<6, 7>定义 15 I ADC 外部参考电压 由 AD-CMPCON (IOCA0)<7>定义. 20, 1,2 I O “-“ -> 比较器输入引脚 Vin-. “+”->比较器输入引脚 Vin+ 比较器输出引脚CO 由AD-CMPCON (IOCA0) <5, 6>定义 VREF CIN-, CIN+, CO TCC 19 I 带施密特输入引脚的实时时钟/计数器;不用时,必须连接到VDD或 VSS. VSS 5 - 地 表 3-2 EM78P459 引脚描述 引脚名称 功能 19, 18 - 电源 OSCI 22 I 晶体 类型: 晶振输入引脚或外部时钟输入引脚 RC 类型: RC振荡器输入引脚. 21 O 晶体类型: 晶振输出引脚或外部时钟输入引脚 RC 类型: 输出以单指令周期时间为周期的时钟,其预分频比由CONT寄存 器定义。 外部时钟信号输入 P50 ~ P57 14~17 23~24 1~2 I/O 通用I/O引脚。 上电复位时为默认值。 P60 ~ P67 3, 4, 8~13 I/O 通用I/O引脚。 上电复位时为默认值。 OSCO P70 ~ P74 INT 3, 2, 1 24, 23 I/O 通用I/O引脚。 上电复位时为默认值。 14 I 由下降沿触发的外部中断引脚 ADC1~ADC8 3, 4, 8~13 I 模数转换器。 由 AD-CMPCON (IOCA0)<2:4>定义 PWM1, PWM2 15, 16 O 脉宽调制输出。 由 PWMCON (IOC51)<6, 7>定义 17 I ADC 外部参考电压 由 AD-CMPCON (IOCA0)<7>定义. I “-“ -> 比较器输入引脚 Vin-. “+”->比较器输入引脚 Vin+ 比较器输出引脚CO 由AD-CMPCON (IOCA0) <5, 6>定义 VREF CIN-, CIN+, CO 4• 引脚序号 引脚类型 VDD 24, 1, 2 /RESET 20 I 如果保持为逻辑低,器件将产生复位。 当引脚状态改变时由休眠模式唤醒。. 在普通模式下,/RESET/Vpp引脚电压必须低于Vdd 如果定义/RESET,上拉功能被开启。 TCC 23 I 带施密特输入引脚的实时时钟/计数器;不用时,必须连接到VDD或VSS. ENTCC VSS 5 6, 7 I - 1: 使能 TCC; 0: 禁止 TCC. 地 版本号(V1.6) 12.01.2010 (产品更新后规格书不保证同步更新) EM78P458/459 8位OTP微控制器 4 功能描述 图 2 EM78P458/459功能结构图 4.1 操作寄存器 4.1.1 R0 (间接寻址寄存器) R0 并非实际存在的寄存器。它的主要功能是作为间接寻址指针。任何以R0为指针的指 令实际上是对RAM选择寄存器R4所指的数据进行操作。 4.1.2 R1 (时钟 /计数器) 由TCC引脚的外部信号边沿或指令周期时钟触发加1. 触发计数器加计数的信号由CONT寄存器的位 4和位5 决定。 同其它寄存器一样可读/写。 4.1.3 R2 (程序计数器) & 堆栈 R2 和硬件堆栈为12 位宽。图4为其结构图。 产生4K×13 位片内ROM地址以寻址程序。一个程序页为1024字长。 复位条件下,R2的所有位都置为“0”。 版本号 (V1.6) 12.01.2010 (产品更新后规格书不保证同步更新) •5 EM78P458/459 8位OTP微控制器 "JMP" 指令允许直接加载程序计数器的低10位。因此,"JMP" 允许PC跳转到一个程 序页内的任一位址。 "CALL" 指令首先加载PC的低10位,然后将PC+1推入堆栈。因此,子程序入口地址 可位于一个程序页内的任一位址。 "RET" ("RETL k", "RETI")指令加载栈顶内容到程序计数器。 "ADD R2, A"可将一个相对地址加到当前PC,PC的第九,第十位被清除。 "MOV R2, A" 可从"A"寄存器加载一个相对地址到PC的低8位,PC的第九和第十位 被清除。 任何向R2写值的指令(例如:"ADD R2, A"、"MOV R2, A", "BC R2, 6",⋅⋅⋅⋅⋅)将导致PC 的第九和第十位(A8~A9)被清除。因此,经计算的跳转限制在一个程序页的前256个 位址。 对于EM78P458/459,执行"JMP", "CALL"指令后,程序计数器的高两位(A11 和 A10) 将加载状态寄存器(R3)的PS1 和 PS0值。 处理向R2写值的指令需要两个指令周期外,所有指令都是单周期指令(fclk/2 or fclk/4) 图 3 程序计数器组织 6• 版本号(V1.6) 12.01.2010 (产品更新后规格书不保证同步更新) EM78P458/459 8位OTP微控制器 PAGE 寄存器 地址 IOC PAGE 寄存器 IOC PAGE 寄存器 00 R0 (IAR) 保留 保留 01 R1 (TCC) 保留 保留 02 R2 (PC) 保留 保留 03 R3 (Status) 保留 保留 04 R4 RSR) 保留 保留 05 R5 (Port5) IOC50 (I/O 端口控制寄存器) IOC51 (PWMCON) 06 R6 (Port6) IOC60 (I/O 端口控制寄存器) IOC61 (DT1L) 07 R7 通用寄存器 保留 IOC71 (DT1H) IOC81 (PRD1) 08 R8 通用寄存器 保留 09 R9 (ADCON) IOC90 (GCON) IOC91 (DT2L) 0A RA (ADDATA) IOCA0 (AD-CMPCON) IOCA1 (DT2H) 0B RB 通用寄存器 IOCB0 (下拉控制寄存器) IOCB1 (PRD2) 0C RC 通用寄存器 (仅两位有效) IOCC0 (漏极开路控制寄存器) IOCC1 (DL1L) 0D RD 通用寄存器 IOCD0 (上拉控制寄存器) IOCD1 (DL1H) 0E RE 通用寄存器 (仅两位有效) IOCE0 (WDT控制寄存器) IOCE1 (DL2L) 0F 10 ︰ 1F 20 RF (中断状态寄存器) IOCF0 (中断屏蔽寄存器) IOCF1 (DL2H) ︰ Bank 0 通用寄存器 Bank 1 3F 图 4 数据存储器配置 4.1.4 R3 (状态寄存器) Bit 7 CMPOUT Bit 6 Bit 5 PS1 PS0 Bit 4 T Bit 3 P Bit 2 Z Bit 1 DC Bit 0 C Bit 7 (CMPOUT): 比较器输出结果 Bit 6 (PS1) ~ 5 (PS0): 页选择位。PS0~PS1用于选择程序存储器页。当执行"JMP", "CALL"指令或会使程序计数器发生改变的指令(例如:MOV R2, A), PS0~PS1将被加载到程序计数器的第11和第12位用于选择一个有效的程 序存储器页。必须注意的是,RET(RETL, RETI)指令不会改变PS0~PS1 位,也就是,返回的地址总是子程序被调用的位址,而不论PS0~PS1的 当前值是什么。 版本号 (V1.6) 12.01.2010 (产品更新后规格书不保证同步更新) •7 EM78P458/459 8位OTP微控制器 PS1 PS0 0 0 页 0 [000-3FF] 0 1 页 1 [400-7FF] 1 0 页 2 [800-BFF] 1 1 页 3 [C00-FFF] 程序存储器页[地址] Bit 4 (T): 溢出位。执行”SLEP”和”WDTC”指令或上电时置1。 WDT溢出时复位为0. Bit 3 (P): 掉电位。上电时或执行”WDTC”指令置 1,执行”SLEP”指令复位为0. Bit 2 (Z): 零标志位。如果算术或逻辑运算的结果为0时置为”1” Bit 1 (DC): 辅助进位标志位 Bit 0 (C): 进位标志位 4.1.5 R4 (RAM 选择寄存器) Bit 7: 为通用读/写位. Bit 6: 用于选择bank 0 或 bank 1. Bits 0~5: 在间接寻址模式中用于选择寄存器(地址: 00~3F) 4.1.6 R5 ~ R6 (Port 5 ~ Port 6) R5 和 R6 为I/O寄存器 4.1.7 R7 ~ R8 所有这些寄存器为8位通用寄存器 4.1.8 R9 (ADCON:模数转换控制寄存器) Bit 7 - Bit 6 - Bit 5 IOCS Bit 4 ADRUN Bit 3 Bit 2 Bit 1 Bit 0 ADPD ADIS2 ADIS1 ADIS0 Bit 7Bit 6: 未使用,读为’0’, Bit 5(IOCS): 选择I/O控制寄存器段 1: 选择段1 ( IOC51~IOCF1 ); 0: 选择段 0 ( IOC50~IOCF0 ); Bit 4 (ADRUN): ADC 开始运行. 1: 一次A/D转换开始。此位可由软件置位。 0: 转换完成后复位。此位不能由软件复位。 Bit 3 (ADPD): ADC 电源开关. 1: 开启; 0: 关闭。 8• 版本号(V1.6) 12.01.2010 (产品更新后规格书不保证同步更新) EM78P458/459 8位OTP微控制器 Bit2:Bit0 (ADIS2:ADIS0): 模拟输入通道选择 000 = AN0; 001 = AN1; 010 = AN2; 011 = AN3; 100 = AN4; 101 = AN5; 110 = AN6; 111 = AN7; 仅当ADIF位和ADRUN位均为低时才可改变其值。 4.1.9 RA (ADDATA: ADC转换值) 当A/D转换完成,转换结果加载到ADDATA。START//END清除,ADIF置位。 4.1.10 RB 一个8位通用寄存器 4.1.11 RC 一个2位(Bit 0 和Bit 1有效)通用寄存器。 4.1.12 RD 一个8位通用寄存器 4.1.13 RE 一个2位(Bit 0 和Bit 1有效)通用寄存器。 4.1.14 RF (中断状态寄存器) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 - CMPIF PWM2IF PWM1IF ADIF EXIF ICIF TCIF “1” 表示有中断请求, “0” 表示没有中断产生 Bit 7: 未使用,读为’0’ Bit 6 (CMPIF): 高-比较中断标志。当比较器输出发生改变时置位,由软件复位。 Bit 5 (PWM2IF): PWM2(脉宽调制)中断标志。当与选定周期匹配时置位,由软件复 位。 Bit 4 (PWM1IF): PWM1 (脉宽调制) 中断标志。当与选定周期匹配时置位,由软件复位。 Bit 3 (ADIF): 模数转换中断标志位。当AD转换完成时置位,由软件复位。 版本号 (V1.6) 12.01.2010 (产品更新后规格书不保证同步更新) •9 EM78P458/459 8位OTP微控制器 Bit 2 (EXIF): 外部中断标志。由/INT引脚的下降沿触发置位,由软件复位。 Bit 1 (ICIF): Port 6 输入状态改变中断标志。当Port 6输入状态改变时置位,由软件复位。 Bit 0 (TCIF): TCC 溢出中断标志。TCC溢出时置位,由软件复位。 RF 可由指令清除但不可由指令置位。 IOCF0 为中断屏蔽寄存器 注意:读取RF所得到的值是RF和IOCF0逻辑相与的结果。 4.1.15 R10 ~ R3F 所有这些寄存器均是8位通用寄存器。 4.2 特殊功能寄存器 4.2.1 A (累加器) 用于内部数据传送或指令操作数保持 它不可被寻址。 4.2.2 CONT (控制寄存器) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 INTE INT TS TE PAB PSR2 PSR1 PSR0 Bit 7 (INTE): INT 信号边沿 0: 在INT引脚的上升沿产生中断 1: 在INT引脚的下降沿产生中断 Bit 6 (INT): 中断使能标志位。 0: 由DISI指令或硬件中断屏蔽 1: 由ENI/RETI指令使能。 Bit 5 (TS): TCC 信号源选择位 0: 内部指令周期时钟。如果P54用作I/O引脚,TS必须为0. 1:TCC引脚上的信号跳变。 Bit 4 (TE): TCC 信号边沿选择位 0: TCC引脚信号发生由低到高跳变时增1. 1: TCC引脚信号发生由高到低跳变时增1. Bit 3 (PAB): 预分频器分配位。 0: TCC; 1: WDT. 10 • 版本号(V1.6) 12.01.2010 (产品更新后规格书不保证同步更新) EM78P458/459 8位OTP微控制器 Bit 2 (PSR2) ~ Bit 0 (PSR0): TCC/WDT预分频位. PSR2 PSR1 PSR0 TCC 分频比 WDT分频比 0 0 0 1:2 1:1 0 0 1 1:4 1:2 0 1 0 1:8 1:4 0 1 1 1:16 1:8 1 0 0 1:32 1:16 1 0 1 1:64 1:32 1 1 0 1:128 1:64 1 1 1 1:256 1:128 CONT 寄存器可读/写。 4.2.3 IOC50 ~ IOC60 (I/O端口控制寄存器) "1" 设置相应I/O引脚为高阻态,而"0"定义相应I/O引脚为输出。 IOC50 和 IOC60 寄存器可读/写。 4.2.4 IOC90 (GCON: ADC I/O 配置&控制寄存器) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 OP2E OP1E G22 G21 G20 G12 G11 G10 Bit 7( OP2E ): 使能增益放大器。此放大器输入端连接到P64,输出端连接到8选1模拟 开关。 0: OP2 关闭(默认), 旁路输入信号到ADC; 1: OP2 开启. Bit 6 ( OP1E ): 使能增益放大器。此放大器输入端连接到P60,输出端连接到8选1模拟 开关。 0: OP1 关闭(默认), 旁路输入信号到ADC; 1: OP1 开启. Bit 5:Bit 3 (G22 和 G20): OP2 增益选择位。 000 = IS x 1 (默认值); 001 = IS x 2; 010 = IS x 4; 011 = IS x 8; 100 = IS x 16; 101 = IS x 32; 约定: IS = 输入信号 Bit 2:Bit 0 (G12 和 G10 ): OP1 增益选择位 版本号 (V1.6) 12.01.2010 (产品更新后规格书不保证同步更新) • 11 EM78P458/459 8位OTP微控制器 000 = IS x 1 (默认值); 001 = IS x 2; 010 = IS x 4; 011 = IS x 8; 100 = IS x 16; 101 = IS x 32; 约定: IS = 输入信号 4.2.5 IOCA0 ( AD-CMPCON ): Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 VREFS CE COE IMS2 IMS1 IMS0 CKR1 CKR0 Bit 7: ADC 参考电压 输入选择位 0: ADC Vref 连接到Vdd(默认值),并且P53/VREF引脚用作P53; 1: ADC Vref 连接到P53/VREF Bit 6 (CE): 比较器使能位 0: 比较器关闭(默认) 1: 比较器开启 Bit 5 ( COE ): 设置P57为比较器输出 0: 如果CE=1,比较器作为OP. 1: 如果CE=1,用作比较器 Bit4:Bit2 (IMS2:IMS0): 输入模式选择。ADC配置定义位。以下表格描述了如何定义R6 每个引脚的特性。 表 3 AD配置控制位描述 IMS2:IMS0 P60 P61 P62 P63 P64 P65 P66 P67 000 A D D D D D D D 001 A A D D D D D D 010 A A A D D D D D 011 A A A A D D D D 100 A A A A A D D D 101 A A A A A A D D 110 A A A A A A A D 111 A A A A A A A A Bit 1: Bit 0 (CKR1: CKR0): ADC转换时间选择 00 = 1: 4 (默认值); 01 = 1: 16; 10 = 1: 64; 12 • 版本号(V1.6) 12.01.2010 (产品更新后规格书不保证同步更新) EM78P458/459 8位OTP微控制器 11 = ADC 振荡时钟源取自WDT振荡器频率。 (频率=256/18ms≒14.2Khz) 4.2.6 IOCB0 (下拉控制寄存器) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 /PD7 /PD6 /PD5 /PD4 /PD3 /PD2 /PD1 /PD0 Bit 7 (/PD7): P67引脚下拉控制使能位。 0: 使能内部下拉 1: 禁止内部下拉 Bit 6 (/PD6): P66引脚下拉控制使能位. Bit 5 (/PD5): P65引脚下拉控制使能位 Bit 4 (/PD4): P64引脚下拉控制使能位 Bit 3 (/PD3): P63引脚下拉控制使能位 Bit 2 (/PD2): P62引脚下拉控制使能位 Bit 1 (/PD1): P61引脚下拉控制使能位 Bit 0 (/PD0): P60引脚下拉控制使能位 IOCB0 寄存器可读/写。 4.2.7 IOCC0 (漏极开路控制寄存器) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 /OD7 /OD6 /OD5 /OD4 /OD3 /OD2 /OD1 /OD0 Bit 7 (OD7): P57引脚漏极开路控制使能位 0: 使能漏极开路输出 1: 禁止漏极开路输出 Bit 6 (OD6): P54引脚漏极开路控制使能位 Bit 5 (OD5): P52引脚漏极开路控制使能位 Bit 4 (OD4): P51引脚漏极开路控制使能位 Bit 3 (OD3): P67引脚漏极开路控制使能位 Bit 2 (OD2): P66引脚漏极开路控制使能位 Bit 1 (OD1): P65引脚漏极开路控制使能位 Bit 0 (OD0): P64引脚漏极开路控制使能位 IOCC0 寄存器可读/写 版本号 (V1.6) 12.01.2010 (产品更新后规格书不保证同步更新) • 13 EM78P458/459 8位OTP微控制器 4.2.8 IOCD0 (下拉控制寄存器 ) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 /PH7 /PH6 /PH5 - /PH3 /PH2 /PH1 /PH0 Bit 7 (/PH7): P56引脚上拉控制使能位 0: 使能内部上拉 1: 禁止内部上拉. Bit 6 (/PH6): P55引脚上拉控制使能位 Bit 5 (/PH5): P53引脚上拉控制使能位 Bit 4: 未使用. Bit 3 (/PH3): P63引脚上拉控制使能位 Bit 2 (/PH2): P62引脚上拉控制使能位 Bit 1 (/PH1): P61引脚上拉控制使能位 Bit 0 (/PH0): P60引脚上拉控制使能位 IOCD0 寄存器可读/写。 4.2.9 IOCE0 (WDT控制寄存器) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 WDTE EIS - - - - - - Bit 7 (WDTE): 看门狗定时器控制使能位 0: 禁止WDT; 1: 使能WDT. WDTE 位可读/写 Bit 6 (EIS): P50 (/INT)引脚功能控制使能位 0: P50, 仅作为输入引脚 1: /INT, 外部中断引脚。在此条件下,P50的I/O控制位(IOC50-bit 0)必须 设置为”1”. 当EIS为”0”, /INT通道被屏蔽。当EIS为”1”, /INT引脚状态也可通过读取 Port 5 (R5) 的方式读取,参考图 7. EIS位可读/写 Bits 5~0: 未使用 4.2.10 IOCF0 (中断屏蔽寄存器) 14 • Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 - CMPIE PWM2IE PWM1IE ADIE EXIE ICIE TCIE 版本号(V1.6) 12.01.2010 (产品更新后规格书不保证同步更新) EM78P458/459 8位OTP微控制器 Bit 7: 未实现,读为‘0’. 各个中断可通过设置IOCF0中的相应控制位为"1"使能。. 全局中断由ENI指令使能,由DISI指令禁止。参考图 11. Bit 6 (CMPIE): CMPIF 中断使能位 0: 禁止CMPIF中断 1: 使能CMPIF中断 Bit 5 (PWM2IE): PWM2IF 中断使能位 0: 禁止PWM2 中断 1: 使能PWM2中断 Bit 4 (PWM1IE): PWM1IF 中断使能位 0: 禁止PWM1中断 1: 使能PWM1中断 Bit 3 (ADIE): ADIF 中断使能位 0: 禁止ADIF中断 1: 使能ADIF中断 Bit 2 (EXIE): EXIF 中断使能位 0: 禁止EXIF中断 1: 使能EXIF中断 Bit 1 (ICIE): ICIF 中断使能位 0: 禁止ICIF中断 1: 使能ICIF中断 Bit 0 (TCIE): TCIF 中断使能位 0: 禁止TCIF中断 1: 使能TCIF中断 IOCF0 寄存器可读/写 4.2.11 IOC51 ( PWMCON ): Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 PWM2E PWM1E T2EN T1EN T2P1 T2P0 T1P1 T1P0 Bit 7 (PWM2E): PWM2 使能位 0: PWM2 关闭(默认值), 其相关引脚用作P52 1: PWM2 开启,其相关引脚将自动设置为输出 版本号 (V1.6) 12.01.2010 (产品更新后规格书不保证同步更新) • 15 EM78P458/459 8位OTP微控制器 Bit 6 (PWM1E): PWM1 使能位 0: PWM1 关闭(默认值), 其相关引脚用作P51 1: PWM1 开启,其相关引脚将自动设置为输出 Bit 5 (T2EN): TMR2 使能位 0: TMR2 关闭(默认) 1: TMR2 开启 Bit 4 (T1EN): TMR1 使能位 0: TMR1 关闭(默认值) 1: TMR1 开启 Bit 3: Bit 2 ( T2P1:T2P0 ): TMR2 时钟分频比选择位 T2P1 T2P0 分频比 0 0 1:2(默认) 0 1 1:8 1 0 1:32 1 1 1:64 Bit 1 : Bit 0 ( T1P1:T1P0 ): TMR1 时钟分频比选择位 T1P1 T1P0 分频比 0 0 1:2(默认) 0 1 1:8 1 0 1:32 1 1 1:64 4.2.12 IOC61 ( DT1L: PWM1的占空周期低位字节( Bit 7 ~ Bit 0) ) 存储一个特定值,在TMR1与此特定值发生匹配之前,PWM1的输出一直保持为高 4.2.13 IOC71 ( DT1H: PWM1的占空周期高两位( Bit 1 ~ Bit 0 ) ) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 CALI1 SIGN1 VOF1[2] VOF1[1] VOF1[0] - PWM1[9] PWM1[8] Bit 7 (CALI1): 校准使能位 0: 校准禁止 1: 校准使能 Bit 6 (SIGN1): 补偿电压极性选择位 0: 负电压; 1: 正电压. Bit 5:Bit 3 (VOF1[2]:VOF1[0]): 补偿电压位. Bit 1:Bit 0 (PWM1[9]:PWM1[8]): PWM1 占空周期的高位字节 16 • 版本号(V1.6) 12.01.2010 (产品更新后规格书不保证同步更新) EM78P458/459 8位OTP微控制器 存储一个特定值,在TMR1与此特定值发生匹配之前,PWM1的输出一直保持为高 4.2.14 IOC81 ( PRD1: Period of PWM1 ): IOC81存储PWM1的周期(时基)。PWM1的频率为周期倒数。 4.2.15 IOC91 ( DT2L: PWM2的占空周期低位字节( Bit 7 ~ Bit 0) ) 存储一个特定值,在TMR2与此特定值发生匹配之前,PWM2的输出一直保持为高 4.2.16 IOCA1 ( DT2H: PWM2的占空周期高两位( Bit 1 ~ Bit 0 ) ) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 CALI2 SIGN2 VOF2[2] VOF2[1] VOF2[0] - PWM2[9] PWM2[8] Bit 7 (CALI2): 校准使能位 0: 禁止校准; 1: 使能校准. Bit 6 (SIGN2): 补偿电压极性选择位 0: 负电压; 1: 正电压. Bit 5:Bit 3 (VOF2[2]:VOF2[0]): 补偿电压位 Bit 1:Bit 0 (PWM2[9]:PWM2[8]): PWM1占空周期高两位。 存储一个特定值,在TMR2与此特定值发生匹配之前,PWM2的输出一直保持为高 4.2.17 IOCB1 ( PRD2: PWM2 周期 ) IOCB1存储PWM2的周期(时基)。PWM2的频率为周期倒数。 4.2.18 IOCC1(DL1L: PWM1占空周期锁存值的低位字节(Bit 7~Bit 0)) IOCC1寄存器仅可读 4.2.19 IOCD1(DL1H: PWM1 占空周期锁存值的高两位(Bit 1~Bit 0)) IOCD1寄存器仅可读 4.2.20 IOCE1(DL2L: PWM2占空周期锁存值的低位字节(Bit 7~Bit 0)) IOCE1寄存器仅可读 4.2.21 IOCF1(DL2H: PWM2 占空周期锁存值的高两位(Bit 1~Bit 0)) IOCF1寄存器仅可读 版本号 (V1.6) 12.01.2010 (产品更新后规格书不保证同步更新) • 17 EM78P458/459 8位OTP微控制器 4.3 TCC/WDT & 预分频器 一个8位计数器可用作TCC或WDT预分频计数器。在某一特定时刻,预分频器仅对TCC 或WDT有效,CONT寄存器的PAB位用于定义预分频器的分配。PSR0~PSR1位定义预 分频比。在TCC模式下,预分频器在每次执行向TCC写值的指令后清除。当预分频器分 配给WDT,WDT和预分频器在执行WDTC或SLEP指令后清除。图5描绘了TCC/WDT 电路图。 R1(TCC) 为一个8位定时/计数器。TCC时钟源可取自内部时钟或外部时钟输入(可 选择触发边沿) 。如果TCC信号源取自内部时钟,TCC将在每个指令周期(未预分频) 后增1.参考图5, CLK=Fosc/2 或 CLK=Fosc/4CLK取决于代码选项位CLKS. 如果 CLKS位为"0",CLK= Fosc/2; 如果CLKS位为"1",CLK= Fosc/4 如果TCC信号源取自外部时钟输入,TCC将在TCC引脚信号的下降或上升沿增1. 看门狗定时器的时钟源是一个自由运行的片内RC振荡器。WDT将一直保持运行即 使在振荡器驱动关闭的条件下(也即休眠模式)。在普通模式或休眠模式下,WDT 溢出(若使能) 将使器件产生复位。在普通模式,WDT可通过编程在任何时间使能或 1 禁止。参考IOCE0寄存器的WDTE位。不带预分频时,WDT溢出周期大约为18 ms . 图 5 TCC和WDT结构图 1 18 • VDD=5V,启动周期 = 18ms ± 30%. VDD=3V,启动周期 = 22ms ± 30%. 版本号(V1.6) 12.01.2010 (产品更新后规格书不保证同步更新) EM78P458/459 8位OTP微控制器 4.4 I/O 端口 Port 5, Port 6 和I/O寄存器为双向三态I/O端口。上拉、下拉和漏极开路功能可分别通过 设置IOCB0、IOCC0和IOCD0使能或禁止。Port 6 具有输入状态改变中断(或唤醒)功 能。每个I/O引脚都可通过设置相应I/O控制寄存器(IOC50 ~ IOC60)定义为“输入” 或“输出”引脚。I/O寄存器和I/O控制寄存器均可读/写。Port 5 和 Port 6 I/O接口电路 分别见图 6,图 7 ,图 8。 PCRD Q D _ PORT PCWR CLK Q C L Q P R _ CLK Q IOD D PDWR C L PDRD 0 1 M U X 注: 下拉电路没有在图中显示. 图 6 Port 5 I/O端口和 I/O控制寄存器电路 PCRD Q _ P R D CLK Q PCWR C L P50, /INT Q PORT _ P R D CLK Q IOD PDWR C L Bit 6 of IOCE0 D P R CLK C L 0 Q 1 _ M U X Q PDRD TI 0 D P R CLK C L Q _ Q INT 注: 上拉(下拉)和 漏极开路电路没有在图中显示 图 7 P50(/INT) I/O端口和I/O控制寄存器电路 版本号 (V1.6) 12.01.2010 (产品更新后规格书不保证同步更新) • 19 EM78P458/459 8位OTP微控制器 PCRD Q _ Q P R D CLK PCWR C L P60 ~ P67 PORT Q P R _ CLK Q 0 IOD D PDWR C L M U X 1 PDRD TI n D P R CLK C L Q _ Q 注: 上拉(下拉)和 漏极开路电路没有在图中显示 图 8 P60~P67 I/O端口和I/O控制寄存器电路 图 8 Port 6输入状态改变中断/唤醒功能结构图 20 • 版本号(V1.6) 12.01.2010 (产品更新后规格书不保证同步更新) EM78P458/459 8位OTP微控制器 表 4 Port 6输入状态改变唤醒/中断功能应用 Port 6 输入状态改变唤醒/中断功能应用 (I) 由Port 6输入状态改变唤醒 (a) 休眠前 1. 禁止 WDT 2. 读I/O Port 6 (MOV R6,R6) 3. 执行 "ENI" 或 "DISI" 4. 使能中断(设置IOCF0.1) (II) Port 6 输入状态改变中断 1. 读I/O Port 6 (MOV R6,R6) 2. 执行"ENI" 3. 使能中断(设置IOCF0.1) 4. 如果Port 6 状态改变(中断) → 中断向量(008H) 5. 执行 "SLEP"指令 (b) 唤醒后 1. 如果"ENI" → 中断向量(008H) 2. 如果"DISI" → 下一条指令 4.5 复位和唤醒 4.5.1 复位和唤醒功能 一次复位可由如下事件之一触发: (1) 上电复位 (2) /RESET 引脚输入“低” (3) WDT 溢出(若WDT使能). 在检测到一次复位后,器件将保持在复位状态大约18ms(一次振荡器启动时间周期)。 一旦产生复位,以下功能将被执行: 振荡器保持运行或开始起振 程序计数器(R2)所有位置“0” 所有I/O端口引脚被配置为输入模式(高组态模式) 看门狗定时器和预分频器被清除 当电源开启,R3寄存器的高3位清零 除了Bit 6(INT 标志)以外,CONT寄存器的所有位置“1” IOCB0寄存器的所有位置“1” IOCC0寄存器清零 IOCD0寄存器的所有位置“1” IOCE0寄存器的Bit 7置“1”,Bit 6 清零 RF寄存器的Bits 0~6 和IOCF0寄存器的Bits 0~6清零 执行“SLEP”将使器件进入休眠模式。当进入休眠模式,WDT(若使能)清零但始终 保持运行。控制器可由以下事件唤醒: (1) /RESET引脚的外部复位输入 (2) WDT 溢出(若使能) 版本号 (V1.6) 12.01.2010 (产品更新后规格书不保证同步更新) • 21 EM78P458/459 8位OTP微控制器 (3) Port 6输入状态改变(若使能) (4) 比较器高 (5) ADC 转换完成 前两个事件将使EM78P458/459产生复位。R3寄存器的T 和 P 标志可用于判断复位(唤 醒)源。事件3将综合考虑后续程序的执行和全局中断(“ENI”或“DISI”指令是否被 执行)决定控制器在唤醒后是否进入中断向量。如果在SLEP指令前执行了ENI指令,唤 醒后将从地址0X8开始执行指令;如果在SLEP指令前执行了DISI指令,唤醒后将从SLEP 指令的下一条指令开始执行。 在进入休眠模式之前,仅有事件2至4可被使能。也即: [a] 如果Port 6输入状态改变中断在执行SLEP指令前被使能,WDT必须由软件禁止。然 而,代码选项寄存器的WDT位仍保持使能。因此,EM78P458/459仅可由事件1 或 3 唤醒。 [b] 如果WDT在执行SLEP指令之前使能,Port 6输入状态改变中断必须被禁止。因此, EM78P458/459仅可由事件 1或 2唤醒。详细请参考中断章节 [c] 如果比较器高中断在执行SLEP指令之前使能,WDT必须被禁止。然而,代码选项 寄存器的WDT位仍保持使能。因此,EM78P458/459仅可由事件1 或 4唤醒。 如果Port 6输入状态改变中断用于唤醒EM78P458/459(如上述事件[a]), 在SLEP指 令前必须执行如下指令。 MOV A, @0Bxx000110 ; TCC 选择内部时钟 CONTW CLR R1 ; 清除 TCC 和预分频器 MOV A, @0Bxxxx1110 ; 选择 WDT 预分频 CONTW WDTC ; 清除 WDT 和预分频器 MOV A, @0B0xxxxxxx ; 禁止 WDT IOW RE MOV R6, R6 ; 读取 Port 6 MOV A, @0B00000x1x ; 使能 Port 6 输入状态改变中断 IOW RF ENI (或 DISI) ; 使能(或禁止)全局中断 SLEP ; 休眠 NOP 22 • 版本号(V1.6) 12.01.2010 (产品更新后规格书不保证同步更新) EM78P458/459 8位OTP微控制器 同样,如果比较器高中断用于唤醒EM78P458/459(如上述事件[c]),在SLEP指令前 必须执行如下指令。 MOV A, @0Bxx000110 ; TCC 选择内部时钟 CONTW CLR R1 ; 清除 TCC 和预分频器 MOV A, @0Bxxxx1110 ; 选择 WDT 预分频 CONTW WDTC ; 清除 WDT 和预分频器 MOV A, @0B0xxxxxxx ; 禁止 WDT IOW RE MOV A, @0B01xxxxxx ; 使能比较器高中断 IOW RF ENI (或 DISI) ; 使能(或禁止)全局中断 SLEP ; 休眠 NOP 用户必须注意到的一个问题是,器件从休眠模式唤醒后,WDT功能将被自动使能。WDT 操作(使能或禁止)应该由软件进行适当的处理。 4.5.2 状态寄存器的 T和 P状态 一次复位可由以下事件之一触发: (1) 上电, (2) /RESET引脚上的一次高-低-高脉冲,或 (3) 看门狗定时器溢出 T和P的值列于下面表5中,可用其判断处理器是如何唤醒的。表6列出了可能会影响T和 P状态的事件 表 5 复位后RST,T和P值 复位类型 T P 1 1 普通模式下的/RESET引脚复位 *P *P 休眠模式下的/RESET引脚复位 1 0 普通模式下的WDT溢出 0 *P 休眠模式下的WDT溢出唤醒 0 0 休眠模式下的Port 6输入状态改变唤醒 1 0 上电 *P: 复位前的状态 版本号 (V1.6) 12.01.2010 (产品更新后规格书不保证同步更新) • 23 EM78P458/459 8位OTP微控制器 表 6 事件发生后RST,T和P状态。 T P 上电 1 1 WDTC 指令 1 1 WDT 溢出 0 *P SLEP 指令 1 0 休眠模式下的Port 6输入状态改变唤醒 1 0 事件 *P: 复位前的值 W 图 9 控制器复位结构图 4.6 中断 EM78P458/459 有如下所列6个中断 (1) TCC 溢出中断 (2) Port 6 输入状态改变中断 (3) 外部中断[(P50, /INT)引脚]. (4) 模数转换完成 (5) PWM模式下TMR1/TMR2 分别与PRD1/PRD2匹配. (6) 比较器输出改变 在使能Port 6输入状态改变前,读取Port 6 (例如. "MOV R6,R6")是必要的。每个Port 6 引脚在其状态改变时都具有此特性。如果引脚被配置为输出引脚(P50引脚被配置为 /INT),则不再具有此功能。如果在执行SLEP进入休眠模式之前,Port 6输入状态改变 中断被使能,则它将会使EM78P458/459从休眠模式唤醒。控制器唤醒后,如果禁止全 局中断,则将接着顺序执行程序;如果全局中断被使能,将跳转到中断向量008H处开始 执行。 24 • 版本号(V1.6) 12.01.2010 (产品更新后规格书不保证同步更新) EM78P458/459 8位OTP微控制器 中断状态寄存器RF的相关标志位记录相应的中断请求。IOCF0是中断屏蔽寄存器。全局 中断可通过执行ENI指令使能,通过执行DISI指令禁止。当某个中断(若使能)产生, 下一条指令将跳转到008H地址。一旦进入中断服务子程序,可通过轮询RF标志位的方 式判断中断源。在离开中断服务子程序前,必须通过指令清除中断标志位以避免中断嵌 套。 当有中断产生,中断状态寄存器(RF)的标志位(ICIF位除外)将被置位,不论其相应 屏蔽位是否使能或是否执行了ENI指令。必须注意的是,读取RF所得到的值是RF和 IOCF0(参考图 11)逻辑相与的结果。RETI指令终止中断服务子程序并使能全局中断(执 行ENI). 如果中断是由INT指令(若使能)产生,下一条指令将跳转到地址001H. 图 10 中断输入电路 4.7 模数转换器(ADC) 模数转换电路由一个8位模拟复用器,三个控制寄存器(ADCON/R9, AD-CMP-CON/IOCA0, GCON/IOC90),一个数据寄存器(ADDATA/RA),和一个8位分 辨率的ADC组成。ADC的功能结构图如图12所示。模拟参考电压(Vref)和模拟地通过 分离输入引脚相连。 ADC模块利用逐次逼近式方式转换未知模拟信号为一个数字信号。转换结果存入 ADDATA。输入通道可通过设置ADCON寄存器的Bits ADIS0, ADIS1和ADIS2选择模拟 输入复用器进行选择。 版本号 (V1.6) 12.01.2010 (产品更新后规格书不保证同步更新) • 25 EM78P458/459 8位OTP微控制器 ADC8 Vref ADC7 8-1 ADC6 - ADC ( 逐次逼近式 ) 模拟开关 + ADC5 OP 2 ADC4 掉电 开始转换 ADC3 Fsco ADC2 4-1 MUX + ADC1 OP - 1 内部 RC 4 3 2 5 4 3 2 1 0 2 1 AD-CMPCON 0 1 ADCON AD-CMPCON 0 3 7 RF 6 5 4 3 2 1 0 4 ADDATA 3 ADCON GCON 数据总数 图 11 模数转换功能结构图 4.7.1 ADC 控制寄存器(ADCON/R9, AD-CMP-CON/IOCA0, GCON/IOC90) 4.7.1.1 ADCON/R9 ADCON寄存器控制A/D转换操作并且定义哪个引脚当前使能。 BIT BIT 7 BIT 6 BIT 5 BIT 4 BIT 3 BIT 2 BIT 1 BIT 0 SYMBOL - - IOCS ADRUN ADPD ADIS2 ADIS1 ADIS0 *初始值 0 0 0 0 0 0 0 0 *初始值: 上电复位时的初始值 ADRUN (bit 4): ADC 开始运行 1: 一次A/D转换开始,此位可由软件置1 0: 转换完成后复位。此位可由软件清零。 ADPD (bit 3): ADC电源开关 1: 开启 0: 关闭。 ADIS2~ADIS0 (bit 2~0): 模拟输入通道选择位. 000 = AN0; 001 = AN1; 010 = AN2; 011 = AN3; 100 = AN4; 101 = AN5; 110 = AN6; 111 = AN7; 仅当ADIF位和ADRUN位均为低时才可改变。 26 • 版本号(V1.6) 12.01.2010 (产品更新后规格书不保证同步更新) EM78P458/459 8位OTP微控制器 4.7.1.2 AD-CMP-CON/IOCA0 AD-CMP-CON 寄存器分别定义Port 6的各引脚是作为模拟输入引脚还是数字I/O引脚。 BIT BIT 7 BIT 6 BIT 5 BIT 4 BIT 3 BIT 2 BIT 1 BIT 0 SYMBOL VREFS CE COE IMS2 IMS1 IMS0 CKR1 CKR0 *初始值 0 0 0 0 0 0 0 0 *初始值: 上电复位时的初始值 VREFS (Bit 7): ADC 参考电压的输入源 0: ADC Vref 连接到Vdd(默认值),P53/VREF引脚用作P53 1: ADC Vref 连接到P53/VREF CE (Bit 6): 比较器使能控制位 0: 禁止比较器 1: 使能比较器 COE (Bit 5): 设置 P57 作为比较器输出 0: 如果CE=1,比较器用作OP 1: 如果CE=1,用作比较器 IMS2~IMS0 (Bit 4 ~ Bit 2): ADC 配置定义位 CKR1 和 CKR0 (Bit 1 和 Bit 0): 转换时间选择位。 00 = Fosc/4; 01 = Fosc/16; 10 = Fsco/64; 11 = ADC振荡时钟源取自WDT振荡器频率 (频率=256/18ms≒14.2Khz) 4.7.1.3 GCON/IOC90 如图12所示,增益放大器OP1和OP2位于模拟输入引脚(ADC1 和 ADC5)与8选1模拟开 关之间。GCON寄存器控制增益。 表 7 列出了ADC的增益和工作电压范围。 BIT BIT 7 BIT 6 BIT 5 BIT 4 BIT 3 BIT 2 BIT 1 BIT 0 SYMBOL OP2E OP1E G22 G21 G20 G12 G11 G10 *初始值 0 0 0 0 0 0 0 0 表 8 ADC的增益和工作电压范围 G10:G12/G20:G22 增益 工作电压范围 000 001 010 011 100 101 1 2 4 8 16 32 0 ~ Vref 0 ~ (1/2)Vref 0 ~ (1/4)Vref 0 ~ (1/8)Vref 0 ~ (1/16)Vref 0 ~ (1/32)Vref 版本号 (V1.6) 12.01.2010 (产品更新后规格书不保证同步更新) • 27 EM78P458/459 8位OTP微控制器 注意 Vref 不可低于3V 4.7.2 ADC 数据寄存器(ADDATA/RA) 当A/D转换完成,转换结果存入ADDATA。START/END清零,ADIF位置1. 4.7.3 A/D 采样时间 精度、数性和逐次逼近式A/D转换器的速率取决于ADC和比较器的特性。源阻抗和内部 采样阻抗直接影响释放采样保持电容上电荷所需要的时间。应用程序控制采样时间的长 度以符合特定精度需求。一般而言,对于每KΩ源阻抗,程序应该等待大约1 μs,对于 低阻抗源而言,至少应该等待1 μs。模拟输入通道选定后,在开始转换之前采样时间必 须确定下来。 4.7.4 A/D 转换时间 CKR0 和 CKR1依据指令周期选择转换时间(Tct),这样允许MCU可在不牺牲A/D转换精 度的条件下以最高频率运行。对于EM78P458/459,每bit转换时间大约为4μs.表8显示 Tct和最高工作频率之间的关系。 表 9 Tct vs. 最高工作频率 CKR0:CKR1 工作模式 最高工作频率 00 01 10 11 Fsco/4 Fsco/16 Fsco/64 内部 RC 1 MHz 4 MHz 16MHz - 4.7.5 A/D 运行在休眠模式 为减少功耗,A/D在休眠模式下仍保持运行,而且应该采用内部RC时钟源模式。当执行 了SLEP指令后,除了A/D转换外,MCU所有操作都将停止。转换完成后,RUN位清零, 转换结果填入ADDATA。如果ADIE使能,器件将被唤醒。否则,无论ADPD位状态,A/D 转换都将被关闭。 4.7.6 编程步骤 /考量 4.7.6.1 编程步骤 遵循如下步骤获取ADC转换结果: (1) 改变AD-CMP-CON1寄存器的三位(IMS2:IMS0)以定义R6引脚特性:用作数字I/O, 模拟通道和电压参考引脚; (2) 改变ADCON寄存器以配置AD模块: (a) 选择A/D输入通道( ADAS2:ADAS0 ) (b) 改变GCON寄存器选择适当的增益(此步可选) 28 • 版本号(V1.6) 12.01.2010 (产品更新后规格书不保证同步更新) EM78P458/459 8位OTP微控制器 (c) 定义A/D转换时间( CKR1:CKR0 ) (d) 设置ADPD位为“1”,打开AD电源 (3) 如果要用到中断功能,执行“ENI”指令 (4) 设置ADRUN位为“1” (5) 等待中断标志位置位或ADC中断产生 (6) 读取转换数据寄存器ADDATA (7) 清零中断标志位 (ADIF). (8) 对于下次转换,按需求跳转到步骤1或步骤2。不过在下次采集之前至少应该等待2 Tct 注意 为获取精确值,在转换过程中应该避免在I/O引脚上传输数据 4.7.6.2 示例代码 ; 定义通用寄存器 R_0 == 0 ; 间接寻址寄存器 PSW == 3 ; 状态寄存器 PORT5 == 5 PORT6 == 6 R_F== 0XF ; 中断状态寄存器 ;定义控制寄存器 IOC50 == 0X5 ; Port 5 控制寄存器 IOC60 == 0X6 ; Port 6 控制寄存器 C_INT== 0XF ; 中断控制寄存器 ;ADC控制寄存器 ADDATA == 0xA ; ADC转换值 ADCON R== 0x9 ; 7 1 6 5 4 3 2 0 ; - - IOCS ADRUN ADPD ADIS2 ADIS1 ADIS0 ADCONC== 0xA 版本号 (V1.6) 12.01.2010 (产品更新后规格书不保证同步更新) ; 7 6 5 4 3 2 • 29 EM78P458/459 8位OTP微控制器 1 0 ; VREFS X X IMS2 IMS1 IMS0 CKR1 CKR0 GCON == 0x9 1 ; 7 6 5 4 3 2 0 ; OPE2 G12 G11 OPE1 G22 G21 G20 G10 ;定义位 ;在ADCONR ADRUN == 0x4 ; 此位置位后,ADC开始转换 ADPD == 0x3 ; ADC 电源模式 ORG 0 ; 起始地址 JMP INITIAL ; ORG 0x08 ; 中断向量 (用户代码) CLR R_F ; 清除ADCIF位 BS ADCONR, ADRUN ;如有必要,开始下一次AD转换 RETI INITIAL: MOV A, @0BXXXX1XXX ;使能ADC中断 IOW C_INT MOV A, @0xXX ;禁止中断:<6> CONTW MOV A, @0B00000000 ; 采用vdd作为参考电压,定义P60用 作模拟输入并且设置转换速率为 fosc/4 IOW ADCONC ; En_ADC: 30 • 版本号(V1.6) 12.01.2010 (产品更新后规格书不保证同步更新) EM78P458/459 8位OTP微控制器 MOV A, @0BXXXXXXX1 ; 定义P60为输入引脚 IOW PORT6 MOV A, @0B01000101 ; 使能OP1并且设置增益为32 IOW GCON BS ADCONR, ADPD ; 打开AD电源 ENI ; 使能中断功能 BS ADCONR, ADRUN ; 开始运行ADC ; 如果要采用中断功能,以下三行可以省略 轮询: JBC ADCONR, ADRUN ; 持续检查ADRUN位 JMP POLLING ; ADRUN在转换完成后将复位。 (用户代码): 4.8 两路PWM (脉宽调制) 4.8.1 综述 在PWM模式,PWM1和PWM2引脚均可产生10位分辨率的PWM输出(见图13.功能结构 图)。 一个PWM输出由一个周期和一个占空周期比构成,占空周期内输出保持为高。 PWM波特率是周期的相反数。图14描绘了周期和占空周期之间的关系 版本号 (V1.6) 12.01.2010 (产品更新后规格书不保证同步更新) • 31 EM78P458/459 8位OTP微控制器 图 12 两路PWM功能结构图 图 13 PWM输出时序 32 • 版本号(V1.6) 12.01.2010 (产品更新后规格书不保证同步更新) EM78P458/459 8位OTP微控制器 4.8.2 加定时计数器( TMRX: TMR1H/TWR1L 或 TMR2H/TWR2L ) TMRX是带可编程预分频的10位时钟计数器。它们被设计用来用作PWM模块的波特率时 钟发生器。TMRX可读/写并在任何复位条件下清零。如果被采用,它们可通过设置T1EN 位[PWMCON<4>] 或 T2EN bit [PWMCON<5>]为0而关闭以节省功耗。 4.8.3 PWM 周期( PRDX : PRD1 或 PRD2 ) 写值到PRDX寄存器定义PWM周期。当TMRX等于PRDX,下一个指令周期时将发生以 下事件: TMRX 清零 PWMX引脚置1 PWM占空周期从DT1/DT2锁存到DTL1/DTL2 注意 如果占空周期为0,PWM输出将不会被拉高 PWMXIF 引脚置1. 以下公式描述如何计算PWM周期: 周期 = (PRDX + 1) * 4 * (1/Fosc) * (TMRX 分频值) 4.8.4 PWM 占空周期( DTX: DT1H/ DT1L 和 DT2H/ DT2L; DTL: DL1H/DL1L 和 DL2H/DL2L ) 写值到DTX寄存器定义PWM占空周期,当TMRX清零后从DTX锁存到DLX。当DLX等于 TMRX,PWMX引脚清除。DTX可在任何时间被加载。然而,在当前DLX值与TRMX前 相等前,它不可被锁存到DTL. 以下公式描述如何计算PWM占空周期: 占空周期 = (DTX) * (1/Fosc) * (TMRX 分频值) 4.8.5 比较器 X 当发生匹配改变输出状态的同时,TMRXIF标志将被置位。 4.8.6 PWM 编程步骤 (1) 加载PWM周期到PRDX寄存器 (2) 加载PWM占空周期到DTX寄存器 (3) 若需要,写值IOCF0使能中断功能 (4) 写适当值到IOC51设置PWMX引脚为输出引脚 (5) 加载一个适当值到IOC51配置TRMX分频比并使能PWMX和TMRX 版本号 (V1.6) 12.01.2010 (产品更新后规格书不保证同步更新) • 33 EM78P458/459 8位OTP微控制器 4.9 定时器 4.9.1 综述 定时器1 (TMR1)和定时器 2 (TMR2) (TMRX) 是带可编程预分频比的10位时钟计数器。 它们被设计用作PWM模块提供波特率发生器。TMRX可读/写,并可在任何复位条件下 清除。 4.9.2 功能描述 图. 15 显示TMRX结构框图。每个信号和结构描述如下: 图 14 TMRX 功能结构图 Fosc: 输入时钟 预分频( T1P0 和 T1P1/T2P1 和 T2P0 ): 1:2, 1:8, 1:32 和 1:64 由TMRX定义。它在任何 复位条件下清零。 TMR1X 和 TMR2X (TMR1H/TWR1L 和 TMR2H/TMR2L ):定时器 X寄存器; TMRX 在与 PRDX匹配之前加1计数,发生匹配后复位为0.TMRX不可读 PRDX ( PRD1 和 PRD2 ): PWM 周期寄存器 比较器X (比较器1 和比较器 2 ): 匹配发生时复位TMRX的同时,TMRXIF标志置位。 34 • 版本号(V1.6) 12.01.2010 (产品更新后规格书不保证同步更新) EM78P458/459 8位OTP微控制器 4.9.3 编程相关寄存器 当定义TMRX,参考表9相关操作寄存器。必须注意的是,当其相应的TMRXs被应用时 PWMX位必须禁止。也即,PWMCON寄存器的bit 7 和 bit 6必须置‘0’ 表 10 TMR1 和 TMR2相关控制寄存器 地址 名称 IOC51 PWMCON/IOC51 Bit 7 Bit 6 PWM2E PWM1E Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 T2EN T1EN T2P1 T2P0 T1P1 T1P0 4.9.4 定时器编程步骤 (1) 加载定时器周期到PRDX (2) 如果需要,写值到IOCF0使能中断功能 (3) 加载一个适当值到PWMCON寄存器配置TMRX预分频值并且使能TMRX,禁止 PWMX 4.10 比较器 EM78P458/459 有一个比较器,它有两个模拟输入和一个输出端口。比较器可用于将器 件从休眠模式唤醒。图16描绘了比较器电路。 Cin- - Cin+ CMP + CO 图 15 比较器工作模式 4.10.1 外部参考信号 Cin-端的模拟信号与Cin+端的信号相比较,比较器的数字输出端(CO)作相应调整。 参考电压必须间于Vss和Vdd 参考电压可加载到比较器的任一输入端。 极值检测应用可用于相同参考电压 比较器可取自相同或不同参考源。 4.10.2 比较器输出 比较结果存储在R3寄存器的CMPOUT位 通过设置AD-CMPCON寄存器的bit5<COE>为1可使比较器输出到P57 P57 如果用于比较器输出,必须设置为输出 图 17 显示了比较器输出结构图 版本号 (V1.6) 12.01.2010 (产品更新后规格书不保证同步更新) • 35 EM78P458/459 8位OTP微控制器 图 16 比较器输出配置 4.10.3 用作运算放大器 如果在输入和输出端外接一个反馈电阻,比较器可被用于一个运算放大器。在此情况 下,施密特触发器可通过设置CE 为1 并且 COE 为 0禁止以节省功耗。 4.10.4 中断 CMPIE (IOCF0.6) 必须使能 比较器输出引脚信号的上升沿触发产生中断 引脚的实际变化可通过读取R3<7> Bit CMPOUT来判定。 CMPIF (RF.6),比较器中断标志位,仅可由软件清零。 4.10.5 从休眠模式唤醒 36 • 若使能,即使是在休眠模式下,比较器仍在运行并且中断功能仍然有效。 当产生非匹配,中断将器件从休眠模式唤醒。 为节省能源,必须考虑到功耗问题。 如果在休眠模式下未用到此功能,在进入休眠模式前关闭比较器。 版本号(V1.6) 12.01.2010 (产品更新后规格书不保证同步更新) EM78P458/459 8位OTP微控制器 4.11 复位后的初始值 表 11 寄存器初始值汇总 地址 名称 N/A IOC50 N/A IOC60 N/A IOCB0 N/A IOCC0 N/A IOCD0 N/A IOCE0 复位类型 位名 上电 /RESET 和 WDT 引脚状态改变唤醒 位名 上电 /RESET 和 WDT 引脚状态改变唤醒 位名 上电 /RESET 和 WDT 引脚状态改变唤醒 位名 上电 /RESET 和 WDT 引脚状态改变唤醒 位名 上电 /RESET 和 WDT 引脚状态改变唤醒 位名 上电 /RESET 和 WDT 引脚状态改变唤醒 位名 N/A IOCF0 N/A IOC90 (GCON) N/A IOCA0 (AD-CMP CON) N/A IOC51 (PWMCON) N/A IOC61 (DT1L) N/A IOC71 (DT1H) N/A IOC81 (PRD1) N/A IOC91 上电 /RESET 和 WDT 引脚状态改变唤醒 位名 上电 /RESET 和 WDT 引脚状态改变唤醒 位名 上电 /RESET 和 WDT 引脚状态改变唤醒 位名 上电 /RESET 和 WDT 引脚状态改变唤醒 位名 上电 /RESET 和 WDT 引脚状态改变唤醒 位名 上电 /RESET 和 WDT 引脚状态改变唤醒 位名 上电 /RESET 和 WDT 引脚状态改变唤醒 位名 版本号 (V1.6) 12.01.2010 (产品更新后规格书不保证同步更新) Bit 7 Bit 6 Bit 5 C57 1 1 P C67 1 1 P /PD7 1 1 P OD7 1 1 P /PH7 1 1 P WDTE 1 1 P C56 1 1 P C66 1 1 P /PD6 1 1 P OD6 1 1 P /PH6 1 1 P EIS 0 0 P X CMPIE C55 1 1 P C65 1 1 P */PD5 1 1 P OD5 1 1 P /PH5 1 1 P X 1 1 1 PMW2I E 0 0 P G22 0 0 P COE 0 0 P T2EN 0 0 P Bit5 0 0 P VOF1[2] 1 1 P 0 0 P Bit5 0 0 0 0 0 P OP2E OP1E 0 0 0 0 P P VREFS CE 0 0 0 0 P P PWM2E PWM2E 0 0 0 0 P P Bit7 Bit6 0 0 0 0 P P CALI1 SIGN1 0 1 0 1 P P 0 0 0 0 P P Bit7 Bit6 Bit 4 Bit 3 C54 C53 1 1 1 1 P P C64 C63 1 1 1 1 P P */PD4 /PD3 1 1 1 1 P P OD4 OD3 1 1 1 1 P P /PH4 /PH3 1 1 1 1 P P X X 1 1 1 1 1 1 PWM1I ADIE E 0 0 0 0 P P G21 G20 0 0 0 0 P P IMS2 IMS1 0 0 0 0 P P T1EN T2P1 0 0 0 0 P P Bit3 Bit4 0 0 0 0 P P VOF1[1] VOF1[0] 0 0 0 0 P P 0 0 0 0 P P Bit3 Bit4 Bit 2 Bit 1 Bit 0 C52 1 1 P C62 1 1 P /PD2 1 1 P OD2 1 1 P /PH2 1 1 P X 1 1 1 C51 1 1 P C61 1 1 P /PD1 1 1 P OD1 1 1 P /PH1 1 1 P X 1 1 1 C50 1 1 P C60 1 1 P /PD0 1 1 P OD0 1 1 P /PH0 1 1 P X 1 1 1 EXIE ICIE TCIE 0 0 P G12 0 0 P IMS0 0 0 P T2P0 0 0 P Bit2 0 0 P X 0 0 0 0 0 P Bit2 0 0 P G11 0 0 P CKR1 0 0 P T1P1 0 0 P Bit1 0 0 P Bit1 0 0 P 0 0 P Bit1 0 0 P G10 0 0 P CKR0 0 0 P T1P0 0 0 P Bit0 0 0 P Bit0 0 0 P 0 0 P Bit0 • 37 EM78P458/459 8位OTP微控制器 地址 名称 (DT2L) N/A IOCA1 (DT2H) N/A IOCB1 (PRD2) N/A IOCC1 (DL1L) N/A IOCD1 (DL1H) N/A IOCE1 (DL2L) N/A IOCF1 (DL2H) N/A CONT 0x00 R0(IAR) 0x01 R1(TCC) 0x02 R2(PC) 0x03 R3(SR) 0x04 R4(RSR) 0x05 P5 0x06 P6 38 • 复位类型 上电 /RESET 和 WDT 引脚状态改变唤醒 位名 上电 /RESET 和 WDT 引脚状态改变唤醒 位名 上电 /RESET 和 WDT 引脚状态改变唤醒 位名 上电 /RESET 和 WDT 引脚状态改变唤醒 位名 上电 /RESET 和 WDT 引脚状态改变唤醒 位名 上电 /RESET 和 WDT 引脚状态改变唤醒 位名 上电 /RESET 和 WDT 引脚状态改变唤醒 位名 上电 /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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 P P P P P P P P X Bit1 Bit0 CALI2 SIGN2 VOF2[2] VOF2[1] VOF2[0] 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 P P P P P 0 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 Bit3 Bit2 Bit1 Bit0 Bit7 Bit6 Bit5 Bit4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 P P P P P P P P X X Bit1 Bit0 X X X X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 P P Bit3 Bit2 Bit1 Bit0 Bit7 Bit6 Bit5 Bit4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 P P P P P P P P X X Bit1 Bit0 X X X X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 P P INT TS TE PAB PSR2 PSR1 PSR0 INTE 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Jump to address 0x08 or continue to execute next instruction GP2 PS1 PS0 T P Z DC C 0 0 0 1 1 U U U 0 0 0 t t P P P P P P t t P P P BS7 BS6 0 0 U U U U U U 0 0 P P P P P P P P P P P P P P P57 P56 P55 P54 P53 P52 P51 P50 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 P P P P P P P P P67 P66 P65 P64 P63 P62 P61 P60 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 版本号(V1.6) 12.01.2010 (产品更新后规格书不保证同步更新) EM78P458/459 8位OTP微控制器 地址 名称 0x7~0x8 R7~R8 0x9 R9 (ADCON) 0xA RA (ADDDATA) 0xB RB (TMR1L) 0xC RC (TMR1H) 0xD RD (TMR2L) 0xE RE (TMR2H) 0xF RF (ISR) 0x10~0x3 F R10~R3F 复位类型 引脚状态改变唤醒 位名 上电 /RESET 和 WDT 引脚状态改变唤醒 位名 上电 /RESET 和 WDT 引脚状态改变唤醒 位名 上电 /RESET 和 WDT 引脚状态改变唤醒 位名 上电 /RESET 和 WDT 引脚状态改变唤醒 位名 上电 /RESET 和 WDT 引脚状态改变唤醒 位名 上电 /RESET 和 WDT 引脚状态改变唤醒 位名 上电 /RESET 和 WDT 引脚状态改变唤醒 Bit 7 Bit 6 P U P P X 0 0 P 0 0 P Bit7 0 0 P X 0 0 0 Bit7 0 0 P X 0 0 0 P U P P X 0 0 P 0 0 P Bit6 0 0 P X 0 0 0 Bit6 0 0 P X 0 0 0 位名 X 上电 /RESET 和 WDT 引脚状态改变唤醒 位名 上电 /RESET 和 WDT 引脚状态改变唤醒 0 0 0 U P P Bit 5 Bit 4 Bit 3 P P P U U U P P P P P P IOCS ADRUN ADPD 0 0 0 0 0 0 P P P 0 0 0 0 0 0 P P P Bit3 Bit5 Bit4 0 0 0 0 0 0 P P P X X X 0 0 0 0 0 0 0 0 0 Bit3 Bit5 Bit4 0 0 0 0 0 0 P P P X X X 0 0 0 0 0 0 0 0 0 PWM2I PWM1I ADIF CMPIF F F 0 0 0 0 0 0 0 0 P P P P U U U U P P P P P P P P Bit 2 Bit 1 Bit 0 P P P U U U P P P P P P ADAS2 ADAS1 ADAS0 0 0 0 0 0 0 P P P 0 0 0 0 0 0 P P P Bit2 Bit1 Bit0 0 0 0 0 0 0 P P P X Bit1 Bit0 0 0 0 0 0 0 0 P P Bit2 Bit1 Bit0 0 0 0 0 0 0 P P P X Bit1 Bit0 0 0 0 0 0 0 0 P P EXIF ICIF TCIF 0 0 P U P P 0 0 P U P P 0 0 P U P P X: 未使用. U: 未知或不必关心. P: 复位前的值 t: 参考表 5 4.12 振荡器 4.12.1 振荡模式 EM78P458 和 EM78P459 可工作在四个不同的振荡模式,也即:高频晶振模式(HXT), 低频晶振模式(LXT),外部RC振荡模式(ERC),内部电容的RC振荡模式,用户可通过编 程设置MASK代码选项选择某一振荡模式。晶振/谐振器在不同VDDs条件下的最高工作 频率列与表11. 版本号 (V1.6) 12.01.2010 (产品更新后规格书不保证同步更新) • 39 EM78P458/459 8位OTP微控制器 表 12 最高工作频率汇总 条件 VDD 最大频率.(MHz) 基于两个时钟周期 2.3 3.0 5.0 4 8 20 4.12.2 晶振 / 陶瓷谐振器 (XTAL) EM78P458/459 可由如图18所示的通过OSCI引脚的外部时钟信号驱动 图 17 外部时钟输入电路 在大多数应用中,OSCI和OSCO引脚可连接晶振或陶瓷谐振器以产生振荡。图19描绘 了这样的电路。此电路同样适用于HXT模式和LXT模式。表12列出了C1和C2的建议值。 因为每个谐振器都有它自己的特性,用户应该参考其规格以选择合适的C1和C2值。对 于AT切片晶体或低频模式,可能需要一个串接电阻RS。 C1 OSCI EM78P458 EM78P459 晶体 OSCO RS C2 图 18 晶振/陶瓷谐振器电路 表 13 晶振或陶瓷谐振器电容选择指南 振荡类型 频率模式 陶瓷谐振器 HXT LXT 晶振 HXT 40 • 频率 C1(pF) C2(pF) 455 kHz 2.0 MHz 4.0 MHz 32.768kHz 100KHz 200KHz 455KHz 1.0MHz 2.0MHz 4.0MHz 100~150 20~40 10~30 25 25 25 20~40 15~30 15 15 100~150 20~40 10~30 15 25 25 20~150 15~30 15 15 版本号(V1.6) 12.01.2010 (产品更新后规格书不保证同步更新) EM78P458/459 8位OTP微控制器 4.12.3 外部RC振荡模式 对于一些不需要精确计时的应用,RC振荡器(图20)提供了一种有效节省成本的方案。然 而,应该注意到,RC振荡器的频率会受供电电压、电阻(Rext)、电容(Cext)甚至工作温 度的影响。另外,因为制程差异,一个器件的频率与另外一个器件的频率也会存在细微 的差别 为了维持在一个稳定的系统频率下,Cext值应该大于20 pF,Rext值不高于1 M ohm。 如果它们不在此范围内,系统频率很容易受噪声、湿度和漏电流的影响。 在RC振荡模式中,Rext值越小,其振荡频率越快。相反,对一个非常小的Rext值,例 如1 KΩ,振荡器将变得不稳定。因为NMOS不能及时的释放电容电荷。 基于以上原因,必须时刻牢记,供电电压、工作温度、RC振荡器的元件特性、封装类型、 PCB 制版等因素都会对系统频率产生影响 Vcc Rext OSCI Cext EM78P458 EM78P459 图 20 外部RC振荡模式电路 表 14 RC 振荡频率 Cext 20 pF 100 pF 300 pF Rext 平均Fosc 5V,25°C 平均Fosc 3V,25°C 3.3k 5.1k 10k 100k 3.3k 5.1k 10k 100k 3.3k 5.1k 10k 100k 3.57 MHz 2.63MHz 1.30 MHz 150 KHz 1.43 MHz 980 KHz 520 KHz 57 KHz 510 KHz 340 KHz 175 KHz 19 KHz 2.94 MHz 1.92 MHz 1.22 MHz 153 KHz 1.35 MHz 877 KHz 465 KHz 54 KHz 470 KHz 320 KHz 170 KHz 19 KHz 注意 1. 以DIP封装类型IC测量 2. 仅供设计参考 版本号 (V1.6) 12.01.2010 (产品更新后规格书不保证同步更新) • 41 EM78P458/459 8位OTP微控制器 4.12.4 带内部电容的RC振荡模式 如果既要考虑精度又要考虑成本,EM78P458/459提供了一个特殊的振荡模式。它配备 有一个内部电容和一个外部电阻(连接到Vcc)。内部电容用作温度补偿。为获得更精 确的频率,建议使用精密电阻。 Vcc Rext OSCI EM78P458 EM78P459 图 21 内部C振荡模式电路 表 15 R 振荡频率 Rext 平均 Fosc 5V,25°C 平均 Fosc 3V,25°C 51k 100k 300k 2.22 MHz 1.15 MHz 375 KHz 2.17 MHz 1.14 MHz 370 KHz 注意 1. 以DIP封装类型IC测量 2. 仅供设计参考 4.13 上电考量 在供电电压达到稳定状态前,任何微控制器都不能确保正常工作。 EM78P458/459的上电复位电压点(POR)范围为1.2V~1.8V。在普通应用条件下,当电源 被关闭,在电源再次开启之前, Vdd必须下降到1.2V并且保持在关闭大约10us。在此条 件下,EM78P458/459将产生复位并正常工作。如果Vdd可快速上升50 ms或更少),然 而,在关键应用电路条件下,必须提供外部器件以辅助解决上电问题 4.13.1 外置上电复位电路 图22提供了一个利用外部RC产生复位脉冲的电路。脉冲宽度(时间常数)应该足够长以使 Vdd达到最低工作电压。此电路用在供电电压上升很慢的情况。因为/RESET引脚的漏电 流大约为±5µA,因此建议R值不要大于40 KΩ。此时,/RESET引脚电压保持在0.2V以 下。二极管(D)在掉电时作为短路回路。电容C将快速充分放电。限流电阻Rin可防止高 电流或ESD(静电释放)灌入/RESET引脚。 42 • 版本号(V1.6) 12.01.2010 (产品更新后规格书不保证同步更新) EM78P458/459 8位OTP微控制器 VDD /RESET R EM78P458 EM78P459 Rin D C 图 22 外置上电复位电路 4.13.2 残留电压保护 更换电池时,器件电源(Vdd)关断,但仍会存在残留电压。残留电压可能会掉到低于最 小工作电压,但不为零。此条件可能触发一个不良上电复位。图23和24显示了怎样建立 残留电压保护电路 VDD VDD EM78P458 EM78P459 33K Q1 10K /RESET 100K 1N4684 图 23 残留电压保护电路1 VDD VDD EM78P458 EM78P459 R1 Q1 /RESET R3 R2 图 24 残留电压保护电路2 版本号 (V1.6) 12.01.2010 (产品更新后规格书不保证同步更新) • 43 EM78P458/459 8位OTP微控制器 4.14 代码选项 EM78P458/459 有一个代码选项字和一个用户ID字,它们不属于普通代码空间的一部 分。 4.14.1 代码选项寄存器(Word 0) Bit12 Bit11 Bit10 Bit9 Bit8 Bit7 Bit6 Bit5~Bit0 MS /ENWDT CLKS /PTB HLF RCT HLP ID Bit 12 (MS): 振荡类型选择 0: RC 类型 1: XTAL 类型 Bit 11 (/ENWTD): 看门狗定时器使能位. 0: 使能 1: 禁止 Bit 10 (CLKS): 单个指令周期保护的时钟周期数. 0:两个时钟 1: 四个时钟 参考指令集一节 Bit 9 (/PTB): 保护位 0: 使能 1: 禁止 Bit 8 (HLF): 晶振频率选择 0: 低频 1: 高频 Bit 7 (RCT): 电阻电容 0: 内部C, 外部R 1: 外部 RC Bit 6 (HLP): 功耗选择. 0: 低功耗. 1: 高功耗. Bit 5 ~ Bit 0 (ID[5]~ID[0]): 客户ID. 44 • 版本号(V1.6) 12.01.2010 (产品更新后规格书不保证同步更新) EM78P458/459 8位OTP微控制器 4.15 指令集 指令集中的每条指令均是13位。指令分为一个OP操作码和一个或多个操作数。一般情 况下,除了会改变了程序计数器的值("MOV R2,A", "ADD R2,A")的指令或者对R2的算术 或逻辑操作 (例如. "SUB R2,A", "BS (C) R2,6", "CLR R2", ⋅⋅⋅⋅).需要两个指令周期外,所 有的指令都只占用单个指令周期(一个指令周期包含2 个振荡周期)。 另外,指令集具有如下特性: (1) 任何寄存器的每个位可被置位,清0或直接测试 (2) I/O寄存器可被当作通用寄存器。也就是说,相同的指令也可用来操作I/O寄存器 符号“R”表示一个寄存器指示符,用来指定指令操作哪个寄存器(包括操作寄存器和 通用寄存器)。符号“b”表示一个位指示符,指定位于R寄存器中会影响操作的位。符 号“K”代表一个8位或10位常数或立即数。 表 16 EM78P458/459 指令集列表 二进制指令 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0001 0001 0001 0001 0010 0010 0010 0010 0011 0011 0011 0011 0100 0100 0100 0100 0101 0101 0101 0000 0000 0000 0000 0000 0000 0001 0001 0001 0001 0001 0001 01rr 1000 11rr 00rr 01rr 10rr 11rr 00rr 01rr 10rr 11rr 00rr 01rr 10rr 11rr 00rr 01rr 10rr 11rr 00rr 01rr 10rr 0000 0001 0010 0011 0100 rrrr 0000 0001 0010 0011 0100 rrrr rrrr 0000 rrrr rrrr rrrr rrrr rrrr rrrr rrrr rrrr rrrr rrrr rrrr rrrr rrrr rrrr rrrr rrrr rrrr rrrr rrrr rrrr HEX 助记符 0000 0001 0002 0003 0004 000r 0010 0011 0012 0013 0014 001r 00rr 0080 00rr 01rr 01rr 01rr 01rr 02rr 02rr 02rr 02rr 03rr 03rr 03rr 03rr 04rr 04rr 04rr 04rr 05rr 05rr 05rr 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 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 版本号 (V1.6) 12.01.2010 (产品更新后规格书不保证同步更新) 操作 空操作 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 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, 若为0,则跳过 受影响标志位 无 C 无 T,P T,P 无 <注1> 无 无 无 无 无 无 <注1> 无 Z Z Z,C,DC Z,C,DC Z Z Z Z Z Z Z Z Z,C,DC Z,C,DC Z Z Z Z Z Z 无 • 45 EM78P458/459 8位OTP微控制器 HEX 二进制指令 助记符 0 0101 11rr rrrr 05rr DJZ R 0 0110 00rr rrrr 06rr RRCA R 0 0110 01rr rrrr 06rr RRC R 0 0110 10rr rrrr 06rr RLCA R 0 0110 11rr rrrr 06rr RLC R 0 0111 00rr rrrr 07rr SWAPA R 0 0 0 0 0 0 0 07rr 07rr 07rr 0xxx 0xxx 0xxx 0xxx SWAP R JZA R JZ R BC R,b BS R,b JBC R,b JBS R,b 1 00kk kkkk kkkk 1kkk CALL k 1 1 1 1 1 kkkk kkkk kkkk kkkk kkkk 1kkk 18kk 19kk 1Akk 1Bkk JMP k MOV A,k OR A,k AND A,k XOR A,k 1 1100 kkkk kkkk 1Ckk RETL k 1 1101 kkkk kkkk 1Dkk SUB A,k 1 1110 0000 0001 1E01 INT 1 1111 kkkk kkkk 1Fkk ADD A,k 0 0000 0010 0000 0020 TBL 0111 0111 0111 100b 101b 110b 111b 01kk 1000 1001 1010 1011 01rr 10rr 11rr bbrr bbrr bbrr bbrr kkkk kkkk kkkk kkkk kkkk rrrr rrrr rrrr rrrr rrrr rrrr rrrr 操作 受影响标志位 R-1 → R, 若为0,则跳过 R(n) → A(n-1), R(0) → C, C → A(7) R(n) → R(n-1), R(0) → C, C → R(7) R(n) → A(n+1), R(7) → C, C → A(0) R(n) → R(n+1), R(7) → C, C → R(0) R(0-3) → A(4-7), R(4-7) → A(0-3) R(0-3) ↔ R(4-7) R+1 → A, 若为0,则跳过 R+1 → R, 若为0,则跳过 0 → R(b) 1 → R(b) 若R(b)=0, 跳过 若 R(b)=1, 跳过 PC+1 → [SP], (Page, k) → PC (Page, k) → PC k→A A∨k→A A&k→A A⊕k→A k → A, [栈顶] → PC k-A → A PC+1 → [SP], 001H → PC k+A → A R2+A → R2 R2 Bits 8~9 不变 无 C C C C 无 无 无 无 无 <注2> 无 <注3> 无 无 无 无 无 Z Z Z 无 无 无 无 Z,C,DC 注意 1. 此指令仅适用于IOC50~IOC60, IOC90~IOCF0, IOC51~IOCF1 2. 此指令不建议用于操作RF 3. 此指令不可用于操作 46 • 版本号(V1.6) 12.01.2010 (产品更新后规格书不保证同步更新) EM78P458/459 8位OTP微控制器 4.16 时序图 版本号 (V1.6) 12.01.2010 (产品更新后规格书不保证同步更新) • 47 EM78P458/459 8位OTP微控制器 5 最大绝对值 项目 范围 0°C -65°C -0.3V -0.3V 温度范围 存储温度 输入电压 输出电压 6 70°C 150°C +6.0V +6.0V 至 至 至 至 电气特性 6.1 直流电气特性 (Ta=0°C ~ 70 °C, VDD=5.0V±5%, VSS=0V) 符号 参数 VOL2 XTAL: VDD = 3V XTAL: VDD = 5V RC: VDD = 5V 输入引脚输入漏电流 输入高电压,VDD=5V 输入低电压,VDD=5V 输入高临界电压,VDD=5V 输入低临界电压,VDD=5V 时钟输入高电压,VDD=5V 时钟输入低电压,VDD=5V 输入高电压,VDD=3V 输入低电压,VDD=3V 输入高临界电压,VDD=3V 输入低临界电压,VDD=3V 时钟输入高电压,VDD=3V 时钟输入低电压,VDD=3V 输出高电压(Ports 5, 6) 输出低电压(P51~P57, P60~P63, P66~P67) 输出低电压(P64,P65) IPH 上拉电流 IPD 下拉电流 ISB 掉电电流 ISB 掉电电流 ICC1 两个时钟周期下的工作供电电流 (VDD=3V) ICC2 两个时钟周期下的工作供电电流 (VDD=3V) ICC3 两个时钟周期下的工作供电电流 Fxt IIL VIH1 VIL1 VIHT1 VILT1 VIHX1 VILX1 VIH2 VIL2 VIHT2 VILT2 VIHX2 VILX2 VOH1 VOL1 48 • 条件 一条指令为两个时钟周期 R: 5.1KΩ, C: 100pF VIN = VDD, VSS Ports 5, 6 Ports 5, 6 /RESET, TCC /RESET, TCC OSCI OSCI Ports 5, 6 Ports 5, 6 /RESET, TCC /RESET, TCC OSCI OSCI IOH = -12.0 mA 最小值 典型值 最大值 单位 DC DC F±30% MHz MHz KHz µA V V V V V V V V V V V V V 760 8 20 F±30% ±1 2.0 0.8 2.0 0.8 2.5 1.0 1.5 0.4 1.5 0.4 1.5 0.6 2.4 IOL = 12.0 mA 0.4 V IOL = 16.0 mA 使能上拉,输入引脚接到 VSS 使能下拉,输入引脚接到 VDD 所有输入和I/O引脚接到 VDD,输出引脚悬空,WDT 使能 所有输入和I/O引脚接到 VDD,输出引脚悬空,WDT 禁止 /RESET='高',Fosc=32KHz (晶振类型,两个时钟周期), 输出引脚悬空, WDT 禁止 /RESET=‘高',Fosc=32KHz (晶振类型,两个时钟周期), 输出引脚悬空, WDT 使能 /RESET='高', Fosc=2MHz 0.4 V -50 -100 -240 µA 25 50 120 µA 10 µA 1 µA 15 30 µA 19 35 µA 2 mA 版本号(V1.6) 12.01.2010 (产品更新后规格书不保证同步更新) EM78P458/459 8位OTP微控制器 符号 参数 条件 (VDD=5.0V) ICC4 最小值 典型值 最大值 (晶振类型,两个时钟周期), 输出引脚悬空 /RESET='高', Fosc=4MHz (晶振类型,两个时钟周期), 输出引脚悬空 两个时钟周期下的工作供电电流 (VDD=5.0V) 4.0 单位 mA 6.2 AC 电气特性(Ta=0°C ~ 70 °C, VDD=5V±5%, VSS=0V) 符号 Dclk Tins Ttcc Tdrh Trst Twdt Tset Thold Tdelay 参数 输入CLK 占空周期 指令周期时间 (CLKS="0") TCC 输入周期 器件复位保持时间 /RESET 脉冲宽度 看门狗定时器周期 输入引脚启动时间 输入引脚保持时间 输出引脚延迟时间 条件 最小值 典型值 最大值 单位 45 100 500 50 晶振类型 RC 类型 55 DC DC % ns ns Ta = 25°C Ta = 25°C Ta = 25°C (Tins+20)/N* 9 2000 9 Cload=20pF ns 18 30 18 0 20 50 30 ms ns ms ms ms ms *N= 所选分频比 6.3 A/D 转换器特性(Vdd=3.0V 至 5.5V,Vss=0V,Ta=0 至 70 ℃) 符号 VAREF 参数 模拟参考电压 VASS VAI IAI RN LN DNL FSE OE ZAI TAD TCN ADIV 模拟输入电压 模拟供电电流 分辨率 线性误差 差分非线性误差 满标度误差 补偿误差 推荐模拟电压源阻抗 A/D 时钟持续时间 A/D 转换时间 A/D OP 输入电压幅度 ADOV A/D OP 输出电压幅度 ADSR PSR A/D OP 转换率 电源抑制比 版本号 (V1.6) 12.01.2010 (产品更新后规格书不保证同步更新) 条件 VAREF - VASS≧2.5V Vdd=VAREF=5.0V, VASS =0.0V Vdd=VAREF=5.0V, VASS =0.0V Vdd = 2.5 to 5.5V Ta=25℃ Vdd = 2.5 to 5.5V Ta=25℃ Vdd=VAREF=5.0V, VASS =0.0V Vdd=VAREF=5.0V, VASS =0.0V Vdd=VAREF=5.0V, VASS =0.0V Vdd=VAREF=5.0V, VASS =0.0V Vdd=VAREF=5.0V, VASS =0.0V Vdd=VAREF=5.0V, VASS =0.0V,RL=10KΩ Vdd=VAREF=5.0V, VASS =0.0V Vdd=5.0V±0.5V 最小值 典型值 3.0 VASS 500 6 0 0 ±0 ±0 0 3 10 0 0 4.7 0.1 ±0 700 7 ±2 ±0.5 ±2 ±1 8 3.5 0.2 4.8 0.3 最大值 单位 Vdd Vss VAREF 1000 8 ±4 ±0.9 ±4 ±2 10 4 10 5 0.3 5 V V V uA Bits LSB LSB LSB LSB KΩ us TAD V ±2 V V/us LSB • 49 EM78P458/459 8位OTP微控制器 注意 1.这些参数仅为特性值,未经测试。 2.这些参数仅用于设计参考,未经测试 3.当A/D关闭,除了很小的漏电流之外不会消耗其它任何电流 4.A/D转换不会因输入电压增加而减小,并且不会丢码。 5.规格所做修改,不另行通知 6.4 比较器 (OP) 特性(Vdd = 5.0V,Vss=0V,Ta=0 至 70℃) 符号 SR IVR OVS Iop PSRR Vos Vs 参数 回转率 输入电压范围 条件 Vdd =5.0V, VSS =0.0V 输出电压摆动 Vd =5.0V, VSS =0.0V,RL=10KΩ OP供电电流 OP供电电源抑制比 偏置电压 工作电压范围 Vdd= 5.0V, VSS =0.0V Vdd= 5.0V, VSS =0.0V 最小值 典型值 0.1 0 0 4.7 250 50 0.2 2.5 0.2 4.8 350 60 ±10 最大值 5 0.3 5 500 70 ±20 5.5 单位 V/us V V uA dB mV V 注意 1. 这些参数仅为特性值,未经测试。 2. 这些参数仅用于设计参考,未经测试 3. 规格所做修改,不另行通知 50 • 版本号(V1.6) 12.01.2010 (产品更新后规格书不保证同步更新) EM78P458/459 8位OTP微控制器 6.5 器件特性 以下页面所示的曲数图取自有限数量的样品,在此仅用作设计参考。所以图示器件特性 曲数不保证其准确型。有些图片所示曲数数据可能超出保证工作电压。 Vih/Vil (带施密特反向器的输入引脚) 2.5 Vil 最大值(0℃ 到 70℃ ) Vil典型值 25℃ Vih Vil(Volt) 2 Vil 最小值(0℃到 70℃) 1.5 1 Vil 最大值(0℃ 到 70℃ ) 0.5 Vil典型值 25℃ Vil 最小值(0℃到 70℃) 0 2.5 3 3.5 4 4.5 5 5.5 Vdd(Volt) 图 25 P50的Vih, Vil 和VDD Vih/Vil (带施密特反向器的输入引脚) 2.5 Vil 最大值(0℃ 到 70℃ ) Vil典型值 25℃ Vih Vil(Volt) 2 Vil 最小值(0℃到 70℃) 1.5 1 Vil 最大值(0℃ 到 70℃ ) 0.5 Vil典型值 25℃ 0 Vil 最小值(0℃到 70℃) 2.5 3 3.5 4 4.5 5 5.5 Vdd(Volt) 图 26 P51,P52,P54的 Vih, Vil 和 VDD 版本号 (V1.6) 12.01.2010 (产品更新后规格书不保证同步更新) • 51 EM78P458/459 8位OTP微控制器 Vih/Vil (带施密特反向器的输入引脚) Vil 最大值(0℃ 到 70℃ ) 2.5 Vil典型值 25℃ Vil 最小值(0℃到 70℃) Vih Vil(Volt) 2 1.5 1 Vil 最大值(0℃ 到 70℃ ) 0.5 Vil典型值 25℃ Vil 最小值(0℃到 70℃) 0 2.5 3 3.5 4 4.5 5 5.5 Vdd(Volt) 图 27 P53,P55~P57,P60~P67的Vih, Vil 和VDD Voh/Ioh (VDD=3V) 0 0 -5 -2 -10 -4 -15 最小值 70 ℃ -20 典型值 25 ℃ Ioh(mA) Ioh(mA) Voh/Ioh (VDD=5V) 最大值 0 ℃ -10 -30 -12 0 1 2 3 4 5 Voh(Volt) 图 28 Port5, Port6, Voh 和. Ioh, VDD=5V 52 • 典型值 25 ℃ -8 最大值 0 ℃ -25 最小值 70 ℃ -6 0 0.5 1 1.5 2 2.5 3 Voh(Volt) 图 29 Port5, Port6, Voh和. Ioh, VDD=3V 版本号(V1.6) 12.01.2010 (产品更新后规格书不保证同步更新) EM78P458/459 8位OTP微控制器 Vol/Iol (VDD=5V) Vol/Iol (VDD=3V) 80 最大值 0 ℃ 35 70 典型值 25 ℃ 30 最小值 70 ℃ 25 60 最大值0 ℃ 典型值 25 ℃ 最小值 70 ℃ Iol(mA) Iol(mA) 50 40 20 15 30 20 10 10 5 0 0 0 1 2 3 4 5 0 0.5 1 Vol(Volt) 1.5 2 2.5 3 Vol(Volt) 图 30 Port5, 和 P60~P63,P66,P67 Vol, VDD=5V 图 31 Port5, 和 P60~P63,P66,P67 Vol , VDD=3V Vol/Iol (5V) Vo l/Io l (3 V) 50 120 最大值 0 ℃ 45 100 最大值 0 ℃ 40 典型值 25 ℃ 典型值 25 ℃ 35 Iol(mA) 最小值 70 ℃ 60 Iol(mA) 80 30 最小值70 ℃ 25 20 40 15 10 20 5 0 0 0 1 2 3 4 5 Vol(Volt) 图 32 P64,P65 Vol 和 Iol, VDD=5V 版本号 (V1.6) 12.01.2010 (产品更新后规格书不保证同步更新) 0 0.5 1 1.5 2 2.5 3 Vol(Volt) 图 33 P64,P65 Vol 和 Iol, VDD=3V • 53 EM78P458/459 8位OTP微控制器 WDT 溢出 35 30 最大值70 ℃ WDT 周期 (mS) 25 典型值 25 ℃ 20 最小值 0 ℃ 15 10 5 0 2 3 4 5 6 VDD (Volt) 图 34 WDT 溢出周期vs. VDD, 分频比设置1 : 1 54 • 版本号(V1.6) 12.01.2010 (产品更新后规格书不保证同步更新) EM78P458/459 8位OTP微控制器 Cext=100pF, 典型 RC OSC 频率 1.4 R = 3.3 k 1.2 1 频率(M Hz) R = 5.1 k 0.8 0.6 R = 10 k 0.4 0.2 0 R = 100 k 2.5 3 3.5 4 4.5 5 5.5 VDD(Volt) 图 35 典型RC OSC频率vs VDD(Cext=100pF, 温度在25 ℃) 版本号 (V1.6) 12.01.2010 (产品更新后规格书不保证同步更新) • 55 EM78P458/459 8位OTP微控制器 工作电流ICC1至ICC4分别对应四个条件。如下所述: ICC1:VDD=3V, Fosc=32 kHz, 2clock, WDT 禁止. ICC2:VDD=3V, Fosc=32 kHz, 2clock, WDT 使能. ICC3:VDD=5V, Fosc=2 MHz, 2clock, WDT 使能. ICC4:VDD=5V, Fosc=4 MHz, 2clock, WDT 使能 ICC1和ICC2典型值 和 温度 ICC2 典型值 电流 (uA) 21 ICC1 典型值 18 15 12 9 0 10 20 30 40 50 60 70 温度 (℃) 图 36 工作电流典型值(ICC1 温度ICC2)和 温度 ICC1 和 ICC2 最大值 和 温度 30 ICC2 最大值 电流 (uA) 27 24 ICC1 最大值 21 18 15 0 10 20 30 40 50 60 70 温度 (℃) 图 37 工作电流最大值(ICC1 和ICC2)和 温度 56 • 版本号(V1.6) 12.01.2010 (产品更新后规格书不保证同步更新) EM78P458/459 8位OTP微控制器 ICC3 和 ICC4 典型值 和 温度 1.9 电流 (mA) 1.7 ICC4 典型值 1.5 1.3 ICC3 典型值 1.1 0.9 0.7 0.5 0 10 20 30 40 50 60 70 温度 (℃) 图 38 工作电流典型值(ICC3 和 ICC4)和 温度 ICC3 和 ICC4 最大值 和 温度 2.2 ICC4 最大值 电流 (mA) 2 1.8 1.6 ICC3 最大值 1.4 1.2 1 0 10 20 30 40 50 60 70 温度 (℃) 图 39 工作电流最大值(ICC3 和 ICC4)和温度 省电电流ISB1和ISB2分别对应两个条件。如下所述: ISB1:VDD=5V, WDT 禁止 ISB2:VDD=5V, WDT 使能 版本号 (V1.6) 12.01.2010 (产品更新后规格书不保证同步更新) • 57 EM78P458/459 8位OTP微控制器 ISB1和 ISB2典型值 和 温度 12 电流 (uA) 9 ISB2 典型值 6 3 ISB1 典型值 0 0 10 20 30 40 50 60 70 温度 (℃) 图 40 省电电流典型值(ISB1 和ISB2)和温度 ISB1和 ISB2 最大值和 温度 12 电流 (uA) 9 ISB2 最大值 6 3 ISB1 最大值 0 0 10 20 30 40 50 60 70 温度 (℃) 图 41 省电电流最大值(ISB1和 ISB2)和温度 58 • 版本号(V1.6) 12.01.2010 (产品更新后规格书不保证同步更新) EM78P458/459 8位OTP微控制器 工作电压 (0℃~70℃) 25 频率 (M Hz) 20 15 10 5 0 2 2.5 3 3.5 4 4.5 5 5.5 6 5.5 6 VDD(Volt) 图 42 温度范围在0 ℃ 至70 ℃下的工作电压 EM78P458/459 HXT I-V 2.5 2 1.5 最大值 1 最小值 0.5 0 2 2.5 3 3.5 4 4.5 5 图 43 4 MHz 条件下EM78P458/459 I-V 曲数 版本号 (V1.6) 12.01.2010 (产品更新后规格书不保证同步更新) • 59 EM78P458/459 8位OTP微控制器 EM78P458/459 HXT I-V 2.5 2 1.5 最大值 1 Min 最小值 0.5 0 2 3 4 5 6 图 44 4 MHz 条件下EM78P458_G/459-G I-V 曲数 EM78P458/459 LXT I-V 200 150 100 最大值 最小值 50 0 2 3 4 5 6 图 45 32.768 kHz 条件下EM78P458/459 I-V曲数 60 • 版本号(V1.6) 12.01.2010 (产品更新后规格书不保证同步更新) EM78P458/459 8位OTP微控制器 EM78P458/459 LXT I-V 140 120 100 80 60 40 20 0 最大值 最小值 2 3 4 5 6 图 46 32.768 kHz 条件下EM78P458_G/459_G I-V 曲数 版本号 (V1.6) 12.01.2010 (产品更新后规格书不保证同步更新) • 61 EM78P458/459 8位OTP微控制器 附录 A 封装类型 OTP MCU 封装类型 引脚数 封装尺寸 EM78P458AP EM78P458AM EM78P459AK EM78P459AM DIP SOP 小外形 DIP SOP 20 pin 20 pin 24 pin 24 pin 300mil 300mil 300mil 300mil B 封装信息 20引脚塑封双列直插封装(PDIP) — 300 mil 62 • 版本号(V1.6) 12.01.2010 (产品更新后规格书不保证同步更新) EM78P458/459 8位OTP微控制器 20引脚塑封小外形封装(SOP) — 300 mil 版本号 (V1.6) 12.01.2010 (产品更新后规格书不保证同步更新) • 63 EM78P458/459 8位OTP微控制器 24引脚塑封双列直插封装(PDIP) — 300 mil 64 • 版本号(V1.6) 12.01.2010 (产品更新后规格书不保证同步更新) EM78P458/459 8位OTP微控制器 24引脚塑封小外形封装(SOP) — 300 mil 版本号 (V1.6) 12.01.2010 (产品更新后规格书不保证同步更新) • 65