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