EM78P809N 8位 OTP微控制器 产品规格书 版本 1.1 义隆电子股份有限公司 2007.12 本文内容是由英文规格书翻译而 目的是为了您的阅读更加方便。 它无法跟随原稿的更新,文中可 能存在翻译上的错误,请您参考 英文规格书以获得更准确的信 息。 商标告知: IBM 为一个注册商标,PS/2 是 IBM 的商标之ㄧ.。 Windows 是微软公司的商标。 ELAN 和 ELAN 标志 是义隆电子股份有限公司的商标。 版权所有 © 2009~2010 义隆电子股份有限公司 所有权利保留 台湾印制 本规格书内容如有变动恕不另作通知。关于该规格书的准确性、适当性或者完整性,义隆电子股份有限 公司不承担任何责任。 义隆电子股份有限公司不承诺对本规格书之内容及信息有更新及校正之义务。 本 规格书的内容及信息将为符合确认之指示而变更。 在任何情况下,义隆电子股份有限公司对本规格书中的信息或内容的错误、遗漏,或者其它不准确性不 承担任何责任。由于使用本规格书中的信息或内容而导致的直接,间接,特别附随的或结果的损害, 义 隆电子股份有限公司没有义务负责。 本规格书中提到的软件(如果有),都是依据授权或保密合约所合法提供的,并且只能在这些合约的许 可条件下使用或者复制。 义隆电子股份有限公司的产品不是专门设计来应用于生命维持的用具,装置或者系统。 义隆电子股份有 限公司的产品不支持而且禁止在这些方面的应用。 未经义隆电子股份有限公司书面同意,任何个人或公司不得以任何形式或方式对本规格书的内容之任一部 分进行复制或传输。 义隆电子股份有限公司 总公司: 地址:台湾新竹科学园区 创新一路 12 号 电话:+886 3 563-9977 传真:+886 3 563-9966 [email protected] http://www.emc.com.tw 香港分公司: USA: 义隆电子(香港)有限公司 九龙观塘巧明街 95 号世达中心 19 楼 A 室 电话:+852 2723-3376 传真:+852 2723-7780 Elan Information Technology Group (USA) Korea: 深圳分公司: 上海分公司: Elan Korea Electronics Company, Ltd. 义隆电子(深圳)有限公司 义隆电子(上海)有限公司 301 Dong-A Building 632 Kojan-Dong, Namdong-ku Incheon City, KOREA Tel: +82 32 814-7730 Fax:+82 32 813-7730 P.O. Box 601 Cupertino, CA 95015 USA Tel: +1 408 366-8225 Fax:+1 408 366-8225 地址:深圳市高新技术产业园南区 地址:上海市浦東新區張江高科畢 高新南一道国微大厦 3F 升路 289 弄 3 號 101 室 邮编:518057 电话:+86 755 2601-0565 传真:+86 755 2601-0500 [email protected] 邮编:201203 电话:+86 21 5080-3866 传真:+86 21 5080-0273 [email protected] 目录 Contents 1 综述 ..............................................................................................................1 2 产品特性.................................................................................................................... 1 3 引脚配置.................................................................................................................... 2 4 引脚说明.................................................................................................................... 2 5 功能描述.................................................................................................................... 4 5.1 功能结构图 ....................................................................................................... 4 5.2 工作寄存器 ....................................................................................................... 5 5.3 特殊功能寄存器 .............................................................................................. 19 5.4 CPU 工作模式................................................................................................. 23 5.5 AD 转换器....................................................................................................... 25 5.6 时基定时器和音频发生器 ................................................................................ 26 5.7 UART (通用异步串行接收器/发送器) ............................................................... 28 5.8 5.9 5.7.1 UART 模式 ........................................................................................................ 30 5.7.2 发送................................................................................................................... 30 5.7.3 接收................................................................................................................... 30 5.7.4 波特率发生器 .................................................................................................... 31 SPI (串行外围接口) ......................................................................................... 31 5.8.1 串行时钟 ........................................................................................................... 32 5.8.2 移动方向和采样点 ............................................................................................. 32 5.8.3 传输模式 ........................................................................................................... 32 定时/计数器 2.................................................................................................. 35 5.9.1 定时器模式........................................................................................................ 36 5.9.2 计数器模式........................................................................................................ 36 5.9.3 窗口模式 ........................................................................................................... 36 5.10 定时/计数器 3.................................................................................................. 37 5.10.1 定时器模式........................................................................................................ 38 5.10.2 计数器模式........................................................................................................ 38 5.10.3 捕获模式 ........................................................................................................... 38 版本号 (V1.1) 12.11.2007 • iii 目录 5.11 定时/计数器 4.................................................................................................. 39 5.11.1 定时 器 模式...................................................................................................... 40 5.11.2 计数器模式........................................................................................................ 40 5.11.3 PDO 模式 .......................................................................................................... 40 5.11.4 PWM 模式......................................................................................................... 40 5.12 TCC/WDT 和预分频器 .................................................................................... 41 5.13 I/O Ports ........................................................................................................ 41 5.14 复位和唤醒 ..................................................................................................... 41 5.14.1 复位................................................................................................................... 41 5.14.2 从休眠模式唤醒................................................................................................. 42 5.14.3 从空闲 模式唤醒................................................................................................ 42 5.14.4 状态寄存器的 RST, T 与 P 的状态..................................................................... 47 5.15 中断 ................................................................................................................ 48 5.16 振荡 ................................................................................................................ 49 5.16.1 振荡模式 ........................................................................................................... 49 5.16.2 晶体振荡器/陶瓷谐振器(晶体) ........................................................................... 49 5.16.3 外部 RC 振荡模式 ............................................................................................. 51 5.17 代码选项寄存器 .............................................................................................. 52 5.17.1 代码选项寄存器 (Word 0).................................................................................. 52 5.17.2 用户 ID 寄存器 .................................................................................................. 53 5.18 上电相关事项 .................................................................................................. 53 5.18.1 外部上电复位电路 ............................................................................................. 53 5.18.2 残留电压保护 .................................................................................................... 53 5.19 指令集............................................................................................................. 54 6 最大绝对值范围 ....................................................................................................... 56 7 电气特性.................................................................................................................. 57 iv • 7.1 直流电气特性 .................................................................................................. 57 7.2 AD 转换特性 ................................................................................................... 58 7.3 MCU 特性 ....................................................................................................... 59 7.4 交流电气特性 .................................................................................................. 67 7.5 时序图............................................................................................................. 68 版本号 (V1.1) 12.11.2007 目录 附录 A 封装类型: ................................................................................................................ 69 B 封装形式.................................................................................................................. 70 B.1 28 引脚塑封双列直插封装(PDIP)— 600 mil..................................................... 70 B.2 28 引脚塑封小外形封装 (SOP) — 300 mil ....................................................... 71 B.3 28 引脚塑封缩小外形封装 (SSOP) — 209 mil ................................................. 72 C 品质保证和可靠性................................................................................................... 73 C.1 地址陷阱检测 .................................................................................................. 73 版本号 (V1.1) 12.11.2007 •v 目录 规格版本历史 版本号 修订本描述 日期 0.9 初版 2004/03/04 1.0 首发行版 2005/07/26 1. 改进了特性部分的内容和格式 2. 改进了功能结构图 5-1. 3. 校正了 5-3. PC 的结构图 4. 修改了每个寄存器说明的题目 5. 修改了寄存器 SPIC1, SPIC2, ADOSCR, URC1 和 URC2 的说明 6. 修改了 4.5 节 AD 转换, 4.6 节时基定时器和音频发生器 的时序, 4.9.3 部分的窗口模式和 4.10 部分的定时/计数 器3 1.1 7. 修改了图 5-13. SPI 功能框图,图 5-23 捕获模式的时序间 图,图 5-24.定时/计数器 4 的配置图和表格 9 的中断向 量 2007/12/11 8. 删除 5.2 节的建议工作条件和 6.1 节的直流电气特性 (VDD=3V±5%, VSS= 0V) 9. 修改了 6.2 节的 AD 转换特性 10. 增加了 6.3 节 MCU 特性 11. 修改了 6.5 节的时序图 12. 附录 A 修改了封装类型 13. 附录 B 增加了封装配置 14. 附录 C 增加了质量保证和可靠性 vi • 版本号 (V1.1) 12.11.2007 EM78P809N 8位OTP微控制器 1 综述 EM78P809N 是采用低功耗,高速 CMOS 工艺,强抗杂讯的 8 位单片机。其内部包含 8K*13 位一次性可编程 只读存储器(OTP-ROM) 。它提供多个保护位来防止程序被读出,7 个代码选择字来满足用户需求。 具有增强的 OTP-ROM 特性的 EM78P809N 能够为用户提供开发和校验程序的便利,另外,用户可以使用义 隆烧录器很容易的烧录自己的程序。 2 产品特性 CPU 配置 z 8通道的模数转换器,在参考电压选择外部电源模式下精 准度可达 10位 z 时基定时器的定时 (1Hz ~ 16kHz在 8MHz) z 音频输出 (1kHz ~ 8kHz 在8MHz) z 8K×13位片内ROM z 144×8 位片内寄存器 (SRAM) z 8级堆栈用于子程序嵌套 z 在 5V/8MHz工作条件下耗电流小于3.5 mA TC3: 计数/定时器/捕获 z 休眠模式下耗电流典型值为 0.8 µA z 空闲模式下耗电流典型值为1.1 µA TC4: 计数/定时器/PWM (脉宽调制) / PDO (可编程的分离 器输出) TCC: 带有溢出中断的 8 位实时定时/计数器 z I/O 口配置 8个带有10位精度AD转换通道 15个中断源 z 4组双向 I/O端口: P6、 P7 、P8、 P9 z 22个 I/O 引脚 z WDT溢出中断 z 10个可编程下拉I/O 引脚 z TCC溢出中断 z 10个可编程上拉I/O 引脚 z 时基定时器的定时中断 (时钟源的第一个下降沿) z 外部中断: P60、 P61、 P73、 P80 z 串行 UART发送中断 z 串行 UART接收中断 z 串行 UART接收错误中断 z 四个外部中断 z AD转换完成中断 z TC2溢出中断 z TC3溢出中断 z TC4溢出中断 z 串行SPI中断 工作电压范围: OTP 版本 z 工作电压范围: 2.5V~5.5V 工作温度范围: -40°C ~ 85°C 工作频率范围 (时基 2 个时钟): z 晶振模式: DC ~ 10MHz @ 5V; DC ~200ns 指令周期@ 5V DC ~ 4MHz @ 3V; DC ~500ns 指令周期@ 3V z ERC 模式: 特性: DC ~ 10MHz, 5V; DC ~200ns 指令周期@ 5V z 可编程的独立运行看门狗定时器 DC ~ 4MHz, 3V; DC ~ 500ns 指令周期@ 3V z 每个指令为2个时钟周期 z 上电复位 有串行外围接口 (SPI) z 高抗干扰性 z 有通用异步串行接收器/发送器(UART) z 休眠省电模式 z 16位计数/定时器 TC2: 计数/定时器/窗口 z 可选振荡模式 z 8位计数/定时器 外设配置 z TCC: 带有溢出中断的 8 位实时定时/计数器 TC3: 计数/定时器/捕获 TC4: 计数/定时器/PWM (脉宽调制) / PDO (可编程的 分离器输出) 版本号 (V1.1) 12.11.2007 (产品更新后规格书不保证同步更新) 封装类型: z 28-引脚DIP 600mil : EM78P809NPS/NPJ z 28-引脚SOP 300mil : EM78P809NMS/NMJ z 28-引脚 SSOP 209mil : EM78P809NSS/NSJ •1 EM78P809N 8位OTP微控制器 3 引脚配置 图 3-1 引脚配置 4 引脚说明 符号 引脚 号 类型 VDD 28 - OSCI 2 I OSCO 1 I/O 功能 电源 晶振类型: 晶振输入端 RC 类型: RC 振荡输入端 晶振类型: 晶振输出端 RC 类型: 指令时钟输出 外部时钟信号输入 /RESET 27 I 带施密特触发的输入引脚. 如果电压保持在逻辑低,器件将复位 P60~P67 是双向 I/O 引脚 P60 可用于外部中断 0 (/INT0) P61 可用于外部中断 1 (INT1) P60~P67 19~26 I/O P62 可用于 16 位定时器/计数器 2 (TC2) P63 可用于可编程的分离器输出 (/Tone) P64 使能从机模式 (/SS) P60 ~ P63 可用于上下拉 P70~P77 是双向 I/O 引脚 P70 可用于 SPI 串行时钟输入/输出 (/SCK) P70~P73 15~18 I/O P71 可用于 SPI 串行数据输入(SI) 或 UART 接收数据的输入 (RX) P72 可用于 SPI 串行数据输出(SO) 或 UART 发送数据的输出(TX) P73 可用于休眠模式的输入释放 (/SLEEP) 或者外部中断输入 5 (/INT5) P70 ~ P73 可用于上下拉 2• 版本号 (V1.1) 12.11.2007 (产品更新后规格书不保证同步更新) EM78P809N 8位OTP微控制器 符号 引脚 号 类型 功能 P80~P81 是双向 I/O 引脚 P80~P81 12~13 I/O P80 可用于 8 位定时器/计数器 3 (TC3)和外部中断 3 (INT3) P81 可用于 8 位定时器/计数器 4 (TC4) 或者可编程的分离器输出(PDO) P80 ~ P81 可用于上下拉 P90~P97 是双向 I/O 引脚 P90~P97 4~11 I/O P90~P97 可用于 8 通道的 10 位精度的 AD 转换 P97 可用于 AD 参考电压的输入 口(VREF) VSS 14 - 地 NC 3 - 未连接 VPP 27 I 烧录电压输入 ACLK 1 I OTP 存储器地址增加的时钟 DATAIN 25 I/O DINCK 26 I ROM 代码输入时钟 PGMB 24 I 代码写入使能引脚. 低为有效 OEB 23 I 输出使能引脚. 低为有效 OTP 烧录引脚 版本号 (V1.1) 12.11.2007 (产品更新后规格书不保证同步更新) ROM 代码的连续输入和连续输出 •3 EM78P809N 8位OTP微控制器 5 功能描述 5.1 功能结构图 图 5-1 功能结构描述图 4• 版本号 (V1.1) 12.11.2007 (产品更新后规格书不保证同步更新) EM78P809N 8位OTP微控制器 5.2 工作寄存器 BANK0 BANK1 BANK2 BANK3 00 R0/ IAR 01 R1/ TCC 02 R2/ PC 03 R3/ SR 04 R4/ RSR 05 SCR TC3CR URC1 SPIC1 06 Port 6 TC3DA URC2 SPIC2 IOC6 07 Port 7 TC3DB URS SPID IOC7 08 Port 8 TC2CR/ ADDL URRD IOC8 09 Port 9 TC2DH URTD IOC9 R3 (7,6)= (0,1) 0A R3 (7,6)= (1,0) R3 (7,6)= (1,1) TC2DL PHC1 0B TC4CR ADCR PLC1 INTCR 0C TC4D ADIC PHC2 ADOSCR 0D ISFR0 ADDH PLC2 0E ISFR1 TBKTC 0F ISFR2 10 : 1F 20 : 3F IMR1 IMR2 16 BANK 0 R4(7,6)=(0,0) 32 BANK 1 R4(7,6)=(0,1) BANK 2 R4(7,6)=(1,0) 32 32 BANK 3 R4(7,6)=(1,1) 32 图 5-2 工作寄存器 R0 (间接寻址寄存器) R0 为虚拟寄存器。它的主要功能是作为间接寻址指针。任何对R0的操作实际上是对R4 指向的RAM内容操作。 R1 (定时/计数器) R1同其它寄存器一样可以读写。只有给TCC寄存器写入值时,预分频计数器的内容才可 以清0。 R2 (程序计数器) 和堆栈 依据IC类型, R2和硬件堆栈是10位宽,结构如图5-3描述。 当复位产生时计数器内容R2为0。 版本号 (V1.1) 12.11.2007 (产品更新后规格书不保证同步更新) •5 EM78P809N 8位OTP微控制器 "JMP" 指令允许直接装载程序计数器低10位。因此,JMP可以在同一个页内任 意跳转(1K)。 "CALL" 指令装载程序计数器的低10位。并将PC+1值入栈。因此子程序入口地 址可以放在同一页的任一位置(1K)。 "RET" ("RETL k", "RETI")指令将栈顶的数据存放在PC中。 所有指令都是单指令周期(fclk/2 或 fclk4),除了能改变R2内容的指令,这样的 指令需要更多的指令周期。 当产生一个中断时,程序将会跳到与此中断相对应的中断向量地址, CPU将会 自动存储 ACC、 R3 、 R5的内容, 执行指令RETI将恢复它们的值。 R5 A12 PC 000 : 0 0000~03FF 001 : 1 0400~07FF 010 : 2 0800~0BFF 011 : 3 0C00~0FFF 100 : 4 1000~13FF 101 : 5 1400~17FF 110 : 6 1800~1BFF 111 : 7 1C00~1FFF A11 A10 A9 A8 A7 ~ A0 0000h CALL RET RETL RETI ACC R3 R5 1 2 3 WDT 0003h INT0 0006h TCC 0009h INT1 000Fh 4 0012h 5 6 7 8 UART 0015h UART 0018h UART 001Bh TC3 0021h SPI 0024h TC4 0027h INT3 002Ah AD 0030h TC2 0033h INT5 0036h 1FFFh 图 5-3 程序计数器结构图 6• R3 (状态寄存器) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 RBS1 RBS0 0 T P Z DC C 版本号 (V1.1) 12.11.2007 (产品更新后规格书不保证同步更新) EM78P809N 8位OTP微控制器 Bit 7 ~ Bit 6 (RBS1 ~ RBS0): 页选择寄存器 RBS1 RBS0 Bank 寄存器 (地址 05H ~ 0FH) 0 0 Bank 0 0 1 Bank 1 1 0 Bank 2 1 1 Bank 3 Bit 5: 未使用 Bit 4 (T): 时间溢出位. 通过 "SLEP" 和 "WDTC"或上电复位置1,看门狗溢出清零 。 Bit 3 (P): 掉电标志位。"WDTC"指令或上电复位置1,"SLEP"指令清零. Bit 2 (Z): 零标志位. 如果算术结果或逻辑值为0置为1. Bit 1 (DC): 辅助进位标志位 Bit 0 (C): 进位标志位 R4 (RAM 选择寄存器) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 GRBS1 RBS0 RSR5 RSR4 RSR3 RSR2 RSR1 RSR0 Bit 7: 6 ( GRBS1 : GRBS0 ): 选择BANK. 用 Bank 指令(例如.BABK 1) 切换BANK. GRBS1 GRBS0 通用 Bank 寄存器(地址 20H ~ 3FH) 0 0 Bank 0 0 1 Bank 1 1 0 Bank 2 1 1 Bank 3 Bit 5: 0 ( RSR5 : RSR0 ): 在间接寻址模式用于选择寄存器 (地址: 00h~3Fh) .如果没有 使用间接寻址, RSR为8位通用读写寄存器 .见图5-2寄存器配置. R5 (系统控制寄存器) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 0 PS2 PS1 PS0 0 1 SIS REM Bit 6 (PS2) ~ 4 (PS0): ROM 的页选择位.用户可使用PAGE指令 (例如PAGE 1) 或者通 过设置 PS2~PS0位切换页. 当执行指令"JMP", "CALL", 或者其它可以改 变PC内容的指令 (例如 MOV R2, A), PS2~PS0 将加载到13位~11位宽 的PC中并选择页.注意RET (RETL, RETI)指令不会改变PS2~PS0 位. 即 返回时返回到调用子程序的页,不管 PS2~PS0位的当前值. 版本号 (V1.1) 12.11.2007 (产品更新后规格书不保证同步更新) •7 EM78P809N 8位OTP微控制器 PS2 PS1 PS0 程序存储器的页 [地址] 0 0 0 页 0 [0000~03FF] 0 0 1 页 1 [0400~07FF] 0 1 0 页 2 [0800~0BFF] 0 1 1 页 3 [0C00~0FFF] 1 0 0 页 4 [1000~13FF] 1 0 1 页 5 [1400~17FF] 1 1 0 页 6 [1800~1BFF] 1 1 1 页 7 [1C00~1FFF] Bit 1 ( SIS ): 选择休眠和空闲模式 SIS = “0”: 空闲模式 SIS = “1”: 休眠模式 Bit 0 ( REM ): 休眠模式的释放方法 REM = “0”: /SLEEP引脚上升沿释放 REM = “1”: /SLEEP引脚输入高电平释放 R6 (Port 6 I/O数据寄存器) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 P67 P66 P65 P64 P63 P62 P61 P60 Bit 7 ~ Bit 0 ( P67 ~ P60 ): 8位Port 6 I/O数据寄存器 用户可使用IOC6寄存器定义IO口为输入或输出 . R7 (Port 7 I/O 数据寄存器) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 0 0 0 0 P73 P72 P71 P70 Bit 3 ~ Bit 0 ( P73 ~ P70 ): Port 73 ~ Port 70 I/O数据寄存器 用户可使用IOC7寄存器定义IO口为输入或输出 R8 (Port 8 I/O 数据寄存器) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 0 0 0 0 0 0 P81 P80 Bit 1 ~ Bit 0 ( P81 ~ P80 ): Port 81 ~ Port 80 I/O 数据寄存器 用户可使用IOC8寄存器定义IO口为输入或输出 R9 (Port 9 I/O 数据寄存器) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 P97 P96 P95 P94 P93 P92 P91 P90 Bit 7 ~ Bit 0 ( P97 ~ P90 ): 8位Port 97 ~ Port 90 I/O数据寄存器 8• 版本号 (V1.1) 12.11.2007 (产品更新后规格书不保证同步更新) EM78P809N 8位OTP微控制器 用户可使用IOC9寄存器定义IO口为输入或输出 RB (定时/计数器4 控制寄存器) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 TC4FF1 TC4FF0 TC4S TC4CK2 TC4CK1 TC4CK0 TC4M1 TC4M0 Bit 7 ~ Bit 6 ( TC4FF1 ~ TC4FF0 ): 定时/计数器4 触发器控制 TC4FF1 TC4FF0 工作模式 0 0 清除 0 1 翻转触发 1 0 置位触发 1 1 保留 Bit 5 ( TC4S ): 定时/计数器4 开始控制. TC4S = “0”: 停止并清除计数器 TC4S = “1”: 开始 Bit 4 ~ Bit 2 ( TC4CK2 ~ TC4CK 0 ): 定时/计数器4 时钟源选择 TC4CK2 TC4CK1 TC4CK0 0 0 0 0 0 0 1 时钟源 ( 正常, 空闲) 解析度 ( Fosc=8M ) 最大时间 ( Fosc=8M ) 11 256µS 65mS Fc/2 7 16µS 4mS Fc/2 5 4µS 1mS Fc/2 1 0 0 1 1 Fc/2 3 1µS 255µS 1 0 0 Fc/2 2 500nS 127.5µS 1 0 1 Fc/2 1 250nS 63.8µS 1 1 0 Fc 125nS 31.9µS 1 1 1 外部时钟(TC4 引脚) -- -- Bit 1 ~ Bit 0 ( TC4M1 ~ TC4M0 ): 定时/计数器4 工作模式选择 TC4M1 TC4M0 工作模式 0 0 定时/计数器 0 1 保留 1 0 可编程的分离器输出 1 1 脉宽调制输出 RC (Timer 4 数据缓冲) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 TC4D7 TC4D6 TC4D5 TC4D4 TC4D3 TC4D2 TC4D1 TC4D0 Bit 7 ~ Bit 0 ( TC4D7 ~ TC4D0 ): 定时/计数器4的8位数据缓冲器 RD (中断状态标志寄存器 0和INT3边沿检测标志) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 0 0 INT3F INT3R 0 0 WDTIF EXIF0 版本号 (V1.1) 12.11.2007 (产品更新后规格书不保证同步更新) •9 EM78P809N 8位OTP微控制器 Bit 5 ( INT3F ): 外部中断3下降沿检测标志. INT3F = “0”: 未检测到下降沿 INT3F = “1”: 检测到下降沿 Bit 4 ( INT3R ): 外部中断3上升沿检测标志. INT3R = “0”: 未检测到上升沿 INT3R = “1”: 检测到上升沿 Bit 1 ( WDTIF ): WDT溢出中断,由软件清标志. Bit 0 ( EXIF0 ): 外部中断标志(INT0). 由软件清标志. 如果INT0EN为“0”,标志清0 RE (ISFR1中断状态寄存器 1) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 EXIF5 TCIF2 ADIF 0 EXIF3 TCIF4 SPIF TCIF3 Bit 7 ( EXIF5 ): 外部中断标志 (/INT5), 由软件清标志. Bit 6 ( TCIF2 ): 16位定时/计数器2中断标志, 由软件清标志. Bit 5 ( ADIF ): AD转换完成标志, 由软件清标志. Bit 3 ( EXIF3 ): 外部中断标志 (/INT3), 由软件清标志. Bit 2 ( TCIF4 ): 8位定时/计数器2中断标志, 由软件清标志. Bit 1 ( SPIF ): SPI 模式中断标志, 由软件清标志. Bit 0 ( TCIF3 ): 8位定时/计数器3中断标志, 由软件清标志.. 0: 没有中断 1: 有中断前请求 ISFR1 可由指令清0, 但是不可以由指令置1 IMR1 是中断屏蔽寄存器 注意,读ISFR1将得到ISFR1逻辑与 IMR1的结果. RF (ISFR2中断状态寄存器 2) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 0 UERRIF RBFF TBEF TBIF EXIF1 0 TCIF0 Bit 6 (UERRIF): UART 接收错误中断, 由软件或禁止UART清0 Bit 5 (RBFF): UART接收模式数据缓冲器满中断标志 ,由软件清0 Bit 4 (TBEF): UART发送模式数据缓冲器满中断标志 ,由软件清0 Bit 3 (TBIF): 时基定时器中断标志,由软件清0 Bit 2 (EXIF1): 外部中断标志 (INT1).,由软件清0 Bit 0 (TCIF0): TCC溢出 中断标志,TCC溢出时置位,由软件清0 10 • 版本号 (V1.1) 12.11.2007 (产品更新后规格书不保证同步更新) EM78P809N 8位OTP微控制器 "1": 有中断请求, "0": 没有中断 ISFR2可以由指令清0,但不能由指令置1 IMR2是中断屏蔽寄存器 注意:读 ISFR2会获得ISFR2逻辑与IMR2的结果 Bank 1 R5 TC3CR (定时/计数器3控制寄存器) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 TC3CAP TC3S TC3CK1 TC3CK0 TC3M 0 0 0 Bit 7 ( TC3CAP ): 软件捕获控制 TC3CAP = “0”: TC3CAP = “1”: 软件捕获 Bit 6 ( TC3S ): 定时/计数器 3开始控制 TC3S = “0”: 停止并清计数器 TC3S = “1”: 开始 Bit 5 ~ Bit 4 ( TC3CK1 ~ TC3CK0 ): 定时/计数器 3时钟源选择 TC3CK1 TC3CK0 0 0 0 时钟源 ( 正常, 空闲) 解析度 ( Fosc=8M ) 最大时间 ( Fosc=8M ) 12 512µS 131.1mS 10 128µS 32.6mS 7 Fc/2 1 Fc/2 1 0 Fc/2 16µS 4.1mS 1 1 外部时钟 (TC3 引脚) - - Bit 3 ( TC3M ): 定时/计数器 3模式选择 TC3M = “0”: 定时/计数器 3模式 TC3M = “1”: 捕获模式 Bank 1 R6 TC3DA (定时器 3 数据缓冲器 A) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 TC3DA7 TC3DA6 TC3DA5 TC3DA4 TC3DA3 TC3DA2 TC3DA1 TC3DA0 Bit 7 ~ Bit 0 ( TC3DA7 ~ TC3DA0 ): 8位定时/计数器 3数据缓冲器 复位不影响此寄存器 Bank 1 R7 TC3DB (定时器 3 数据缓冲器 B) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 TC3DB7 TC3DB6 TC3DB5 TC3DB4 TC3DB3 TC3DB2 TC3DB1 TC3DB0 Bit 7 ~ Bit 0 ( TC3DB7 ~ TC3DB0 ): 8位定时/计数器 3数据缓冲器 复位不影响此寄存器 版本号 (V1.1) 12.11.2007 (产品更新后规格书不保证同步更新) • 11 EM78P809N 8位OTP微控制器 Bank 1 R8 TC2CR/ ADDL (定时/计数器2控制寄存器, AD低2位数据缓冲器) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 ADD1 ADD0 0 TC2M TC2S TC2CK2 TC2CK1 TC2CK0 Bit 7 ~ Bit 6 ( ADD1 ~ ADD0 ): AD 低2位数据缓冲器 Bit 4 ( TC2M ): 定时/计数器 2模式选择 TC2M = “0”: 定时/计数器 2模式 TC2M = “1”: 窗口模式 Bit 3 ( TC2S ): 定时/计数器2开始控制 TC2S = “0”: 停止并清计数器 TC2S = “1”: 开始 Bit 2 ~ Bit 0 ( TC2CK2 ~ TC2CK0 ): 定时/计数器2时钟源选择 TC2CK2 TC2CK1 TC2CK0 0 0 0 0 0 0 1 时钟源 ( 正常, 空闲) 解析度 ( Fosc=8M ) 最大时间 ( Fosc=8M ) 23 1.05s 19.1h 13 1.02ms 1.1min 8 32µs 2.1s 3 Fc/2 1 Fc/2 0 Fc/2 0 1 1 Fc/2 1µs 65.5ms 1 0 0 Fc 125ns 7.9ms 1 0 1 - - - 1 1 0 - - - 1 1 1 外部时钟(TC2 引脚) 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 ( TC2D15 ~ TC2D8 ): 16位定时/计数器2数据缓冲高字节. 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数据缓冲低字节. Bank 1 RB ADCR (AD 控制寄存器) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 ADREF ADRUN ADCK1 ADCK0 ADP ADIS2 ADIS1 ADIS0 Bit 7 ( ADREF ): AD参考电压输入选择. ADREF = “0”: 内部VDD, P97 作为IO. ADREF = “1”: 外部引脚参考, P97作为参考电压输入引脚. 12 • 版本号 (V1.1) 12.11.2007 (产品更新后规格书不保证同步更新) EM78P809N 8位OTP微控制器 Bit 6 ( ADRUN ): AD转换开始 ADRUN = “0”: 转换完成后由硬件复位,此位不能由软件复位 ADRUN = “1”: 转换开始 Bit 5~ Bit 4 ( ADCK1 ~ ADCK0 ): AD 转换时间选择 ADCK1 ADCK0 时钟源 ( 正常, 空闲) 最大工作频率 ( Fc ) 0 0 Fc/4 1MHz 0 1 Fc/16 4MHz 1 0 Fc/32 8MHz 1 1 保留 - Bit 3 ( ADP ): AD电源控制 ADP = “0”:上电 ADP = “1”:掉电 Bit 2 ~ Bit 0 ( ADIS2 ~ ADIS0 ): 模拟输入引脚选择 ADIS2 ADIS1 ADIS0 模拟输入引脚 0 0 0 AD0 0 0 1 AD1 0 1 0 AD2 0 1 1 AD3 1 0 0 AD4 1 0 1 AD5 1 1 0 AD6 1 1 1 AD7 Bank 1 RC ADIC (AD输入引脚控制) 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 ~ Bit 0 ( ADE7 ~ ADE0 ): AD输入引脚控制 ADEx = “0”: PORT9.x作为I/O 口. ADEx = “1”: PORT9.x 作为模拟输入引脚 Bank 1 RD ADDH (AD 高8位数据缓冲器) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 ADD9 ADD8 ADD7 ADD6 ADD5 ADD4 ADD3 ADD2 Bit 7 ~ Bit 0 ( ADD9 ~ ADD2 ): AD高8位数据缓冲器 版本号 (V1.1) 12.11.2007 (产品更新后规格书不保证同步更新) • 13 EM78P809N 8位OTP微控制器 Bank 1 RE TBKTC (TBT/音频控制) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 TEN TCK1 TCK0 0 TBTEN TBTCK2 TBTCK1 TBTCK0 Bit 7 ( TEN ): 音频使能控制 TEN = “0”: 禁止 TEN = “1”:使能 Bit 6 ~ Bit 5 ( TCK1 ~ TCK0 ): 音频输出时钟源选择 TCK1 TCK0 0 时钟源 音频输出频率 (正常,空闲 ) ( Fc = 8MHz ) 0 0 1.953kHz 11 3.906kHz 10 7.812kHz Fc/2 0 1 0.976kHz 12 Fc/2 1 1 13 Fc/2 1 Fc/2 Bit 3 ( TBTEN ): 时基定时器使能控制 TBTEN = “0”: 禁止 TBTEN = “1”: 使能 Bit 2 ~ Bit 0 ( TBTCK2 ~ TBTCK0 ): 时基定时器时钟源选择 TBTCK2 TBTCK1 0 0 0 0 0 0 1 1 1 1 3.81Hz 16 122.07Hz 14 488.28Hz 13 976.56Hz 12 1953.12Hz 11 3906.25Hz 9 15625Hz Fc/2 0 1 0.95Hz 21 Fc/2 1 1 ( Fc = 8MHz ) 23 Fc/2 0 0 (正常,空闲 ) Fc/2 1 0 中断频率 Fc/2 0 1 时钟源 Fc/2 1 1 0 TBTCK0 Fc/2 1 Fc/2 Bank 2 R5 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位 14 • 版本号 (V1.1) 12.11.2007 (产品更新后规格书不保证同步更新) EM78P809N 8位OTP微控制器 Bit 6 ~ Bit 5 ( UMODE1 ~ UMODE0 ): UART发送模式选择位 UMODE1 UMODE0 UART 模式 0 0 模式 1: 7-bits 0 1 模式 2: 8-bits 1 0 模式 3: 9-bits 1 1 保留 Bit 4 ~ Bit 2 ( BRATE2 ~ BRATE1 ): 发送波特率选择 BRATE2 BRATE1 BRATE0 波特率 例如 Fc=8MHz 0 0 0 Fc/13 38400 0 0 1 Fc/26 19200 0 1 0 Fc/52 9600 0 1 1 Fc/104 4800 1 0 0 Fc/208 2400 1 0 1 Fc/416 1200 1 1 0 TC4 1 1 1 保留 Bit 1 ( UTBE ): UART发送缓冲器为空标志位. 当发送缓冲器为空时置1. 当URTD写入 数据时清0. UTBE 位在使能发送时会由硬件清0. UTBE位是只读的. 因 此, 当我们要移位发送数据时就必须给URTD寄存器写入数据 Bit 0 ( TXE ): 使能发送 TXE = “0”: 禁止 TXE = “1”: 使能 Bank 2 R6 URC2 (UART 控制寄存器2) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 0 0 SBIM1 SBIM0 UINVEN 0 0 0 Bit 5 ~ Bit 4 ( SBIM1 ~ SBIM0 ): 串行总线接口工作模式. SBIM1 SBIM0 工作模式 0 0 I/O 模式 0 1 SPI 模式 1 0 UART 模式 1 1 保留 Bit 3 ( UINVEN ): 使能 UART TXD 和 RXD 口输出 UINVEN = “0”: 禁止UART TXD 和 RXD 口输出. UINVEN = “1”: 使能UART TXD 和 RXD 口输出. Bank 2 R7 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 版本号 (V1.1) 12.11.2007 (产品更新后规格书不保证同步更新) • 15 EM78P809N 8位OTP微控制器 Bit 7 ( URRD8 ): 接收数据的第8位 Bit 6 ( EVEN ): 选择奇偶校验 EVEN = “0”: 奇校验 EVEN = “1”: 偶校验 Bit 5 ( PRE ): 使能校验 PRE = “0”: 禁止 PRE = “1”: 使能 Bit 4 ( PRERR ): 校错标志. 当校错发生时置1,由软件清0. Bit 3 ( OVERR ): 过速错误. 当过速错误发生时置1,由软件清0. . Bit 2 ( FMERR ):侦差错标志. 当侦差错发生时置1,由软件清0. Bit 1 ( URBF ): UART读缓冲区为满标志位. 当接收到一个字符时置1,当从URS寄存器读取时会自动置0. 当接收完成 时URBF由硬件清0. URBF位是只读位. 因此,读取URS寄存器是必要的, 以避免过速错误. Bit 0 ( RXE ) : 使能接收 RXE = “0”: 禁止 RXE = “1”:使能 Bank 2 R8 URRD (UART接收数据缓冲区) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 URRD7 URRD6 URRD5 URRD4 URRD3 URRD2 URRD1 URRD0 Bit 7 ~ Bit 0 ( URRD7 ~ URRD0 ): UART 接收数据缓冲区. 只读. Bank 2 R9 URTD (UART 发送数据缓冲区) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 URTD 7 URTD 6 URTD 5 URTD 4 URTD 3 URTD 2 URTD 1 URTD0 Bit 7 ~ Bit 0 ( URTD 7 ~ URTD 0): UART发送数据缓冲区.只读. Bank 3 R5 SPIC1 (SPI 控制寄存器 1) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 SMP DCOL BRS2 BRS1 BRS0 EDS DORD WBE Bit 7 ( SMP ): SPI数据输入采样点. SMP = “0”: 输入数据在数据输出时间的中间采样 16 • 版本号 (V1.1) 12.11.2007 (产品更新后规格书不保证同步更新) EM78P809N 8位OTP微控制器 SMP = “1”: 输入数据在数据输出时间的末尾采样 利用外部时钟,数据输入采样固定在数据输出时间的中间 Bit 6 ( DCOL ): SPI 数据冲突. DCOL = “0”: 未发生数据冲突 DCOL = “1”: 发生数据冲突.由软件清0. Bit 5 ~ Bit 3 ( BRS0 ~ BRS2 ): SPI 时钟源选择 时钟源 ( 正常,空闲 ) BRS2 BRS1 BRS0 0 0 0 Fc/2 0 0 1 Fc/2 0 1 0 Fc/2 最大传输率 ( Fc = 8MHz ) 13 0.95Kbit/s 11 3.8Kbit/s 10 7.6Kbit/s 8 30.5Kbit/s 6 0 1 1 Fc/2 1 1 0 0 0 1 Fc/2 5 Fc/2 122Kbit/s 244Kbit/s 1 1 1 1 0 1 外部时钟 (/SCK 引脚) 外部时钟 (/SCK 引脚) 使能 /SS 引脚 禁止 /SS 引脚 Bit 2 ( EDS ): 数据移出边沿选择. EDS = “0”: 上升沿 EDS = “1”:下降沿 Bit 1 ( DORD ): 数据传输规则. DORD = “0”: 左移(数据高位先移出) DORD = “1”: 右移 (数据低位先移出) Bit 0 ( WBE ): 写缓冲区为空标志位 ,只读 WBE = “0”: 写缓冲区为空 WBE = “1”: 不为空,当写入数据时会自动置1 Bank 3 R6 SPIC2 (SPI 控制寄存器 2) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 SPIS 0 0 0 0 SPIM1 SPIM0 RBF Bit 7 ( SPIS ): SPI 开始移位,置该位为1和移位寄存器开始移位.当移位完成时由硬件清 0。传输下一个数据时,此位必须重新置1. SPIS = “0”: 移位完成 SPIS = “1”: 移位开始 版本号 (V1.1) 12.11.2007 (产品更新后规格书不保证同步更新) • 17 EM78P809N 8位OTP微控制器 Bit 2 ~ Bit 1 ( SPIM1 ~ SPIM0): SPI 发送模式选择 SPIM1 SPIM0 发送模式 0 0 8 位发送/接收模式 0 1 8 位发送 模式 1 0 8 位接收模式 1 1 保留 Bit 0 ( RBF ): 由缓冲区满检测器置1,当读寄存器SPID时自动清0.使能SPI后RBF位由 硬件清. 此位只读.因此,读寄存器SPID是必须的,以避免发生数据冲突 (DCOL). Bank 3 R7 SPID (SPI数据缓冲区) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 SPID7 SPID6 SPID5 SPID4 SPID3 SPID2 SPID1 SPID0 Bit 7 ~ Bit 0 ( SPID7 ~ SPID0 ): SPI数据缓冲区. Bank 3 RA PHC1 (上拉控制寄存器1) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 - - /PHE81 /PHE80 /PHE63 /PHE62 /PHE61 /PHE60 Bit 5 ~ 4 ( /PHE81 ~ /PHE80 ): Port 8的 位1~0 上拉使能位 /PHE8x = “0”: 使能 P8x 上拉 /PHE8x = “1”: 禁止P8x 上拉 Bit 3 ~ 0 ( /PHE63 ~ /PHE60 ): Port 6的 位3~0 上拉使能位 /PHE6x = “0”: 使能 P6x 上拉 /PHE6x = “1”: 禁止 P6x 上拉 Bank 3 RB PLC1 (下拉控制寄存器 1) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 - - /PLE81 /PLE80 /PLE63 /PLE62 /PLE61 /PLE60 Bit 5 ~ 4 ( /PLE81 ~ /PLE80 ): Port 8的 位1~0 下拉使能位 /PLE8x = “0”: 使能 P8x 下拉 /PLE8x = “1”: 禁止 P8x 下拉 Bits 3 ~ 0 ( /PLE63 ~ /PLE60 ): Port 6的 位3~0 下拉使能位 /PHE6x = “0”: 使能 P6x 下拉 /PHE6x = “1”: 禁止 P6x下拉 18 • Bank 3 RC PHC2 (上拉控制寄存器 2) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 - - - - /PHE73 /PHE72 /PHE71 /PHE70 版本号 (V1.1) 12.11.2007 (产品更新后规格书不保证同步更新) EM78P809N 8位OTP微控制器 Bit 3 ~ 0 ( /PHE73 ~ /PHE70 ): Port 7的 位3~0 上拉使能位 /PHE7x = “0”: 使能 P7x 上拉 /PHE7x = “1”: 禁止P7x 上拉 Bank 3 RD PLC2 (下拉控制寄存器 2) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 - - - - /PLE73 /PLE72 /PLE71 /PLE70 Bit 3 ~ 0 ( /PLE73 ~ /PLE70 ): Port 7的 位3~0 下拉使能位 /PHE7x = “0”: 使能 P7x 下拉 /PHE7x = “1”: 禁止 P7x下拉 R10~R1F和 R20~R3F (包括 Banks 0~3) 通用寄存器 5.3 特殊功能寄存器 A (累加器) 内部数据传输或指令操作数通常暂存,它不可寻址。 CONT (控制寄存器) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 WDTO /INT WDTP1 WDTP0 WDTE PSR2 PSR1 PSR0 CONT寄存器是可读写的. Bit 7 ( WDTO ): WDT 输出选择 WDTO = “0”: 中断请求 WDTO = “1”: 内部复位 Bit 6 ( /INT ): 中断使能标志 /INT = “0”: 由DISI或硬件屏蔽中断 /INT = “1”: 由ENI/RETI指令使能 Bit 5 ~ Bit 4 ( WDTP1 ~ WDTP0 ): WDT 预分频比位 WDTP1 WDTP0 工作模式 0 0 1:4 0 1 1:16 1 0 1:64 1 1 1:256 Bit 3 ( WDTE ): WDT 使能控制. WDTE = “0”: 使能 WDTE = “1”: 禁止 版本号 (V1.1) 12.11.2007 (产品更新后规格书不保证同步更新) • 19 EM78P809N 8位OTP微控制器 Bit 2 ~ Bit 0 ( PSR2 ~ PSR0 ): TCC 预分频比位. PSR2 PSR1 PSR0 工作模式 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 IOC6~IOC9 (I/O Port 控制寄存器) "1" 定义相应I/O口为高阻输入状态, "0"定义I/O口为输出状态. IOC6 和 IOC9寄存器是可读写的. IOCB INTCR (INT 控制器) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 INT1NR INT0EN 0 INT3ES1 INT3ES0 0 INT1ES TC2ES Bit 7 ( INT1NR ): INT1 噪声抑制时间选择位 INT1NR = “0”: 脉冲小于 63/fc 被当作噪音消除 INT1NR = “1”: 脉冲小于 15/fc被当作噪音消除 Bit 6 ( INT0EN ): INT0 使能控制 INT0EN = “0”: 通用 I/O INT0EN = “1”: /INT0 口 Bit 5: 保留 Bit 4 ~ Bit 3 ( INT3ES1 ~ INT3ES0): INT3 边沿选择 INT3ES1 INT3ES0 边沿选择 0 0 上升沿 0 1 下降沿 1 0 两个边沿均可 1 1 保留 Bit 2: 保留 Bit 1 ( INT1ES ): INT1 边沿选择 INT1ES = “0”: 上升沿 INT1ES = “1”: 下降沿 Bit 0 (TC2ES): 定时/计数器2边沿选择. TC2ES = “0”: 上升沿 20 • 版本号 (V1.1) 12.11.2007 (产品更新后规格书不保证同步更新) EM78P809N 8位OTP微控制器 TC2ES = “1”: 下降沿 外部中断 INT 引脚 第二功能引脚 使能条件 边沿 数字抗干扰 /INT0 P60 ENI + INT0EN (IOCB) 下降沿 - INT1 P61 ENI + EXIE1 (IMR2) 上升沿或下降沿 15/Fc, 63/Fc INT3 P80, TC3 ENI + EXIE3 (IMR2) 上升沿或下降沿或上 升沿/下降沿 7/Fc /INT5 P73, /SLEEP ENI + EXIE5 (IMR2) - - IOCC ADOSCR (AD补偿控制寄存器) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 CALI SIGN VOF[2] VOF[1] VOF[0] 0 0 0 Bit 7 (CALI): A/D补偿校准使能位 CALI = “0”: 校准禁止 CALI = “1”: 校准使能 Bit 6 ( SIGN ): 补偿电压极性选择位 SIGN = “0”: 负电压 SIGN = “1”: 正电压 Bit 5 ~ Bit 3 ( VOF[2] ~ VOF[0] ): 补偿电压位 VOF[2] VOF[1] VOF[0] EM78P809N 0 0 0 0LSB 0 0 1 1LSB 0 1 0 2LSB 0 1 1 3LSB 1 0 0 4LSB 1 0 1 5LSB 1 1 0 6LSB 1 1 1 7LSB IOCE IMR1 (中断屏蔽寄存器1) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 EXIE5 TCIE2 ADIE 0 EXIE3 TCIE4 SPIE TCIE3 Bit 7 ( EXIE5 ): 外部/INT5 引脚中断使能位. EXIE5 = “0”: 禁止EXIF5中断 EXIE5 = “1”: 使能EXIF5中断 Bit 6 ( TCIE2 ): 定时器/计数器 2 中断使能位. TCIE2 = “0”: 禁止TCIF2中断 TCIE2 = “1”: 使能TCIF2中断 Bit 5 ( ADIE ): ADC完成中断使能位. 版本号 (V1.1) 12.11.2007 (产品更新后规格书不保证同步更新) • 21 EM78P809N 8位OTP微控制器 ADIE = “0”: 禁止ADIF中断 ADIE = “1”: 使能ADIF中断 Bit 3 ( EXIE3 ): 外部 INT3 引脚中断使能位. EXIE3 = “0”: 禁止 EXIF3 中断 EXIE3 = “1”: 使能 EXIF3 中断 Bit 2 ( TCIE4 ): 定时器/计数器 4 中断使能位. TCIE4 = “0”: 禁止 TCIF4 中断 TCIE4 = “1”: 使能 TCIF4 中断 Bit 1 ( SPIE ): SPI 中断使能位. SPIE = “0”: 禁止 SPIF 中断 SPIE = “1”: 使能 SPIF 中断 Bit 0 ( TCIE3 ): 定时器/计数器 3 中断使能位. TCIE3 = “0”: 禁止 TCIF3 中断 TCIE3 = “1”: 使能 TCIF3 中断 通过设定IMR1的相关控制位为“1”来单独使能中断. 全局中断由ENI 指令使能,由DISI指令禁止. IMR1 寄存器可读写. IOCF IMR2 (中断屏蔽寄存器2) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 0 UERRIE URIE UTIE TBIE EXIE1 0 TCIE0 Bit 6 ( UERRIE ): UART 接收错误中断使能位. UERRIE = “0”: 禁止 UERRIF 中断 UERRIE = “1”: 使能 UERRIF 中断 Bit 5 ( URIE ): UART 接收模式中断使能位. URIE = “0”: 禁止 RBFF 中断 URIE = “1”: 使能 RBFF 中断 Bit 4 ( UTIE ): UART 发送模式中断使能位. UTIE = “0”: 禁止 TBEF 中断 UTIE = “1”: 使能 TBEF 中断 Bit 3 ( TBIE ): 时间基准定时器中断使能位. TBIE = “0”: 禁止 TBIF 中断 TBIE = “1”: 使能 TBIF 中断 Bit 2 ( EXIE1 ): 外部 INT 1 中断使能位. EXIE1 = “0”: 禁止 EXIF1 中断 EXIE1 = “1”: 使能 EXIF1 中断 Bit 0 ( TCIE0 ): TCC 中断使能位. 22 • 版本号 (V1.1) 12.11.2007 (产品更新后规格书不保证同步更新) EM78P809N 8位OTP微控制器 TCIE0 = “0”: 禁止 TCIF0 中断 TCIE0 = “1”: 使能 TCIF0 中断 通过设定IMR2的相关控制位为“1”来单独使能中断. 全局中断由ENI 指令使能,由DISI指令禁止. IMR2 寄存器可读写. 5.4 CPU工作模式 CPU工作模式寄存器 R_BANK 地址 名称 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Bank 0 0X05 SCR 0 PS2 PS1 PS0 0 1 SIS REM - - - - R/W R/W R/W - - R/W R/W * R_BANK: Bank寄存器 (R3的6, 7位), R/W: 可读写 图 5-4 工作模式和转换关系 表 2 模式转换控制 模式转换 转换方法 注意 正常Æ休眠 设置 SIS = 1, 执行 SLEP 指令 − 休眠 Æ正常 /SLEEP 引脚唤醒 − 正常Æ空闲 设置 SIS = 0, 执行 SLEP 指令 − 空闲 Æ 正常 中断 − 表 3 工作模式 工作模式 频率 复位 单时钟 正常模式 打开 空闲模式 休眠模式 关闭 CPU 代码 片上外围 配件 复位 复位 Fosc 暂停 Fosc 暂停 在正常模式下, CPU内核及外围配件以晶振频率运行. 版本号 (V1.1) 12.11.2007 (产品更新后规格书不保证同步更新) • 23 EM78P809N 8位OTP微控制器 在空闲模式下, CPU内核停止运行, 但外围配件与晶振电路仍在运行.空闲模式可被任何 中断源唤醒. 如果执行了ENI指令, 空闲模式唤醒后中断将发生在紧接的下一条指令处, 接着中断结束. 如果没有执行ENI指令, 唤醒后程序将紧接着空闲模式启动指令后的下一 条指令开始执行, 空闲模式也可由复位引脚上的低电平输入及执行一个复位操作来唤醒. 在休眠模式下, 内部振荡器关闭, 系统停止运行. 休眠模式由/SLEEP引脚唤醒(电平响应 或边沿响应可由系统控制寄存器(SCR)第0位(REM)来设置). 一个预热期后, 下一条指令 将从休眠模式启动指令后的下一条指令开始执行. 休眠模式也可由复位引脚上的低电平 输入及执行一个复位操作来唤醒. 在电平响应模式下, 在进入休眠模式前/SLEEP引脚必 须保持低电平, 在边沿响应模式下, 休眠模式开始即便/SLEEP引脚为高电平. 表 4 唤醒方法 唤醒信号 休眠模式 R5 (SIS) = 1+SLEP 指令 1. IMR1, IMR2 中的单个中断源 2. WDT 中断请求 3. /INT0 4. 不执行 ENI 指令 不影响 ** 唤醒信号 休眠模式 R5 (SIS) = 1+SLEP 指令 1. IMR1, IMR2 中的单个中断源 2. WDT 中断请求 3. /INT0 空闲模式 R5 (SIS)= 0 + SLEP 指令 1. 唤醒 2. 跳到下一条指令或进 入空闲 模式 空闲模式 R5 (SIS)= 0 + SLEP 指令 正常模式 R5 (SIS)=(*) 不影响** 正常模式 R5 (SIS)=(*) 1. 唤醒 不影响** 4. 执行 ENI 指令 2. 执行 RETI 之后进入中 断向量,然后进入下一条 指令或空闲模式 中断 1. 唤醒 /SLEEP 引脚 2. 跳到下一条指令或 进入休眠 模式 不影响 不影响 /RESET 引脚 复位 复位 复位 WDT 溢出 复位 复位 复位 * : 忽略 ** : 中断响应标志将被记录. 24 • 版本号 (V1.1) 12.11.2007 (产品更新后规格书不保证同步更新) EM78P809N 8位OTP微控制器 5.5 AD 转换器 AD转换电路相关寄存器 R_BANK 地址 Bank 1 0X0B 名称 Bit 7 Bit 6 0X0C ADIC R/W ADE7 ADE6 R/W Bank 1 0X0D ADDH R/W 0X08 ADDL R ADD1 ADD0 R Bank 0 0x0E ISFR1 R 0x0C 0x0E ADE5 ADE4 ADE3 R/W R/W R/W Bit 0 ADIS2 ADIS1 ADIS0 R/W R/W R/W ADE2 ADE1 ADE0 R/W R/W R/W R 0 R R R R R TC2M TC2S TC2CK2 TC2CK1 TC2CK0 SPIF TCIF3 R/W R/W R/W SIGN VOF[2] VOF[1] VOF[0] 0 0 0 R/W -- -- -- SPIE TCIE3 R/W R/W EXIF5 TCIF2 ADOSCR CALI IMR1 R/W Bit 1 R/W R/W R/W SPR R/W ADP Bit 2 R/W R/W SPR R/W Bit 3 ADD9 ADD8 ADD7 ADD6 ADD5 ADD4 ADD3 ADD2 R Bank 1 Bit 4 ADCR ADREF ADRUN ADCK1 ADCK0 R/W Bank 1 Bit 5 EXIE5 TCIE2 R/W R/W -- R/W ADIF 0 R/W 0 R/W R/W ADIE 0 R/W 0 R/W R/W EXIF3 TCIF4 R/W R/W EXIE3 TCIE4 R/W R/W * R_BANK : Bank 寄存器(R3的bits 7, 6), R/W: 读 / 写 * SPR : 特殊功能寄存器 图 5-5 AD 转换 10位逐次逼近式AD转换器, 模拟参考电压可通过ADCR的ADREF位的设置选择内部 VDD或P97(VREF)引脚的外部输入. ADC数据寄存器: 当A/D转换完成, 结果载入ADDH (8 位) 与 ADDL (2 位)中,开始/结束位清零, ADIF位置1. 版本号 (V1.1) 12.11.2007 (产品更新后规格书不保证同步更新) • 25 EM78P809N 8位OTP微控制器 A/D采样时间: 逐次逼近式AD转换器的精确性、线性、速度由ADC比较器特性决定。外部AD电路的输 入阻抗和内部采样阻抗直接影响采样电路中电容的充电时间。应用程序控制采样时间长 短以满足特定精度需要。一般来说,对于每千欧姆模拟输入阻抗,程序应等待2µs,对 于低阻源应至少等待2µs。建议外部AD电路的输入阻抗的最大为10KΩ, Vdd=5V。模拟 输入通道选定后,在转换可以开始之前这个采样时间应先满足。 A/D 转换时间: ADCK0和ADCK1依照指令周期来选择转换时间(Tct)。在不影响A/D转换精度的条件下, 这允许MCU以最高频率运行。对于EM78P809N, 每位转换时间约为4µs. 表 5 列出了Tct 与最高工作频率的关系。 表5 ADCK1:0 工作模式 最大频率 (Fc) 每一位的最大转换率 最大转换率 00 Fc/4 1MHz 250kHz (4µs) 52µs (20.8kHz) 01 Fc/16 4MHz 250kHz (4µs) 52µs (20.8kHz) 10 Fc/32 8MHz 250kHz (4µs) 52µs (20.8kHz) 11 保留 − − − 5.6 时基定时器和音频发生器 时基定时器/音频控制相关寄存器 R_BANK 地址 名称 Bit 7 Bit 6 Bit 5 Bit 4 Bank 1 0X0E TBKTC TEN TCK1 TCK0 0 R/W R/W R/W -- Bank 0 0x0F ISFR2 0 0 SPR 0x0F IMR2 0 0 26 • UERRIF RBFF TBEF R/W Bit 3 Bit 2 Bit 1 Bit 0 TBTEN TBTCK2 TBTCK1 TBTCK0 R/W R/W R/W R/W TBIF EXIF1 0 TCIF0 R/W R/W R/W R/W 0 R/W UERRIE URIE UTIE TBIE EXIE1 0 TCIE0 R/W R/W R/W 0 R/W R/W R/W 版本号 (V1.1) 12.11.2007 (产品更新后规格书不保证同步更新) EM78P809N 8位OTP微控制器 图 5-6 /TONE输出引脚结构图 音频发生器可输出占空比为50%的脉冲(时基定时器产生的脉冲)以控制一个压电式蜂 鸣器的发声时间。 使能音频发生器后,设定P63为”1”, P63输出脉冲 ;设置P63为”0”, P63无脉冲输出。 图 5-7 Tone引脚输出时序图 图 5-8 TBT结构图 版本号 (V1.1) 12.11.2007 (产品更新后规格书不保证同步更新) • 27 EM78P809N 8位OTP微控制器 时基定时器可以用来产生按键扫描或动态显示处理的基准时间, TBTEN位置”1”后时钟 源的第一个下降沿到来时产生中断. 图 5-9 时基定时器时序图 5.7 UART (通用异步串行接收器/发送器) UART 电路相关控制寄存器 R_BANK 地址 Bank 2 0X05 Bank 2 Bank 2 Bank 2 0X06 0X07 0X08 Bit 1 Bit 0 URC1 URTD8 UMODE1 UMODE0 BRATE2 BRATE1 BRATE0 UTBE TXE 名称 URC2 URS Bit 7 Bank 0 SFR 28 • 0X09 0x0F 0x0F Bit 5 R/W R/W 0 0 -- -- R/W URRD8 EVEN PRE R/W R/W R/W R/W Bit 4 R/W Bit 3 Bit 2 R/W SBIM1 SBIM0 UINVEN R/W R/W R/W R R/W 0 0 0 -- -- -- PRERR OVERR FMERR URBF R/W R/W R/W R RXE R/W URRD URRD7 URRD6 URRD5 URRD4 URRD3 URRD2 URRD1 URRD0 R Bank 2 Bit 6 R R R R R R R URTD URTD 7 URTD 6 URTD 5 URTD 4 URTD 3 URTD 2 URTD 1 URTD0 ISFR2 IMR2 W W W W W W W W 0 UERRIF RBFF TBEF TBIF EXIF1 0 TCIF0 -- R/W R/W R/W R/W R/W -- R/W 0 UERRIE URIE UTIE TBIE EXIE1 0 TCIE0 -- R/W R/W R/W R/W R/W -- R/W 版本号 (V1.1) 12.11.2007 (产品更新后规格书不保证同步更新) EM78P809N 8位OTP微控制器 TC4 选 择 器 系统频率 RXE 波特率 发生器 RX 控制 中断控制 TXE TX 控制 RX UINVEN RX 移位寄存器 校验控制 URRD 错误标志 URRD8 TX URTD8 URTD UINVEN 数据总线 图 5-10 功能方框图 在通用异步接收器发送器(UART)模式下, 每一字符发送或接收分别由成帧的一个起始位 和停止位来同步. 全双工数据传输是可能的, 因为UART有独立的发送与接收部件, 这两个部件的缓冲区允 许UART被编程来持续数据的传输. 下图所示为发送或接收一个字符的一般格式, 通讯通道通常会保持在一个特定的状态(高 电平). 发送或接收字符开始于一个间隔状态(低电平)的跳变. 发送或接收的第一位为起始位(低电平), 紧跟其后的是数据位, 这样最低位(LSB)便先形 成了, 紧跟在数据位后的为奇偶位,然后出现停止位或多位(高电平) , 那么可以确定一帧 的结束. 在接收中, UART同步于起始位的下降沿. 在三个采样期间, 当两或三个”0”被侦测到后, 即 认为是普通的起始位, 接收运作启动. 空闲状态 起始位 1 bit D0 D1 D2 7 或 8 bits Dn 校验位 停止位 1 bit (符号) 1 bits 一个字符或一帧 图 5-11 UART的数据格式 版本号 (V1.1) 12.11.2007 (产品更新后规格书不保证同步更新) • 29 EM78P809N 8位OTP微控制器 5.7.1 UART 模式 有三种UART模式, 模式 1 ( 7位数据 )与模式 2 ( 8位数据 )允许增加一个奇偶校验位, 模 式3 没有奇偶校验位. 下图显示了各个模式的数据格式. 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 位数据 停止位 图 5-12 UART模式 5.7.2 发送 在发送串行数据模式下, UART操作如下: 1. 置URC1寄存器TXE位来使能UART发送功能. 2. 写数据到URTD寄存器, URC1寄存器的UTBE位将被硬件置位. 3. 然后开始发送. 4. 串行发送数据通过TX引脚按以下步骤传输. 5. 起始位: 输出一位”0”. 6. 发送数据: 7, 8或, 9位的数据按从低位(LSB)到高位输出. 7. 奇偶校验位: 一个奇偶校验位(奇或偶校验位可选择)输出. 8. 停止位: 输出一位”1”(停止位). 注意: 持续输出”1”直到下一个数据传输起始位的到来. 传输完停止位后, UART产生TBEF中断(如果使能). 5.7.3 接收 在接收模式下, UART操作如下: 1. 置URS寄存器RXE位来使能UART接收功能. 当侦测到起始位后, UART监测RX引脚并内部同步. 2. 接收到的数据按从低位(LSB)到高位(MSB)顺序移入URRD寄存器. 3. 接收奇偶效验位与停止位. 30 • 版本号 (V1.1) 12.11.2007 (产品更新后规格书不保证同步更新) EM78P809N 8位OTP微控制器 一个字符接收完毕, UART产生一个RBFF中断(如果使能), URS寄存器的URBF位将 被置1. 4. UART做如下检测: (a) 奇偶校验: 接收到的数据的数字”1”须与URS寄存器的EVEN位的奇偶校验的设 置相匹配. (b) 帧校验: 起始位须为 0, 停止位须为 1. (c) 溢出校验: 在下一接收数据载入URRD寄存器前, URS寄存器的URBF位须清零 ( 也就是说需读出URRD寄存器的值). 如果任一校验失败, UERRIF中断将产生(如果使能), 错误标志便指示在PRERR, OVERR或FMERR位上. 错误标志位需由软件清零, 否则在接收下一字节时将发生 UERRIF中断. 5. 从URRD寄存器中读取接收到的数据, URBF位将被硬件清零. 5.7.4 波特率发生器 波特率发生器由产生时钟脉冲决定UART模式下发送或接收传输速率的电路组成. URC1寄存器BRATE2~BRATE0位可决定所需的波特率。 5.8 SPI (串行外围接口) SPI 电路的相关寄存器 R_BANK 地址 名称 Bit 7 Bank 3 0X05 SPIC1 SMP R/W Bank 3 0X06 SPIC2 Bit 6 Bit 3 Bit 2 DCOL BRS2 BRS1 BRS0 EDS R/W R/W R/W 0 0 0 0 R/W -- -- -- -- 0X07 SPID Bank 0 0x0E ISFR1 EXIF5 TCIF2 SFR 0x0E IMR1 R/W Bit 1 DORD WBE R/W SPIM1 SPIM0 R/W Bit 0 R/W R RBF R SPID7 SPID6 SPID5 SPID4 SPID3 SPID2 SPID1 SPID0 R/W R/W R/W R/W EXIE5 TCIE2 R/W (产品更新后规格书不保证同步更新) R/W Bit 4 SPIS Bank 3 版本号 (V1.1) 12.11.2007 Bit 5 R/W R/W R/W ADIF 0 R/W -- ADIE 0 R/W -- R/W R/W EXIF3 TCIF4 R/W R/W EXIE3 TCIE4 R/W R/W R/W R/W SPIF TCIF3 R/W R/W SPIE TCIE3 R/W R/W • 31 EM78P809N 8位OTP微控制器 图 5-13 SPI结构框图 串行接口经由P70 (/SCK), P71 (SI), P72 (SO) 引脚接到外部设备. 串行接口也可用作I/O 端口. 在发送模式下, P71可以用作普通I/O口; 在接收模式下, P72与P71可用作普通I/O 口. 5.8.1 串行时钟 通过设置BRS0 ~ BRS2位可选择六个内部时钟, 通过/SCK (P70)引脚输出时钟. 外部时 钟也可使用并可连接到/SCK (P70)引脚. 5.8.2 移动方向和采样点 设置SPIC1寄存器的DORD位可确定移位方向. 设置SPIC1寄存器的EDS位可选择上升 沿或下降沿锁存数据. 设置SPIC2寄存器的SMP位可选择采样点是在数据输出时间的中 间时刻还是在结尾时刻. 5.8.3 传输模式 设置SPIM0 ~ SPIM1位可选择发送, 接收, 发送/接收模式. (a) 8位发送模式 设置SPIM0 ~ SPIM12位至发送模式并写数据到SPID数据缓冲器. 置SPIS位为”1” 启 动发送. 数据同步串行时钟连续的输出到SO引脚. 当数据的最后一位传输完毕, SPI 32 • 版本号 (V1.1) 12.11.2007 (产品更新后规格书不保证同步更新) EM78P809N 8位OTP微控制器 中断发生, SPIS位被硬件清零. 为了传送下一数据, SPIS位须重新软件置”1”. 如果下 一数据没有写入数据缓冲器, 当使用内部时钟时数据传输不会启动. 开始移位 开始移位 SPIS RBF WBE 移位完成 SO 引脚 a0 a1 a2 a3 a4 a5 a6 a7 b0 b1 b2 b3 b4 b5 b6 b7 SPIF SPID a b 写数据 写数据 图 5-14 发送模式 (8-bit, 1 word) (b) 8位接收模式 设置SPIM0 ~ SPIM1位至接收模式并置SPIS位为1来启动接收, 数据同步串行时钟 连续的从SI引脚输入. 当数据的最后一位接收完毕, SPI中断发生, SPIS位被硬件清 零, 为了接收下一数据, SPIS位须重新软件置1. 如果当前数据没有从数据缓冲器中 读出, 当使用内部时钟时数据接收不会启动. 移位开始 移位开始 移位完成 RBF WBE /SCK 引脚 SI 引脚 a0 a1 a2 a3 a4 a5 a6 a7 b0 b1 b2 b3 b4 b5 b6 b7 SPIF SPID a 读数据 b 读数据 图 5-15 接收模式 (8-bit, 1 word) (c) 8位发送/接收模式 设置SPIM0 ~ SPIM1位至发送/接收模式并写数据到SPID缓冲器. 置SPIS位来启动 传输. 数据同步串行时钟连续的从SO引脚输出和SI引脚输入. 当指定的数据字数目 已经传输完毕, SPI中断发生, SPIS位被硬件清零. 为了接收下一个数据, SPIS须重 版本号 (V1.1) 12.11.2007 (产品更新后规格书不保证同步更新) • 33 EM78P809N 8位OTP微控制器 新软件置1, 在发送模式下的写数据与在接收模式下的读数据用的是同一个数据缓冲 器, 如果当前的数据没有被读出就写数据到缓冲器, 当使用内部时钟时传输不会执 行, 通常是读完接收的数据后才写数据发送. 移位开始 移位开始 SPIS RBF 移位完成 WBE 移位完成 /SCK 引脚 SO 引脚 a0 a1 a2 a3 a4 a5 a6 a7 b0 b1 b2 b3 b4 b5 b6 b7 ST 引脚 c0 c1 c2 c3 c4 c5 c6 c7 d0 d1 d2 d3 d4 d5 d6 d7 SPIF SPID a c 写数据 读数据 b d 写数据 读数据 图 5-16 发送/接收模式(8-bit, 1 word) (d) 多设备连接(/SS) 当选择外部时钟作为数据传输的时钟源时, /SS功能可被使用. 当/SS功能被使能时 该引脚(/SS)即被激活, 否则/SS引脚为普通I/O. 当/SS为高时忽略SDI及SDO引脚上 的数据, 此后SDO不再被驱动. SDO SDI SCK /SS 主器件 Master P.67 P67 P66 PP65 65 PP64 64 /SS SDO SCK SDI SDI 从器件 1 /SS SDO SCK SDI SDI 从器件 2 /SS SDO SCK SDI SDI 从器件 3 /SS SDO SCK SDI SDI 从器件 4 图 5-17 单一主器件和多组从器件的SPI范例结构 34 • 版本号 (V1.1) 12.11.2007 (产品更新后规格书不保证同步更新) EM78P809N 8位OTP微控制器 5.9 定时/计数器 2 定时/计数器 2 电路相关的寄存器 R_BANK 地址 名称 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bank 1 0X08 TC2CR ADD1 ADD0 0 TC2M TC2S R R -- R/W R/W Bank 1 0X09 Bank 0 SFR SFR 0X0A 0x0E 0x0B 0x0E Bit 1 Bit 0 TC2CK2 TC2CK1 TC2CK0 R/W R/W R/W TC2DH TC2D15 TC2D14 TC2D13 TC2D12 TC2D11 TC2D10 TC2D9 TC2D8 R/W Bank 1 Bit 2 R/W R/W R/W TC2DL TC2D7 TC2D6 TC2D5 TC2D4 ISFR1 R/W R/W R/W TC2D3 TC2D2 TC2D1 TC2D0 R/W R/W R/W R/W R/W R/W R/W R/W EXIF5 TCIF2 ADIF 0 EXIF3 TCIF4 SPIF TCIF3 R/W R/W R/W -- R/W R/W R/W R/W INTCR INT1NR INT0EN IMR1 R/W R/W R/W EXIE5 TCIE2 R/W R/W 0 INT3ES1 INT3ES0 R/W R/W ADIE 0 EXIE3 R/W -- R/W 0 INT1ES TC2ES R/W R/W TCIE4 SPIE TCIE3 R/W R/W R/W 图 5-18 定时/计数器 2结构图 版本号 (V1.1) 12.11.2007 (产品更新后规格书不保证同步更新) • 35 EM78P809N 8位OTP微控制器 5.9.1 定时器模式 在定时模式, 加计数是以内部时钟实现的, 当加计数器内容与TCR2 (TCR2H+TCR2L) 相匹配时, 那么中断发生, 计数器被清零. 在计数器清零后加计数继续. 内部时钟 加计数器 0 TCR2 1 2 3 4 5 n-3 n-2 n-1 n 0 2 1 3 n 计数器清 0 匹配 TC2 中断 图 5-19 定时器模式时序图 5.9.2 计数器模式 在计数模式, 加计数是以外部时钟输入引脚(TC2 引脚)实现的, 上升沿或下降沿可通过设 置TC2ES位来选择, 当加计数器内容与TCR2 (TCR2H+TCR2L)相匹配时, 那么中断发 生, 计数器被清零. 在计数器清零后加计数继续. TC2 引脚 加计数器 TCR2 0 1 2 3 4 n-2 n-1 n 0 1 2 3 n 匹配 计数器清 0 TC2 中断 图 5-20计数器模式时序图 (TC2ES = 1) 5.9.3 窗口模式 在窗口模式,内部时钟和TC2引脚的脉冲(窗口脉冲)逻辑与后,在脉冲的上升沿或下降沿 加计数加一, 当加计数器内容与TCR2 (TCR2H+TCR2L)内容相匹配时, 那么中断产生, 定时器清零. 频率(窗口脉冲)须低于所选的内部时钟. 写TCR2L时, 比照被禁止直到TCR2H被写入值. 36 • 版本号 (V1.1) 12.11.2007 (产品更新后规格书不保证同步更新) EM78P809N 8位OTP微控制器 TC2 引脚 内部时钟 加计数器 0 TCR2 1 2 n-3 n-1 n-2 n 0 1 2 3 n 计数器 匹配 清0 TC2 中断 图 5-21 窗口模式时序图 5.10 定时/计数器 3 定时/计数器 3 电路的相关寄存器 R_BANK 地址 Bank 1 0X05 名称 Bit 7 0X06 Bank 0 SFR SFR 0X07 0x0E 0x0B 0x0E 版本号 (V1.1) 12.11.2007 (产品更新后规格书不保证同步更新) Bit 4 Bit 3 R/W R/W R/W R/W Bit 2 Bit 1 Bit 0 0 0 0 -- -- -- TC3DA TC3DA7 TC3DA6 TC3DA5 TC3DA4 TC3DA3 TC3DA2 TC3DA1 TC3DA0 R/W Bank 1 Bit 5 TC3CR TC3CAP TC3S TC3CK1 TC3CK0 TC3M R/W Bank 1 Bit 6 R/W R/W R/W R/W R/W R/W R/W TC3DB TC3DB7 TC3DB6 TC3DB5 TC3DB4 TC3DB3 TC3DB2 TC3DB1 TC3DB0 ISFR1 R/W R/W R/W R/W R/W R/W R/W R/W EXIF5 TCIF2 ADIF 0 EXIF3 TCIF4 SPIF TCIF3 R/W R/W R/W -- R/W R/W R/W R/W INTCR INT1NR INT0EN 0 R/W R/W -- R/W R/W -- R/W R/W EXIE5 TCIE2 ADIE 0 EXIE3 TCIE4 SPIE TCIE3 R/W R/W R/W -- R/W R/W R/W R/W IMR1 INT3ES1 INT3ES0 0 INT1ES TC2ES • 37 EM78P809N 8位OTP微控制器 图 5-22 定时/计数器3结构图 5.10.1 定时器模式 在定时器模式, 加计数是以内部时钟实现的, 当加计数器内容与TCR3DA相匹配时, 那么 中断发生, 计数器被清零. 在计数器清零后加计数继续. 通过置TC3CAP位为”1” 将加计数 器当前的内容载入TCR3DB, 在自动捕获后TC3CAP被清零. 5.10.2 计数器模式 在计数器模式, 加计数是以外部时钟输入引脚(TC3 引脚)完成的, 上升沿或下降沿可通过 INT3ES0位来选择, 但两种时钟沿不能同时被使用. 当加计数器内容与TCR3DA相匹配 时, 那么中断发生, 计数器被清零. 在计数器清零后加计数继续. 通过置TC3CAP位为”1” 将加计数器当前的内容载入TCR3DB, 在自动捕获后TC3CAP位被清零. 5.10.3 捕获模式 在捕获模式, TC3输入引脚的脉宽, 周期, 占空比以这种模式量测, 可用在遥控信号的译码 上. 该计数器以内部时钟运行. 在TC3引脚输入的下降沿(上升沿)时, 计数器的内容被载 入TCR3DA, 之后计数器被清零, 中断发生. 在TC3引脚输入的下降沿(上升沿)到来时, 计 数器内容载入TCR3DB, 计数器仍在计数, 在TC3引脚输入的下一个上升沿到来时, 计数 器的内容载入TCR3DA, 计数器被清零, 又产生中断. 在检测到边沿之前如果有溢出, FFH 被载入TCR3DA并产生溢出中断. 在中断处理期间, 通过检测TCR3DA的值是否为FFH可 确定是否有溢出. 中断(捕获至TCR3DA或溢出检测)产生后, 捕获和溢出检测被停止直到 TCR3DA的值被读出。 38 • 版本号 (V1.1) 12.11.2007 (产品更新后规格书不保证同步更新) EM78P809N 8位OTP微控制器 图 5-23 捕获模式时序图 5.11 定时/计数器 4 定时器 4相关寄存器 R_BANK 地址 Bank 0 0X0B 名称 Bit 7 Bank 0 SFR 0X0C 0x0E 0x0E Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 TC4CR TC4FF1 TC4FF0 TC4S TC4CK2 TC4CK1 TC4CK0 TC4M1 TC4M0 R/W Bank 0 Bit 6 TC4D ISFR1 IMR1 R/W R/W R/W TC4D7 TC4D6 TC4D5 TC4D4 R/W R/W R/W R/W TC4D3 TC4D2 TC4D1 TC4D0 R/W R/W R/W R/W R/W R/W R/W R/W EXIF5 TCIF2 ADIF 0 EXIF3 TCIF4 SPIF TCIF3 R/W R/W R/W -- R/W R/W R/W R/W EXIE5 TCIE2 ADIE 0 EXIE3 TCIE4 SPIE TCIE3 R/W R/W R/W -- R/W R/W R/W R/W 图 5-24 定时/计数器 4结构图 版本号 (V1.1) 12.11.2007 (产品更新后规格书不保证同步更新) • 39 EM78P809N 8位OTP微控制器 5.11.1 定时 器 模式 在定时器模式, 加计数是用内部时钟实现的, 当加计数器内容与TC4D相匹配时, 那么中 断发生, 计数器被清零. 在计数器清零后加计数继续. 5.11.2 计数器模式 在计数器模式, 加计数是在外部时钟输入引脚(TC4引脚)的上升沿到来后实现的, 当加计 数器内容与TC4D相匹配时, 那么中断发生, 计数器被清零. 在计数器清零后加计数继续. 5.11.3 PDO模式 在可编程分离器输出 (PDO) 模式, 加计数是利用内部时钟实现的, TC4D的内容与加计 数器的内容做比较, F/F输出被拴牢, 每次匹配被发现时计数器被清零. F/F输出被取反并 输出到/PDO引脚. 该模式可产生50%占空比的脉冲输出. F/F可被程序初始化, 复位时初 始值为”0”, 每次/PDO输出被拴牢时产生TC4中断. 图 5-25 PDO 模式的时序图 5.11.4 PWM 模式 在脉宽调制(PWM)模式, 加计数是以内部时钟实现的, TC4D内容与加计数器的内容作比 较. 当屏蔽被发现时F/F被拴牢, 计数器仍在计数. 当计数器溢出时, F/F又被拴牢, 之后计 数器被清零. F/F输出被反向并输出至/PWM引脚, 每次溢出产生时即产生TC4中断. TC4D被设置成2级移位寄存器, 输出期间, 不会改变直到一个输出周期完成, 即使TC4D 被重写. 因此, 输出可不断地被改变, 在数据载入TC4D后, 通过置TC4S位为”1”, TC4D也 第一次被移位. 时钟源 加计数器 TC4D 0 1 n-1 n+1 n+2 FE FF 0 n/n n-1 n n+1 n+2 FE n/m 匹配 F/F n 溢出 盖写 FF 0 1 m-1 m m/m 溢出 匹配 移位 /PWM 1个周期 TC4 中断 图 5-26 PWM模式时序图 40 • 版本号 (V1.1) 12.11.2007 (产品更新后规格书不保证同步更新) EM78P809N 8位OTP微控制器 5.12 TCC/WDT 和预分频器 有一个8位计数器可作为TCC的预分频器。PSR0~PSR2位决定TCC的分频系数。在TCC 模式下, 每次写数据至TCC则TCC预分频器被清零。 R1(TCC)是一个8位定时/计数器, TCC时钟源为内部时钟。如果TCC时钟源来自内部时 钟,则每个指令周期TCC加1(无预分频)。选择CLK=Fosc/2或CLK=Fosc/4是由代码 选项 CLK位的状态确定的. 如果CLK位为”0”, 则CLK=Fosc/2; 如果CLK位为“1”,则 CLK=Fosc/4. 看门狗定时器的时钟源是一个独立运行的片内RC振荡器。在正常模式下, 通过设置 WDTO位, WDT溢出(如果使能)将引起设备复位或中断. 在正常模式下, 通过软件编程, WDT可随时被使能或禁止. 在没有预分频情况下, WDT溢出时间大约为18ms(默认), WDT也可用作一个定时器, 在固定时间间隔里产生一次中断. 5.13 I/O Ports I/O寄存器(Port 6、Port 7、Port 8 、Port 9)是双向三态I/O端口。每一个I/O引脚可以 通过I/O控制寄存器(IOC6 ~ IOC9)定义为输入或输出, I/O寄存器和I/O控制寄存器都是可 读写的. Port 6、Port 7、Port 8、 Port 9的I/O接口电路如图5- 27所示. PCRD Q PORT 0 1 P R D CLK Q C L Q P R Q C CLK L M U X PCW R IOD D PDW R PDRD 图 5-27 I/O端口及I/O控制寄存器电路 5.14 复位和唤醒 5.14.1 复位 复位由下面任一种情况引起: (1) 上电复位 (2) /RESET引脚电压为低 (3) 看门狗定时器溢出(如果使能) 版本号 (V1.1) 12.11.2007 (产品更新后规格书不保证同步更新) • 41 EM78P809N 8位OTP微控制器 1 检测到上电复位之后,器件将保持在复位状态约18ms ( 振荡器起振时间). 一旦复位发 生, 器件将执行如下功能. 振荡器起振或运行 程序计数器(R2)清零. 上电时, R3的高两位, R4的高两位及R5的4~6位被清零. 所有I/O引脚设置为输入模式(高阻状态). 看门狗定时器与预分频器清零. 上电时, R3的高2位清零. 上电时, R4的高2位清零. 上电时, R5的高3位清零. CONT寄存器除第6位(INT 标志)外所有位被置"1”. ISFR0、 ISFR1、 ISFR2 寄存器与IMR1、 IMR2 寄存器清零. 器件有两种省电模式: (1) 休眠 模式: R5 (SIS) = 1, SLEP 指令. 内部振荡器关闭, 系统运行停止. (2) 空闲 模式: R5 (SIS)= 0, SLEP 指令 CPU内核停止, 外围设备与振荡电路仍然运行 5.14.2 从休眠模式唤醒 (1) 外部 /SLEEP 引脚 在进入休眠模式后, 器件将被唤醒并执行下一条指令. 所有寄存器保持原来执行”SLEP” 指令前的状态不变. (2) /RESET 引脚拉低 这将引起器件复位, 程序将从地址0处开始. (3) WDT溢出 这将引起器件复位, 程序将从地址0处开始运行. 5.14.3 从空闲 模式唤醒 (1) 所有中断 无论使用哪些中断唤醒, 在进入空闲模式前, 用户需一直使能这种中断, 唤醒后, 所有寄 存器仍保持为进入”SLEP”指令前的值, 然后通过设置对应的中断使能位来确定设备是执 行中断子程序还是继续执行下一指令. 中断服务子程序返回后(RETI), 程序将跳 至”SLEP”指令的下一条指令处. 1 VDD = 5V,建立时间= 16.2ms ± 30% VDD = 3V, 建立时间 = 19.6ms ± 30% 42 • 版本号 (V1.1) 12.11.2007 (产品更新后规格书不保证同步更新) EM78P809N 8位OTP微控制器 (2) /RESET 引脚拉低 这将引起器件复位, 程序将从地址0处开始运行. (3) WDT 溢出 这将引起器件复位, 程序将从地址0处开始运行. 表 6 寄存器初始值总述 地址 名称 0x06 IOC6 0x07 IOC7 0x08 IOC8 0x09 IOC9 0x0B INTCR 0x0C ADOSCR 0x0E IMR1 0x0F IMR2 N/A CONT 0x00 R0 上电 (IAR) /RESET 和 WDT 溢出 0x01 0x02 复位类型 位名 上电 /RESET 和 WDT 溢出 从 休眠, 空闲 模式唤醒 位名 上电 /RESET 和 WDT 溢出 从 休眠, 空闲 模式唤醒 位名 上电 /RESET 和 WDT 溢出 从 休眠, 空闲 模式唤醒 位名 上电 /RESET 和 WDT 溢出 从 休眠, 空闲 模式唤醒 位名 上电 /RESET 和 WDT 溢出 从 休眠, 空闲 模式唤醒 位名 上电 /RESET 和 WDT 溢出 从 休眠, 空闲 模式唤醒 位名 上电 /RESET 和 WDT 溢出 从 休眠, 空闲 模式唤醒 位名 上电 /RESET 和 WDT 溢出 从 休眠, 空闲 模式唤醒 位名 上电 /RESET 和 WDT 溢出 从 休眠, 空闲 模式唤醒 位名 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 C66 C65 C64 C63 C62 C61 C60 1 1 1 1 1 1 1 1 1 1 1 1 1 1 P P P P P P P X X X C73 C72 C71 C70 U U U 1 1 1 1 U U U 1 1 1 1 U U U P P P P X X X X X C81 C80 U U U U U 1 1 U U U U U 1 1 U U U U U P P C96 C95 C94 C93 C92 C91 C90 1 1 1 1 1 1 1 1 1 1 1 1 1 1 P P P P P P P INT0EN X X INT1ES TC2ES INT3ES1 INT3ES0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 P P P P P P P X X X SIGN VOF2 VOF1 VOF0 0 0 0 0 U U U P P P P U U U P P P P U U U TCIE2 ADIE X EXIE3 TCIE4 SPIE TCIE3 0 0 U 0 0 0 0 0 0 U 0 0 0 0 P P U P P P P UTIE TBIE EXIE1 X TCIE0 UERRIE URIE 0 0 0 0 0 U 0 0 0 0 0 0 U 0 P P P P P U P /INT WDTP1 WDTP0 WDTE PSR2 PSR1 PSR0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 P P P P P P P - U U U U U U U U P P P P P P P P 从 休眠, 空闲 模式唤醒 P P P P P P P P 位名 - - - - - - - - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 从 休眠, 空闲 模式唤醒 P P P P P P P P 位名 上电 /RESET 和 WDT 溢出 从 休眠, 空闲 模式唤醒 0 0 0 0 0 0 0 0 上电 R1 (TCC) /RESET 和 WDT 溢出 R2 (PC) Bit 7 C67 1 1 P X U U U X U U U C97 1 1 P INT1NR 0 0 P CALI 0 0 0 EXIE5 0 0 P X U U U WDT0 0 0 P - 版本号 (V1.1) 12.11.2007 (产品更新后规格书不保证同步更新) 0 0 0 0 0 0 0 0 跳转到中断向量或者执行下一条指令 • 43 EM78P809N 8位OTP微控制器 0x03 0x04 位名 上电 /RESET 和 WDT 溢出 从 休眠, 空闲 模式唤醒 位名 R4 上电 (RSR) /RESET 和 WDT 溢出 从 休眠, 空闲 模式唤醒 R3 (SR) RBS1 RBS0 X 0 0 0 0 0 0 P P P GRBS1 GRBS0 RSR5 0 0 U 0 0 P P P P T 1 t t RSR4 U P P P 1 t t RSR3 U P P Z U P P RSR2 U P P DC U P P RSR1 U P P C U P P RSR0 U P P Bank 0 寄存器 地址 0x05 0x06 0x07 0x08 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 位名 X PS2 PS1 PS0 X X SIS REM 上电 U 0 0 0 U U 0 0 /RESET 和 WDT 溢出 U 0 0 0 U U 0 0 从 休眠, 空闲 模式唤醒 U P P P U U P P 位名 P67 P66 P65 P64 P63 P62 P61 P60 上电 1 1 1 1 1 1 1 1 /RESET 和 WDT 溢出 1 1 1 1 1 1 1 1 从 休眠, 空闲 模式唤醒 P P P P P P P P 位名 X X X X P73 P72 P71 P70 上电 U U U U 1 1 1 1 /RESET 和 WDT 溢出 U U U U 1 1 1 1 从 休眠, 空闲 模式唤醒 U U U U P P P P 名称 SCR Port 6 Port 7 Port 8 复位类型 位名 X X X X X X P81 P80 上电 U U U U U U 1 1 /RESET 和 WDT 溢出 U U U U U U 1 1 从 休眠, 空闲 模式唤醒 0x09 Port 9 U U U U U U P P 位名 P97 P96 P95 P94 P93 P92 P91 P90 上电 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 位名 0x0B TC4CR 0X0D TC4D ISFR0 0X0F 44 • ISFR1 ISFR2 TC4CK2 TC4CK1 TC4CK0 TC4M1 TC4M0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 从 休眠, 空闲 模式唤醒 P P P P P P P P 上电 0 TC4D7 TC4D6 TC4D5 TC4D4 TC4D3 TC4D2 TC4D1 TC4D0 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 位名 X X INT3F INT3R X X WDTIF EXIF0 上电 U U 0 0 U U 0 0 /RESET 和 WDT 溢出 U U 0 0 U U 0 0 从 休眠, 空闲 模式唤醒 0X0E TC4S /RESET 和 WDT 溢出 位名 0x0C TC4FF1 TC4FF0 上电 U U P P U U P P 位名 EXIF5 TCIF2 ADIF X EXIF3 TCIF4 SPIF TCIF3 上电 0 0 0 U 0 0 0 0 /RESET 和 WDT 溢出 0 0 0 U 0 0 0 0 从 休眠, 空闲 模式唤醒 U P P U P P P P 位名 X UERRIF RBFF TBEF TBIF EXIF1 X TCIF0 上电 U 0 0 0 0 0 U 0 /RESET 和 WDT 溢出 U 0 0 0 0 0 U 0 从 休眠, 空闲 模式唤醒 U P P P P P U P 版本号 (V1.1) 12.11.2007 (产品更新后规格书不保证同步更新) EM78P809N 8位OTP微控制器 Bank 1 寄存器 地址 0x05 Bit 7 Bit 6 位名 TC3CAP TC3S 上电 0 0 0 0 /RESET 和 WDT 溢出 0 0 0 P P P 名称 TC3CR 复位类型 从 休眠, 空闲 模式唤醒 位名 0x06 TC3DA TC3DB 0x0C 0X0D 0X0E ADIC ADDH TBKTC U U U 0 0 U U U P P U U U TC3DA7 TC3DA6 TC3DA5 TC3DA4 TC3DA3 TC3DA2 TC3DA1 TC3DA0 0 0 0 0 0 0 0 0 0 0 从 休眠, 空闲 模式唤醒 P P P P P P P P 0 TC3DB7 TC3DB6 TC3DB5 TC3DB4 TC3DB3 TC3DB2 TC3DB1 TC3DB0 上电 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 ADD1 ADD0 X TC2M TC2S U U U 0 0 0 0 P P U 0 0 0 0 0 P P U P 0 P P P 0 TC2CK2 TC2CK1 TC2CK0 0 TC2D15 TC2D14 TC2D13 TC2D12 TC2D11 TC2D10 TC2D9 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 /RESET 和 WDT 溢出 0 0 0 0 0 0 0 0 从 休眠, 空闲 模式唤醒 P P P P P P P P 位名 ADCR X 0 0 位名 0x0B Bit 0 0 从 休眠, 空闲 模式唤醒 TC2DL X 0 位名 0x0A Bit 1 X 0 TC2CR/ 上电 ADDL /RESET 和 WDT 溢出 TC2DH Bit 2 0 从 休眠, 空闲 模式唤醒 0x09 Bit 3 /RESET 和 WDT 溢出 位名 0x08 Bit 4 上电 位名 0x07 Bit 5 TC3CK1 TC3CK0 TC3M ADP ADIS2 ADIS1 ADIS0 上电 0 0 0 0 1 0 0 0 /RESET 和 WDT 溢出 0 0 0 0 1 0 0 0 从 休眠, 空闲 模式唤醒 P * P P P P P P 位名 ADE7 ADE6 ADE5 ADE4 ADE3 ADE2 ADE1 ADE0 上电 0 0 0 0 0 0 0 0 /RESET 和 WDT 溢出 0 0 0 0 0 0 0 0 从 休眠, 空闲 模式唤醒 P P P P P P P P 位名 ADD9 ADD8 ADD7 ADD6 ADD5 ADD4 ADD3 ADD2 上电 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 位名 TEN TCK1 TCK0 X 上电 0 0 0 0 0 0 0 0 /RESET 和 WDT 溢出 0 0 0 0 0 0 0 0 从 休眠, 空闲 模式唤醒 0 P P P 0 P P P 版本号 (V1.1) 12.11.2007 (产品更新后规格书不保证同步更新) ADREF ADRUN ADCK1 ADCK0 0 TBTEN TBTCK2 TBTCK1 TBTCK0 • 45 EM78P809N 8位OTP微控制器 Bank 2 寄存器 地址 名称 复位类型 位名 0x05 0x06 URC1 URC2 URS URRD URTD Bit 5 Bit 4 Bit 3 Bit 2 Bit 0 TXE 0 0 0 0 0 0 0 /RESET 和 WDT 溢出 P P P P P P 0 0 从 休眠, 空闲 模式唤醒 P 0 P P P P P 0 位名 X X X X X 上电 U U 0 0 0 U U U /RESET 和 WDT 溢出 U U P P P U U U 从 休眠, 空闲 模式唤醒 U U P P P U U U URRD8 EVEN SBIM1 SBIM0 UINVEN PRE PRERR OVERR FMERR URBF RXE 上电 U 0 0 0 0 0 0 0 /RESET 和 WDT 溢出 P P P 0 0 0 0 0 从 休眠, 空闲 模式唤醒 P P P P P P P 0 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 位名 0x09 Bit 6 U 位名 0x08 Bit 7 上电 位名 0x07 Bit 1 URTD8 UMODE1 UMODE0 BRATE2 BRATE1 BRATE0 UTBE URTD 7 URTD 6 URTD 5 URTD 4 URTD 3 URTD 2 URTD 1 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 Bank 3 寄存器 地址 名称 0x05 SPIC1 0x06 SPIC2 0x07 SPID1 0x0A PHC1 0x0B PLC2 0x0C PHC2 0x0D PLC2 46 • 复位类型 位名 上电 /RESET 和 WDT 溢出 从 休眠, 空闲 模式唤醒 位名 上电 /RESET 和 WDT 溢出 从 休眠, 空闲 模式唤醒 位名 上电 /RESET 和 WDT 溢出 从 休眠, 空闲 模式唤醒 位名 上电 /RESET 和 WDT 溢出 从 休眠, 空闲 模式唤醒 位名 上电 /RESET 和 WDT 溢出 从 休眠, 空闲 模式唤醒 位名 上电 /RESET 和 WDT 溢出 从 休眠, 空闲 模式唤醒 位名 上电 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 SMP DCOL BRS2 BRS1 BRS0 EDS DORD 0 0 0 0 0 0 0 P P P P P P P P P P P P P P X X X SPIS X SPIM1 SPIM0 0 0 0 0 0 0 0 0 0 0 0 0 P P 0 P P P P P P SPID17 SPID16 SPID15 SPID14 SPID13 SPID12 SPID11 U U U U U U U P P P P P P P P P P P P P P X X /PHE81 /PHE80 /PHE63 /PHE62 /PHE61 U U 1 1 1 1 1 U U 1 1 1 1 1 U U P P P P P X X /PLE81 /PLE80 /PLE63 /PLE62 /PLE61 U U 1 1 1 1 1 U U 1 1 1 1 1 U U P P P P P X X X X /PHE73 /PHE72 /PHE71 U U U U 1 1 1 U U U U 1 1 1 U U U U P P P X X X X /PLE73 /PLE72 /PLE71 U U U U 1 1 1 Bit 0 WBE 0 0 P RBF 0 0 P SPID10 U P P /PHE60 1 1 P /PLE60 1 1 P /PHE70 1 1 P /PLE70 1 /RESET 和 WDT 溢出 U U U U 1 1 1 1 从 休眠, 空闲 模式唤醒 U U U U P P P P 版本号 (V1.1) 12.11.2007 (产品更新后规格书不保证同步更新) EM78P809N 8位OTP微控制器 通用寄存器 地址 0x10 R10 ~ ~ 0x3F Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 位名 - - - - - - - - 上电 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 名称 复位类型 R3F 从 休眠, 空闲 模式唤醒 注意: X: 未使用. U: 未知. P: 复位前的值. t: 查表 7 (*) 0: 从休眠唤醒 P: 从空闲模式唤醒 5.14.4 状态寄存器的RST, T与P的状态 T与P的值用于判断器件由什么唤醒, 表 7 列出了可影响T与P状态的事件. 表 7. 复位后RST, T与P的值 T P 上电 1 1 运行模式下/RESET 引脚复位 *P *P 休眠模式下/RESET 引脚唤醒 *P *P 空闲模式下/RESET 引脚唤醒 *P *P 运行模式下 WDT 溢出 0 *P 休眠模式下 WDT 溢出唤醒 0 *P 空闲模式下 WDT 溢出唤醒 0 *P T P 上电 1 1 WDTC 指令 1 1 WDT 溢出 0 *P SLEP 指令 1 0 休眠模式下唤醒 *P *P 复位类型 *P:复位前的值 表 8 影响T和P状态的事件 事件 *P: 复位前的值 版本号 (V1.1) 12.11.2007 (产品更新后规格书不保证同步更新) • 47 EM78P809N 8位OTP微控制器 VDD D Q CLK CLR 振荡器 CLK 上电 复位 电压 检测 WDTE WDT WDT 溢出 RESET 启动时间 /RESET 图 5-28 复位控制框图 5.15 中断 EM78P809N有下表所示15种中断 (9 种外部中断, 6种内部中断): 表 9 中断向量 中断源 使能条件 中断标志 中断向量 优先级 复位 - - 0000 高0 内部 WDT ENI + WDTEN WDTIF 0003 1 外部 INT0 ENI + INT0EN=1 EXIEF0 0006 2 内部 TCC ENI + TCIE0=1 TCIF0 0009 3 外部 INT1 ENI + EXIE1=1 EXIF1 000F 4 内部 TBT ENI + TBIE=1 TBIF 0012 5 内部 UART 传送 ENI + UTIE=1 TBEF 0015 6 内部 UART 接收 ENI + URIE=1 RBFF 0018 7 内部 UART 接收错误 ENI+UERRIE=1 UERRIF 001B 8 内部 TC3 ENI + TCIE3=1 TCIF3 0021 9 内部 SPI ENI + SPIE=1 SPIF 0024 10 内部 TC4 ENI + TCIE4=1 TCIF4 0027 11 外部 INT3 ENI + EXIE3=1 EXIF3 002A 12 内部 AD ENI + ADIE=1 ADIF 0030 13 内部 TC2 ENI + TCIE2=1 TCIF2 0033 14 外部 INT5 ENI + EXIE5=1 EXIF5 0036 低 15 内部 / 外部 48 • 版本号 (V1.1) 12.11.2007 (产品更新后规格书不保证同步更新) EM78P809N 8位OTP微控制器 ISFR0、ISFR1、ISFR2是中断状态寄存器, 其相关标志位记录了中断请求. IMR1与IMR2 为中断屏蔽寄存器. 全局中断的使能和禁止可通过执行ENI指令与DISI指令实现. 当其中 一个中断(使能)发生时, 下一指令将从对应的中断向量地址处开始执行. 在离开中断服务 程序前, 需由指令清除中断标志位, 以免发生重复中断. 中断状态寄存器(ISFR)的标志位(除ICIF位外)的置位与其屏蔽位的状态或ENI的执行无 关. RETI指令结束中断子程序并使能全局中断(自动执行ENI指令). 5.16 振荡 5.16.1 振荡模式 EM78P809N可工作于两种不同的振荡模式, 即晶体振荡器模式和外部RC振荡器模式 (ERC). 用户可通过代码选项寄存器来选择振荡模式. 在不同的VDD下, 晶体/谐振器的最 大工作频率限度如下表所示. 表 10 振荡器模式由SDCS与OSC定义 模式 单时钟 OSC 振荡器 1 高频振荡器 0 ERC VDD 最大频率. (MHz) 3.0 4.0 5.0 10.0 表 11 最大运行速率 条件 高频振荡器 5.16.2 晶体振荡器/陶瓷谐振器(晶体) EM78P809N有一时钟发生器, 即Fc(高频), 可被OSCI引脚上的外部时钟信号驱动. 在多数的应用中, OSCI与OSCO引脚可接晶体或陶瓷谐振器来产生振荡, 表 12 列出了 C1和C2的推荐值. 由于每个谐振器都有各自的特性, 用户应参考其规格来选择适当的C1 和C2值. 对于AT 切片晶体需串联一个电阻Rs. OSCI 外部时钟 OSCO EM78P809N 图 5-29 晶体/谐振器电路结构图 版本号 (V1.1) 12.11.2007 (产品更新后规格书不保证同步更新) • 49 EM78P809N 8位OTP微控制器 C1 OSCI EM78P809N 晶振 OSCO RS C2 图. 5-30 晶体/谐振器电路结构图 表12 晶体振荡器/陶瓷谐振器匹配电容的选择 振荡模式 频率模式 陶瓷谐振器 HXT HXT 晶体振荡器 频率 C1 (pF) C2 (pF) 2.0 MHz 20~40 20~40 4.0 MHz 10~30 10~30 1.0MHz 15~30 15~30 2.0MHz 15 15 4.0MHz 15 15 33 0 33 0 C OSCI 740 4 EM78P809N 740 4 740 4 晶振 图 5-31晶体模式/谐振器串联电路结构图 4.7 K 10 K Vdd OSCI 740 4 EM78P809N 740 4 10 K 晶振 C1 C2 图 5-32 晶体模式/谐振器并联电路结构图 50 • 版本号 (V1.1) 12.11.2007 (产品更新后规格书不保证同步更新) EM78P809N 8位OTP微控制器 5.16.3 外部RC振荡模式 对于一些不需要精确计时的应用,使用RC振荡器可以节省一些费用。但是,需注意的是 RC振荡器的频率会受到工作电压、电阻值(Rext)、电容(Cext) 、甚至环境温度的影响。 此外,由于制造工艺的不同,不同芯片的频率也会有微小的差异。 为了获得稳定的系统频率,电容值需不小于20pF,电阻值需不大于1M欧姆, 否则频率就 很容易受噪声、湿度、漏电流的影响。 RC振荡器的电阻值Rext越小,频率越高。另一方面,对于很小的电阻值,如1 KΩ,由 于NMOS不能及时的释放电容电荷,振荡器将变得不稳定。 因此,须注意的是电源电压、环境温度、RC振荡器器件、封装形式及PCB布线方式均 会影响系统频率。. Vdd Rext OSCI Cext EM78P809N 图 5-33 外部RC振动模式电路 表13 RC振荡频率 Cext 20 pF 100 pF 300 pF Rext Fosc 平均值 5V, 25°C Fosc 平均值 3V, 25°C 3.3k 4.32 MHz 3.56 MHz 5.1k 2.83 MHz 2.8 MHz 10k 1.62 MHz 1.57 MHz 100k 184kHz 187kHz 3.3k 1.39 MHz 1.35 MHz 5.1k 950kHz 930kHz 10k 500kHz 490kHz 100k 54kHz 55kHz 3.3k 580kHz 550kHz 5.1k 390kHz 380kHz 10k 200kHz 200kHz 100k 21kHz 21kHz 注意: 1. DIP封装下的测量值. 2. 仅供设计参考 版本号 (V1.1) 12.11.2007 (产品更新后规格书不保证同步更新) • 51 EM78P809N 8位OTP微控制器 5.17 代码选项寄存器 EM78P809N有一个代码选择字, 它并非是一般程序存储器的一部分. 在一般程序执行期 间, 选项位不能被访问. 代码选项寄存器和用户ID寄存器配置: Word 0 Word 1 Word 2 Bit 12~Bit 0 Bit 12~Bit 0 Bit 12~Bit 0 5.17.1 代码选项寄存器 (Word 0) Word 0 Bit 12 ~ 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 CLKS ENWDTB CYES - OSC HLP PR2 PR1 PR0 Bit 12 ~ 9: 未使用 Bit 8 (CLKS): 指令周期选择位. CLKS = “0”: 两个振荡周期 CLKS = “1”: 四个振荡周期 参考指令集部分. Bit 7 (ENWDTB): 看门狗定时器使能位. ENWDTB = “0”: 使能 ENWDTB = “1”: 禁止 Bit 6 (CYES): JMP, CALL指令的周期选择 CYES = “0”: 一个指令周期 CYES = “1”: 两个指令周期 Bit 4 (OSC): 振荡器模式选择 OSC = “0”: RC 模式 OSC = “1”: 晶体模式 Bit 3 (HLP): 功耗选项 HLP = “0”: 低功耗 HLP = “1”: 高功耗 Bit 2~0 (PR2~PR0): 保护位 PR2~PR0 为写保护位, 其设定如下: PR2 PR1 PR0 其它 1 52 • 1 保护 使能 1 禁止 版本号 (V1.1) 12.11.2007 (产品更新后规格书不保证同步更新) EM78P809N 8位OTP微控制器 5.17.2 用户ID寄存器 Word 1 Bit 12~Bit 0 XXXXXXXXXXXXX Word 2 Bit 12~Bit 0 XXXXXXXXXXXXX Bits 12 ~ 0: 用户ID代码 5.18 上电相关事项 任何微控制器在电源达到稳定之前,都不能保证开始正常运行。EM78P809N有一个检 测2.1V电压的电压检测器(POVD), 如果VDD上升足够快(10ms或更短), 它将可靠工 作。然而,在很多要求严格的应用中,还是需要附加外部电路来帮助解决上电问题. 5.18.1 外部上电复位电路 图5-34中的电路使用外部RC产生复位脉冲。脉冲的宽度(时间常数)应保持足够长时 间以使电源Vdd达到最低工作电压。该电路应用在电源电压上升比较慢的情况下,因为 /RESET引脚的漏电大约为±5µA,所以建议R要小于40 K。这样,引脚/RESET的电压将 控制在0.2V以下。二极管(D)在掉电时作为短路回路, 电容C将快速充放电, 限流电阻Rin 用来避免过大的电流或ESD(静电放电)流入/RESET引脚. Vdd R /RESET D EM78P809N Rin C 图 5-34 外部上电复位电路 5.18.2 残留电压保护 更换电池时,器件的电源(Vdd)被断开,但残留电压仍存在。残留电压可能低于Vdd 的最低工作电压,但又不为0,这种情况可能引起复位不良。图5-35 与 图5-36指示出如 何建立一个残留电压的保护电路。 版本号 (V1.1) 12.11.2007 (产品更新后规格书不保证同步更新) • 53 EM78P809N 8位OTP微控制器 Vdd Vdd 33K EM78P809N Q1 10K /RESET 40K 1N4684 图 5-35 残留电压保护电路1 Vdd Vdd R1 EM78P809N Q1 /RESET 40K R2 图 5-36 残留电压保护电路 2 5.19 指令集 每条指令有13位字宽,由一个操作码和一个或多个操作数组成。一般情况下,所有指令 的执行只需一个指令周期(一个指令周期由两个振荡周期组成),但改变程序计数器R2 的指令如"MOV R2,A", "ADD R2,A",或对R2进行算术或逻辑运算的指令(如"SUB R2,A", "BS(C) R2,6","CLR R2"…)除外,这些情况下,执行这些指令需要两个指令周期. 倘若指令周期规格不适合一些应用, 试着做如下修改: (A) 改一个指令周期由4个振荡周期组成. (B) 执行以下命令需两个指令周期; "JMP"、 "CALL"、"RET"、 "RETL"、"RETI", 包括条 件跳转("JBS", "JBC"、"JZ"、, "JZA"、 "DJZ"、"DJZA")指令, 另外, 写程序计数器指令的 执行也需两个指令周期. 范例 (A)由代码选项位选择, 命名为CLK. 如果CLK为低, 那么一个指令周期由两个振荡周 期组成; 如果CLK为高则由四个振荡周期组成. 需注意地是, 在范例(A)中, 一旦选择了四个振荡周期组成一个指令周期, TCC的内部时钟 源就为CLK=Fosc/4, 而非 Fosc/2. 此外, 指令系统还有以下特征: 54 • 版本号 (V1.1) 12.11.2007 (产品更新后规格书不保证同步更新) EM78P809N 8位OTP微控制器 (1) 任何寄存器的每一位均可直接置1, 清零或测试. (2) I/O 寄存器可视为一般的寄存器。即相同的指令可用于I/O 寄存器. 用符号"R"表示寄存器(包括工作寄存器和通用寄存器)中的某一个指定的寄存器,符号 "b" 表示当前寄存器R的某一指定位, 符号"k" 表示一个8或10位的常数或立即数。 十六进 制 二进制指令 助记符 0 0000 0000 0000 0000 NOP 0 0000 0000 0001 0001 DAA 0 0 0 0 0 0 0 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0001 0001 0001 0010 0011 0100 rrrr 0000 0001 0010 0002 0003 0004 000r 0010 0011 0012 CONTW SLEP WDTC IOW R ENI DISI RET 0 0000 0001 0011 0013 RETI 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0000 0000 0000 0000 0000 0001 0001 0001 0001 0010 0010 0010 0010 0011 0011 0011 0011 0100 0100 0100 0100 0101 0101 0101 0101 0100 rrrr rrrr 0000 rrrr rrrr rrrr rrrr rrrr rrrr rrrr rrrr rrrr rrrr rrrr rrrr rrrr rrrr rrrr rrrr rrrr rrrr rrrr rrrr rrrr 0014 001r 00rr 0080 00rr 01rr 01rr 01rr 01rr 02rr 02rr 02rr 02rr 03rr 03rr 03rr 03rr 04rr 04rr 04rr 04rr 05rr 05rr 05rr 05rr CONTR IOR MOV CLRA CLR SUB SUB DECA DEC OR OR AND AND XOR XOR ADD ADD MOV MOV COMA COM INCA INC DJZA DJZ 0001 0001 01rr 1000 11rr 00rr 01rr 10rr 11rr 00rr 01rr 10rr 11rr 00rr 01rr 10rr 11rr 00rr 01rr 10rr 11rr 00rr 01rr 10rr 11rr 版本号 (V1.1) 12.11.2007 (产品更新后规格书不保证同步更新) 操作 R R, A R A, R, R R A, R, A, R, A, R, A, R, A, R, R R R R R R R A R A R A R A R A R R 无操作 寄存器 A 的数由二进制调整 为 BCD 码 A → CONT 0 → WDT, 振荡停止 0 → WDT A → IOCR 使能中断 禁止中断 [栈顶] → PC [栈顶] → PC, 使能中断 CONT → A IOCR → A A→R 0→A 0→R R-A → A R-A → R R-1 → A R-1 → R A∨R→A A∨R→R A&R→A A&R→R A⊕R→A A⊕R→R A+R→A A+R→R R→A R→R /R → A /R → R R+1 → A R+1 → R R-1 → A, 如果为 0 跳过 R-1 → R, 如果为 0 跳过 受影响的 状态位 无 C 无 T, P T, P 1 无 无 无 无 无 无 1 无 无 Z Z Z, C, DC Z, C, DC Z Z Z Z Z Z Z Z Z, C, DC Z, C, DC Z Z Z Z Z Z 无 无 • 55 EM78P809N 8位OTP微控制器 二进制指令 十六进制 助记符 0 0110 00rr rrrr 06rr RRCA R 0 0110 01rr rrrr 06rr RRC R 0 0110 10rr rrrr 06rr RLCA R 0 0110 11rr rrrr 06rr RLC R 0 0111 00rr rrrr 07rr SWAPA R 0 0 0 0 0 0 0 0111 0111 0111 100b 101b 110b 111b rrrr rrrr rrrr rrrr rrrr rrrr rrrr 07rr 07rr 07rr 0xxx 0xxx 0xxx 0xxx SWAP JZA JZ BC BS JBC JBS R R R R, R, R, R, 1 00kk kkkk kkkk 1kkk CALL k 1 1 1 1 1 1 1 1 1 1 01kk 1000 1001 1010 1011 1100 1101 1111 1110 1110 kkkk kkkk kkkk kkkk kkkk kkkk kkkk kkkk kkkk kkkk 1kkk 18kk 19kk 1Akk 1Bkk 1Ckk 1Dkk 1Fkk 1E8k 1E9k JMP MOV OR AND XOR RETL SUB ADD PAGE BANK k A, A, A, A, k A, A, k k 01rr 10rr 11rr bbrr bbrr bbrr bbrr kkkk kkkk kkkk kkkk kkkk kkkk kkkk kkkk 1000 1001 操作 b b b b k k k k k k R(n) → A(n-1), R(0) → C, C → A(7) R(n) → R(n-1), R(0) → C, C → R(7) R(n) → A(n+1), R(7) → C, C → A(0) R(n) → R(n+1), R(7) → (C), C → (R(0) R(0-3) → ( A(4-7), R(4-7) → ( A(0-3) R(0-3) → ( R(4-7) R+1 → A, 如果为 0 跳过 R+1 → R, 如果为 0 跳过 0→ ( R(b) 1→ ( R(b) if R(b)=0, 跳过 if R(b)=1, 跳过 PC+1 → [SP], (Page, k) → (PC) (Page, k) → (PC) k→A Avk→A A&k→A A⊕k→A k → A, [栈顶] → PC k-A → A k+A → A K → R5(6:4) K → R4(7:6) 受影响 的状态 位 C C C C 无 无 无 无 无 无 无 无 无 无 无 Z Z Z 无 Z, C, DC Z, C, DC 无 无 1 注意: 此指令只用于IOC6 ~ IOCA, IMR1, IMR2. 6 最大绝对值范围 项目 工作温度 -40°C 到 85°C 储存温度 -65°C 到 150°C 输入电压 Vss-0.3V 到 Vdd+0.5V Vss-0.3V 到 Vdd+0.5V 2.5V 到 5.5V DC 到 10MHz 输出电压 工作电压 工作频率 56 • 范围 版本号 (V1.1) 12.11.2007 (产品更新后规格书不保证同步更新) EM78P809N 8位OTP微控制器 7 电气特性 7.1 直流电气特性 Ta= 25 °C, VDD= 5.0V ± 5%, VSS= 0V 符号 参数 条件 最小值 典型值 最大值 单位 晶振: VDD= 5V 指令周期为 2 个时钟周期 1 − 10 MHz 外部 RC: VDD= 5V 输入高临界电压(施密特触 发) 漏电流 输入低临界电压 (施密特 触发 ) 漏电流 R: 5.1KΩ, C: 100 pF 630 900 1170 kHz OSCI 在 RC 模式 2.8 4 4.5 V VI 从低到高 , VI=5V 15.5 22 28.5 mA OSCI 在 RC 模式 1.3 1.8 2.7 V VI 从高到低 , VI=2V 12 17 22 mA 输入引脚输入漏电流 VIN = VDD, VSS -1 0 1 µA VIH1 输入高电压(施密特触发 ) Ports 6, 7, 8, 9 0.7VDD − VDD +0.3V V VIL1 输入低电压(施密特触发 ) Ports 6, 7, 8, 9, -0.3V − 0.3 VDD V 0.7 VDD − VDD +0.3V V -0.3V − 0.3 VDD V Fc ERC VIHRC IRC1 VILRC IRC2 IIL VIHT1 VILT1 输入高临界电压(施密特触 /RESET, TCC, INT 发) 输入低临界电压(施密特触 /RESET, TCC, INT 发) VIHX1 时钟输入高电压 OSCI 在晶振模式 0.7VDD − VDD+0.3 V V VILX1 时钟输入低电压 OSCI 在晶振模式 -0.3V − 0.3VDD V IOH1 输出高电压 (Ports 6, 7, 8, 9) VOH = VDD-0.4V -3.5 -5 -6.5 mA IOL1 输出低电压(Port 9) VOL = VSS+0.4V 3 5 7 mA VOL = VSS+0.4V 12 15 20 mA 激活上拉,输入引脚接 VSS 激活下拉,输入引脚接 VDD WDT 禁 所有输入引脚和 止 I/O 引脚 接 VDD, WDT 使 输出引脚悬空 能 -50 50 -75 75 -100 100 µA uA − 0.8 1.5 µA − 6 10 µA VDD=5V, /RESET= '高', Fc=8MHz, CLKS="0", 输出 引脚悬空, WDT 使能 − 1.1 1.5 mA − 3.0 3.5 mA IOL2 IPH IPL ISB1 ISB2 ICC3 ICC4 输出低电压 (Ports 6, Port 7, Port 8) 上拉电流 下拉电流 休眠模式 掉电电流 休眠 模式 掉电电流 空闲模式 2 个时钟周期的工作供电 电流 正常模式 2 个时钟周期的工作供电 电流 注意: 1. 这些参数是理论值(未经测试),仅供参考. 2. 最小值、典型值、最大值是在 25°C的理论值,仅供参考. 版本号 (V1.1) 12.11.2007 (产品更新后规格书不保证同步更新) • 57 EM78P809N 8位OTP微控制器 7.2 AD转换特性 (Vdd=2.5V 到 5.5V, Vss=0V, Ta=25°C) 符号 参数 VAREF 模拟参考电压 VASS VAI IAI1 IAI2 Ivdd Ivref Ivdd Ivref 最小 典型 最大值 单位 值 值 条件 VREF – VASS ≥ 2.5V 2.5 − VDD V Vss − Vss V 模拟输入电压 − VASS − VREF V 模拟供电电流 VDD =VREF=5.0V, VASS=0.0V (参考电压= VDD) 750 850 1000 µA -10 0 +10 µA 模拟供电电流 VDD =VAREF=5.0V, VASS=0.0V 500 (参考电压= VREF) 200 600 820 µA 250 300 µA − 7 8 Bits − 9 10 Bits ADREF=0, 内部 VDD RN1 解析度 RN2 解析度 LN1 线性误差 VDD = 2.5 到 5.5V Ta=25°C 0 ±2 ±4 LSB LN2 线性误差 VDD= 2.5 到 5.5V Ta=25°C 0 ±1 ±2 LSB DNL 差分非线性误差 VDD = 2.5 到 5.5V Ta=25°C 0 ±0.5 ±0.9 LSB FSE1 满量程误差 VDD=VAREF=5.0V, VASS=0.0V ±0 ±2 ±4 LSB FSE2 满量程误差 VDD=VREF=5.0V, VSS = 0.0V ±0 ±1 ±2 LSB OE 失调误差 VDD =VAREF=5.0V, VASS=0.0V ±0 ±0.5 ±1 LSB ZAI 模拟电压源的建议阻抗 − 0 8 10 KΩ ADIV A/D 输入电压范围 VDD =VAREF=5.0V, VASS=0.0V 0 − VAREF V ADOV A/D 输出电压浮动 VDD =VAREF=5.0V, VASS=0.0V, RL=10KΩ 0 0.2 0.3 4.7 4.8 5 TAD A/D 时钟周期 VDD =VAREF=5.0V, VASS=0.0V 4 − − µs TCN A/D 转换时间 VDD =VAREF=5.0V, VASS=0.0V 13 − 13 TAD PSR 电源抑制 VDD =5.0V±0.5V ±0 − ±2 LSB VDD=5.0V, VSS = 0.0V ADREF=1, 外部 VREF VDD=VREF=5.0V, VSS = 0.0V V 注意: 1. 这些参数是理论值 (未经测试),仅供参考. 2. 除了很小的漏电流外,当关闭AD转换时,没有耗电流。 3. 当输入电压增加时AD转换结果不会减少,而没有缺失的代码会导致减少 58 • 版本号 (V1.1) 12.11.2007 (产品更新后规格书不保证同步更新) EM78P809N 8位OTP微控制器 7.3 MCU特性 以下所列图所示特性取自有限的样品,并不保证它的准确性,在此仅用作参考。有些图 片所示数据可能超出规格指定的工作范围。 Vih/Vil(施密特翻转引脚) 5 4.5 Vih 最大值 (-40℃ 到 85℃) 4 Vih Vil(Volt) 3.5 Vih 典型值 25℃ 3 Vih 最小值 (-40℃ 到 85℃) 2.5 Vil 最大值 (-40℃ 到 85℃) 2 1.5 Vil 典型值 25℃ 1 Vil 最小值 (-40℃到 85℃) 0.5 0 2 3 2.5 4 Vdd(Volt) 3.5 5 4.5 5.5 6 图 7-1 P60~P67, P70~P73, P80~P81, P90~P97的 Vih, Vil vs. VDD Voh/Ioh (VDD=5V) 0 -5 Ioh(mA) -10 -15 -20 85 ℃ -25 25℃ -30 - 40 ℃ -35 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 Voh (Volt) 图 7-2 Port 6, Port 7, Port 8 和Port 9的 Voh vs. Ioh, VDD=5V 版本号 (V1.1) 12.11.2007 (产品更新后规格书不保证同步更新) • 59 EM78P809N 8位OTP微控制器 Voh /Ioh (VDD=3V) 0 -2 Ioh(mA) -4 -6 -8 85℃ -10 25℃ - 40℃ -12 0.3 0.6 0.9 1.2 1.5 1.8 2.1 2.4 2.7 3 Voh(Volt) 图 7-3 Port 6, Port 7, Port 8 和Port 9的 Voh vs. Ioh, VDD=3V Vol/Iol (5V) 70 - 40℃ 60 25℃ 85℃ 50 Iol (mA) 40 30 20 10 0 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 Vol (Volt) 图 7-4 Port 6, Port 7 和 Port 8 的Vol vs. Iol, VDD=5V 60 • 版本号 (V1.1) 12.11.2007 (产品更新后规格书不保证同步更新) EM78P809N 8位OTP微控制器 Vol / Iol (3V) 35 30 - 40℃ 25 25℃ 85℃ Iol(mA) 20 15 10 5 0 0 0.3 0.6 0.9 1.2 1.5 1.8 2.1 2.4 2.7 Vol(Volt) 图 7-5 Port 6, Port 7和Port 8的 Vol vs. Iol, VDD=3V Vol/Iol (5V) 30 - 40℃ 25 25℃ 85℃ Iol (mA) 20 15 10 5 0 0 0.5 1 1.5 2 2.5 Vol (Volt) 3 3.5 4 4.5 图 7-6 Port 9 Vol vs. Iol, VDD=5V 版本号 (V1.1) 12.11.2007 (产品更新后规格书不保证同步更新) • 61 EM78P809N 8位OTP微控制器 Vol / Iol (3V) 12 - 40℃ 10 25℃ 8 Iol(mA) 85℃ 6 4 2 0 0 0.3 0.6 0.9 1.2 1.5 1.8 2.1 2.4 2.7 Vol(Volt) 图 7-7 Port 9 Vol vs. Iol, VDD=3V WDT 溢出周期 30 25 WDT (mS) 85℃ 20 25℃ 0℃ 15 - 40℃ 10 5 0 2.5 3 4 3.5 4.5 VDD (Volt) 5 5.5 图 7-8 WDT 溢出周期 vs. VDD,预分频比为 1:1 62 • 版本号 (V1.1) 12.11.2007 (产品更新后规格书不保证同步更新) EM78P809N 8位OTP微控制器 Cext=100pF, 典型 RC OSC 频率 1.4 R=3.3K 频率 (MHz) 1.2 1 R=5.1K 0.8 0.6 R=10K 0.4 0.2 R=100K 0 2.5 3 3.5 4 VDD (Volt) 5 4.5 5.5 图 7-9 典型 RC OSC频率vs. VDD (Cext=100pF, 温度为25°C) ERC OSC1.10 频率与温度的关系(Cext=100pF, Rext=5.1K) 1.08 1.06 Fosc/Fosc(25 ) 1.04 ? 1.02 1.00 0.98 0.96 0.94 -40 -30 -20 0.92 0 -10 10 20 温度 30 40 50 60 70 80 (℃) 图 7-10 典型RC OSC频率和温度的关系 (R和 C 为理想原件) 版本号 (V1.1) 12.11.2007 (产品更新后规格书不保证同步更新) • 63 EM78P809N 8位OTP微控制器 工作电流 ICC3 和ICC4有两个条件. 条件如下: ICC3: VDD=5V, Fosc=8MHz, 两个时钟周期, WDT使能, 空闲模式 ICC4: VDD=5V, Fosc=8MHz, 两个时钟周期, WDT使能, 正常模式 ICC3 和 ICC4 典型值与温度的关系 电流(mA) 4 ICC4典型值 3 2 1 ICC3典型值 0 -40 -20 0 25 50 70 85 温度 (℃) 图 7-11 典型工作电流 (ICC3和 ICC4)和温度的关系, VDD=5V ICC3 和 ICC4 的最大值与温度的关系 电流(mA) 4 ICC4最大值 3 2 ICC3最大值 1 0 -40 -20 0 25 50 70 85 温度 (℃) 图 7-12 最大工作电流 (ICC3 和 ICC4) 和温度的关系, VDD=5V 64 • 版本号 (V1.1) 12.11.2007 (产品更新后规格书不保证同步更新) EM78P809N 8位OTP微控制器 电流(mA) ICC3 和 ICC4 的典型值与温度的关系 4 3 2 ICC4典型值 1 ICC3典型值 0 -40 -20 0 25 50 70 85 70 85 温度 (℃) 图 7-13 典型工作电流 (ICC3和 ICC4)和温度的关系, VDD=3V 电流(mA) ICC3 和 ICC4 最大值与温度的关系 4 3 ICC4最大值 2 1 ICC3最大值 0 -40 -20 0 25 50 温度 (℃) 图 7-14 最大工作电流(ICC3和 ICC4) 和 温度的关系, VDD=3V 版本号 (V1.1) 12.11.2007 (产品更新后规格书不保证同步更新) • 65 EM78P809N 8位OTP微控制器 待机电流ISB1 和 ISB2有两个条件.条件如下: ISB1: VDD=5V, WDT 禁止 ISB2: VDD=5V, WDT 使能 ISB1 和 ISB2 典型值与温度的关系 电流(uA) 9 7 ISB2典型值 5 3 ISB1典型值 1 -1 -40 -20 0 25 50 70 85 70 85 温度 (℃) 图 7-15 典型待机电流 (ISB1和 ISB2)和温度的关系 ISB1 和 ISB2 最大值与温度的关系 电流(uA) 9 ISB2最大值 7 5 3 ISB1最大值 1 -1 -40 -20 0 25 50 温度(℃) 图 7-16 最大待机电流 (ISB1和 ISB2)和温度的关系 66 • 版本号 (V1.1) 12.11.2007 (产品更新后规格书不保证同步更新) EM78P809N 8位OTP微控制器 OSC = 8MHz 3.5 3 I(mA) 2.5 2 1.5 1 0.5 最大值 最小值 0 2.5V 3.0V 3.5V 4.0V 4.5V 5.0V 5.5V VDD(V) 图 7-17 工作模式的V-I 曲线, 工作频率是8MHz 7.4 交流电气特性 Ta=25 °C, VDD=5V±5%, VSS=0V 符号 Dclk Tins 参数 条件 最小值 − 45 50 55 % 200 − DC ns 500 − − DC − ns (Tins+20)/N* 11.3 2000 11.3 16.2 − 21.6 − 16.2 输入时钟的占空比 指令周期 (CLKS="0") 晶振类型 (高频) RC 类型 − 典型值 最大值 单位 Ttcc Tdrh Trst Twdt TCC 输入时间周期 器件复位持续时间 /RESET 脉冲宽度 看门狗定时时间 Tset 输入引脚建立时间 − − 0 21.6 − Thold 输入引脚保持时间 − − 20 − ns Tdelay 输出引脚延迟时间 − 50 − ns − 25 50 ns − 25 50 ns − 25 50 ns 200 − − ns 200 − − ns 400 − − ns − 25 50 ns Ta = 25°C Ta = 25°C Ta = 25°C Cload=20pF SDI 数据输入到 SCK↑或 Tstup1 SDI 数据建立时间 SCK↓的建立时间 SDI 数据输入到 SCK↑或 Thold1 SDI 数据保持时间 SCK↓的保持时间 SCK↑或 SCK↓到 SDO Tvalid1 SDO 输出有效时间 数据输出 从机模式 Tsckh SCK 输入高的时间 (Fmain=8 MHz) 从机模式 Tsckl SCK 输入低的时间 (Fmain=8 MHz) /SS↓到 SCK↑或 Tsetup2 从机模式建立时间 SCK↓(Fmain=8 MHz) 取消选择从机模式延迟 /SS↑到 SDO 输出高阻抗 Tdelay1 时间 延迟时间 ns ms ns ms ns 注意: * N= 选择预分频比 版本号 (V1.1) 12.11.2007 (产品更新后规格书不保证同步更新) • 67 EM78P809N 8位OTP微控制器 7.5 时序图 交流测试输入/输出波形 VDD-0.5V 0.75VDD 0.25VDD 测试点 0.75VDD 0.25VDD GND+0.5V 交 流测 试 : 输入 在被 VDD-0.5V 驱动 时为 逻辑 “ 1” ,在 GND+0.5V 时为 逻辑 “ 0” 。时 序测 量是 以 0.75VDD 代 表逻 辑 “ 1” , 0.25VDD 代表 逻 辑 “ 0” 。 复位时序 (CLK="0") NOP 指令 1被执行 CLK /RESET Tdrh TCC 输入时序(CLKS="0") Tins CLK TCC Ttcc 68 • 版本号 (V1.1) 12.11.2007 (产品更新后规格书不保证同步更新) EM78P809N 8位OTP微控制器 附录 A 封装类型: OTP MCU 封装类型 引脚数 封装型号 EM78P809NPS/NPJ DIP 28 600 mil EM78P809NMS/NMJ SOP 28 300 mil EM78P809NKMS/NKMJ SSOP 28 209 mil 绿色产品不包含危险物质 符合Sony SS-00259 第三版本标准 Pb 含量小于 100ppm Pb 含量符合 Sony 规格说明 项目 EM78P809NxS/xJ 电镀类型 纯锡 成份 (%) Sn: 100% 熔点(°C) 232°C 电阻率 (µΩ-cm) 11.4 硬度(hv) 8~10 伸长 (%) >50% 版本号 (V1.1) 12.11.2007 (产品更新后规格书不保证同步更新) • 69 EM78P809N 8位OTP微控制器 B 封装形式 B.1 28引脚塑封双列直插封装(PDIP)— 600 mil 70 • 版本号 (V1.1) 12.11.2007 (产品更新后规格书不保证同步更新) EM78P809N 8位OTP微控制器 B.2 28引脚塑封小外形封装 (SOP) — 300 mil 版本号 (V1.1) 12.11.2007 (产品更新后规格书不保证同步更新) • 71 EM78P809N 8位OTP微控制器 B.3 28引脚塑封缩小外形封装 (SSOP) — 209 mil 72 • 版本号 (V1.1) 12.11.2007 (产品更新后规格书不保证同步更新) EM78P809N 8位OTP微控制器 C 品质保证和可靠性 测试类别 测试条件 备注 焊料温度=245±5°C, 使用松香在上面停留 5 秒 软焊性 步骤 1: TCT, 65°C (15 分钟)~150°C (15 分钟), 10 次 步骤 2: 在 125°C 烘烤, TD (持续时间)=24 小时 步骤 3: 储存在 30°C/60% , D (持续时间)=192 小时 步骤 4: IR 变化 3 次 前提条件 (Pkg 厚度: 2.5mm 或 适合 SMD IC (例如 SOP, QFP, SOJ 等) Pkg 体积: 350mm3 ----225±5°C) (Pkg 厚度: 2.5mm 或 Pkg 体积: 350mm3 ----240±5°C) -65°C (15 分钟) ~ 150°C (15 分钟), 200 次 温度周期测试 TA =121°C, RH=100%, 压强=2 atm, 高压锅测试 TD (持续时间)= 96 小时 高温 /高湿度测试 TA=85°C, RH=85% , TD (持续时间)=168, 500 小时 高温保存期 TA=150°C, TD (持续时间)=500, 1000 小时 TA=125°C, VCC=最大工作电压, 高温工作寿命 TD (持续时间) =168, 500, 1000 小时 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_VS S (-)模式 C.1 地址陷阱检测 地址陷阱检测是MCU嵌入式自动防止故障危害功能的一种,检测MCU由噪声或类似造 成的功能故障。无论何时MCU试图从ROM区获取一条指令,内部恢复电路将自动开始。 如果检测到噪声引起地址错误,MCU重复执行程序直到噪声消除。 MCU 将继续执行下 一条指令。 版本号 (V1.1) 12.11.2007 (产品更新后规格书不保证同步更新) • 73