SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 描述 ............................................................................................................................................................................. 6 订货信息 ...................................................................................................................................................................... 6 特征 ............................................................................................................................................................................. 6 各封装引脚配置 ........................................................................................................................................................... 8 系统方框图 .................................................................................................................................................................. 9 管脚描述 .................................................................................................................................................................... 10 特殊功能寄存器(SFR) ................................................................................................................................................ 13 1. 总特征 ............................................................................................................................................................... 22 1.1 嵌入式程序存储器 ..................................................................................................................................... 22 1.2 IO 口 ......................................................................................................................................................... 22 1.3 2T/1T 的选择 ............................................................................................................................................. 22 1.4 复位 .......................................................................................................................................................... 23 1.4.1 硬件复位功能 .................................................................................................................................... 23 1.4.2 软件复位功能 .................................................................................................................................... 23 1.4.3 定时访问键寄存器(TAKEY)................................................................................................................ 23 1.4.4 软件复位寄存器(SWRES) ................................................................................................................. 23 1.4.5 软件复位的示例 ................................................................................................................................ 24 1.5 时钟源....................................................................................................................................................... 24 2. 指令设置............................................................................................................................................................ 25 3. 存储器结构 ........................................................................................................................................................ 29 3.1 程序存储器 ................................................................................................................................................ 29 3.2 数据存储器 ................................................................................................................................................ 30 3.3 数据内存-低 128 字节(00h to 7Fh) ............................................................................................................. 31 3.4 数据内存-高 128 字节字节(80h to 0xFFh)................................................................................................... 31 3.5 数据内存-扩展的 6K 字节(0000h ~ 0x17FFh) ............................................................................................. 31 4. CPU 结构 .......................................................................................................................................................... 32 4.1 累加器....................................................................................................................................................... 33 4.2 B 寄存器 ................................................................................................................................................... 33 4.3 程序状态字 ................................................................................................................................................ 33 4.4 堆栈指针( SP ) .......................................................................................................................................... 34 4.5 数据指针( DP ) .......................................................................................................................................... 34 4.6 数据指针 1( DP1 ) .................................................................................................................................... 34 4.7 辅助寄存器( AUX )..................................................................................................................................... 35 4.8 内部 RAM 控制寄存器( RCON ) ................................................................................................................. 35 4.9 时钟控制寄存器( CKCON ) ........................................................................................................................ 35 4.10 接口控制寄存器( IFCON ) .......................................................................................................................... 36 4.11 页面选择 ( PAGESEL ) .............................................................................................................................. 36 4.12 PWM 地址寄存器( PWMADDR ) ................................................................................................................ 38 4.13 PWM 数据寄存器( PWMDATA ) ................................................................................................................. 38 4.14 USB 地址寄存器( USBADDR )................................................................................................................... 38 4.15 USB 数据寄存器( USBDATA ) .................................................................................................................... 39 5. GPIO 管脚型态 .................................................................................................................................................. 40 5.1 P0 (P0 口寄存器)....................................................................................................................................... 40 5.2 P1 (P1 口寄存器)....................................................................................................................................... 41 5.3 P2 (P2 口寄存器)....................................................................................................................................... 41 5.4 P3 (P3 口寄存器)....................................................................................................................................... 41 5.5 P4 (P4 口寄存器)....................................................................................................................................... 41 6. 硬件乘除法器(MDU) .......................................................................................................................................... 42 6.1 运行 MDU 寄存器 ...................................................................................................................................... 42 6.2 乘除法器的设置 ......................................................................................................................................... 43 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 -1- SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 6.2.1 第一阶段:装载 MDx 寄存器, x = 0~5:............................................................................................... 43 6.2.2 第二阶段:执行运算.......................................................................................................................... 43 6.2.3 第三阶段:从 MDx 寄存器上读取结果. .............................................................................................. 44 6.3 标准化....................................................................................................................................................... 44 6.4 位移 .......................................................................................................................................................... 44 7. 定时器 0 和定时器 1........................................................................................................................................... 45 7.1 定时器/计数器模式控制寄存器(TMOD) ...................................................................................................... 45 7.2 定时/计数控制寄存器(TCON) ..................................................................................................................... 46 7.3 计时器 0 寄存器( TL0, TH0 ) ...................................................................................................................... 46 7.4 计时器 1 寄存器( TL1, TH1 ) ...................................................................................................................... 47 7.5 定时器输入频率控制寄存器 ....................................................................................................................... 47 7.6 模式 0 (13 位定时/计数) ............................................................................................................................. 48 7.7 模式 1 (16 位定时/计数) ............................................................................................................................. 48 7.8 模式 2 (8 位自动重载定时/计数) ................................................................................................................. 49 7.9 模式 3 (两个独立 8 位定时/计数(仅定时器 0)) ............................................................................................. 49 8. 定时器 2 以及捕获比较单元................................................................................................................................ 50 8.1 辅助 2 寄存器( AUX2 ) ............................................................................................................................... 51 8.2 定时器 2 控制寄存器 ( T2CON ) ................................................................................................................. 52 8.3 比较/捕获控制寄存器(CCCON) ............................................................................................................. 53 8.4 比较/捕获使能寄存器(CCEN) ..................................................................................................................... 53 8.5 比较/捕捉使能 2 寄存器( CCEN2 ) ........................................................................................................... 54 8.6 定时器 2 寄存器( TL2,TH2 ) ....................................................................................................................... 55 8.7 比较/重载/捕获寄存器( CRCL, CRCH ) ...................................................................................................... 55 8.8 比较/捕捉寄存器 1 ( CCL1, CCH1 )............................................................................................................ 55 8.9 比较/捕获寄存器 2 ( CCL2, CCH2 )............................................................................................................ 55 8.10 比较/捕获寄存器 3( CCL3, CCH3 ) ............................................................................................................ 55 8.11 定时器 2 功能 ............................................................................................................................................ 56 8.11.1 定时器模式 ....................................................................................................................................... 56 8.11.2 外部信号计数模式 ............................................................................................................................. 56 8.11.3 外部信号定时器模式.......................................................................................................................... 57 8.11.4 定时器 2 的重载 ................................................................................................................................ 57 8.12 比较功能 ................................................................................................................................................... 57 8.12.1 比较模式 0 ........................................................................................................................................ 57 8.12.2 比较模式 1 ........................................................................................................................................ 58 8.13 捕获功能 ................................................................................................................................................... 59 8.13.1 捕捉模式 0 ........................................................................................................................................ 59 8.13.2 捕捉模式 1 ........................................................................................................................................ 59 9. 串行接口 0 和 1 ................................................................................................................................................. 61 9.1 串行端口 0 控制寄存器( S0CON ) .............................................................................................................. 61 9.2 串行端口 0 重载寄存器( S0RELL, S0RELH ) .............................................................................................. 62 9.3 串行端口 0 数据缓冲器( S0BUF ) ............................................................................................................... 62 9.4 串行端口 1 控制寄存器( S1CON ) .............................................................................................................. 62 9.5 串行端口 1 重载寄存器( S1RELL, S1RELH ) .............................................................................................. 63 9.6 串行端口 1 数据缓冲器( S1BUF ) ............................................................................................................... 63 9.7 串行接口 0 ................................................................................................................................................ 63 9.7.1 模式 0 ............................................................................................................................................... 63 9.7.2 模式 1 ............................................................................................................................................... 64 9.7.3 模式 2 ............................................................................................................................................... 64 9.7.4 模式 3 ............................................................................................................................................... 64 9.8 串行接口 1 ................................................................................................................................................ 65 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 -2- SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 9.8.1 Mode A ................................................................................................................................................. 65 9.8.2 Mode B ................................................................................................................................................. 66 9.9 串行接口 0 與 1 的多重机通讯.................................................................................................................... 66 9.10 波特率发生器 ............................................................................................................................................ 66 9.10.1 串行接口 0 模式 1 和 3....................................................................................................................... 66 9.10.2 串行接口 1 模式 A 和 B ...................................................................................................................... 68 9.11 波特率时钟源 ............................................................................................................................................ 68 10. 看门狗定时器 ................................................................................................................................................ 69 10.1 看门狗定时器控制寄存器( WDTC ) ............................................................................................................ 71 10.2 看门狗定时器的刷新寄存器( WDTK ) ......................................................................................................... 71 11. 中断 .............................................................................................................................................................. 73 11.1 中断使能 0 寄存器( IEN0 ) ......................................................................................................................... 74 11.2 中断使能 1 寄存器( IEN1 ) ......................................................................................................................... 74 11.3 中断使能 2 寄存器( IEN2 ) ......................................................................................................................... 75 11.4 中断请求寄存器( IRCON ) ......................................................................................................................... 75 11.5 中断请求寄存器 2( IRCON2 )..................................................................................................................... 76 11.6 优先权配置 ................................................................................................................................................ 76 12. 电源管理单元 ................................................................................................................................................ 78 12.1 待机模式(空闲模式) ................................................................................................................................... 78 12.2 停止模式 ................................................................................................................................................... 78 13. 脉宽调制器(PWM) ......................................................................................................................................... 79 13.1 ADC 控制寄存器 2..................................................................................................................................... 81 13.2 PWM 时基控制 0( PWMTBC0 ).................................................................................................................. 82 13.3 PWM 时基控制 1( PWMTBC1 ).................................................................................................................. 83 13.4 PWM 输出双模式( PWMOPMOD ) ............................................................................................................ 83 13.5 PWM 时钟的时基计数器( TBCOUNTERL, TBCOUNTERH ) ...................................................................... 84 13.6 PWM 周期( PERIODL, PERIODH ) ............................................................................................................ 84 13.7 特殊事件比较( SEVTCMPL, SEVTCMPH ) ................................................................................................ 84 13.8 PWM 输出使能( PWMEN ) ........................................................................................................................ 84 13.9 PWM 特殊事件 .......................................................................................................................................... 85 13.10 PWM 时基比例寄存器( PWMTBPOSTSCALE) ...................................................................................... 86 13.11 PWM 中断旗标...................................................................................................................................... 86 13.12 死区 ...................................................................................................................................................... 86 13.12.1 死区 0 用于 PWM 配对 0( DEADTIME0 ) ........................................................................................... 87 13.12.2 死区 1 用于 PWM 配对 1( DEADTIME1 ) ........................................................................................... 87 13.12.3 死区 2 用于 PWM 配对 2( DEADTIME2 ) ........................................................................................... 88 13.12.4 死区 3 用于 PWM 配对 3( DEADTIME3 ) ........................................................................................... 88 13.12.5 改写禁止( OVRIDEDIS ).................................................................................................................... 88 13.12.6 改写数据 ........................................................................................................................................... 89 13.12.7 PWM 极性( PWMPOLARITY )........................................................................................................... 90 13.13 错误配置( FLTCONFIG ) ....................................................................................................................... 91 13.14 PWM 错误输入 ...................................................................................................................................... 91 13.15 错误噪声滤波器..................................................................................................................................... 92 13.16 PWM 配對 0 占空比( DUTY0L, DUTY0H ) ............................................................................................. 93 13.17 PWM 配對 1 占空比( DUTY1L, DUTY1H ) ............................................................................................. 93 13.18 PWM 配對 2 占空比( DUTY2L, DUTY2H ) ............................................................................................. 93 13.19 PWM 配對 3 占空比( DUTY3L, DUTY3H ) ............................................................................................. 94 14. IIC 功能 ......................................................................................................................................................... 95 14.1 IIC 控制寄存器( IICCTL ) ........................................................................................................................... 95 14.2 IIC 状态寄存器( IICS )................................................................................................................................ 96 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 -3- SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 14.3 IIC 地址 1 寄存器( IICA1 ) .......................................................................................................................... 97 14.4 IIC 地址 2 寄存器( IICA2 ) .......................................................................................................................... 98 14.5 IIC 读写寄存器( IICRWD ).......................................................................................................................... 98 14.6 IIC 使能总线发送寄存器( IICEBT ) ............................................................................................................. 98 15. SPI 功能 ...................................................................................................................................................... 100 15.1 SPI 控制寄存器 1 ( SPIC1 ) ..................................................................................................................... 101 15.2 SPI 控制寄存器 2( SPIC2 ) ..................................................................................................................... 102 15.3 SPI 状态寄存器 (SPIS ) ........................................................................................................................... 103 15.4 SPI 发送数据缓冲器 (SPITXD )................................................................................................................ 104 15.5 SPI 接收数据缓冲器 (SPIRXD) ................................................................................................................ 104 16. KBI –键盘接口 ............................................................................................................................................. 105 16.1 键盘级别选择器寄存器 ( KBLS ) .............................................................................................................. 106 16.2 键盘中断使能寄存器( KBE )..................................................................................................................... 107 16.3 键盘中断旗标寄存器( KBF ) ..................................................................................................................... 107 16.4 键盘去反弹控制寄存器( KBD ) ................................................................................................................. 108 17. LVI & LVR–低电压中断和低电压复位 ........................................................................................................... 109 17.1 低压控制寄存器 ( LVC ) ........................................................................................................................... 109 18. 10 位模拟数字转换器(ADC) .......................................................................................................................... 110 18.1 ADC 控制寄存器 1( ADCC1 ) .................................................................................................................... 110 18.2 ADC 控制寄存器( ADCC2) ........................................................................................................................ 111 18.3 ADC 数据( ADCDH, ADCDL ) ................................................................................................................... 112 18.4 ADC 时钟选择( ADCCS ) .......................................................................................................................... 112 19. USB 功能 ..................................................................................................................................................... 113 19.1 USB 器件列举传递 ................................................................................................................................... 113 19.2 USB 中断输入传递 ................................................................................................................................... 113 19.3 USB 中断输出传递 ................................................................................................................................... 113 19.4 USB 批量从主机传递到器件...................................................................................................................... 113 19.5 USB 批量从器件传递到主机...................................................................................................................... 114 19.6 USB 控制 1 寄存器( UCTRL1 ) ................................................................................................................. 116 19.7 USB 控制 2 寄存器( UCTRL2 ) ................................................................................................................ 116 19.8 USB 状态寄存器( USTAT ) ........................................................................................................................ 117 19.9 USB 器件地址寄存器( DEVADR ) ............................................................................................................. 117 19.10 USB 帧数目寄存器( FRMNUMH, FRMNUML ) ...................................................................................... 118 19.11 USB 主机暂停寄存器( HSTALL ) ........................................................................................................... 118 19.12 USB 器件暂停寄存器( DSTALL ) ........................................................................................................... 118 19.13 USB 握手状态寄存器( HSKSTAT ) ........................................................................................................ 119 19.14 USB 中断使能寄存器 1 ( UIER1 ).......................................................................................................... 119 19.15 USB 中断使能寄存器 2( UIER2 ) ......................................................................................................... 120 19.16 USB 中断旗标寄存器 1( UIFR1 ).......................................................................................................... 121 19.17 USB 中断旗标寄存器 2( UIFR2 ).......................................................................................................... 121 19.18 USB 端点数据就绪寄存器( EPDRDY ) ................................................................................................. 122 19.19 USB 端点 0 数据计数器寄存器( EP0CNT ) ........................................................................................... 122 19.20 USB 端点 1 数据计数器寄存器( EP1CNT ) ........................................................................................... 122 19.21 USB 端点 2 数据计数器寄存器( EP2CNT ) ........................................................................................... 123 19.22 USB 端点 3 数据计数器寄存器( EP3CNT ) ........................................................................................... 123 19.23 USB 端点 4 数据计数器寄存器( EP4CNT ) ........................................................................................... 123 19.24 USB 端点 0 数据寄存器( EP0DATA ) ................................................................................................... 123 19.25 USB 端点 1 数据寄存器( EP1DATA ) .................................................................................................... 124 19.26 USB 端点 2 数据寄存器( EP2DATA ) .................................................................................................... 124 19.27 USB 端点 3 数据寄存器( EP3DATA ) .................................................................................................... 124 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 -4- SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 19.28 USB 端点 4 数据寄存器( EP4DATA ) .................................................................................................... 124 20. 条码( Barcode ) ........................................................................................................................................... 126 20.1 条码控制寄存器( BCCTRL ) ..................................................................................................................... 126 20.2 起始地址到 SRAM 寄存器( ADDR2ML, ADDR2MH ) ................................................................................ 127 20.3 数据寄存器的长度( LNGDATAL, LNGDATAH ) ......................................................................................... 128 20.4 上升的数据寄存器 ( RDATA ) ................................................................................................................... 128 20.5 下降的数据寄存器( FDATA ) .................................................................................................................... 128 21. 在系统编程(Internal ISP) ............................................................................................................................. 129 21.1 ISP 服务程序........................................................................................................................................... 129 21.2 锁定位(N) ................................................................................................................................................ 129 21.3 对 ISP 服务程序编程................................................................................................................................ 130 21.4 启动 ISP 服务程序 ................................................................................................................................... 130 21.5 ISP 寄存器– TAKEY, IFCON, ISPFAH, ISPFAL, ISPFD and ISPFC .......................................................... 131 21.6 时间访问关键登寄存器 ( TAKEY ) ............................................................................................................ 131 21.7 Interface Control Register( IFCON )......................................................................................................... 131 21.8 ISP 闪存地址寄存器 ( ISPFAH, ISPFAL ) ................................................................................................. 132 21.9 ISP 闪存数据寄存器 ( ISPFD ) ................................................................................................................. 132 21.10 ISP 闪存控制寄存器 ( ISPFC )............................................................................................................. 132 22. 運算放大器/比较器....................................................................................................................................... 133 22.1 運算放大器/比较器引脚选择( OpPin )....................................................................................................... 135 22.2 運算放大器/比较器引脚选择 2 ( OpPin2 ) ................................................................................................. 136 22.3 Comparator 0 控制( Cmp0CON ) ............................................................................................................. 136 22.4 Comparator 1 控制( Cmp1CON ) ............................................................................................................. 137 工作环境 .................................................................................................................................................................. 138 DC 电气特性 ............................................................................................................................................................ 138 OPA 电气特性 .......................................................................................................................................................... 140 Comparator 电气特性............................................................................................................................................... 140 LVR (Low Voltage Reset) 电气特性 .......................................................................................................................... 141 LVI (Low Voltage Interrupt) 电气特性 ........................................................................................................................ 141 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 -5- SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 产品目录 SM59A16U1U48, 描述 SM59A16U1是一个1T(每个时钟等于一个机器周期)单 芯片8位微控制器。它具有64KB的嵌入式Flash的程序, 并执行所有ASM51指令与MCS-51完全兼容。 SM59A16U1包含6K+256B的片上RAM,GPIO 可以有38 引脚 (48L封装),各种串行接口及许多外设功能(如下 文所述)。它可以通过编程。在发展阶段,其片上ICE方 便用户在过程中做验证。 SM59A16U1的高性能可以在很短的时间内完成复杂的动 作。大约有三分之一的指令是纯 1T ,平均速度是传统 8051的8倍时间,在所有的1T的 51 系列中是最快的一颗. 其优异的EMI和ESD特性,适合于许多不同的应用开发。 SM59A16U1提供了一些很出色的功能,如USB接口、高 性能PWM,用于馬達控制,高速的10位A / D转换用於条 码阅读器应用。的SM59A16U的所有特点如下。 订货信息 SM59A16U1ihhkL yymmv i: 工艺标志{ U = 2.2V ~ 5.5V} hh: 封装脚位 k: 封装形式后缀{as table below } L: 无铅标志 {无文字即含铅,”P” 即无铅} yy: 年 mm: 月 v: 版本标志{ A, B,…} Postfix V Package LQFP 特征 架构 - 与 MCS-51 指令集兼容 - 1T/2T 可以在运行时快速切换 - 双 16 位数据指针(DPTR0 和 DPTR1) - 38 GPIOs (LQFP 48), GPIO 可以选择四种类型 (准双向,推挽,开漏输出,输入),默认准 双向口(拉) Clock & Power - Operating Voltage: 2.2V ~ 5.5V. - 支援 Xtal, 内置 RC 振荡器(22.1184MHz, 20KHz) 及 PLL 用户选择. - 高速结构,1 个时钟/机器周期(1T), 高达 25MHz - 用于空闲和停止模式的电源管理单元. 存储器. - 64K 字节的片上闪存程序存储器. - 片上嵌入式闪存体支持 ISP/ IAP/ ICP 及 EEPROM 功能. - ISP 服务程序配置在 N * 256 字节(N =0~16) 大小的空间. - 片上扩展 RAM 6K 字节,256 字节是标准的 8052 RAM. - 外部 RAM 可以寻址到 64K 字节. UART 接口. - 两个全双工通信的串行接口(UART 和 UART1), - 附加波特率产生器 IIC 接口 - 一个 IIC 接口(主/从机模式). SPI Interface. - 一个 SPI 接口(主/从机模式) KBI (键盘接口). - P0 口或 P2 口上的键盘接口(默认) 可用于超 过八个中断. OP Controller - 2 片上 OPA /比较器 中断 Controller - 中断有 4 个优先级 - 外部中断为 0,1 定时器 - 三个 16-位的定时器/计数器(计时器 0,1,2) - 可编程的看门狗定时器(WDT) PWM 控制器 - 用于 BLDC 的 8 通道 14 位 PWM(无刷直流马 达)和 CCD 条码阅读器控制. A/D 转换器 - 8 +1 通道 10 位模拟 - 数字转换器 - 独立的 ADC 参考电压 - 外部 I / O 触发 ADC - 藉由特定的 PWM 中断,ADC 自动触发 - ADC 值藉由 DMA 转储到 SRAM. Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 -6- SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 USB 器件 2.0 - 低速: 1.5Mbps, 全速: 12Mbps - 1 个端口的 USB 器件 - 用于 USB 器件有 5 端点 端点 0: 控制 输入/输出. 先进先出: 8 字节 端点 1: 中断输入. 先进先出: 8 字节. 端点 2: 中断输出. 先进先出: 8 字节. 端点 3: Bulk 输入. 先进先出: 64 字节. 端点 4: Bulk 输出. 先进先出: 64 字节. - 藉由 USB,新茂私有的 DFU 提供固件更新功能. CCU 控制器 - 4 路 16 位 比较/捕获/重载功能 - 内部比较器输出可以 CCU 输入源 - 噪声过滤器可经由 CCU 输入与采样频率来选择. 条码解码功能. - 藉由 DMA,ADC 值转换为斜率然后转储到 SRAM - 条码解码有上升/下降斜率设定. MDU (快速的乘法除法单元) - 16* 16,32/16,16/16,32 位的 L / R 移位和 32 位正规化 Other - 片上在线仿真功能(ICE)及片上在线调试功能(OCD) - 增强用户代码保护 - 降低 EMI 模式(ALE 输出抑制) - 低压侦测中断/低压侦测复位(deglitch 500ns). Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 -7- SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 各封装引脚配置 P0.3/PWM3/KBI3/AD3 P0.4/AD4/KBI4/PWM4 P0.5/AD5/KBI5/PWM5 P0.6/AD6/KBI6/PWM6 P0.7/AD7/KBI7/PWM7 P4.6/OCI_SDA P4.4/OCI_SCL P4.1/CC1/IIC_SDA/MOSI P2.7/A15/KBI7/Op0Out(Cmp0Out) P2.6/A14/KBI6/Op0PIn P2.5/A13/KBI5/Op0NIn P2.4/A12/KBI4/Op1PIn 34 33 32 31 30 29 28 27 26 25 35 12 RXD1/ADC2/P1.2 CC2/TXD1/ADC3/P1.3 11 48 T1/P3.5 CC1/T2EX/ADC1/P1.1 ADCEN/T0/P3.4 47 FLTA/WR/P3.6 46 1 VSSALL CC0/T2/ADC0/P1.0 10 45 9 DP 44 FLTB/RD/P3.7 43 8 CAP DM SM59A16U1U48VP IhhVP yymmv (48L LQFP Top View) 7 42 SPI_CLK/TXD1/CC3/P4.3 MISO/RXD1/CC2/P4.2 AVDDU IIC_SDA/SPI_CLK/ADC7/P1.7 41 6 AVDD_ADC SyncMOS 5 40 MOSI/ADC5/P1.5 IIC_SCL/MISO/ADC6/P1.6 VDD 4 PWM0/KBI0/AD0/P0.0 39 3 38 CC3/SS/ADC4/P1.4 37 PWM1/KBI1/AD1/P0.1 2 PWM2/KBI2/AD2/P0.2 36 48 Pin SOP 24 P2.3/A11/KBI3/Op1NIn/CC3 23 P2.2/A10/KBI2/Op1Out(Cmp1Out)/CC2 22 P2.1/A9/KBI1/CC1 21 P2.0/A8/KBI0/CC0 20 19 P4.5/ALE/CLKOUT RESET 18 XTAL1 17 XTAL2 16 P3.0/RXD0 15 14 P3.1/TXD0 P3.2/INT0/TRIGADC 13 P3.3/INT1 附注:出厂默认值注意事项 (1) 为避免偶然的情况下误入 ISP 刻录状态(参考第 21.4 单元),在上电时请确保没有连续的脉冲信号在管脚 RXD P1.0 及管脚 P3.4 必须置高,可于刻录时 (2) OSI_SDA/P4.6 及 OCI_SCL/P4.4 于复位期间为 ICP 刻录功能管脚,复位完成后切换成双向 I/O. Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 -8- SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 Op0/Cmp0 Op1/Cmp1 ADC PWM[7:0] SPI FLTB FLTA KBI ADCEN TRIGADC ADC[7:0] Op0PIn/Op1PIn Op0NIn/Op1NIn Op0Out/Op1Out USB SPI_MISO SPI_MOSI SPI_CLK SPI_SS MAX810 KBI[7:0] RESET DP DM 系统方框图 PWM ADC8 Op0 To ADC SRAM 256Bytes XTAL2 XTAL1 CLKOUT CPU Barcode Decoder DMA SRAM 6KBytes Flash 64K Bytes LVR/LVI MDU ALE WR RD Watchdog IIC_SCL IIC_SDA UART0/1 RXD 0/1 TXD 0/1 Timer2 & CCU CC0~CC3 T2EX T2 Timer 0/1 T1 T0 Port 4 Port 4 Port 3 Port 3 Port 2 Port 2 Port 1 Port 1 Port 0 Port 0 OCI_SDA Interface control OCI_SCL INT1 INT0 IIC ICP ICE Interrupt PWM Trig ADC Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 -9- SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 管脚描述 48L LQFP 代号 I/O 1 P1.2/ADC2/RXD1 I/O 2 P1.3/ADC3/TXD1/C C2 I/O 3 P1.4/ADC4/SS/CC3 I/O 4 P1.5/ADC5/MOSI I/O 5 P1.6/ADC6/MISO/II C_SCL I/O 6 P1.7/ADC7/SPI_CL K/IIC_SDA I/O 7 P4.3/CC3/TXD1/SP I_CLK I/O 8 P4.2/CC2/RXD1/MI SO I/O 9 P3.7/#RD/FLTB I/O 10 P3.6/#WR/FLTA I/O 11 P3.5/T1 I/O 12 P3.4/T0/ADCEN I/O 13 P3.3/#INT1 I/O 描述 * P1口的位2 *模数转换通2 *串行接口通道1接收/发送数据1 * P1口的位3 *模数转换通道03 *串行接口通道1数据传输或接收模式1时钟&计时器1及捕获 * 比较单元通道2 * P1口的位4 *模数转换通道4 * SPI 接口从机跳线 &计时器3及捕获 *比较单元通道3 * P1口的位5 *模数转换通道5 * SPI 接口串行数据线主输出或从输入口 * P1口的位6 *模数转换通道6 * SPI 接口串行数据线主输入或从输出口 * IIC 串行时钟线 * P1口的位7 *模数转换通道7 * SPI 接口时钟 * IIC 串行数据线 * P4口的位3 *比较单元通道3 *串行接口通道1数据传输或接收模式1时钟&计时器1及捕获 * SPI 接口时钟 * P4口的位2 *比较单元通道2 *串行接口通道1接收/发送数据1 * SPI 接口串行数据线主输入或从输出口 * P3口的位7 *外部储存器读取信号 * Fault_B * P3口的位6 *外部储存器写入信号 * Fault_A * P3口的位5 * 计时器1外部输入 * P3口的位4 * 计时器0外部输入 * ADC 监视针 * P3口的位3 * 外部中断 1 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 10 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 48L LQFP 代号 I/O 14 P3.2/#INT0/TRIGA DC I/O 15 P3.1/TXD0 I/O 16 P3.0/RXD0 I/O 17 18 19 XTAL2 XTAL1 RESET O I I 20 P4.5/ALE/CLKOUT I/O 21 P2.0/A8/KBI0/CC0 I/O 22 P2.1/A9/KBI1/CC1 I/O 23 P2.2/A10/KBI2/Op1 Out/CC2 I/O 24 P2.3/A11/KBI3/Op1 NIn/CC3 I/O 25 P2.4/A12/KBI4/Op1 PIn I/O 26 P2.5/A13/KBI5/Op0 NIn I/O 27 P2.6/A14/KBI6/Op0 PIn I/O 28 P2.7/A15/KBI7/Op0 Out I/O 描述 * P3口的位2 * 外部中断 0 * 触发ADC * P3口的位1 * 串行接口通道0数据传输或接收模式0时钟&计时器0及捕获 * P3口的位0 * 串行接口通道0接收/发送数据0 * 晶振输出 * 晶振输入 * 晶振输出 * P4口的位5 * 地址锁存使能 * 内部时钟输出 * P2口的位0 * 外部存储器地址的8位 * KBI 中断0 * 比较单元通道0 * P2口的位1 * 外部存储器地址的9位 * KBI 中断1 * 比较单元通道1 * P2口的位2 * 外部存储器地址的10位 * KBI 中断2 * Op1输出 * 比较单元通道2 * P2口的位3 * 外部存储器地址的11位 * KBI 中断3 * Op1负输入端 * 比较单元通道3 * P2口的位4 * 外部存储器地址的12位 * KBI 中断4 * Op1正输入端 * P2口的位5 * 外部存储器地址的13位 * KBI 中断5 * Op0负输入端 * P2口的位6 * 外部存储器地址的14位 * KBI 中断6 * Op0正输入端 * P2口的位7 * 外部存储器地址的15位 * KBI 中断7 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 11 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 48L LQFP 代号 I/O 29 P4.1/CC1/IIC_SDA/ MOSI I/O 30 P4.4/OCI_SCL I/O 31 P4.6/OCI_SDA I/O 32 P0.7/AD7/KBI7/PW M7 I/O 33 P0.6/AD6/KBI6/PW M6 I/O 34 P0.5/AD5/KBI5/PW M5 I/O 35 P0.4/AD4/KBI4/PW M4 I/O 36 P0.3/AD3/KBI3/PW M3 I/O 37 P0.2/AD2/KBI2/PW M2 I/O 38 P0.1/AD1/KBI1/PW M1 I/O 39 P0.0/AD0/KBI0/PW M0 I/O 40 41 42 43 44 VDD AVDD_ADC AVDDU CAP DM I I I O I/O 描述 * Op0 输出 * P4口的位1 * 比较单元通道1 * IIC 串行数据线 * SPI 接口串行数据线主输出或从输入口 * P4口的位4 * ICE和 ICP 功能的时钟输入 * P4口的位6 * ICE和 ICP 功能的指令及数据输入 * P0口的位7 *外部存储器地址/数据的位7 * KBI 中断7 *宽脉调制通道7 * P0口的位6 * 外部存储器地址/数据的位6 * KBI 中断6 * 宽脉调制通道6 * P0口的位5 * 外部存储器地址/数据的位5 * KBI 中断5 * 宽脉调制通道5 * P0口的位4 * 外部存储器地址/数据的位4 * KBI 中断4 * 宽脉调制通道4 * P0口的位3 * 外部存储器地址/数据的位3 * KBI 中断3 * 宽脉调制通道3 * P0口的位2 * 外部存储器地址/数据的位2 * KBI 中断2 * 宽脉调制通道2 * P0口的1 * 外部存储器地址/数据的位1 * KBI 中断1 * 宽脉调制通道1 * P0口的位0 * 外部存储器地址/数据的位0 * KBI 中断0 * 宽脉调制通道0 * 数位电源电压 * ADC的 电源电压 * USB 的 电源电压 * 挂电容10uF and 0.1uF to GND. * USB D负 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 12 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 48L LQFP 代号 描述 I/O 45 46 DP VSSALL I/O I 47 P1.0/ADC0/T2/CC0 I/O 48 P1.1/ADC1/T2EX/C C1 I/O * USB D正 *供电电源地 * P1口的位0 * 模数转换通道0 * 计时器2外部输入 * 比较单元通道0 * P1口的位1 * 模数转换通道1 * 计时器2捕捉触发及捕获触发器 * 比较单元通道1 特殊功能寄存器(SFR) 特殊功能寄存器分布图表如下所示: Hex\Bin F8 X000 X001 X010 X011 X100 X101 X110 X111 IICS IICCTL IICA1 IICA2 IICRWD IICEBT Cmp0CON Cmp1CON F0 E8 E0 D8 B P4 ACC SPIC1 MD0 ISPFAH PFCON SPIC2 MD1 ISPFAL P3M0 SPITXD MD2 ISPFD P3M1 SPIRXD MD3 ISPFC P4M0 SPIS MD4 OpPin MD5 LVC TAKEY ARCON SWRES F7 EF E7 DF D0 CCEN2 CCCON CCEN IP1 P0M0 CRCL CCL1 S0RELH P0M1 CRCH CCH1 S1RELH P1M0 TL2 CCL2 P2M0 OpPin2 CCL3 PAGESEL P2M1 D7 C8 C0 B8 PSW T2CON IRCON IEN1 CCH3 CF C7 BF B0 A8 P3 IEN0 IP0 S0RELL ADCC1 WDTC ADCDL WDTK ADCCS B7 AF A0 P2 RSTS PWM ADDR PWM DATA USB ADDR USB DATA A7 98 S0CON S0BUF IEN2 90 88 80 Hex\Bin P1 TCON P0 X000 AUX TMOD SP X001 AUX2 TL0 DPL0 X010 P4M1 P1M1 TH2 CCH2 CLKSEL S1CON ADCC2 BARCOD E ADDR S1BUF ADCDH BARCOD E DATA S1RELL KBLS TL1 DPH0 X011 KBE TH0 DPL1 X100 KBF TH1 DPH1 X101 Bin/Hex FF 9F KBD CKCON RCON X110 IRCON2 IFCON PCON X111 97 8F 87 Bin/Hex Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 13 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 Page Mode: page0 Hex\Bin F8 X000 X001 X010 X011 X100 X101 X110 X111 IICS IICCTL IICA1 IICA2 IICRWD IICEBT Cmp0CON Cmp1CON F0 E8 E0 D8 B P4 ACC - SPIC1 MD0 ISPFAH PFCON SPIC2 MD1 ISPFAL P3M0 SPITXD MD2 ISPFD P3M1 SPIRXD MD3 ISPFC P4M0 SPIS MD4 OpPin MD5 LVC TAKEY ARCON SWRES F7 EF E7 DF D0 C8 C0 B8 PSW T2CON IRCON IEN1 CCEN2 CCCON CCEN IP1 P0M0 CRCL CCL1 S0RELH P0M1 CRCH CCH1 S1RELH P1M0 TL2 CCL2 P1M1 TH2 CCH2 CLKSEL P2M0 OPPIN2 CCL3 PAGESEL P2M1 D7 CF C7 BF B0 A8 A0 98 P3 IEN0 P2 S0CON IP0 RSTS S0BUF S0RELL ADCC1 ADCC2 ADCDH WDTC ADCDL WDTK ADCCS IEN2 S1CON S1BUF S1RELL B7 AF A7 9F 90 88 80 Hex\Bin P1 TCON P0 X000 AUX TMOD SP X001 AUX2 TL0 DPL0 X010 KBLS TL1 DPH0 X011 KBE TH0 DPL1 X100 KBF TH1 DPH1 X101 KBD CKCON RCON X110 IRCON2 IFCON PCON X111 97 8F 87 Bin/Hex P4M1 CCH3 Bin/Hex FF Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 14 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 Page Mode: page1 Hex\Bin X000 F8 X001 X010 X011 PWMTB C0 PWMTB C1 PWM OPMOD SEVTCM PL DEADTI ME 2 ISPFD F0 B PERIOD L PERIOD H E8 P4 DEADTI ME0 DEADTI ME1 E0 ACC ISPFAH ISPFAL D8 - PFCON LNG DATAH FLT CONFIG D0 PSW DUTY0L DUTY0H C8 T2CON DUTY3H BCCTRL DUTY1L ADDR2M L C0 IRCON RDATA FDATA B8 IEN1 IP1 S0RELH S1RELH B0 P3 A8 A0 98 X100 TBCOUN TER L SEVTCM PH DEADTI ME 3 ISPFC X101 TBCOUN TER H PWMEN PWMSE V X110 X111 Bin/Hex UCTRL1 UCTRL2 FF USTAT TAKEY F7 PWMTBPO ST SCALE LVC LNG DATAL EF SWRES E7 OVRIDEDI S OVRIDE DATA DF DUTY2H DUTY3L D7 DUTY1H PWM POLARIT Y DUTY2L TL2 TH2 ADDR2MH FRMNU MH FRMNUML HSTALL C7 CLKSEL PAGESEL DSTALL BF FLTNF DEVADR PWMINT F CF UIER1 UIER2 UIFR1 UIFR2 EPDRDY EP0CNT B7 IEN0 P2 HSKSTA T IP0 EP1CNT S0RELL EP2CNT ADCC1 EP3CNT ADCC2 EP4CNT ADCDH ADCDL ADCCS EP0DATA S0CON S0BUF IEN2 EP1DATA EP2DATA P1 AUX IRCON2 97 88 80 Hex\Bin TCON P0 X000 TMOD SP X001 S1BUF EP4DAT A TH0 DPL1 X100 S1RELL 90 S1CON EP3DAT A TL1 DPH0 X011 AF A7 9F IFCON PCON X111 8F 87 Bin/Hex TL0 DPL0 X010 TH1 DPH1 X101 CKCON RCON X110 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 15 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 注:SM59A16U1 特殊功能寄存器的重置值在下表描述. Register P0 SP Location: 80h ~ 8Fh Method Method 2 Method 2 1 Page 0 Page 1 80h 80h 80h 81h 81h 81h Reset value DPL0 82h 82h 82h 00h DPH0 83h 83h 83h 00h DPL1 84h 84h 84h 00h DPH1 85h 85h 85h 00h RCON 86h 86h 86h 00h PCON 87h 87h 87h 40h TCON 88h 88h 88h 00h TMOD TL0 89h 8Ah 89h 8Ah 89h 8Ah 00h 00h Port 0 Stack Pointer Data Pointer 0 Register, Low Byte Data Pointer 0 Register, High Byte Data Pointer 1 Register, Low Byte Data Pointer 1 Register, High Byte Internal RAM Control Register Power Control Register Timer/Counter Control Register Timer Mode Control Timer 0 Register, Low Byte TL1 TH0 TH1 CKCON IFCON 8Bh 8Ch 8Dh 8Eh 8Fh 00h 00h 00h 10h 00h Timer 1 Register, Low Byte Timer 0 Register, High Byte Timer 1 Register, High Byte Clock Control Register Interface Control Register Register P1 AUX AUX2 8Bh 8Bh 8Ch 8Ch 8Dh 8Dh 8Eh 8Eh 8Fh 8Fh Location: 90h ~ 9Fh Method Method 2 Method 2 1 Page 0 Page 1 90h 90h 90h 91h 91h 91h 92h 92h - FFh 07h Description Reset value FFh 00h 00h Description KBLS 93h 93h - 00h KBE 94h 94h - 00h KBF 95h 95h - 00h IRCON2 97h 97h 97h 00h EP3DATA - - 93h 00h EP4DATA - - 94h 00h S0CON 98h 98h 98h 00h Port 1 Auxiliary Register Auxiliary 2 Register Keyboard Level Selection Register Keyboard input Enable Register Keyboard interrupt Fla g Register Interrupt Request Control Register 2 USB Endpoint 3 Data Register USB Endpoint 4 Data Register Serial Port 0, Control Register S0BUF IEN2 99h 9Ah 99h 9Ah 99h 9Ah 00h 00h Serial Port 0, Data Buffer Interrupt Enable Register 2 S1CON 9Bh 9Bh 9Bh 00h Serial Port 1, Control Register Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 16 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 S1RELL 9Dh 9Dh 9Dh 00h EP1DATA - - 9Eh 00h EP2DATA - - 9Fh 00h Register P2 Location: A0h ~ AFh Method Method 2 Method 2 1 Page 0 Page 1 A0h A0h A0h Reset value FFh Serial Port 1, Reload Register, Low Byte USB Endpoint 1 Data Register USB Endpoint 2 Data Register Description Port 2 PWMADDR PWMDATA BARCODE ADDR BARCODE DATA USBDATA A2h A3h - - 00h 00h PWM Address Register PWM Data Register A4h - - 00h Barcode Address Register A5h - - 00h Barcode Data Register A7h - - 00h EP1CNT - - A1h 00h EP2CNT - - A2h 00h EP3CNT - - A3h 00h EP4CNT - - A4h 00h EP0DATA - - A7h 00h IEN0 IP0 A8h A9h A8h A9h A8h A9h 00h 00h S0RELL AAh AAh AAh 00h ADCC1 ADCC2 ABh ACh ABh ACh ABh ACh 00h 00h ADCDH ADh ADh ADh 00h USB Data Register USB Endpoint 1 Data Counter Register USB Endpoint 2 Data Counter Register USB Endpoint 3 Data Counter Register USB Endpoint 4 Data Counter Register USB Endpoint 0 Data Register Interrupt Enable Register 0 Interrupt Priority Register 0 Serial Port 0, Reload Register, Low Byte ADC Control 1 Register ADC Control 2 Register ADC Data Register, High Byte ADC Data Register, Low Byte ADC Clock Select Register ADCDL ADCCS Register P3 AEh AEh AEh AFh AFh AFh Location: B0h ~ BFh Method Method 2 Method 2 1 Page 0 Page 1 B0h B0h B0h 00h 00h Reset value FFh WDTC B6h B6h - 04h WDTK B7h B7h - 00h HSKSTAT - - B1h 80h UIER1 - - B2h 00h UIER2 - - B3h 00h Description Port 3 Watchdog Timer Control Register Watchdog Timer Refresh Key Register USB Handshake Status Register USB Interrupt Enable Register 1 USB Interrupt Enable Register 2 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 17 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 UIFR1 UIFR2 - - B4h B5h 00h 00h EPDRDY - - B6h 2Ah EP0CNT - - B7h 00h IEN1 IP1 B8h B9h B8h B9h B8h B9h 00h 00h S0RELH BAh BAh BAh 00h S1RELH BBh BBh BBh 00h CLKSEL BDh BDh BDh 00h PAGESEL BEh BEh BEh 00h PWMINTF - - BCh 00h USB Interrupt Flag Register 1 USB Interrupt Flag Register 2 USB Endpoint Data Ready Register USB Endpoint 0 Data Counter Register Interrupt Enable Register 1 Interrupt Priority Register 1 Serial Port 0, Reload Register, High Byte Serial Port 1, Reload Register, High Byte System Clock Select Register SFR Page Mode Select Register PWM Interrupt Flag Register DSTALL - 00h USB Device Stall Register Register BFh Location: C0h ~ CFh Method Method 2 Method 2 1 Page 0 Page 1 Reset value Description IRCON C0h C0h C0h 00h CCEN C1h C1h - 00h CCH1 C3h C3h - 00h CCL2 C4h C4h - 00h CCH2 C5h C5h - 00h CCL3 C6h C6h - 00h CCH3 C7h C7h - 00h RDATA - - C1h 19h FDATA - - C2h 18h DEVADR - - C4h 00h FRMNUMH - - C5h 00h FRMNUML - - C6h 00h HSTALL T2CON C8h C8h C7h C8h 00h 00h CCCON C9h C9h - 00h CRCL CAh CAh - 00h TL2 CCh CCh CCh 00h Interrupt Request Control Register Compare/Capture Enable Register Compare/Capture Register 1, High Byte Compare/Capture Register 2, Low Byte Compare/Capture Register 2, High Byte Compare/Capture Register 3, Low Byte Compare/Capture Register 3, High Byte Barcode Rising of Data Register Barcode Falling of Data Register USB Device Address Register USB Frame Number Register, High Byte USB Frame Number Register, Low Byte USB Host Stall Register Timer 2 Control Register Compare/Capture Control Register Compare/Reload/Capture Register, Low Byte Timer 2 Register, Low Byte TH2 CDh CDh CDh 00h Timer 2 Register, High Byte Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 18 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 OpPin2 CEh CEh - 00h DUTY3H - - C9h 00h BCCTRL - - CAh 01h ADDR2ML - - CBh 00h ADDR2MH - - CEh 00h Register PSW Location: D0h ~ DFh Method Method 2 Method 2 1 Page 0 Page 1 D0h D0h D0h Reset value 00h Op/Comparator Pin Select register 2 PWM 3 Duty Register, High Byte Barcode Control Register Barcode Start address to SRAM Register, Low Byte Barcode Start address to SRAM Register, High Byte Description Program Status Word Compare/Capture Enable 2 Register Port 0 Output Mode 1 CCEN2 D1h D1h - 00h P0M1 D3h D3h - 00h P1M0 P1M1 P2M0 P2M1 D4h D5h D6h D7h D4h D5h D6h D7h - 00h 00h 00h 00h DUTY0L - - D1h 00h DUTY1L - - D3h 00h DUTY1H - - D4h 00h DUTY2L - - D5h 00h DUTY2H - - D6h 00h PFCON D9h D9h D9h 00h P3M0 DAh DAh - 00h Port 1 Output Mode 0 Port 1 Output Mode 1 Port 2 Output Mode 0 Port 2 Output Mode 1 PWM 0 Duty Register, Low Byte PWM 1 Duty Register, Low Byte PWM 1 Duty Register, High Byte PWM 2 Duty Register, Low Byte PWM 2 Duty Register, High Byte Peripheral Frequency Control Register Port 3 Output Mode 0 P3M1 P4M0 DBh DCh DBh DCh - 00h 00h Port 3 Output Mode 1 Port 4 Output Mode 0 P4M1 DDh DDh - 00h FLTCONFIG - - DBh 80h FLTNF - - DCh 00h Port 4 Output Mode 1 PWM Fault Configure Register PWM Fault Noise Filter Register PWM POLARITY - - DDh FFh PWM Polarity Register OVRIDEDIS - - DEh FFh PWM Override Disable Register - DFh 00h PWM Override Data Register OVRIDE DATA Register ACC Location: E0h ~ EFh Method Method 2 Method 2 1 Page 0 Page 1 E0h E0h E0h Reset value 00h Description Accumulator Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 19 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 ISPFAH E1h E1h E1h FFh ISPFAL E2h E2h E2h FFh ISPFD ISPFC LVC SWRES P4 E3h E4h E6h E7h E8h E3h E4h E6h E7h E8h E3h E4h E6h E7h E8h FFh 00h 20h 00h FFh ISP Flash Address Register, High Byte ISP Flash Address Register, Low Byte ISP Flash Data Register ISP Flash Control Register Low Voltage Control Register Software Reset Register Port 4 MD0 MD1 E9h EAh E9h EAh - 00h 00h Multiplication/Division Register 0 Multiplication/Division Register 1 MD2 MD3 EBh ECh EBh ECh - 00h 00h Multiplication/Division Register 2 Multiplication/Division Register 3 MD4 MD5 EDh EEh EDh EEh - 00h 00h Multiplication/Division Register 4 Multiplication/Division Register 5 ARCON DEADTIME0 EFh - EFh - E9h 00h 00h Arithmetic Control Register PWM Dead Time 0 Register DEADTIME1 DEADTIME2 - - EAh EBh 00h 00h PWM Dead Time 1 Register PWM Dead Time 2 Register DEADTIME3 PWMSEV PWMTBPOST SCALE - - ECh EDh 00h 00h - - EEh 00h LNGDATAL - EFh 00h PWM Dead Time 3 Register PWM Special Event Register PWM Time Base Post Scale Register Barcode Length of Data Register, High Byte Register B SPIC1 Location: F0h ~ FFh Method Method 2 Method 2 1 Page 0 Page 1 F0h F0h F0h F1h F1h - Reset value Description 00h 08h B Register SPI Control Register 1 SPIC2 SPITXD F2h F3h F2h F3h - 00h 00h SPI Control Register 2 SPI Transmit Data Buffer SPIRXD SPIS F4h F5h F4h F5h - 00h 40h OpPin F6h F6h - 00h TAKEY F7h F7h F7h 00h PERIODL - - F1h FFh PERIODH - - F2h 3Fh SEVTCMPL - - F3h FFh SEVTCMPH - - F4h 3Fh PWMEN - - F5h 00h SPI Receive Data Buffer SPI Status Register Op/Comparator Pin Select Register Time Access Key Register PWM Period Register, Low Byte PWM Period Register, High Byte PWM Special Event Compare Register, Low Byte PWM Special Event Compare Register, High Byte PWM Output Enable Register USTAT - - F6h 00h USB Status Register Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 20 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 IICS IICCTL IICA1 IICA2 IICRWD F8h F9h FAh FBh FCh F8h F9h FAh FBh FCh - 00h 04h A0h 60h 00h IICEBT FDh FDh - 00h Cmp0CON FEh FEh - 00h Cmp1CON FFh FFh - 00h PWMTBC0 - - F9h 00h PWMTBC1 - - FAh 00h PWMOPMOD - - FBh 00h TBCOUNTERL - - FCh 00h TBCOUNTERH - - FDh 00h UCTRL1 - - FEh 20h IIC Status Register IIC Control Register IIC Address 1 Register IIC Address 2 Register IIC Read / Write Register IIC Enable Bus Transaction Register Comparator 0 Control Register Comparator 1 Control Register PWM Time Base Control 0 Register PWM Time Base Control 1 Register PWM Output Pair Mode Register PWM Time Base Counter Register, Low Byte PWM Time Base Counter Register, High Byte USB Control 1 Register UCTRL2 - - FFh 02h USB Control 2 Register Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 21 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 功能描述 1. 总特征 SM59A16U1 是一个8位的微处理器,它的所有功能以及特殊功能寄存器(SFR)的详细定义将在以下章节给出. 1.1 嵌入式程序存储器 可通过编程器或在线编程(ISP)将程序加载到64KB的嵌入式闪存体中,其高品质的闪存体具有100K次的重复可擦写编程并 记忆数据,如EEPROM。 1.2 IO 口 SM59A16U1 有5个I/O ports: Port 0, Port 1, Port 2 , Port 3 and Port4. Ports 0, 1, 2, 3 是 8位口. 这些型态: 准双向口(标 准 8051输出口), 推挽, 开漏, 与仅为输入。 在章节5中有详细说明。 带有斜率的所有的焊盘上的P0,P1,P2,P3和P4,是用于减少电磁干扰(EMI)。IO焊盘可以承受4KV的ESD,人体 模式在高静电环境下,可以保证SM59A16U1的品质。 藉由编写或ISP模式,OCI_SCL 、ALE和OCI_SDA的可配置当I / O端口上的P4.4,P4.5和P4.6. 所有的P0~P4口都可通过转化速率来降低EMI。另一种降低EMI的方式是在禁止ALE输出,可通过特殊功能寄存器 (SFR)来进行选择控制,在高静电环境且在人体接触模式中,其I/O口的ESD可达4KV,可以保证 SM59A16U1 在高静 电环境下的品质。 1.3 2T/1T 的选择 SM59A16U1 是 2T 或 1T MCU,亦即,它的机器周期是两个时钟或一个时钟。换言之,它可以在两个时钟或只有一个时 钟内执行一条指令。2T 模式和 1T 模式之间的差异是在图 1-1及图 1-2.所示. 图 1-1: (a)The waveform of internal instruction signal in 2T mode 图 1-2: (b)The waveform of internal instruction signal in 1T mode 在1T模式下的默认,不是每一指令都可用一个机器周期去执行。所有的指令的确切机器周期数在下一节将会叙述到. Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 22 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 1.4 复位 1.4.1 硬件复位功能 SM59A16U1 提供了片上硬件复位机制, 片上硬件复位的时间长度可以通过编程器或ISP设置。 片上硬件复位的时间长度 25ms (默认) 200ms 100ms 50ms 16ms 8ms 4ms 1.4.2 软件复位功能 SM59A16U1 提供一种软件复位机制来实现整个芯片的复位.要实现软件复位,于程序中需把3个特殊值 55h,AAh和5Ah按 顺序写到TAKEY寄存器来使能软件复位寄存器(SWRES)之写入. 在软件复位寄存器获得可写权后,可以对SWRES寄存器 写入FFh. 硬件将解码出复位讯号它是与其它硬件复位讯号作 “OR”处理. 软件复位寄存器在软件复位过程的最后会进行自 复位. 符号 TAKEY SWRES 1.4.3 描述 Time Access Key register Software Reset register 地址 Bit 7 Bit 6 Bit 5 Bit 4 Software Reset function Bit 3 Bit 2 Bit 1 Bit 0 重置值 F7h TAKEY [7:0] 00H E7h SWRES [7:0] 00H 定时访问键寄存器(TAKEY) 符号: TAKEY 7 6 5 4 3 TAKEY [7:0] 2 1 0 地址: F7H Reset 00H 软件复位寄存器(SWRES) 默认为只读; 软件把 3 个特殊值按顺序写到 TAKEY 寄存器来使能软件复位寄存器 (SWRES)可写. 它们是 MOV TAKEY, #55h MOV TAKEY, #0AAh MOV TAKEY, #5Ah 1.4.4 软件复位寄存器(SWRES) 符号: SWRES 7 6 5 4 3 SWRES [7:0] 2 1 0 地址: E7H Reset 00H SWRES[7:0]: 软件复位寄存器. 在软件复位过程的最后会进行自重置. Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 23 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 SWRES [7:0] = FFh, 产生软件复位. SWRES [7:0] = 00h ~ FEh, 不产生复位动作. 1.4.5 软件复位的示例 MOV TAKEY, #55h MOV TAKEY, #0AAh MOV TAKEY, #5Ah; enable SWRES write attribute MOV SWRES, #0FFh ; software reset MCU 1.5 时钟源 SM59A16U1提供了四种模式设置系统时钟,系统时钟源可以通过编程器或ICP设置. IRC: 内部 RC 振荡器和时钟是 22.1184MHz 已固定(默认值) 20K: 内部 RC 振荡器和时钟为 20K Hz 固定. Xtal: 外部晶振,并且可以连接上 XTAL1/XTAL2. PLL: 根据外部晶振产生一个固定的 48MHz 的频率. - 系统分频时钟不能在 PLL 模式下被分频(“DIVIDE1”),否则 PLL(48MHz)将超过 MCU 的限制(25MHz). - 例如使用 PLL 为系统时钟时: 晶振: 12MHz 系统时钟: PLL (48MHz 固定). 系统分频时钟: Divide 2. MCU产生时钟为24MHz. (48MHz/2) 注: 使用USB时,建议选择6,12或24MHz的晶体. 内部时钟源来源于不同分频的内部OSC如表 1-1所示,系统时钟源可以通过编程器或ICP设置. 表 1-1: Selection of clock source Clock source external crystal (use XTAL1 and XTAL2 pins ) external crystal (only use XTAL1, the XTAL2 define as I/O) 22.1184MHz from internal OSC 22.1184MHz/2 from internal OSC 22.1184MHz/4 from internal OSC 22.1184MHz/16 from internal OSC 对于来源于内部OSC的频率,这将有些许误差,在应用程序中需要精确的频率时,须注意使用. 最大误差如表 1-2 表 1-2: Temperature with variance Temperature Max Variance ±2% 25℃ Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 24 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 2. 指令设置 所有SM59A16U1 的指令都是兼容的二进制码,且具有标准的8051一样的功能,以下表格列出了以SM59A16U1 微控器为核 心的指令集的周期的总结,这里的周期表示为机器周期。 符号 ADD A,Rn 表 2-1: Arithmetic operations 描述 Add register to accumulator 代码 28-2F ADD A,direct Add direct byte to accumulator ADD A,@Ri 字节 1 周期 1 25 2 2 Add indirect RAM to accumulator 26-27 1 2 ADD A,#data ADDC A,Rn ADDC A,direct Add immediate data to accumulator Add register to accumulator with carry flag Add direct byte to A with carry flag 24 38-3F 35 2 1 2 2 1 2 ADDC A,@Ri Add indirect RAM to A with carry flag 36-37 1 2 ADDC A,#data SUBB A,Rn SUBB A,direct Add immediate data to A with carry flag Subtract register from A with borrow Subtract direct byte from A with borrow 34 98-9F 95 2 1 2 2 1 2 SUBB A,@Ri SUBB A,#data INC A INC Rn INC direct Subtract indirect RAM from A with borrow Subtract immediate data from A with borrow Increment accumulator Increment register Increment direct byte 96-97 94 04 08-0F 05 1 2 1 1 2 2 2 1 2 3 INC @Ri INC DPTR DEC A Increment indirect RAM Increment data pointer Decrement accumulator 06-07 A3 14 1 1 1 3 1 1 DEC Rn Decrement register 18-1F 1 2 DEC direct DEC @Ri MUL AB DIV DA A Decrement direct byte Decrement indirect RAM Multiply A and B Divide A by B Decimal adjust accumulator 15 16-17 A4 84 D4 2 1 1 1 1 3 3 5 5 1 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 25 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 符号 ANL A,Rn ANL A,direct 表 2-2: Logic operations 描述 AND register to accumulator AND direct byte to accumulator 代码 58-5F 55 字节 1 2 周期 1 2 ANL A,@Ri ANL A,#data ANL direct,A ANL direct,#data AND indirect RAM to accumulator AND immediate data to accumulator AND accumulator to direct byte AND immediate data to direct byte 56-57 54 52 53 1 2 2 3 2 2 3 4 ORL A,Rn ORL A,direct ORL A,@Ri ORL A,#data OR register to accumulator OR direct byte to accumulator OR indirect RAM to accumulator OR immediate data to accumulator 48-4F 45 46-47 44 1 2 1 2 1 2 2 2 ORL direct,A ORL direct,#data XRL A,Rn XRL A,direct OR accumulator to direct byte OR immediate data to direct byte Exclusive OR register to accumulator Exclusive OR direct byte to accumulator 42 43 68-6F 65 2 3 1 2 3 4 1 2 XRL A,@Ri Exclusive OR indirect RAM to accumulator 66-67 1 2 XRL A,#data XRL direct,A XRL direct,#data CLR A Exclusive OR immediate data to accumulator Exclusive OR accumulator to direct byte Exclusive OR immediate data to direct byte Clear accumulator 64 62 63 E4 2 2 3 1 2 3 4 1 CPL A RL A RLC A RR A Complement accumulator Rotate accumulator left Rotate accumulator left through carry Rotate accumulator right F4 23 33 03 1 1 1 1 1 1 1 1 RRC A SWAP A Rotate accumulator right through carry Swap nibbles within the accumulator 13 C4 1 1 1 1 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 26 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 符号 MOV A,Rn MOV A,direct 表 2-3: Data transfer 描述 Move register to accumulator Move direct byte to accumulator 代码 E8-EF E5 字节 1 2 周期 1 2 MOV A,@Ri MOV A,#data MOV Rn,A MOV Rn,direct Move indirect RAM to accumulator Move immediate data to accumulator Move accumulator to register Move direct byte to register E6-E7 74 F8-FF A8-AF 1 2 1 2 2 2 2 4 MOV Rn,#data MOV direct,A MOV direct,Rn MOV direct1,direct2 Move immediate data to register Move accumulator to direct byte Move register to direct byte Move direct byte to direct byte 78-7F F5 88-8F 85 2 2 2 3 2 3 3 4 MOV direct,@Ri MOV direct,#data MOV @Ri,A MOV @Ri,direct Move indirect RAM to direct byte Move immediate data to direct byte Move accumulator to indirect RAM Move direct byte to indirect RAM 86-87 75 F6-F7 A6-A7 2 3 1 2 4 3 3 5 MOV @Ri,#data Move immediate data to indirect RAM 76-77 2 3 MOV DPTR,#data16 Load data pointer with a 16-bit constant 90 3 3 MOVC A,@A+DPTR Move code byte relative to DPTR to accumulator 93 1 3 MOVC A,@A+PC PUSH direct Move code byte relative to PC to accumulator Push direct byte onto stack 83 C0 1 2 3 4 POP direct XCH A,Rn XCH A,direct XCH A,@Ri XCHD A,@Ri Pop direct byte from stack Exchange register with accumulator Exchange direct byte with accumulator Exchange indirect RAM with accumulator Exchange low-order nibble indir. RAM with A D0 C8-CF C5 C6-C7 D6-D7 2 1 2 1 1 3 2 3 3 3 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 27 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 符号 ACALL addr11 LCALL addr16 表 2-4: Program branches 描述 Absolute subroutine call Long subroutine call 代码 xxx11 12 字节 2 3 周期 6 6 RET RETI AJMP addr11 LJMP addr16 from subroutine from interrupt Absolute jump Long iump 22 32 xxx01 02 1 1 2 3 4 4 3 4 SJMP rel JMP @A+DPTR JZ rel JNZ rel Short jump (relative addr.) Jump indirect relative to the DPTR Jump if accumulator is zero Jump if accumulator is not zero 80 73 60 70 2 1 2 2 3 2 3 3 JC rel JNC JB bit,rel JNB bit,rel Jump if carry flag is set Jump if carry flag is not set Jump if direct bit is set Jump if direct bit is not set 40 50 20 30 2 2 3 3 3 3 4 4 JBC bit,direct rel Jump if direct bit is set and clear bit 10 3 4 CJNE A,direct rel CJNE A,#data rel CJNE Rn,#data rel CJNE @Ri,#data rel Compare direct byte to A and jump if not equal Compare immediate to A and jump if not equal Compare immed. to reg. and jump if not equal Compare immed. to ind. and jump if not equal B5 B4 B8-BF B6-B7 3 3 3 3 4 4 4 4 DJNZ Rn,rel DJNZ direct,rel NOP Decrement register and jump if not zero Decrement direct byte and jump if not zero No operation D8-DF D5 00 2 3 1 3 4 1 CLR C CLR bit 表 2-5: Boolean manipulation 描述 Clear carry flag Clear direct bit 代码 C3 C2 字节 1 2 周期 1 3 SETB C SETB bit CPL C CPL bit Set carry flag Set direct bit Complement carry flag Complement direct bit D3 D2 B3 B2 1 2 1 2 1 3 1 3 ANL C,bit ANL C,/bit ORL C,bit AND direct bit to carry flag AND complement of direct bit to carry OR direct bit to carry flag 82 B0 72 2 2 2 2 2 2 ORL C,/bit OR complement of direct bit to carry A0 2 2 MOV C,bit MOV bit,C Move direct bit to carry flag Move carry flag to direct bit A2 92 2 2 2 3 符号 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 28 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 3. 存储器结构 SM59A16U1 存储器结构和通用的8052结构相同,它们是作为程序存储器的64KB的嵌入式闪存. 3.1 程序存储器 SM59A16U1 有64KB的嵌入式闪存,可做为通用的程序存储或EEPROM.其它还包括最大为4KB的特定ISP服务程序存储 空间. 这64K的地址从$0000 to $FFFF. ISP服务程序的地址从$3C00 to $3FFF. ISP服务程序空间可以被分割N块256字节 (N=0 to 16). 当N=0时,意味着没有ISP复位程序空间可用. 全部的64KB字节空间都被用来做程序存储. 当N=1时,意味着地 址$FF00 to $FFFF保留为ISP服务程序空间. 当N=2意味着内存地址$FE00 to $FFFF保留为ISP服务程序空间等等... 数值 N可以通过编程器或ICP方式编程或设置.它可像EEPROM那样用来记录任何数据(如果要更改程序数据,请先执行页抹 除)。EEPROM的应用功能在第21章节的内部ISP部分有描述。如图 3-1中所示. ISP service Program space, Up to 4K 64K Program Memory space FFFF FF00 FE00 FD00 FC00 FB00 FA00 F900 F800 F700 F600 F500 F400 F300 F200 F100 F000 N=0 N=1 N=2 N=3 N=4 N=5 N=6 N=7 N=8 N=9 N=10 N=11 N=12 N=13 N=14 N=15 N=16 0000 图 3-1: SM59A16U1 programmable Flash Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 29 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 3.2 数据存储器 SM59A16U1有6K+256 B片上SRAM,256字节和通用的8052内部存储器结构一样,当片上SRAM扩大6K字节时,可以 通过外部存储器寻址方式来訪問数据(通过MOVX指令),如图中所示。. (由指令 MOVX). 图 3-2: (a)External memory access as read 图 3-3: (b)External memory access as write 07FF FF FF Higher 128 Bytes (Accessed by indirect addressing mode only) 80 SFR (Accessed by direct addressing mode only) Expanded 6K Bytes (Accessed by direct external addressing mode by instruction MOVX) 80 7F Lower 128 Bytes (Accessed by direct & indirect addressing mode ) 0000 00 图 3-4: RAM architecture Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 30 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 3.3 数据内存-低 128 字节(00h to 7Fh) 数据存储器从00h到FFh的地址和在8052中的定义是一样的。 00h到7Fh的地址可通过直接或者间接寻址方式访问。 00h到1Fh是寄存器的空间, 20h到2Fh是位寻址空间, 30h到7Fh是通用的数据存储区。 3.4 数据内存-高 128 字节字节(80h to 0xFFh) 80h到FFh的地址仅仅能从间接寻址的方式访问,它是一个数据区。 3.5 数据内存-扩展的 6K 字节(0000h ~ 0x17FFh) 从外部地址为 0000h 到17FFh是片上扩大的 SRAM 区域,一共6K字节。这一区域可以是由访问外部直接寻址模式 (MOVX 指令)。指令MOVX @Ri,i=0 的地址空间1可以经由 RCON [7:0] 的特殊功能寄存器$86 RCON (内部 RAM 控 制寄存器)来决定。RCON [7:0] 的默认设置是 00h ( 0 页)。一页数据 RAM 是 256 个字节。 当EMEN =0,内部6K扩展RAM被使能。如果访问存储器空间是大于6K字节,RCON的值被发往P2口来访问外部RAM。 当EMEN =1,内部6K扩展RAM被禁止。 RCON的值是无效的,高字节地址是由P2口寄存器P2 [7:0] 的寄存器内容来决 定。 MOVX @Ri, A MOVX A,@Ri EMEN = 0 EMEN = 1 0 ≦ RCON[7:0] ≦ 23 24 ≦ RCON [7:0] ≦ 255 Addr [15:8] <= RCON[7:0] Port2 [7:0] <= P2 [7:0] Port2 [7:0] <= P2[7:0] Port2 [7:0] <= P2 [7:0] Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 31 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 4. CPU结构 SM59A16U1 结构由以下四部分组成: (1) 控制单元 (2) 算法-逻辑单元 (3) 存储器控制单元 (4) RAM 和 SFR 控制单元 SM59A16U1 结构允许接受来自程序存储器的指令并与RAM或SFR做数据处理,以下各段详细叙述了主要功能寄存器。 符号 描述 地址 Bit 7 ACC B Accumulator B Register Program Status Word Stack Pointer Data Pointer Low 0 Data Pointer High 0 Data Pointer Low 1 Data Pointer High 1 E0h F0h ACC.7 B.7 D0h CY PSW SP DPL0 DPH0 DPL1 DPH1 重置值 ACC.4 B.4 ACC.3 B.3 ACC.2 B.2 ACC.1 B.1 PSW. 1 ACC.0 B.0 00H 00H P 00H RS[1:0] OV 00H 83h DPH0[7:0] 00H 84h DPL1[7:0] 00H 85h DPH1[7:0] 00H 86h Clock Control Register 8Eh CLOC K_RE ADY 8Fh - USBDATA Bit 0 DPL0[7:0] Internal RAM Control Register PWMADD R PWMDAT A USBADD R Bit 1 82h RCON PAGESEL Bit 2 07H 91h Interface Control Register SFR Page Mode Select Register PWM Address Register PWM Data Register USB Address Register USB Data Register F0 Bit 3 SP[7:0] Auxiliary Register IFCON AC Bit 4 81h AUX CKCON Bit 6 Bit 5 8051 Core ACC.6 ACC.5 B.6 B.5 BEh BRGS - P4UR 1 P4SPI P4IIC P0KBI - DPS RCON[7:0] ITS[2:0] CDPR 00H - F32K F16K - 00H - CLKOUT[2:0] 00H EMEN ISPE 00H Page_ num Page_ mode 00H A2h PWMADDR[7:0] 00H A3h PWMDATA[7:0] 00H A6h USBADDR[7:0] 00H A7h USBDATA[7:0] 00H Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 32 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 4.1 累加器 ACC是一个累加器,大部分单操作指令的一个操作数取自累加器. 符号: ACC 7 6 ACC.7 ACC.6 5 ACC05 4 ACC.4 3 ACC.3 2 ACC.2 1 ACC.1 0 ACC.0 地址: E0h Reset 00h 0 B.0 地址: F0h Reset 00h ACC[7:0]: The A (or ACC) register is the standard 8052 accumulator。 4.2 B 寄存器 B寄存器被用于乘法或除法指令,也可作为一般寄存器以存储临时数据。 符号: B 7 B.7 6 B.6 5 B.5 4 B.4 3 B.3 2 B.2 1 B.1 B[7:0]: The B register is the standard 8052 register that serves as a second accumulator. 4.3 程序状态字 符号: PSW 7 6 CY AC 5 F0 4 3 RS [1:0] 2 OV 1 F1 0 P 地址: D0h Reset 00h CY: 进位标志位 AC: 为 BCD 辅助进位标志位 F0: 用户设置标志位 0 RS[1:0] 00 01 10 11 Bank Selected Bank 0 Bank 1 Bank 2 Bank 3 地址 00h – 07h 08h – 0Fh 10h – 17h 18h – 1Fh OV: 溢出标志位 F1: 用户设置标志位 1 P: 奇偶校验位, 受硬件影响, 显示累加器中的奇偶的 1 位,即奇偶校验 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 33 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 4.4 堆栈指针( SP ) 堆栈指针是一个1字节的寄存器,在复位后初始化值为07h。此寄存器在执行PUSH和CALL指令之前增值,使得堆栈指针在 08h开始执行 符号: SP 7 6 5 4 3 2 1 0 SP [7:0] 地址: 81h Reset 07h SP[7:0]: 堆栈指针储存了暂时寄存器的地址,该地址是堆栈指针的起始位置.换言之,它总是指向堆栈指 针的顶端。 4.5 数据指针( DP ) 数据指针为2字节.低位为DPL.高位为DPH.它可以作为一个2字节的寄存器(MOV DPTR,#data16)来使用,或者作为两个寄 存器(例如,MOV DPL,#data8),它通常被用作是运行外部程序或者是数据空间(如,MOVC A,@ A+DPTR 或者各自的MOV A, @ DPTR). 符号: DPL 7 6 5 3 DPL [7:0] 2 1 0 地址: 82h Reset 00h 4 3 DPH [7:0] 2 1 0 地址: 83h Reset 00h 4 DPL[7:0]: Data pointer Low 0 符号: DPH 7 6 5 DPH [7:0]: Data pointer High 0 4.6 数据指针 1( DP1 ) 双数据指针加速了块状数据的运行速度.标准的DPTR 是一个16位的寄存器,是用来寻址外部空间或者外部存储器. 在 SM59A16U1 中,标准的数据指针称为DPTR,第二个数据指针称为DPTR1.选择位用来选择使用的数据指针.数据指针的 选择位位于AUX寄存器的LSB(DPS). 用户通过触发AUX寄存器中的LSB位进行切换. 所有有关的DPTR指令都将为当前选用的DPTR所操作。 符号: DPL1 7 6 5 4 3 DPL1 [7:0] 2 1 0 地址: 84h Reset 00h 4 3 DPH1 [7:0] 2 1 0 地址: 85h Reset 00h DPL1[7:0]: Data pointer Low 1 符号: DPH1 7 6 5 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 34 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 DPH1[7:0]: Data pointer High 1 4.7 辅助寄存器( AUX ) 符号: AUX 7 BRGS 6 - 5 P4SPI 4 P4UR1 3 P4IIC 2 P0KBI 1 - 地址: 91h 0 Reset DPS 00H BRGS: 0 =定时器 1 寄存器上的波特率发生器 1 =串行端口寄存器上的波特率发生器. P4SPI: 0 = P1 口的 SPI 功能. 1 = P4 口的 SPI 功能. P4UR1: 0 = P1 口串行接口 1 功能. 1 = P4 口串行接口 1 功能 P4IIC: 0 = P1 口的 IIC 功能. 1 = P4 口的 IIC 功能. P0KBI: 0 = P2 口的 KBI 功能. 1 = P0 口的 KBI 功能. DPS: DPS = 0 选择数据指针 0. DPS = 1 选择数据指针 0. 4.8 内部 RAM 控制寄存器( RCON ) SM59A16U1在片上有16K字节的扩展RAM,仅可以访问外部存储器寻址方式(MOVX指令)。指令MOVX @ RI,I =0,1的地址空间是由RCON寄存器的 RCON [7:0] 来决定。 RCON[7:0]的默认设置为00h(页0)。 Mnemonic: RCON 7 6 4.9 5 4 3 RCON[7:0] 2 1 5 4 2 1 Address: 86h 0 Reset 00H 时钟控制寄存器( CKCON ) 符号: CKCON 7 6 CLOCK_ READY ITS[2:0] 3 - CLKOUT[2:0] 0 地址: 8Eh Reset 00H CLOCK_READY: 时钟就绪标志 当在运行时改变时钟源,SW 必须检查这个标志; 如果该位被设置,时钟源是稳定的,硬件可以保持正常工作. ITS[2:0]: 指令时钟周期选择. ITS [2:0] 000 001 Mode 1T instruction mode 2T instruction mode Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 35 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 CLKOUT[2:0]: 时钟输出除频选择. CLKOUT[2:0] 000 100 x01 x10 x11 Mode ALE (default) P4.5 Fosc Fosc/2 Fosc/4 主系统时钟源设置为使用振荡器(时钟由晶振输入脚输入)或片内RC振荡器皆可 4.10 接口控制寄存器( IFCON ) Mnemonic: IFCON 7 6 5 CDPR F32K 4 F16K 3 2 - 1 EMEN Address: 8Fh 0 Reset ISPE 00H CDPR: 程序码已加密指示位(仅读) F32K: 闪存大小为 32KB+4 KB(仅读) F16K: 闪存大小为 16 KB + 4 KB (仅读) EMEN: 内部 6K SRAM 使能。(默认是使能) 百万美元 = 0,使能内部 6K RAM 和外部 58 K 的 RAM. 百万美元 = 1,禁止内部 6K RAM,使能外部 64K 的 RAM。 ISPE: SP 功能使能位 ISPE = 1, 允许使用 ISP 功能 ISPE = 0, 禁止使用 ISP 功能 4.11 页面选择 ( PAGESEL ) SM59A16U1 提供了两种不同的方法来设置特殊功能例如(SFR) 如下: SFR 方法 1 (间接模式): 此方法只是 SFR 页面。如果您想要使用 PWM 寄存器的方法 2 中,可以使用间接寻址的设置。 例如:方法 1 中写入数据 0x80h PWMEN 例如。 PAGESEL = 0x0h; // Method 1. PWMADDR = 0xF5h; // PWMEN 间接地址: 0xF5h (间接模式) PWMDATA = 0x80h; // PWMEN 间接地址: 0xF5h (间接模式) SFR 方法 2 (页面模式): 此方法提供了两个 SFR 页以设置寄存器。 例如: PWMEN 间接地址: 0xF5h (间接模式). PAGESEL = 0x3h; // 在方法 2 中写入数据 0x80h PWMEN 例如,第 1 页 PWMEN = 0x80h; // 0X80h 数据写入 PWMEN。 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 36 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 SFR 页模式表: 7 Page_mode Page_num SFR Select 0 0 SFR Method 1 0 1 SFR Method 1 1 0 SFR Method 2, Page 0 1 1 SFR Method 2, Page 1 符号: PAGESEL 6 5 4 3 2 1 Page num 地址: BEh 0 Reset Pagemode 00H Page_num: 在 SFR 方法 2 使用此标志只 0 = 页面 0 模式 1 = 页面 1 模式. Page_mode: 此标志用于选择 SFR 寄存器表. 0 : SFR Method 1 (间接模式). 1 : SFR Method 2 (页面模式). Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 37 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 4.12 PWM 地址寄存器( PWMADDR ) Mnemonic: PWMADDR 7 6 5 4 3 PWMADDR[7:0] 2 1 Address: A2h 0 Reset 00H PWMADDR: PWM 地址寄存器,只可以使用 SFR 方法 1 (间接模式) 中. PWMADDR 和 PWMDATA 需要一起被使用. 4.13 PWM 数据寄存器( PWMDATA ) Mnemonic: PWMDATA 7 6 5 4 3 PWMDATA[7:0] 2 1 Address: A3h 0 Reset 00H PWMDATA: PWM 数据寄存器,只可以使用 SFR 方法 1 (间接模式) 中. PWMADDR 和 PWMDATA 需要一起被使用. 在 SFR 方法 1 中,从 PWM 寄存器读取数据(间接模式) : 示例: 在 SFR 方法 1 中读 PWMSEV 数据. PAGESEL = 0x0h; //方法 1. PWMADDR = 0xEDh; // PWMSEV 间接地址: 0xEDh (间接模式) // (参照方法 2 的页面 1 表 ) Val = PWMDATA; // Val: 从 PWMSEV 中读取数据。 在 SFR 方法 2 中,从 PWM 寄存器读取数据(页面模式): 示例: 在 SFR 方法 2 中读 PWMSEV 数据. (页面 1)。 PAGESEL = 0x3h; // 方法 2,页面 1 (页面模式) Val = PWMSEV; // Val: 从 PWMSEV 中读取数据. PWM 方法 1 和 PWM 方法 2 是相同的结果. 4.14 USB 地址寄存器( USBADDR ) Mnemonic: USBADDR 7 6 5 4 3 USBADDR[7:0] 2 1 Address: A6h 0 Reset 00H USBADDR: USB 地址寄存器,只可以使用 SFR 方法 1 (间接模式) USBADDR 和 USBDATA 需要一起被使用. Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 38 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 4.15 USB 数据寄存器( USBDATA ) Mnemonic: USBDATA 7 6 5 4 3 USBDATA[7:0] 2 1 Address: A7h 0 Reset 00H USBDATA: USB 数据寄存器,只可以使用 SFR 方法 1 (间接模式). SBDATA 和 USBADDR 需要一起被使用. 在 SFR 方法 1 中,写入数据到 USB 寄存器(间接模式): 示例: 在 SFR 方法 1 中, 写入数据 0x1h UCTRL1 寄存器. PAGESEL = 0x0h; //方法 1. USBADDR = 0xFEh; // UCTRL1 间接地址: 0xFEh (间接模式) // (參照方法 2 的页面 1 表) USBDATA = 0x1h; 在 SFR 方法 2 中,写入数据到 USB 寄存器(页面模式): 示例: 写入数据 0x1h UCTRL1 寄存器在 SFR 方法 2 中,页面 1. PAGESEL = 0x3h; // 方法 2,页面 1 (页面模式) UCTRL1 = 0x01h; //写入数据 0x01h 到 UCTRL1. //写入数据 0x01h 到 UCTRL1. USB 方法 1 和 USB 方法 2 是相同的结果. Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 39 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 5. GPIO管脚型态 SM59A16U1 有3个I/O口: Port 0, Port 1,Port2,Port3 and Port 4. Ports 0, 1,2,3是8位口and Port 4是6位口. 它们是: 准双 向 口 ( 标 准 的 8051 端 口 输 出 ), 推 挽 电 路 , 开 漏 , 与 只 输 入 . 两 种 寄 存 器 的 配 置 为 每 个 端 口 的 每 个 位 选 择 输 出 方 式.SM59A16U1 的所有端口可以通过软件配置四种型号的一种.如下表显示: 符号 描述 地址 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 I/O port function register P0M0 Port 0 output mode 0 D2h P0M0 [7:0] P0M1 Port 0 output mode 1 D3h P0M1[7:0] P1M0 Port 1 output mode 0 D4h P1M0[7:0] P1M1 Port 1 output mode 1 D5h P1M1[7:0] P2M0 Port 2 output mode 0 D6h P2M0[7:0] P2M1 Port 2 output mode 1 D7h P2M1[7:0] P3M0 Port 3 output mode 0 DAh P3M0[7:0] P3M1 Port 3 output mode 1 DBh P3M1[7:0] P4M P4M P4M P4M P4M0 Port 4 output mode 0 DCh 0.6 0.5 0.4 0.3 P4M P4M P4M P4M P4M1 Port 4 output mode 1 DDh 1.6 1.5 1.4 1.3 注: 当重置允许时,P0 只输入(甚至 P1M0 重置值为 00h)。 PxM1.y 0 0 1 1 PxM0.y 0 1 0 1 Bit 2 Bit 1 Bit 0 重置值 00H 00H 00H 00H 00H 00H 00H 00H P4M 0.2 P4M 1.2 P4M 0.1 P4M 1.1 - 00H - 00H Port output mode 准双向口 (标准的8051端口输出) 推挽电路 只输入 (high-impedance) 开漏 用户使用OCI_SCL、ALE 和 OCI_SDA 可以透過编写或ISP定义IO管脚 P4.4、P4.5 和 P4.6 。 一般的应用,每个管脚都可独立的置高或置低.如下表显示: 符号 描述 地址 Bit 7 Port 0 Port 1 Port 2 Port 3 Port 4 Port 0 Port 1 Port 2 Port 3 Port 4 80h 90h A0h B0h E8h P0.7 P1.7 P2.7 P3.7 - Bit 6 Ports P0.6 P1.6 P2.6 P3.6 P4.6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 重置值 P0.5 P1.5 P2.5 P3.5 P4.5 P0.4 P1.4 P2.4 P3.4 P4.4 P0.3 P1.3 P2.3 P3.3 P4.3 P0.2 P1.2 P2.2 P3.2 P4.2 P0.1 P1.1 P2.1 P3.1 P4.1 P0.0 P1.0 P2.0 P3.0 - FFh FFh FFh FFh FFh 5.1 P0 (P0 口寄存器) 符号: P0 7 6 P0.7 P0.6 5 P0.5 4 P0.4 3 P0.3 2 P0.2 1 P0.1 0 P0.0 地址: 80h Reset FFh P0.7~ 0: Port0 [7] ~ Port0[0] Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 40 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 5.2 P1 (P1 口寄存器) 符号: P1 7 6 P1.7 P1.6 5 P1.5 3 P1.3 2 P1.2 1 P1.1 地址: 90h 0 Reset P1.0 FFh 4 P1.4 3 P1.3 2 P1.2 1 P1.1 地址: A0h 0 Reset P1.0 FFh 4 P3.4 3 P3.3 2 P3.2 1 P3.1 地址: B0h 0 Reset P3.0 FFh 4 P4.4 3 P4.3 2 P4.2 1 P4.1 Address: E8h 0 Reset FFh 4 P1.4 P1.7~ 0: Port1 [7] ~ Port1 [0] 5.3 P2 (P2 口寄存器) 符号: P2 7 6 P1.7 P1.6 5 P1.5 P2.7~ 0: Port2 [7] ~ Port2 [0] 5.4 P3 (P3 口寄存器) 符号: P3 7 6 P2.7 P3.6 5 P3.5 P3.7~ 0: Por3 [7] ~ Port3 [0] 5.5 P4 (P4 口寄存器) Mnemonic: P4 7 6 P4.6 5 P4.5 P4.6~ 1: Port4 [6] ~ Port4 [1] Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 41 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 6. 硬件乘除法器(MDU) SM59A16U1的算术单元提供了32位除法器,16位乘法器,转化和规范等特点。所有设置均为无符号整数设置。 符号 描述 地址 PCON Power control Arithmetic Control register Multiplication/Divi sion Register 0 Multiplication/Divi sion Register 1 Multiplication/Divi sion Register 2 Multiplication/Divi sion Register 3 Multiplication/Divi sion Register 4 Multiplication/Divi sion Register 5 87H 表 6-1: 乘除寄存器 Bit 7 Bit 6 Bit 5 Bit 4 Multiplication Division Unit SMOD MDUF - EFh MDEF ARCON MD0 MD1 MD2 MD3 MD4 MD5 MDOV Bit 3 Bit 2 Bit 1 Bit 0 重置值 - - STOP IDLE 40H SLR SC[4:0] 00H 00H E9h MD0[7:0] EAh MD1[7:0] EBh MD2[7:0] ECh MD3[7:0] EDh MD4[7:0] 00H EEh MD5[7:0] 00H 00H 00H 00H 6.1 运行 MDU 寄存器 该MDU由7个寄存器处理,是具有记忆体映像为特殊功能寄存器, 运算单元允许同时操作以及CPU的独立活动。操作数及 结果寄存器为MD0到MD5,控制寄存器为ARCON.任何MDU的运算将改写其操作数. 符号: ARCON 7 6 MDEF MDOV 5 SLR 4 3 2 SC[4:0] 1 0 地址: EFh Reset 00H MDEF: 乘除错误标志位 MDEF 是一个错误标志位,且只可读。错误标志表示一个不当的操作(当其中的 运算操作被重新启动或者被一个新的运算中断),错误标志机制将自动在第一次 写入 MD0 时失效和来自 MD3(乘法或转换/规范)或来自第三阶段 MD5(除法) 最终使读取指令失效。 在以下情况,错误标志位将被置位: 1. 第二阶段的进程,并写入 MDx 寄存器时(重启或者中断计算) 错误标志只有在以下情况下重置: 第二阶段结束(算法成功)并写入 MDx 寄存器 MDOV: 乘除法溢出标志。该溢出标志只可读 只有在以下情况时,该溢出标志被置位: 除以“0”, 再乘以一个比 0000FFFFH 大的值 当最重要的 MD3 位被设置位(MD3.7=1) Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 42 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 当通过 MD0 寄存器写入,(开始第一阶段)时, 溢出标志被重置 SLR: 转换方向位 SLR=0-转换左操作 SLR=1-转换右操作. SC[4:0]: 转换计数器 当预设与 00000b,标准化被选择,在标准化之后,SC[4;0] 包含正常转换的数 字,当 SC[4:0]≠0 时,转换操作就开始,正常转换的数字由计数器写入 SC[4;0] 决定。SC[4]位-MSB ,SC[0]位-LSB。 6.2 乘除法器的设置 乘除法器的设置分为三个阶段: 6.2.1 第一阶段:装载 MDx 寄存器, x = 0~5: 要执行的MDU运算的种类是按照mdx寄存器内写入的命令来选择. Operation First write Last write 32bit/16bit MD0 Dividend Low MD1 Dividend MD2 Dividend MD3 Dividend High MD4 Divisor Low MD5 Divisor High 表 6-2: MDU registers write sequence 16bit/16bit 16bit x 16bit MD0 Dividend Low MD0 Multiplicand Low MD1 Dividend High MD4 Multiplicator Low MD1 Multiplicand High MD4 Divisor Low MD5 Divisor High MD5 Multiplicator High shift/normalizing MD0 LSB MD1 MD2 MD3 MSB ARCON start conversion 任何情况下,MD0的写入都将首先被转换,而下一次的写入必须执行表 6-2显示的序列,以确保MDU的运作,最后一次 的写入将开始选择的运作。 6.2.2 第二阶段:执行运算. 在执行运算中,MDU运行在拥有CPU并行线上。当MDU执行完毕时,MDUF寄存器将被硬件置位, 其标志位也将在下一次运算中被清除。 符号: PCON 7 6 SMOD MDUF 5 - 4 - 3 - 2 - 1 STOP 0 IDLE 地址: 87h Reset 40h MDUF: MDU 完成标志位 当 MDU 完成运算时,MDUF 将被硬件置位且标志位也将在下一次运算中被清 除。 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 43 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 下表给出了每一次数学计算中的执行时间. Operation Division 32bit/16bit Division 16bit/16bit Multiplication Shift Normalize 6.2.3 表 6-3: MDU execution times Number of Tclk 17 clock cycles 9 clock cycles 11 clock cycles Min. 3 clock cycles, Max. 18 clock cycles Min. 4 clock cycles, Max. 19 clock cycles 第三阶段:从 MDx 寄存器上读取结果. 从第一个MDX 寄存器上读取序列并不重要,但我们必须意识到最后一次的读取(从MD5的除法运 算,或MD3中的乘法,位移和标准化)将意味着一次完整的运算结束(第三阶段结束). Operation First read Last read 32Bit/16Bit MD0 Quotient Low MD1 Quotient MD2 Quotient MD3 Quotient High MD4 Remainder L MD5 Remainder H 表 6-4:MDU registers read sequence 16Bit/16Bit 16Bit x 16Bit MD0 Quotient Low MD0 Product Low MD1 Quotient High MD1 Product MD2 Product MD4 Remainder Low MD5 Remainder High MD3 Product High shift/normalizing MD0 LSB MD1 MD2 MD3 MSB 这里正常化的运作和移位将更多解释。正常化,在寄存器MD3 到MD0上所读到的零会由左移位的方式来删除。当MD3 的MSB(最高有效位)寄存器包含 '1'时,整个操作被完成。正常化后, 位 ARCON.4 (MSB) 到 ARCON.0 (LSB) 包含左 移数字操作。至于移位,SLR位 (ARCON.5) 必须包含移位的方向,并且 ARCON.0 到ARCON.4 代表移位计数(必须不 是 0)。在移位期间,0进入MD0或MD3寄存器,分别向左或向右端。 6.3 标准化 整数阅读的零在寄存器变量MD0的MD3被左移位操作删除.当MD3寄存器的最高位 (Most Significant Bit) 包含一个'1' 整个 操作完成. 经过标准化, ARCON.4(MSB)至ARCON.0(LSB)包含左移位操作数, 标准化完成. 6.4 位移 SLR位 (ARCON.5) 包含了位移的方向, 并且ARCON.4 至ARCON.0 移位操作数 (必须不能为0). 当位移时,零分别送入 MD0或MD3寄存器的左或右边. Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 44 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 7. 定时器0 和定时器1 SM59A16U1 有二个16bit的定时/计数寄存器: 定时器0, 定时器1. 所有这些都可以被设置为定时或计数操作. 在计时的模式中,定时器0和定时器1寄存器的递增频率,可由寄存器PFCON中选择为与振荡器频率相同或为振荡器频率 的1/12或为振荡器频率的1/96. 在计数的模式中,当检测到相应的输入脚T0/T1有下降沿产生时,寄存器便得到递增,由于它需要2个机器周期来识别由1 到0的跳变,其最大输入的计数频率为振荡器频率的1/2,从而使得这里没有限制的占空比,以确定适当的识别为0或1的 状态,因此,一个输入信号至少要稳定在1个机器周期. 定时器0和定时器1都有四种操作模式选择,在选择操作模式中,两个特殊功能寄存器(TMOD and TCON)被应用其中. 符号 描述 地址 TL0 Timer 0 , low byte Timer 0 , high byte Timer 1 , low byte Timer 1 , high byte Timer Mode Control Timer/Counter Control Peripheral Frequency control register 8Ah TL0[7:0] 00H 8Ch TH0[7:0] 00H 8Bh TL1[7:0] 00H 8Dh TH1[7:0] 00H TH0 TL1 TH1 TMOD TCON PFCON Bit 7 Bit 6 Bit 5 Timer 0 and 1 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 重置值 89h GATE C/T M1 M0 GATE C/T M1 M0 00H 88h TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 00H D9h - - SRELPS[1:0] T1PS[1:0] T0PS[1:0] 00H 7.1 定时器/计数器模式控制寄存器(TMOD) 符号: TMOD 7 6 5 GATE C/T M1 Timer 1 4 M0 3 GATE 2 1 C/T M1 Timer 0 0 M0 地址: 89h Reset 00h GATE: 该位被置位时为门控时,仅当„INT0 或者 INT1‟脚为高时,且„TRx‟控制位被置位 (参考 TCON 寄存器)时使能,计数器在每个 T0 或 T1 输入脚处于下减沿触发 时得到加强。 C/T: 门控定时器或计数器选择器。该位被置位时用作计数器功能,该位被清零时用作 定 时器功能. M[1:0]: 定时/计数器 0 或定时/计数器 1 的选择模式 M1 M0 Mode Function 0 0 Mode0 13bit计数器/定时器, 包含TL0/TL1寄存器的低5 位及TH0/TL1寄存器的全部8位,其TL0/TL1寄 存 器的高3位可设置为0. Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 45 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 0 1 1 0 Mode1 Mode2 1 1 Mode3 16 位计数器/定时器. 8 位自动重载的计数器/定时器,自动重载的值保 留在TH0 和TH1.同时TL0 或者TL1 在每个机器 周期内都会递增. 当溢出时,将THx 存放的值 装入TLx. 如定时器1 的M1 和M2 位被设置为1,定时器 2 停止计数。如定时器0 的M1 和M0 位被设置 为1,定时器0 作为两个独立的8 位定时器/计数 器. 7.2 定时/计数控制寄存器(TCON) 符号: TCON 7 6 TF1 TR1 5 TF0 4 TR0 3 IE1 2 IT1 1 IE0 0 IT0 地址: 88h Reset 00h TF1: 定时器 1 溢出标志。定时器/计数器溢出时由硬件置位。中断执行时硬件清 零,或由软件清零 TR1: 定时器 1 运行控制位。 如置位/清零, 关闭定时器/计数器 1. TF0: 定时器 0 溢出标志。定时器/计数器溢出时由硬件置位。中断执行时硬件自动 清零,或由软件清零 TR0: 定时器 0 运行控制位。如置位/清零,关闭定时器/计数器 0 IE1: 中断 1 边沿标志。当检测到外部中断 1 边沿/低电平时由硬件置位该标志。中 断处理时由硬件清零,或通过软件清零 IT1: 中断 1 类型控制位,通过软件置位/清零该位来选择外部中断 1 以下降沿/低电 平方式触发 IE0: 中断 0 边沿标志。当检测到外部中断 0 边沿/低电平时由硬件置位该标志。中 断处理时由硬件清零,或通过软件清零 IT0: 中断 0 类型控制位。通过软件置位/清零该位来选择外部中断 0 以下降沿/低电 平方式触发 7.3 计时器 0 寄存器( TL0, TH0 ) 符号: TL0 7 6 5 4 3 TL0[7:0] 2 1 0 地址: 8Ah Reset 00H 符号: TH0 7 6 5 4 3 TH0[7:0] 2 1 0 地址: 8Ch Reset 00H Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 46 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 7.4 计时器 1 寄存器( TL1, TH1 ) 符号: TL1 7 6 5 4 3 TL1[7:0] 2 1 0 地址: 8Bh Reset 00H 符号: TH0 7 6 5 4 3 TH1[7:0] 2 1 0 地址: 8Dh Reset 00H 7.5 定时器输入频率控制寄存器 符号: PFCON 7 6 - 5 4 SRELPS[1:0] T1PS[1:0]: 定时器 1 分频器选择位 T1PS[1:0] 00 01 10 11 3 2 T1PS[1:0] 1 0 T0PS[1:0] 地址: D9h Reset 00H 分频器 Fosc/12 Fosc Fosc/96 reserved T0PS[1:0]: 定时器 0 分频器选择位 T0PS[1:0] Prescaler 00 Fosc/12 01 Fosc 10 Fosc/96 11 reserved Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 47 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 7.6 模式 0 (13 位定时/计数) ÷12 OSC 00 01 ÷96 10 C/T = 1 T1PS[1:0] T1腳 TR1 GATE1 ET1 C/T = 0 TL1 TH1 (5位元) (8位元) EA 0 1 1 控制 目前沒有更高層次 的中斷程式在執行 AND NOT TF1 0 跳到001BH OR INT1腳 D0D1D2D3D4 D5D6D7 D0D1D2D3D4D5D6D7 TL1 TF1 TH1 图 7-1: 模式 0 -13 位定时器/计数器操作 7.7 模式 1 (16 位定时/计数) ÷12 OSC 00 01 ÷96 10 C/T = 1 T1PS[1:0] T1腳 TR1 GATE1 ET1 C/T = 0 TL1 TH1 (8位元) (8位元) EA 0 1 1 控制 目前沒有更高層次 的中斷程式在執行 AND NOT TF1 0 跳到001BH OR INT1腳 D0D1D2D3D4D5D6D7 D0D1D2D3D4D5D6D7 TL1 TH1 TF1 图 7-2: 模式 1 -16 位定时器/计数器操作 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 48 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 7.8 模式 2 (8 位自动重载定时/计数) ÷12 00 OSC 01 ÷96 10 C/T = 1 T1PS[1:0] T1腳 ET1 C/T = 0 TR1 TL1 (8位元) NOT OR 自動重 新載入 TH1 (8位元) INT1腳 EA 0 1 1 控制 AND GATE1 TF1 0 目前沒有更高層次 的中斷程式在執行 跳到001BH 图 7-3: 模式 2 -8 位自动重载定时/计数 7.9 模式 3 (两个独立 8 位定时/计数(仅定时器 0)) ÷12 00 TH0 (8 Bits) TF1 中斷要求 (001BH) TL0 (8 Bits) TF0 中斷要求 (000BH) TR1 OSC 01 ÷96 C/T = 0 10 C/T = 1 T0PS[1:0] T0 腳 TR0 GATE0 控制 AND NOT OR /INT0 腳 图 7-4: 模式 3 -两个独立 8 位定时/计数(仅定时器 0) Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 49 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 8. 定时器2 以及捕获比较单元 定时器2不仅仅是一个16位的定时器,也是一个带有4个通道比较,捕获及重载功能,这是非常相似在其它一些微控制器的 可编程计数器阵列(PCA),除脉冲宽度调制(PWM) 定时器2的捕获比较模块的功能: 定时器 2 的 16 位定时器/计数器. 4 通道 16 位比较/捕获/重载功能 s. 比较出可以 CCU 输入源内部. CCU 输入噪声滤波器. 定时器2的中断向量2BH. 符号 描述 AUX2 T2CON CCCON CCEN CCEN2 TL2 TH2 CRCL CRCH CCL1 CCH1 CCL2 CCH2 CCL3 CCH3 Auxiliary 2 register Timer 2 control Compare/Capture Control Compare/Capture Enable register Compare/Capture Enable 2 register Timer 2, low byte Timer 2, high byte Compare/Reload/Cap ture register, low byte Compare/Reload/Cap ture register, high byte Compare/Capture register 1, low byte Compare/Capture register 1, high byte Compare/Capture register 2, low byte Compare/Capture register 2, high byte Compare/Capture register 3, low byte Compare/Capture register 3, high byte 地址 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Timer 2 and Capture Compare Unit CCU CCU 92h 2Sou 1Sou CCUINF[1:0] rce rce C8h T2PS[2:0] T2R[1:0] - Bit 1 C9h CCF1 CCI3 C1h D1h - CCI2 CCI1 CCI0 CCF3 CCF2 Bit 0 重置值 P42CC [1:0] 00H T2I[1:0] 00H CCF0 00H COCAM1[2:0] - COCAM0[2:0] 00H COCAM3[2:0] - COCAM2[2:0] 00H CCh CDh TL2[7:0] TH2[7:0] CAh CRCL[7:0] CBh CRCH[7:0] C2h CCL1[7:0] C3h CCH1[7:0] C4h CCL2[7:0] C5h CCH2[7:0] C6h CCL3[7:0] C7h CCH3[7:0] 00H 00H 00H 00H 00H 00H 00H 00H 00H 00H Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 50 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 8.1 辅助 2 寄存器( AUX2 ) 符号: AUX2 7 6 CCU2 Source 5 CCU1 Source 4 - 3 2 CCUINF[1:0] 1 0 P42CC [1:0] 地址: 92h Reset 00H 下面图 8-1是设置 CCU 动作 CCU2 捕获输入来源 2 CCU2 = 0 –模拟比较器 2 输出当 CCU2 捕获输入来源 CCU2 = 1 - 外部引脚当 CCU2 捕获输入的源 CCU1 捕获输入来源 1 CCU1= 0 - 模拟比较器 1 输出当 CCU1 捕获输入来源 CCU1=1 -外部引脚当 CCU1 捕获输入的源 CCUINF[1:0] CCU 捕获输入噪声滤波器(CCU1,CCU2) CCUINF[1:0] = 00 - 1 连续相同值识别为有效的数据. CCUINF[1:0] = 01 - 2 连续相同值识别为有效的数据. CCUINF[1:0] = 10 - 4 连续相同值识别为有效的数据。 CCUINF[1:0] = 11 - 8 连续相同值识别为有效的数据. P42CC [1:0] 捕获/比较端口选择功能. 00: P1 口的捕捉/比较功能. 01: P2 口的捕捉/比较功能. 10: 保留口的捕捉/比较功能.( 仅TQFP 64L包装 ) 11: 保留 注:外部CC0脚和CC3只捕获输入源 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 51 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 CRCH CRCL TH2 TL2 CRC Auto Reload For: Mode 0 (Auto reload) Mode 1 (negative edge of reload) Overflow Timer2 (16 bits Timer) TF2 CCI1 CC1H M U X CC1 Fosc Prescaler CC1L CCF1 Noise Filter SFR(Cmp0o) SFR(ET2) CCUINF[1:0] CCU1 CCUINFCLK[1:0] Source CCI2 CC2H T2CON.T2PS[2:0] M U X CC2 CC2L Timer2 Interrupt CCF2 Noise Filter SFR(Cmp1o) CCUINF[1:0] CCU2 CCUINFCLK[1:0] Source CCI3 CC3H M U X CC3 CC3L CCF3 Noise Filter SFR(Cmp2o) CCUINF[1:0] CCU3 CCUINFCLK[1:0] Source CC0 CCI0 CRCH CRCL CCF0 图 8-1: CCU action diagram 8.2 定时器 2 控制寄存器 ( T2CON ) 符号: T2CON 7 6 T2PS[2:0] 5 4 3 T2R[1:0] 2 - 1 0 T2I[1:0] 地址: C8h Reset 00H T2PS[2:0]: 分频器选择位: T2PS = 000 –定时器 2 的时钟为振荡频率. T2PS = 001 –定时器 2 的时钟为振荡频率的 1/2. T2PS = 010 –定时器 2 的时钟为振荡频率的 1/4. T2PS = 011 –定时器 2 的时钟为振荡频率的 1/6. T2PS = 100 –定时器 2 的时钟为振荡频率的 1/8. T2PS = 101 –定时器 2 的时钟为振荡频率的 1/12. T2PS = 110 –定时器 2 的时钟为振荡频率的 1/24. T2R[1:0]: 定时器 2 重载模式选择位 T2R[1:0] = 0X –重载无效 T2R[1:0] = 10 –模式 0:自动重载 T2R[1:0] = 11 –模式 1:依 T2EX 脚下降缘重载 T2I[1:0]: 定时器 2 输入选择位 T2I[1:0] = 00 –定时器 2 计数停止 T2I[1:0] = 01 –输入频率依 T2PS[2:0]分频器选择 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 52 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 T2I[1:0] = 10 –定时器 2 在 T2 脚的外部信号递增 T2I[1:0] = 11 –门控定时器 2 可为内部时钟输入 8.3 比较/捕获控制寄存器(CCCON) 符号: CCCON 7 6 CCI3 CCI2 5 CCI1 4 CCI0 3 CCF3 2 CCF2 1 CCF1 地址: C9h 0 Reset CCF0 00H CCI3: 捕捉/比较信道 3 中断功能控制位. “1” 中断功能使能. CCI2: 捕捉/比较信道 2 中断功能控制位. “1” 中断功能使能. CCI1: 捕捉/比较信道 1 中断功能控制位. “1” 中断功能使能. CCI0: 捕捉/比较信道 0 中断功能控制位. “1” 中断功能使能. CCF3: 捕捉/比较通道 3 中断旗标位.可由软件清零. CCF2: 捕捉/比较通道 2 中断旗标位.可由软件清零. CCF1: 捕捉/比较通道 1 中断旗标位.可由软件清零. CCF0: 捕捉/比较通道 0 中断旗标位.可由软件清零. 捕捉/比较中断与定时器 2 中断共享同一个中断向量. 8.4 比较/捕获使能寄存器(CCEN) 符号: CCEN 7 6 5 4 COCAM1[2:0] 3 - 2 1 0 COCAM0[2:0] 地址: C1h Reset 00H COCAM1[2:0] 000: 禁止比较/捕获功能 001: 比较功能启动但无输出 010: 比较功能模式 0 011: 比较功能模式 1 100: 捕获在 CC1 脚的上升沿 101: 捕获在 CC1 脚的下降沿 110: 捕获在 CC1 脚的上升沿及下降沿 111: 在寄存器 CC1 中捕获写入操作 COCAM0[2:0] 000: 禁止比较/捕获功能 001: 比较功能启动但无输出 010: 比较功能模式 0 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 53 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 011: 比较功能模式 1 100: 捕获在 CC0 脚的上升沿 101: 捕获在 CC0 脚的下降沿 110: 捕获在 CC0 脚的上升沿及下降沿 111: 在寄存器 CC0 中捕获写入操作 8.5 比较/捕捉使能 2 寄存器( CCEN2 ) 符号: CCEN2 7 6 5 4 COCAM3[2:0] 3 - 2 1 0 COCAM2[2:0] 地址: D1h Reset 00H COCAM3[2:0] 000: 禁止比较/捕获功能 001: 比较功能启动但无输出 010: 比较功能模式 0 011: 比较功能模式 1 100: 捕获在 CC3 脚的上升沿 101: 捕获在 CC3 脚的下降沿 110: 捕获在 CC3 脚的上升沿及下降沿 111: 在寄存器 CC3 中捕获写入操作 COCAM2[2:0] 000: 禁止比较/捕获功能 001: 比较功能启动但无输出 010: 比较功能模式 0 011: 比较功能模式 1 100: 捕获在 CC2 脚的上升沿 101: 捕获在 CC2 脚的下降沿 110: 捕获在 CC2 脚的上升沿及下降沿 111: 在寄存器 CC2 中捕获写入操作 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 54 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 8.6 定时器 2 寄存器( TL2,TH2 ) 符号: TL2 7 6 5 4 3 TL2[7:0] 2 1 0 地址: CCh Reset 00H 符号: TH2 7 6 5 4 3 TH2[7:0] 2 1 0 地址: CDh Reset 00H 8.7 比较/重载/捕获寄存器( CRCL, CRCH ) 符号: CRCL 7 6 5 4 3 CRCL[7:0] 2 1 0 地址: CAh Reset 00H 符号: CRCH 7 6 5 4 3 CRCH[7:0] 2 1 0 地址: CBh Reset 00H 8.8 比较/捕捉寄存器 1 ( CCL1, CCH1 ) 符号: CCL1 7 6 5 4 3 CCL1[7:0] 2 1 0 地址: C2h Reset 00H 符号: CCH1 7 6 5 4 3 CCH1[7:0] 2 1 0 地址: C3h Reset 00H 8.9 比较/捕获寄存器 2 ( CCL2, CCH2 ) 符号: CCL2 7 6 5 4 3 CCL2[7:0] 2 1 0 地址: C4h Reset 00H 符号: CCH2 7 6 5 4 3 CCH2[7:0] 2 1 0 地址: C5h Reset 00H 8.10 比较/捕获寄存器 3( CCL3, CCH3 ) 符号: CCL3 7 6 5 4 3 CCL3[7:0] 2 1 0 地址: C6h Reset 00H 符号: CCH3 7 6 5 4 3 CCH3[7:0] 2 1 0 地址: C7h Reset 00H Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 55 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 8.11 定时器 2 功能 定时器2既可做为定时器,又可做为计数器,或解释为门控定时器(如下解释). 8.11.1 定时器模式 如以下图 8-2,在此模式中,定时器2递增频率依分频器选择决定,而分频器则由特殊寄存器T2CON中的T2PS[2:0]位选 择. 图 8-2: Timer mode and Reload mode function 8.11.2 外部信号计数模式 如以下图 8-3所示,在此模式中,当然外部信号T2由1到0的跳变时,定时器得到递增,T2输入在每个周期中得以采样, 定时器2在跳变检测的一个周期中得到递增. 图 8-3: Event counter mode function Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 56 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 8.11.3 外部信号定时器模式 如以下图 8-4所示,在此模式中,定时器2递增的内部时钟是由外部信号T2来控制的. 图 8-4: Gated timer mode function 8.11.4 定时器 2 的重载 重载(来自CRC寄存器的16位重载)可在以下两种模式中执行: 模式0:重载信号由定时器2溢出产生,即自动重载。 模式1:重载信号由相应的输入脚T2EX负跳变产生. 8.12 比较功能 在四个独立的比较器中,任何比较/捕捉寄存器中的值都和定时器寄存器的内容比较,其比较模式0或1由位C0CAMx来选 择.在这两种比较模式中,其比较结果在同样的机器周期的P1口的得出使得其内部比较信号被激活. 8.12.1 比较模式 0 在模式0中,当定时器2的值等同与比较寄存器上的值时,其输出信号由低到高的跳变,并在定时器溢出时返回低电位。 在此模式中,对端口写入无效,因为无法对来自内部总线及暂存器进行操作。 如以下图 8-5数字阐述了比较模式0的功能 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 57 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 Contents of Timer 2 CRC or CCx Reload value CCx Output Timer 2 = CCx value Timer 2 overflow 图 8-5: Compare mode 0 function 8.12.2 比较模式 1 在比较模式1中,其输出信号的跳变是由软件来决定的。定时器2的溢出不会导致输出的改变。在此模式中,两种信号的 跳变都是可以控制的,如图 8-6及图 8-7显示了在比较模式1中的寄存器/端口结构菜单。 在比较模式1中,其值将首先被写入到“阴影寄存器”中,当比较信号被激活时,其值被传递到输出寄存器 图 8-6: 模式 1 寄存器/端口功能 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 58 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 Contents of Timer 2 CRC or CCx Reload value CCx Shadow Register CCx Output Timer 2 = CCx value Timer 2 = CCx value 图 8-7: 比较模式 1 功能 8.13 捕获功能 在一个外部事件(模式0)或一个软件写操作(模式1)上,实际的定时器/计数器的值可以被保存在寄存器CCx或CRC中. 8.13.1 捕捉模式 0 如以下图 8-8所示,在模式0中,定时器2的值的捕捉在以下情况进行: (1) 上升沿输入 CC0-CC3。 (2) 下降沿输入 CC0-CC3。 (3) 上升沿及下降沿输入 CC0-CC3。 定时器2的内容将被对应的捕捉寄存器锁存。 图 8-8: 捕捉模式 0 功能 8.13.2 捕捉模式 1 如以下图 8-9所示,在模式1中,定时器2的值的捕捉将导致写入到捕捉寄存器中的低字节无任何价值,其捕捉寄存器的写 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 59 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 入值与改功能无关,定时器2的内容将被对应的捕捉寄存器琐存。 图 8-9: 捕捉模式 1 功能 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 60 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 9. 串行接口0 和 1 有两个串行接口,用于数据通信SM59A16U1,他们是所谓的UART0和UART1.作为传统的UART,通信速度可以通过配 置SFR中的波特率选择. 两个串行缓冲器组成两个单独寄存器,即一个传输缓冲区和一个接收缓冲区 . 写数据到特殊功能寄存器SFR S0BUF或 S1BUF设置这些数据在串行输出缓冲,并开始传输, 来自S0BUF或S1BUF的读取及从串行接收缓冲区读取数据,串行口 可同时传输和接收数据,它也可在接收时缓存1字节,如CPU在第一个字节传输完成之前读取第二个字节,以防接收数据 丢失。 符号 PCON AUX PFCON 描述 Power control Auxiliary register Peripheral Frequency control register Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 地址 The relevant registers of Serial interface 0 and 1 87H SMOD MDUF P4UR 91h BRGS P4SPI P4IIC 1 D9h - SRELPS[1:0] Bit 2 P0KBI T1PS[1:0] Bit 1 Bit 0 重置值 STOP IDLE 40H - DPS 00H T0PS[1:0] 00H Serial interface 0 and 1 S0CON S0RELL S0RELH S0BUF S1CON S1RELL S1RELH S1BUF Serial Port 0 control register Serial Port 0 reload register low byte Serial Port 0 reload register high byte Serial Port 0 data buffer Serial Port 1 control register Serial Port 1 reload register low byte Serial Port 1 reload register high byte Serial Port 1 data buffer 98H SM0 SM1 SM20 REN0 AAH TB80 RB80 TI0 RI0 S0REL[7:0] BAH 00H - 99H S0REL[9:8] S0BUF[7:0] 9BH SM - SM21 9DH REN1 TB81 RB81 TI1 RI1 00H 00H - 9CH 00H 00H S1REL[7:0] BBH 00H S1REL[9:8] S1BUF[7:0] 00H 00H 9.1 串行端口 0 控制寄存器( S0CON ) 符号: S0CON 7 6 SM0 SM1 5 SM20 4 REN0 3 TB80 2 RB80 1 TI0 0 RI0 地址: 98h Reset 00h Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 61 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 SM0, SM1: 串行口 0 模式选择. SM0 SM1 Mode 0 0 0 0 1 1 1 0 2 1 1 3 在 UART 的 4 种模式中,模式 0~3 稍后解释 SM20: 多处理机通信使能位 REN0: 如置位,串行接收使能,软件清除禁止接收 TB80: 在模式 2 和 3 中,发送的第 9 位数据位,置位或清零取决与它执行的功能,如 奇偶校验功能, 多处理机通信等。 RB80: 在模式 2 和 3 中,RB80 为接收的第 9 位数据位。在模式 1 中,如 SM20=0, RB80 为停止位。在模式 0 中,此位不被使用。须由软件清除。 TI0: 发送中断标志位.在完成串行传输后由硬件置位,须由软件清除。 RI0: 接收中断标志。在完成串行传输后由硬件置位,须由软件清除. 9.2 串行端口 0 重载寄存器( S0RELL, S0RELH ) 符号: S0RELL 7 6 5 4 3 S0REL[7:0] 2 1 符号: S0RELH 7 6 5 4 3 2 1 0 S0REL[9:8] 4 3 S0BUF[7:0] 2 1 - 0 地址: AAh Reset 00h 地址: BAh Reset 00h 9.3 串行端口 0 数据缓冲器( S0BUF ) 符号: S0BUF 7 6 5 0 地址: 99h Reset 00h 9.4 串行端口 1 控制寄存器( S1CON ) 符号: S1CON 7 6 SM - 5 SM21 4 REN1 3 TB81 2 RB81 1 TI1 地址: 9Bh 0 Reset RI1 00h SM: 串行口 1 模式选择. SM Mode 0 A 1 B The 2 modes in UART1, Mode A and Mode B, are explained later. SM21: 多处理机通信使能位. REN1: I 如置位,串行接收使能,软件清除禁止接收. Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 62 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 TB81: 在模式 A 中,发送的第 9 位数据位,置位或清零取决与它执行的功能,如奇偶 校验功能, 多处理机通信等. RB81: 在模式 A 中,RB81 为接收的第 9 位数据位。在模式 B 中,如 SM21=0,RB81 为停止位。在模式 0 中,此位不被使用。须由软件清除. TI1: 发送中断标志位.在完成串行传输后由硬件置位,须由软件清除. RI1: 接收中断标志。在完成串行传输后由硬件置位,须由软件清除. 9.5 串行端口 1 重载寄存器( S1RELL, S1RELH ) 符号: S1RELL 7 6 5 4 3 S1REL[7:0] 2 1 符号: S1RELH 7 6 5 4 3 2 1 0 S1REL[9:8] 4 3 S1BUF[7:0] 2 1 - 地址: 9Dh Reset 00h 0 地址: BBh Reset 00h 9.6 串行端口 1 数据缓冲器( S1BUF ) Mnemonic: S0BUF 7 6 5 0 地址: 9Ch Reset 00h 9.7 串行接口 0 串行接口由以下4种模式可以设置 SM0 0 0 1 1 SM1 0 1 0 1 Mode 0 1 2 3 描述 Shift register 8-bit UART 9-bit UART 9-bit UART Board Rate Fosc/12 Variable Fosc/32 or Fosc/64 Variable 这里的Fosc是晶体或振荡器的频率。 9.7.1 模式 0 引脚RXD0充当输入和输出。TXD0输出时钟。每次发送或接收以LSB最低位作首位,每次8位。波特率固定为的晶体的 频率1/12,接收通过以下的在S0CON中的设置标志在模式0中初始化:RI0= 0及REN0 = 1。在其它模式中,当REN0=1 时,开始从起始位接收串行数据.如图 9-1及图 9-2中所示. Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 63 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 图 9-1: 发送模式 0 图 9-2: 接收模式 0 9.7.2 模式 1 引脚RXD0 充当输入,TXD0 充当串行输出,无任何外部时钟被使用,每次数据为10位:一个起始位(=0),8个数据位 (LSB位在前),及一个停止位(=1)。在接收据数据时, 起始位将被同步传输,8个数据位可通过S0BUF来读取, 一个停止 位存于特殊功能寄存器S0CON的设置标志RB80内,在模式1中,无论是内部的波特率发生器或定时器1可以用来指定波 特率。如图 9-3及图 9-4中所示. 图 9-3: 发送模式 1 图 9-4: 接收模式 1 9.7.3 模式 2 该模式和模式1类似,但有两点不同。波特率被固定在振荡器的频率的1/32(SMOD=1)或1/64(SMOD=0),且有11 位数据被传输或接收: 1个起始位(=0),8个数据位(LSB在前),一个可编程的第9位及一个停止位(=1),9位可以 用来控制串行接口的奇偶性。在传输中,S0CON中的TB80输出第9位,在接收中,S0CON中的RB80将被影响。 9.7.4 模式 3 模式2和3的唯一不同之处在于:在模式3中,无论是内部的波特率发生器或定时器1可以用来指定波特率。 如图 9-5及 图 9-6中所示. Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 64 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 图 9-5: 传输模式 2 和模式 3 图 9-6: 接收模式 2 和 3 中 9.8 串行接口 1 中断向量为83H. 串行接口1可以运行在下列2种模式: SM 0 1 9.8.1 Mode A B Description 9-bit UART 8-bit UART Baud Rate Variable Variable Mode A 这种模式是类似的模式 2 和 3 的串行接口 0,11 位在发送或接收: 起始位 (0),8 个数据位 (LSB 第一),可编程的位 9 和停止位 (1)。9 位可以被用来控制串行接口的奇偶校验: 在传输,在 S1CON 位TB81 输出为 9 位,并在接收,位 9 影响在 SFR S1CON的 RB81。如图 9-7及图 9-8 中所示。 图 9-7: Transmit mode A for Serial 1 图 9-8: Receive mode A for Serial 1 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 65 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 9.8.2 Mode B 这种模式是类似于模式 1 的串行接口 0。Pin RXD1 作为输入,并 TXD1 作为串行输出。没有外部移位时钟使用。传输 10 位: 起始位 (始终为 0),8 个数据位 (LSB 第一),和停止位 (始终为 1)。在接收、开始位同步传输、 8 个数据 位通过阅读S1BUF可以利用,停止位设置SFR S1CON中的旗标RB81。在 B 模式中,内部的波特率发生器是使用指定的 波特率。如图 9-9及图 9-10 中所示. 图 9-9: Transmit mode B for Serial 1 图 9-10: Receive mode B for Serial 1 9.9 串行接口 0 與 1 的多重机通讯 在模式 2 和 3 的串行接口 0 或串行接口 1 的模式 A 接收 9 位的功能可以用于多处理器通信。在这种情况下,从机的处 理器有 S0CON 中的位SM20 或 S1CON的SM21设置为 1。当主机输出从机的地址时,Bit9 将被置1,从而在所有的从机 中导致串行口接收中断。从机将接收到的字节和它们的网络地址比较,如匹配,其从机将清除SM20 或SM21,并接收其 余的信息,其它的从机将远离SM20 或 SM21无效,并忽略此信息。在解决从机后,其主机在Bit9 清0 时将输出剩余部分 的信息,因此,没有串口接收中断会产生在未选中的处理机中. 9.10 波特率发生器 9.10.1 串行接口 0 模式 1 和 3 符号: PFCON 7 6 - 5 4 SRELPS[1:0] SRELPS[1:0]: SREL 分频器选择位 SRELPS[1:0] 00 01 10 11 3 2 T1PS[1:0] 1 0 T0PS[1:0] 地址: D9h Reset 00H Prescaler Fosc/64 Fosc /32 Fosc /16 Fosc /8 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 66 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 T1PS[1:0]: Timer1 分频器选择位 T1PS[1:0] 00 01 10 11 Prescaler Fosc/12 Fosc Fosc/96 reserved 9.10.1.1 当 BRGS = 0 (在 AUX 寄存器): (1) 当 T1PS[1:0] = 00 Baud Rate 2SMOD Fosc 32 12 256 TH1 (2) 当 T1PS[1:0] = 01 2SMOD Fosc 32 256 TH1 Baud Rate (3) 当 T1PS[1:0] = 10 Baud Rate 2SMOD Fosc 32 96 256 TH1 9.10.1.2 当 BRGS = 1 (在 AUX 寄存器) (1) 当 SRELPS[1:0] = 00 Baud Rate 2 SMOD Fosc 64 210 SREL Baud Rate 2SMOD Fosc 32 210 SREL Baud Rate 2 SMOD Fosc 16 210 SREL (2) 当 SRELPS[1:0] = 01 (3) 当 SRELPS[1:0] = 10 (4) 当 SRELPS[1:0] = 11 Baud Rate 2 SMOD Fosc 8 210 SREL Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 67 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 9.10.2 串行接口 1 模式 A 和 B Baud Rate FOSC 32 2 S1REL 10 9.11 波特率时钟源 出厂校准后,内片上RC振荡器频率变化5%以内。应用具有更高的时钟精度要求的情况下,外部晶振通常为推荐的时钟 源. Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 68 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 10. 看门狗定时器 看门狗定时器是一个8位的计数器并会在计数器溢出时产生复位讯号.WDT在噪音.电源干扰,或断电等导致软件死循环或跑 飞程序等情况下非常有用.WDT功能可以帮助拥护的软件从不正常的软件状态中恢复正常.WDT不同于通用的8052的计时 器0,1,2.为了防止WDT复位,可以通过软件定时清除WDT计数器.当不可预料的复位发生时,用户应该检查WDTC寄存器的 WDTF位. 在一外部复位后,该看门狗定时器将无效且所有寄存器都清零。 看门狗定时器是一个自由运行的片上RC振荡器 (约23 KHz). WDT将保持运行就算是系统时钟被关闭(例如,在睡眠状态). 在正常的运行或睡眠状态,一个WDT超时(如使能)将导致MCU复位.WDT在正常状态下可随时被使能或失效.请注意WDTC 寄存器的WDTE位.默认的WDT超时时间为接近178.0ms (WDTM [3:0] = 0100b). WDT有可选择的分频.要选择分频,需要正确设置看门控制寄存器(WDTC)的位3~位0(WDTM [3:0]) ,如表 10-1所示. 23KHz 2 WDTM 256 Watchdog reset time = WDTCLK WDTCLK WDTM [3:0] 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 表 10-1: WDT 超时时间 Divider (23 KHz RC oscillator in) 1 2 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 32768 Time period @ 23KHz 11.1ms 22.2ms 44.5ms 89.0ms 178.0ms (default) 356.1ms 712.3ms 1.4246s 2.8493s 5.6987s 11.397s 22.795s 45.590s 91.180s 182.36s 364.72s 注 : RC振荡器(23 KHz),约有20%的误差. 当MCU复位,MCU将会读WDTEN控制位状态.当WDTEN位被设置为1,参考以下无论WDTE位状态如何,看门狗功 能将会失效.当WDTEN位被清0,在WDTE位被通过变成设为1的情况下,看门狗功能将被使能.用户可通过烧路器或ISP设置 WDTEN. 对WDTE位写入1同时WDTEN控制位清0,能使WDT功能使能.在WDTE设为1后.8位的计数器用通过WDTM[3:0]设置好的 分频进行计数.它在溢出时将会产生复位讯号.WDTE位在MCU重启时将被自动清0,同时硬件复位或WDT复位. 看门狗一旦开始工作将无法停止.当WDTK寄存器用户可通过对看门狗定时器重置密钥(WDTK)写入55h实现WDT计时器 清0.这将会清除8位计数器内容并让计数器重启. 看门狗定时器必须定时刷新以防来自可变的重置复位请求信号. Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 69 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 当看门狗定时器溢出时, WDTF标志位将被置1并自动重置复位MCU.该标志位可被软件或外部复位清除. 当MCU复位,MCU将会读WDTEN控制位状态.当WDTEN位被设置为1,参考以下图 10-1无论WDTE位状态如何,看门狗功 能将会失效.当WDTEN位被清0,在WDTE位被通过变成设为1的情况下,看门狗功能将被使能.用户可通过烧路器或ISP设置 WDTEN. 对WDTE位写入1同时WDTEN控制位清0,能使WDT功能使能.在WDTE设为1后.8位的计数器用通过WDTM[3:0]设置好的 分频进行计数.它在溢出时将会产生复位讯号.WDTE位在MCU重启时将被自动清0,同时硬件复位或WDT复位. 看门狗一旦开始工作将无法停止.当WDTK寄存器用户可通过对看门狗定时器重置密钥(WDTK)写入55h实现WDT计时器 清0.这将会清除8位计数器内容并让计数器重启. 看门狗定时器必须定时刷新以防来自可变的重置复位请求信号. 当看门狗定时器溢出时, WDTF标志位将被置1并自动重置复位MCU.该标志位可被软件或外部复位清除. Clear WDTF = 0 1. Power on reset 2. External reset 3. Software write “0” 23KHz RC oscillator WDTF Set WDTF = 1 CWDTR = 0 WDTCLK 1 TAKEY (55, AA, 5A) 2WDTM WDTM[3:0] Enable/Disable WDT WDT time-out reset WDT time-out select WDT Counter CWDTR = 1 Refresh WDT Counter WDT time-out Interrupt WDTC Enable WDTC write attribute WDTK (0x55) WDTEN 图 10-1: Watchdog 定时器框图 符号 TAKEY WDTC WDTK 描述 Time Access Key register Watchdog timer control register Watchdog timer refresh key 地址 Bit 7 Bit 6 Bit 5 Bit 4 Watchdog Timer F7h B6h Bit 2 Bit 1 TAKEY [7:0] - CWDTR WDTE B7h 符号: TAKEY 7 6 Bit 3 4 3 TAKEY [7:0] - 2 WDTM [3:0] 1 重置值 00H WDTK[7:0] 5 Bit 0 04H 00H 0 地址: F7h Reset 00H 看门狗控制寄存器(WDTC)默认为仅读;软件需依序于寄存器 TAKEY 写入 55h, AAh 及 5Ah 才能对看门狗控制寄 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 70 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 存器(WDTC)执行写入,启动看门狗功能及设定重置时间 MOV TAKEY, #55h MOV TAKEY, #0AAh MOV TAKEY, #5Ah 10.1 看门狗定时器控制寄存器( WDTC ) 符号: WDTC 7 6 CWDTR 5 WDTE 4 - 3 2 1 WDTM [3:0] 0 地址: B6h Reset 04H CWDTR: 看门狗溢位状态选择(支持休眠唤醒) 0: 看门狗发生溢位时产生重置信号 1: 看门狗发生溢位时产生中断信号 WDTE: 看门狗定时器使能位. 此位需于 WDTEN=0(此值于出厂时已设为 0)时设置才有作用,既于刻录(使用 ICP,ISP 或 一般刻录器)时于看门狗选项选择使用. 0: 禁能. 1: 使能. WDTM [3:0]: 看门狗重置信号产生时间选择位.请参考图 10-1所列看门狗重置信号产生时间. 10.2 看门狗定时器的刷新寄存器( WDTK ) 符号: WDTK 7 6 5 4 3 WDTK[7:0] 2 1 0 地址: B7h Reset 00h WDTK: 看门狗定时器计数器清零寄存器. 于此寄存器写入 0x55, 看门狗定时器计数器将清零重新计数. 例如 1: 看门狗定时器使能并选择重置信号产生时间为 2.8493s 第一步,先确认刻录时看门狗功能已选择使用 第二步,如下 MOV TAKEY, #55h MOV TAKEY, #0AAh MOV TAKEY, #5Ah ; enable WDTC write attribute. MOV WDTC, #28h ; Set WDTM [3:0] = 1000b. Set WDTE =1 to enable WDT ; function. . . . MOV WDTK, #55h ; Clear WDT timer to 0. Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 71 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 例如 2: 看门狗定时器使能并选择周期中断信号产生时间为 178.0ms 第一步,先确认刻录时看门狗功能已选择使用 第二步,如下 MOV TAKEY, #55h MOV TAKEY, #0AAh MOV TAKEY, #5Ah ; enable WDTC write attribute. MOV WDTC, #64h ; Set WDTM [3:0] = 0100b. Set WDTE =1 to enable WDT ;function . ; and Set CWDTR =1 to enable period interrupt function . MOV WDTK, #55h ; Clear WDT timer to 0. Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 72 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 11. 中断 SM59A16U1 提供14个中断源并带有4级优先权. 每一中断源都在特殊寄存器(SFR)中有自身的请求标志,每个中断请求 信号通过相应的标志及特殊寄存器(SFR)中的IEN0,IEN1及IEN2中的使能位来独自允许或禁止。 当中断发生时,CPU将会跳转预先设定的地址,如表 11-1所示,一旦中断开始执行,就只能被更高优先级的中断终止, 其中断服务会被来自指令RETI的返回所终结。当一RETI被执行时且中断发生时,处理器将将返回此指令,并执行下一条 指令。 当中断条件发生时,该处理器通过设置一个标志位来表示,无论中断使能或禁止,每个中断标志都将在每个机器周期中 采样一次,随后采样由硬件来检测,当中断被使能时,且采样指出相应中断时,中断请求标志被设置。在随后的指令周 期中,中断将被硬件所确定。从而迫使一个LCALL 指向相应的地址向量。 当中断发生时,中断响应将需要不同的时间,这取决于相关的处理器。如一处理器执行的中断服务程序同等或更优先, 新的中断将不会使能,在其它情况下,响应时间将取决于当前的指令。以最快的速度回应一个中断是需要7个机器周期, 这包括一个检测中断的机器周期和6周期执行LCALL周期。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 表 11-1: 中断向量 Interrupt Vector Interrupt Request Flags Address 0003h IE0 – 外部中断0 000Bh TF0 – 定时器0 中断 Interrupt Number *(use Keil C Tool) 0 1 IE1 – 外部中断 1 TF1 – 定时器1 中断 RI/TI – 串行口中断 TF2/EXF2 – 定时器2 中断 PWMIF – PWM 中断 0013h 2 001Bh 0023h 002Bh 0043h 3 4 5 8 SPIIF – SPI 中断 ADCIF – A/D 转换 中断 KBIIF – 键盘 中断 LVIIF – 低压侦测 中断 IICIF – IIC 中断 USB interrupt USBRSM interrupt RI1/TI1 – Serial channel 1 interrupt WDTIF– 看门狗 中断 Comparator 中断 004Bh 0053h 005Bh 0063h 006Bh 0073h 007Bh 0083h 008Bh 0093h 9 10 11 12 13 14 15 16 17 18 *参考Keil C用户指南中的有关中断功能使用说明 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 73 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 符号 IEN0 IEN1 IEN2 IRCON IRCON2 IP0 IP1 描述 Interrupt Enable 0 register Interrupt Enable 1 register Interrupt Enable 2 register Interrupt request register Interrupt request register 2 Interrupt priority level 0 Interrupt priority level 1 地址 Bit 7 Bit 6 Bit 5 Interrupt Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 重置值 A8H EA - ET2 ES0 ET1 EX1 ET0 EX0 00H B8H EXEN 2 - IEIIC IELVI IEKBI IEADC IESPI - 00H 9AH - - - - - ECmpI EWDT ES1 00H C0H EXF2 TF2 IICIF LVIIF KBIIF ADCIF SPIIF PWMI F 00H 97H - - - - - CmpIF WDT IF - 00H A9H - - IP0.5 IP0.4 IP0.3 IP0.2 IP0.1 IP0.0 00H B9H - - IP1.5 IP1.4 IP1.3 IP1.2 IP1.1 IP1.0 00H 11.1 中断使能 0 寄存器( IEN0 ) 符号: IEN0 7 6 EA - 5 ET2 4 ES 3 ET1 2 EX1 1 ET0 0 EX0 地址: A8h Reset 00h 4 IELVI 3 IEKBI 2 IEADC 1 IESPI 0 - 地址: B8h Reset 00H EA: EA=0 –禁能所有中断 EA=1 –使能所有中断 ET2: ET2=0 –禁能定时器 2 中断 ET2=1 –使能定时器 2 中断 ES: ES=0 –禁能串行口中断 ES=1 –使能串行口中断 ET1: ET1=0 –禁能定时器 1 中断 ET1=1 –使能定时器 1 中断 EX1: EX1=0 –禁能外部中断 1 EX1=1 –使能外部中断 1 ET0: ET0=0 –禁能定时器 0 中断 ET0=1 –使能定时器 0 中断 EX0: EX0=0 –禁能外部中断 0 EX0=1 –使能外部中断 0 11.2 中断使能 1 寄存器( IEN1 ) 符号: IEN1 7 6 EXEN2 - 5 IEIIC EXEN2: 定时器 2 重载中断使能位 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 74 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 EXEN2 = 0 –禁能定时器 2 外部重载中断 EXEN2 = 1 –使能定时器 2 外部重载中断 IEIIC: IIC 中断使能位 IEIICS = 0 –禁能 IIC 中断 IEIICS = 1 –使能 IIC 中断 IELVI: 低压侦测中断使能位 IELVI = 0 –禁能低压侦测中断 IELVI = 1 –使能低压侦测中断 IEKBI KBI interrupt enable EKBI = 0 – Disable KBI interrupt. IEKBI = 1 – Enable KBI interrupt. IEADC: A/D 转换中断使能位 IEADC = 0 –禁能 ADC 中断 IEADC = 1 –使能 ADC 中断 IESPI: SPI 中断使能位 IESPI = 0 –禁能 SPI 中断 IESPI = 1 –使能 SPI 中断 11.3 中断使能 2 寄存器( IEN2 ) 符号: IEN2 7 6 - 5 - 4 - 3 - 2 ECmpI 1 IEWDT 0 ES1 地址: 9Ah Reset 00H ECmpI: ECmpI =0 –禁能比较器中断. ECmpI =1 –使能比较器中断(包括比较器 0 及比较器 1). IEWDT: WDT 看门狗中断使能位 IEWDT = 0 –禁能 WDT 中断 IEWDT = 1 –使能 WDT 中断 ES1 ES1=0 – Disable Serial channel 1 interrupt. ES1=1 – Enable Serial channel 1 interrupt. 11.4 中断请求寄存器( IRCON ) 符号: IRCON 7 6 EXF2 TF2 5 IICIF 4 LVIIF 3 KBIIF 2 ADCIF 1 SPIIF 地址: C0h 0 Reset PWMIF 00H EXF2: 定时器 2 重载中断旗标位.必须由软件清零 TF2: 定时器 2 中断旗标位.必须由软件清零 IICIF: IIC 中断旗标位 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 75 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 LVIIF: 低压侦测中断旗标位 KBIIF KBI 中断旗标. ADCIF: A/D 转换中断旗标位 SPIIF: SPI 中断旗标位 PWMIF PWM 中断旗标. 11.5 中断请求寄存器 2( IRCON2 ) 符号: IRCON2 7 6 - 5 - 4 - 3 - 2 CmpIF 1 WDTIF 0 - 地址: 97h Reset 00H CmpIF: 比较器中断旗标位, 当比较器中断使能时,此旗标位将于程序至中断向量执行时自动清零. 当比较器中断禁能时,此旗标位可由软件清零 WDTIF: 看门狗中断旗标位 11.6 优先权配置 所有中断来源相组合于以下组中, 如表 11-2: 表 11-2: Priority level groups Groups 串行通道 1 中断 看门狗中断 比较器中断 USB 中断 USBRSM 中断 - 外部中断 0 定时器 0 中断 外部中断 1 定时器 1 中断 串行口中断 定时器 2 中断 PWM 中断 SPI 中断 ADC 中断 KBI 中断 LVI 低压侦测中断 IIC 中断 通过对SFR中的IP0或IP1置位或清零,每一组中断都可被独自编程为四个优先级中的一个,如要求相同的优先级被同时 接收,一内部轮询序列将依次确定哪个请求被优先服务. 符号: IP0 7 - 6 - 5 IP0.5 4 IP0.4 3 IP0.3 2 IP0.2 1 IP0.1 地址: A9h 0 Reset IP0.0 00h 符号: IP1 7 - 6 - 5 IP1.5 4 IP1.4 3 IP1.3 2 IP1.2 1 IP1.1 地址: B9h 0 Reset IP1.0 00h Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 76 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 IP1.x 0 0 1 1 Bit IP1.0, IP0.0 IP1.1, IP0.1 IP1.2, IP0.2 IP1.3, IP0.3 IP1.4, IP0.4 IP1.5, IP0.5 外部中断 0 定时器 0 中断 外部中断 1 定时器 1 中断 串行口 0 中断 定时器 2 中断 表 11-3: Priority levels IP0.x 优先权层级 0 Level0 (最低) 1 Level1 0 Level2 1 Level3 (最高) 表 11-4: Groups of priority Group 串行通道 1 中断 看门狗中断 比较器中断 USB 中断 USBRSM 中断 - PWM 中断 SPI 中断 ADC 中断 KBI 中断 低压侦测中断 IIC 中断 表 11-5: 轮询顺序 中断源 外部中断 0 串行通道 1 中断 PWM 中断 定时器 0 中断 看门狗中断 SPI 中断 外部中断 1 比较器中断 ADC 中断 定时器 1 中断 USB interrupt 顺序 轮 询 顺 序 KBI 中断 串行口 0 中断 USBRSM 中断 低压侦测中断 定时器 2 中断 IIC 中断 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 77 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 12. 电源管理单元 电源管理单元提供两种电源管理模式,即IDLE(待机/空闲)和STOP(停止),并为用户提供省电功能。 符号: PCON 7 6 SMOD - 5 - 4 - 3 - 2 - 1 STOP 0 IDLE 地址: 87h Reset 00h STOP: STOP 模式控制位。设置此位将运行 STOP 模式,STOP 位总是读为 0. IDLE: IDIE 模式控制位。设置此位将运行 IDLE 模式,IDLE 位总是读为 0 12.1 待机模式(空闲模式) 使用IDLE(待机模式(空闲模式))模式可通过对PCON寄存器的IDLE位置位。空闲模式停止MCU的时钟源,但外部的时 钟源依旧保持,由于此时CPU不工作,电源功耗将被降低。当任何一中断信号或者一复位信号时,CPU将退出待机模式 (空闲模式)。 12.2 停止模式 使用STOP(停止模式)模式可通过对PCON寄存器的STOP位置位。在此模式中,所有的中断源将全部被关闭,CPU将 从一个无时钟的中断(外部中断0/1, 键盘中断及低压侦测、看门狗中断)或者一个重置(看门狗及低压重置)条件下退 出该模式,内部产生的中断(定时器,串行端口... ),由于它们需要时钟源而会没有任何动作。 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 78 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 13. 脉宽调制器(PWM) PWM 模块的特征. 八通道 (四对) PWM 输出引脚. 14-bit 解析. 中心和边缘对齐方式输出模式. 死计(dead time)时产生器. 脉宽调制和特殊事件中断触发器。 马达控制有输出改写功能。 超速档电流保护错误(FLTA 和 FLTB) 以下是 PWM 的工作模块,如图 13-1中所示 PWM_SYNC TBCounter PWM Pair3 Generator DUTY PWM7 Pair 3 Dead Time Generator 3 Override Logic PWM6 Comparator Period Reg. PWM Pair2 Generator DUTY PWM5 Pair 2 Dead Time Generator 2 Override Logic Output Driver Block Period(SFR) PWM Pair1 Generator DUTY Pair 1 Dead Time Generator 1 Override Logic PWM4 PWM3 PWM2 SEVTCMP Comparator PWM Pair0 Generator DUTY PWM1 Pair 0 Dead Time Generator 0 Override Logic PWM0 nFLTA nFLTB SEVTDIR PWMBTDIR Special Event Postscaler PWM Time Base Postscaler Special Event Interrupt Special Event Trigger SEVTIF Special Event Interrupt Enable PWM Interrupt PWMPIF PWM Period Interrupt Enable 图 13-1: 工作模块的 PWM Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 79 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 中断向量是 43 h . 符号 描述 地址 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 重置值 The relevant registers of the PWM function PWMADDR PWMDATA ADCC2 PWMTBC0 PWMTBC1 PWMOPMOD TBCOUNTER L TBCOUNTER H PERIODL PERIODH SEVTCMPL SEVTCMPH PWMEN PWMSEV PWMTBPOST SCALE PWMINTF PWM Address Register PWM Data Register ADC Control 2 Register PWM Time Base Control 0 Register PWM Time Base Control 1 Register PWM Output Pair Mode Register Time Base Counter (Low) Time Base Counter (High) PWM Period (Low) Register PWM Period(High) Register Special Event Compare Low Register Special Event Compare High Register PWM Output Enable Register PWM Special Event Register PWM Time Base Post Scale Register PWM Interrupt Flag Register A2h PWMADDR[7:0] 00H A3h PWMDATA[7:0] 00H ACh PWM Trigge rEN PWM Start F9h FAh PW MTB EN ADCCH[2:0] PWM OP3 MOD - FCh PWM OP2M OD - 00H SEVT IE PWMP IE 00H PWM OP1M OD PWM OP0 MOD 00H 00H Time Base Counter High 6 bit F1h 00H PWM Period Low 8 bit F2h - FFH PWM Period High 6 bit F3h 3FH Special Event Compare Low 8 bit F4h PW M7 EN EDh PWM5 EN PWM4 EN SEVPOST[3:0] EEh FFH Special Event Compare High 6 bit PWM6 EN 3FH PWM3 EN PWM 2 EN PWM 1 EN PWM0 EN 00H SEVT DIR - UDIS OSYN C 00H PWMTBPOST[7:0] PW MTB DIR - 00H PWMTBMOD[1 :0] Time Base Counter Low 8 bit FDh BCh ADC MODE PWMTBPRE[1: 0] - FBh F5h EXT Trigge rEN Adjust 00H SEVT IF PWMP IF 00H Dead Time 0 E9h DT0PRE[1:0] DT0[5:0] 00H Register Dead Time 1 DEADTIME1 EAh DT1PRE[1:0] DT1[5:0] 00H Register Dead Time 2 DEADTIME2 EBh DT2PRE[1:0] DT2[5:0] 00H Register Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 80 DEADTIME0 SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 Dead Time 3 Register Fault Configure Register Fault Noise Filter Register DEADTIME3 FLTCONFIG FLTNF PWMPOLARIT Y OVRIDEDIS OVRIDEDATA DUTY0L DUTY0H DUTY1L DUTY1H DUTY2L DUTY2H DUTY3L DUTY3H ECh DT3PRE[1:0] DBh BRF EN DCh PWM Polarity Register DDh Override Disable Register DEh Override Data Register DFh PWM 0 Duty Low byte Register PWM 0 Data High byte Register PWM 1 Duty Low byte Register PWM 1 Data High byte Register PWM 2 Duty Low byte Register PWM 2 Duty High byte Register PWM 3 Duty Low byte Register PWM 3 Duty High byte Register FLTB S Polarit y 6 OV6 DIS FLTB MOD FLTB LS Polarit y 5 OV5 DIS FLTB EN FLTA LS Polarit y 4 OV4 DIS FLT CON FLTB NF Polarit y 3 OV3 DIS OV6 DATA OV5 DATA OV4 DATA OV3 DATA Polar ity 7 OV7 DIS OV7 DAT A DT3[5:0] D1h 00H FLTA S FLTA NF FLTA MOD FLTA EN Polarit y2 Polarit y1 OV2 DIS OV1 DIS Polarit y 0 OV0 DIS OV2 DATA OV1 DATA OV0 DATA - 00H PWM Pair 0 Duty Low 8 bit D2h - - 00H PWM Pair 2 Duty Low 8 bit D6h - 00H PWM Pair 2 Duty High 6 bit D7h 00H PWM Pair 3 Duty Low 8 bit C9h - 00H 00H PWM Pair1 Duty High 6 bit D5h FFH 00H PWM Pair1 Duty Low 8 bit D4h FFH 00H PWM Pair 0 Duty High 6 bit D3h 80H 00H PWM Pair 3 Duty High 6 bit 00H 13.1 ADC 控制寄存器 2 符号:ADCC2 7 Start 6 Adjust 5 PWM TriggerEN 4 EXT TriggerEN 3 ADC MODE 2 1 ADCCH[2:0] 0 地址: ACh Reset 00H Start 当这位被设置时,ADC 将开始转换。 (软件触发转换) ADJUST 调整 ADC 转换数据的格式。 ADJUST = 0: (默认值) ADC 数字输出高字节 ADCD [9:2] = ADCDH [7:0]. Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 81 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 ADC 数字输出低字节 DCD [1:0] = ADCDL [1:0]. ADJUST = 1: ADC 数字输出高字节 ADCD [9:8] = ADCDH [1:0]. ADC 数字输出低字节 ADCD [7:0] = ADCDL [7:0]. PWMTriggerEN 设定 PWM 触发 ADC. (硬件内部触发转换) 0 =禁止 1 =使能 EXTTriggerEN 外部引脚触发 ADC,开始转换。 (硬件外部触发转换) 0 =禁止 1 =使能 ADCMOD 0 =连续模式 1 =单次模式 ADCCH[2:0] ADC 通道选择. ADCCH [2:0] 000 001 010 011 100 101 110 111 Channel 0 1 2 3 4 5 6 7 13.2 PWM 时基控制 0( PWMTBC0 ) 符号: PWMTBC0 7 6 5 4 - 3 2 PWMTBPRE[1:0] 1 0 PWMTBMOD[1:0] 地址: F9h Reset 00H PWMTBPRE PWM 时基分频 [1:0] PWMTBPRE [1:0] 00 01 10 11 Mode Fosc Fosc/4 Fosc/16 Fosc/64 PWMTBMOD PWM 时基模式 PWMTBMOD [1:0] = 00 -自由运行模式 PWMTBMOD [1:0] = 01 -单次转换模式 PWMTBMOD [1:0] = 10 -连续向上/向下计数模式. ( TBCOUNTER = PERIOD 产生一 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 82 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 个中断 ) PWMTBMOD [1:0] = 11 -连续向上/向下计数模. (TBCOUNTER = PERIOD and TBCOUNTER = 0 各产生一个中断) Minimum PWM Frequencies Example: Fosc= 24MHz, PERIOD = 0x3FFFh Prescale PWM Frequency Edge-align PWM Frequency center-align 1:1 1500 Hz 750 Hz 1:4 375 Hz 188 Hz 1:16 94 Hz 47 Hz 1:64 23 Hz 12 Hz 13.3 PWM 时基控制 1( PWMTBC1 ) 符号: PWMTBC1 7 6 PWMTBEN - 5 - 4 - 3 - 2 - 1 SEVTIE 0 PWMPIE 地址: FAh Reset 10H PWMTBEN PWM 时基使能 0 = PWM 时基禁止 1 = PWM 时基使能 SEVTIE: 特殊事件中断使能 SEVTIE = 0 - 特殊事件中断禁止 SEVTIE = 1 - 特殊事件中断使能 PWMPIE: PWM 周期中断允许 PWMPIE = 0 - PWM 周期中断禁止 PWMPIE = 1 - PWM 周期中断使能 13.4 PWM 输出双模式( PWMOPMOD ) 符号: PWMOPMOD 7 6 5 4 - 3 PWMOP3MOD 2 PWMOP2MOD 1 PWMOP1MOD 地址: FBh 0 Reset PWMOP0MOD 00H PWMOP3MOD PWM 输出对 3 个模式 0 = (PWM6, PWM7) 是互补模式 1 = (PWM6, PWM7) 独立模式 PWMOP2MOD PWM 输出对 2 模式 0 = (PWM4, PWM5) 是互补模式 1 = (PWM4, PWM5) 独立模式 PWMOP1MOD PWM 输出对 1 模式 0 = (PWM2, PWM3) 是互补模式 1 = (PWM2, PWM3) 独立模式 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 83 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 PWMOP0MOD PWM 输出对 0 模式 0 = (PWM0, PWM1) 是互补模式 1 = (PWM0, PWM1) 独立模式 13.5 PWM 时钟的时基计数器( TBCOUNTERL, TBCOUNTERH ) 符号: TBCOUNTERL 7 6 5 4 3 2 Time Base Counter Low 8 bit [7:0] 符号: TBCOUNTERH 7 6 5 - 0 地址: FCh Reset 00H 0 地址: FDh Reset 00H 1 0 地址: F1h Reset FFH 3 2 1 PWM Period High 6 bit [5:0] 0 地址: F2h Reset 3FH 0 地址: F3h Reset FFH 0 地址: F4h Reset 3FH 1 4 3 2 1 Time Base Counter High 6 bit [5:0] 13.6 PWM 周期( PERIODL, PERIODH ) 符号: PERIODL 7 6 符号: PERIODH 7 6 - 5 4 3 2 PWM Period Low 8 bit [7:0] 5 4 13.7 特殊事件比较( SEVTCMPL, SEVTCMPH ) 符号: SEVTCMPL 7 6 5 4 3 2 Special Event Compare Low 8 bit [7:0] 符号: SEVTCMPH 7 6 - 5 1 4 3 2 1 Special Event Compare High 6 bit [5:0] 13.8 PWM 输出使能( PWMEN ) 符号: PWMEN 7 6 PWM7EN PWM6EN 5 PWM5EN 4 PWM4EN 3 PWM3EN 2 PWM2EN 1 PWM1EN 地址: F5h 0 Reset PWM0EN 00H PWM7EN PWM 7 使能选择 PWM7EN = 0 - PWM7 输出禁止 PWM7EN = 1 - PWM7 输出使能 PWM6EN PWM 6 使能选择 PWM6EN = 0 - PWM6 输出禁止 PWM6EN = 1 - PWM6 输出使能 PWM5EN PWM 5 使能选择 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 84 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 PWM5EN = 0 - PWM5 输出禁止 PWM5EN = 1 - PWM5 输出使能 PWM4EN PWM 4 使能选择 PWM4EN = 0 - PWM4 输出禁止 PWM4EN = 1 - PWM4 输出使能 PWM3EN PWM 3 使能选择 PWM3EN =0 - PWM3 输出禁止 PWM3EN =1 - PWM3 输出使能 PWM2EN PWM 2 使能选择 PWM2EN =0 - PWM2 输出禁止 PWM2EN =1 - PWM2 输出使能 PWM1EN PWM 1 使能选择 PWM1EN =0 - PWM1 输出禁止 PWM1EN =1 - PWM1 输出使能 PWM0EN PWM 0 使能选择 PWM0EN =0 - PWM0 输出禁止 PWM0EN =1 - PWM0 输出使能 13.9 PWM 特殊事件 符号: PWMSEV 7 6 5 SEVPOST[3:0] 4 3 SEVTDIR 2 - 1 UDIS 0 OSYNC 地址: EDh Reset 00H SEVPOST 特殊事件后端缩放(Postscale) 集(设定多少次数的特殊事件发生触发一次中断) SEVPOST [3:0] 0000 = 1:1 后分频器 SEVPOST [3:0] 0001 = 1:2 后分频器 : : SEVPOST [3:0] 1111 = 1:16 后分频器 SEVTDIR 特殊事件触发时基方向 SEVTDIR = 0 - PWM时基向上计数. SEVTDIR = 1 - PWM 时基向下计数. UDIS PWM 更新禁止. (该位影响 PERIOD, DUTY, SEVTCMP; OVRIDEDIS, OVRIDEDATA) UDIS = 0 -更新从占空比(duty cycle)和周期缓冲使能 UDIS = 1 - 更新从占空比(duty cycle)和周期缓冲禁止 OSYNC PWM 输出重载(override)同步 OSYNC = 0 -输出的重载通过 OVRIDEDIS 的寄存器是同步的 OSYNC = 1 - 同步的通过 OVRIDEDIS 寄存器的输出重载 PWM 时基. Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 85 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 13.10 PWM 时基比例寄存器( PWMTBPOSTSCALE) 符号: PWMTBPOSTSCALE 7 6 5 4 3 PWMTBPOST [7:0] 2 1 0 地址: EEh Reset 00H PWMTBPOST[7:0] PWM 时基后分频器(Post Scale). (设定多少次数的 PWM 周期发生触发一次中断) 0000_0000 = 1: 1 后分频器 0000_0001 = 1: 2 后分频器 : : 0000_1111 = 1: 16 后分频器 0001_0000 = 1: 17 后分频器 : : 1111_1111 = 1: 256 后分频器 13.11 PWM 中断旗标 符号: PWMINTF 7 PWMTBDIR PWMTBDIR: SEVTIF: PWMPIF: 6 5 4 3 - 2 1 SEVTIF 地址: BCh 0 Reset PWMPIF 00H PWM时基计数方向状态(只读) 0 = 向上计数 1 = 向下计数 特殊事件中断旗标 PWM周期中断旗标 13.12 死区 當半桥(half-bridge)电路正在应用时,在同一时间的上限和下限的手臂開始進行状态轉換周期,由于在TON 及TOFF字符 時,功率晶体不能瞬时完成转状态,从而导致短路,所以必须抽出一定的时间,使功率晶体转换状态。 每对互补 PWM 输出有 6 位向下计数器,由于产生死区,每个死区单位都有一个上升边缘和下降边缘检测器,根据计数 器並且数字的值为零时,剛好會被转换。如图 13-2中所示。 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 86 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 Td 2 ( DT 0 PRE 1 ) Fosc DT 0 Td Td Compare output PWM1 PWM0 图 13-2: PWM 输出比较 13.12.1 死区 0 用于 PWM 配对 0( DEADTIME0 ) 符号: DEADTIME0 7 6 DT0PRE[1:0] DT0PRE[1:0] DT0[5:0] 5 4 3 DT0[5:0] 2 1 0 地址: E9h Reset 00H 死区 0 的分频 00 = Fosc/2 01 = Fosc/4 10 = Fosc/8 11 = Fosc/16 死区 0 频率= 24MHz, 周期= 14 位 最小死区 最大死区 83 ns 5.3 us (To apply to CCD) 166 ns 10.6 us 332 ns 21.2 us 664 ns 42.4 us Prescale 1:2 1:4 1:8 1:16 13.12.2 死区 1 用于 PWM 配对 1( DEADTIME1 ) 符号: DEADTIME1 7 6 5 DT1PRE[1:0] 4 3 DT1[5:0] 2 1 00H 0 地址: EAh Reset Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 87 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 DT1PRE[1:0] DT1[5:0] 死区1的分频 00 = Fosc/2 01 = Fosc/4 10 = Fosc/8 11 = Fosc/16 死区 1 13.12.3 死区 2 用于 PWM 配对 2( DEADTIME2 ) 符号: DEADTIME2 7 6 5 DT2PRE[1:0] DT2PRE[1:0] DT2[5:0] 4 3 DT2[5:0] 2 1 0 地址: EBh Reset 00H 3 DT3[5:0] 2 1 0 地址: ECh Reset 00H 死区 2的分频 00 = Fosc/2 01 = Fosc/4 10 = Fosc/8 11 = Fosc/16 死区 2 13.12.4 死区 3 用于 PWM 配对 3( DEADTIME3 ) 符号: DEADTIME3 7 6 5 DT3PRE[1:0] DT3PRE[1:0] DT3[5:0] 4 死区 3 Prescale 00 = Fosc/2 01 = Fosc/4 10 = Fosc/8 11 = Fosc/16 死区 3 00_0000 = 1死区3单位. 00_0001 = 2死区3单位 …………. 11_1111 = 64死区3单位. 13.12.5 改写禁止( OVRIDEDIS ) 符号: OVRIDEDIS 7 6 OV7DIS OV6DIS 5 OV5DIS 4 OV4DIS 3 OV3DIS 2 OV2DIS 1 OV1DIS 0 OV0DIS 地址: DEh Reset FFH OV7DIS 改写禁止 7 行动选择 OV7DIS = 0 - PWM7 改写数据使能 OV7DIS = 1 - PWM7 改写数据禁止 OV6DIS 改写禁止 6 行动选择 OV6DIS = 0 - PWM6 改写数据使能 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 88 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 OV6DIS = 1 - PWM6 改写数据禁止 OV5DIS 改写禁止 5 行动选择 OV5DIS = 0 - PWM5 改写数据使能 OV5DIS = 1 - PWM5 改写数据禁止 OV4DIS 改写禁止 4 行动选择 OV4DIS = 0 - PWM4 改写数据使能 OV4DIS = 1 - PWM4 改写数据禁止 OV3DIS 改写禁止 3 行动选择 OV3DIS = 0 - PWM3 改写数据使能 OV3DIS = 1 - PWM3 改写数据禁止 OV2DIS 改写禁止 2 行动选择 OV2DIS = 0 - PWM2 改写数据使能 OV2DIS = 1 - PWM2 改写数据禁止 OV1DIS 改写禁止 1 行动选择 OV1DIS = 0 - PWM1 改写数据使能 OV1DIS = 1 - PWM1 改写数据禁止 OV0DIS 改写禁止 0 行动选择 OV0DIS = 0 - PWM0 改写数据使能 OV0DIS = 1 - PWM0 改写数据禁止 13.12.6 改写数据 符号: OVRIDEDATA 7 6 OV7DATA OV6DATA 5 OV5DATA 4 OV4DATA 3 OV3DATA 2 OV2DATA 1 OV1DATA 0 OV0DATA 地址: DFh Reset 00H OV7DATA Ovride Data 7 OV7DATA = 0 - PWM7 改写数据 OV7DATA = 1 - PWM7 改写数据 OV6DATA Ovride Data 6 OV6DATA = 0 - PWM6 改写数据 OV6DATA = 1 - PWM6 改写数据 OV5DATA Ovride Data 5 OV5DATA = 0 - PWM5 改写数据 OV5DATA = 1 - PWM5 改写数据 OV4DATA Ovride Data 4 OV4DATA = 0 - PWM4 改写数据 OV4DATA = 1 - PWM4 改写数据 OV3DATA Ovride Data 3 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 89 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 OV3DATA = 0 - PWM3 改写数据 OV3DATA = 1 - PWM3 改写数据 OV2DATA Ovride Data 2 OV2DATA = 0 - PWM2 改写数据 OV2DATA = 1 - PWM2 改写数据 OV1DATA Ovride Data 1 OV1DATA = 0 - PWM1 改写数据 OV1DATA =1 - PWM1 改写数据 OV0DATA Ovride Data 0 OV0DATA = 0 - PWM0 改写数据 OV0DATA = 1 - PWM0 改写数据 Period Cycle 1 2 3 4 Example: PWM 输出改写波行. OVRIDEDIS[7:0] OVRIDEDATA[7:0] 11110000b 00000011b 11110000b 00000110b 11110000b 00001100b 11110000b 00001010b PWMPOLARITY[7:0] 11111111b 11111111b 11111111b 11111111b 13.12.7 PWM 极性( PWMPOLARITY ) 符号: PWMPOLARITY 7 6 POLARITY7 POLARITY6 5 POLARITY5 4 POLARITY4 3 POLARITY3 2 POLARITY2 1 POLARITY1 地址: DDh 0 Reset POLARITY0 FFH POLARITY7 PWM Polarity 7 POLARITY7 = 0 - PWM7 极性低电平动作 POLARITY7 = 1 - PWM7 极性高电平动作 POLARITY6 PWM Polarity 6 POLARITY6 =0 - PWM6 极性低电平动作 POLARITY6 =1 - PWM6 极性高电平动作 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 90 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 POLARITY5 PWM Polarity 5 POLARITY5 = 0 - PWM5 极性低电平动作 POLARITY5 = 1 - PWM5 极性高电平动作 POLARITY4 PWM Polarity 4 POLARITY4 = 0 - PWM4 极性低电平动作 POLARITY4 = 1 - PWM4 极性高电平动作 POLARITY3 PWM Polarity 3 POLARITY3 = 0 - PWM3 极性低电平动作 POLARITY3 = 1 - PWM3 极性高电平动作 POLARITY2 PWM Polarity 2 POLARITY2 = 0 - PWM2 极性低电平动作 POLARITY2 = 1 - PWM2 极性高电平动作 POLARITY1 PWM Polarity 1 POLARITY1 = 0 - PWM1 极性低电平动作 POLARITY1 = 1 - PWM1 极性高电平动作 POLARITY0 PWM Polarity 0 POLARITY0 = 0 - PWM0 极性低电平动作 POLARITY0 = 1 - PWM0 极性高电平动作 13.13 错误配置( FLTCONFIG ) FLTA 或 FLTB 在使用时,如果硬件检测到任何异常信号,PMW 的状态将自动转移为非活动状态. 13.14 PWM 错误输入 PWM 模块提供了通过 FLTA 和 FLTB 输出错误功能。禁止PWM 信号输出是它的主要功能,以及进入到一个非活动状 态。当错误发生时,硬件会随即执行并且进到一个非活动状态; PWM引脚 非活动状态。在正常工作状态下,无论是动作 在高或低都可以被引导用户通过简单的操作. 每个错误的投入有两种操作模式 Inactive模式 如果出现错误,输出信号的 PWM 处于非活动(deactivated)状态,PWM 引脚的状态将维持在非活动状态及对应 到 FLTxS 的旗标并且设置起来。当 PWM 输出要恢复在正常的工作状态,必需要藉由软件来清除 FLTxS 上的 Fault 的状态旗标。 Cycle-by-Cycle 模式 当错误功能发生时,PWM 的输出是处于非活动(deactivated)状态,PWM 引脚的状态将维持在非活动状态及对应 到 FLTxS 的旗标并且设置起来。当错误解除时,FLTxS 对应的旗标被清为零, PWM 的输出将恢复在正常的工作 状态。 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 91 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 符号: FLTCONFIG 7 6 BRFEN FLTBS 5 FLTBMOD 4 FLTBEN 3 FLTCON 2 FLTAS 1 FLTAMOD 0 FLTAEN 地址: DBh Reset 80H BRFEN 断点错误使能 BRFEN = 0 -禁止 BRFEN = 1 -使能 FLTBS 错误 B 状态,必须由 SW 清除(非动作模式) FLTBS = 0 – N 没有错误 FLTBS = 1 - /FLTB is asserted. FLTBMOD FLTB Mode Set FLTBMOD = 0 - 非动作模式 FLTBMOD = 1 - cycle-by-cycle mode FLTBEN FLTB 动作设置 FLTBEN = 0 -禁止 Fault B 功能 FLTBEN = 1 - 使能 Fault B 功能 FLTCON 0 = inactive PWM[5:0] 1 = inactive PWM[7:0] FLTAS 错误状态,必须由 SW 清除(非动作模式) FLTAS = 0 - No Fault FLTAS = 1 - /FLTA is asserted. FLTAMOD FLTA Mode Set FLTAMOD = 0 -非动作模式 FLTAMOD = 1 - cycle-by-cycle 模式 FLTAEN FLTA Active Set FLTAEN = 0 -禁止 Fault A 功能 FLTAEN = 1 -使能 Fault A 功能 13.15 错误噪声滤波器 符号: FLTNF 7 FLTBLS: 6 - 5 FLTBLS 4 FLTALS 3 2 FLTBNF[1:0] 1 0 FLTANF[1:0] 地址: DCh Reset 00H Fault B层次选择 0: 低电平动作 1: 高电平动作 FLTALS: Fault A 层次选择 0: 低电平动作 1: 高电平动作 FLTANF Fault A噪声滤波器 [1:0] 00 = Fosc/1 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 92 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 01 = Fosc/2 10 = Fosc/4 11 = Fosc/8 Fault B噪声滤波器r 00 = Fosc/1 01 = Fosc/2 10 = Fosc/4 11 = Fosc/8 FLTBNF [1:0] 13.16 PWM 配對 0 占空比( DUTY0L, DUTY0H ) 符号: DUTY0L 6 5 4 3 2 PWM Pair 0 Duty Low 8 bit [7:0] 符号: DUTY0H 6 5 4 1 00H 3 2 1 PWM Pair 0 Duty High 6 bit [5:0] - 地址: D1h Reset 0 地址: D2h Reset 0 00H 13.17 PWM 配對 1 占空比( DUTY1L, DUTY1H ) 符号: DUTY0L 6 5 符号: DUTY0H 7 6 4 3 2 PWM Pair 1 Duty Low 8 bit [7:0] 5 4 - 1 地址: D3h Reset 0 00H 3 2 1 PWM Pair 1 Duty High 6 bit [5:0] 0 地址: D4h Reset 00H 13.18 PWM 配對 2 占空比( DUTY2L, DUTY2H ) 符号: DUTY2L 6 5 符号: DUTY0H 6 5 - 4 3 2 PWM Pair 2 Duty Low 8 bit [7:0] 4 1 3 2 1 PWM Pair 2 Duty High 6 bit [5:0] 0 地址: D5h Reset 00H 0 地址: D6h Reset 00H Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 93 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 13.19 PWM 配對 3 占空比( DUTY3L, DUTY3H ) 符号: DUTY3L 7 6 符号: DUTY3H 7 6 - 5 5 4 3 2 PWM Pair 3 Duty Low 8 bit [7:0] 4 1 3 2 1 PWM Pair 3 Duty High 6 bit [5:0] 0 地址: D7h Reset 00H 0 地址: C9h Reset 00H Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 94 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 14. IIC 功能 这些IIC模块使用SCL(时钟)和SDA(数据)线来联系其它的IIC界面, 其速度可以由软件设置特殊寄存器(SFR)中的 IICBR[2:0] ,从而使其高达到400KBpS(最大值). IIC模块可以是主机也可以是从机,提供两个中断(RXIF,TXIF),并 有两个地址以作数据传输,它将产生开始,在主机模式中,反复启动和停止信号,在从机模式中,它将检测开始,反复 启动和停止信号, 最大沟通的长度及连接器件的数目被一个最大400pF 的电容所限制 符号 描述 地址 Bit 7 AUX Auxiliary register 91h BRGS F9h IICEN F8h - IICCTL IICS IIC control register IIC status register 中断向量为 6Bh. Bit 6 Bit 5 Bit 4 IIC function P4UR P4SPI 1 AB_E MSS MAS N MPIF LAIF RXIF IICA1 IIC Address 1 register FAh IICA1[7:1] IICA2 IIC Address 2 register FBh IICA2[7:1] IICRWD IICEBT IIC Read/Write register IIC Enaable Bus Transaction 符号: AUX 7 6 BRGS - FCh FDh 5 P4SPI Bit 3 Bit 2 Bit 1 Bit 0 重置值 P4IIC P0KBI - DPS 00H BF_EN TXIF IICBR[2:0] RXAK TXAK 04H RW or BB MATC H1or RW1 MATC H2 or RW2 IICRWD[7:0] FU_EN 4 P4UR1 - 3 P4IIC 00H A0H 60H 00H - - - 2 P0KBI 1 - 0 DPS - - 00H 地址: 91h Reset 00H P4IIC: P4IIC = 0 – IIC function on P1. P4IIC = 1 – IIC function on P4. 14.1 IIC 控制寄存器( IICCTL ) 符号: IICCTL 7 6 IICEN MSS 5 MAS 4 AB_EN 3 BF_EN 2 1 IICBR[2:0] 0 地址: F9h Reset 04h IICEN: IIC 模式使能 IICEN = 1,使能 IICEN = 0,禁止 MSS: 主\从机模式选择 MSS = 1, 选择主机模式 MSS = 0, 选择从机模式 软件必须在设置其它寄存器之前置位 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 95 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 MAS: 主模式的地址选择(仅在主机模式中) MAS = 0,使用 IICA1 MAS = 1,使用 IICA2 AB_EN: 仲裁失去了使能位. (仅主机模式) 当 AB_EN 位使能, 硬件将检查仲裁丢失位.一旦发生丢失仲裁, 硬件将返回到空闲状态. 如果此位 被清除, 硬件也不会理会仲裁丢失情况.当多主机与从机连接时需设置此位.于单主机与从机时清 除此位. BF_EN: 总线忙碌使能位. (仅主机模式) 当 BF_EN 位使能,硬件将不会产生开始信号至总在线直到 BF 已置低.此位若被清零将永远产生开 始信号至总线当 MStart 置高.当多主机与从机连接时需设置此位.于单主机与从机时清除此位. IICBR[2:0]: 波特率选择(仅在主机模式)这里的 Fosc 为外部晶体或振荡器的频率,系统默认为 Fosc/512 以便用户选择 IICBR[2:0] 000 001 010 011 100 101 110 111 Baud rate Fosc/32 Fosc/64 Fosc/128 Fosc/256 Fosc/512 Fosc/1024 Fosc/2048 Fosc/4096 14.2 IIC 状态寄存器( IICS ) 符号: IICS 7 6 MPIF 5 LAIF 4 RXIF 3 TXIF 2 RXAK 1 TXAK 0 RW or BB 地址: F8H Reset 00H MPIF: 停止条件中断旗标 当停止条件发生此位将置高.此位需由软件清零 LAIF: 仲裁失去中断旗标. (只主机模式) 当仲裁失去条件发生此位将置高.此位需由软件清零 RxIF: 数据接收中断标志位,在 IICRWD(IIC 读写数据缓存)载入一个新的接收数据时被置 位;软件清零该位后,IIC 中断标志位(IICIF)将自动清零。 TxIF: 数据传输中断标志位,当所有位于转换寄存器中的位数据被传输时,该位被置位,来自 IICRWD(IIC 读/写数据缓存)的 8 位数据被下载至转换寄存器中;软件清零该位后,IIC 中 断标志位(IICIF)将自动清零。 RxAK: 接收确认位. 置零,这意味着一个确认信号已经收到在完成 8 位数据传输总线上后. TxAK: 传输确认位. 当收到完整的 8 位数据, 此位将设置(NoAck) 或清除(Ack) 并传输到主机显示 接收状态. 事实上, 它是被作为一个字节的传输在第 9 位. RW or BB: 主机模式: BB:总线忙碌表示位 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 96 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 当侦测到 scl=0 或 sda=0 或总线产生开始信号,此位将置高.当侦测到停止信号,此位将清 零. 此位可由软件清零以使系统回到就绪状态. 从机模式: RW:从机模式的读取(接收)或写(传输) 在 IIC 总线. 当此位被清除, 表示从机模式在 IIC 总线接收数据.(只从机模式),如图 14-1 图 14-1: Acknowledgement bit in the 9th bit of a byte transmission 14.3 IIC 地址 1 寄存器( IICA1 ) 符号: IICA1 7 6 5 4 3 2 IICA1[7:1] R/W 1 地址: FAH Res 0 et Match1 or RW1 A0H R or R/W 从机模式: IICA1[7:1]: IIC 地址寄存器 这是为从机模式的第一个 7-位的地址,它在一个地址(来自主机模式)接收后被检测 Match1: 当 IICA1 和来自主机模式方的接收地址匹配时,该位将被硬件置位,当 IIC 总线读或写第一笔资料 时,该位将被自动清除。 主机模式: IICA1[7:1]: IIC 地址寄存器 显示要与它通讯的从机的 7 位地址 th RW1: 如模块被设置为 Mstart 或 Rstart bit,该位将被作为从机方的 RW 发送,它在 IIC 地址之后的抵 8 位显示,如图 14-2.。它用来告诉从属模式中将来的通信的方向。如设置为 1,模块在主模式中为 接收方,如是 0,模块在主模式中为传输方。 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 97 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 图 14-2: RW bit in the 8th bit after IIC address 14.4 IIC 地址 2 寄存器( IICA2 ) 地址: FBh 符号: IICA2 7 6 5 4 IICA2[7:1] R/W 3 2 1 0 Match2 or RW2 R or R/W Reset 60h 从机模式: IICA2[7:1]: IIC 地址寄存器 这是为从机模式的第二个 7-位的地址, 它在一个地址(来自主机模式)接收后被检测 Match2: 当 IICA2 和来自主机模式方的接收地址匹配时,该位将被硬件置位,当 IIC 总线读或写第一笔资料 时,该位将被自动清除。 主机模式: IICA2[7:1]: IIC 地址寄存器 显示要与它通讯的从机的 7 位地址 RW2: 如模块被设置为 Mstart 或者 Rstart bit,该位将被作为从机方的 RW 发送,它用来告诉从机模式中 将来的通信的方向。如设置为 1,模块在主模式中为接收方,如是 0,模块在主模式中为传输方。 14.5 IIC 读写寄存器( IICRWD ) 符号: IICRWD 7 6 5 4 3 IICRWD[7:0] 2 1 0 地址: FCh Reset 00h IICRWD[7:0]: IIC 读写缓存 在接收(读)模式中,接收的字节存储于此 在传输模式中,该字节通过该 SDA 被转换 14.6 IIC 使能总线发送寄存器( IICEBT ) 符号: IICEBT 7 6 FU_EN 5 4 3 2 1 - - - - - 地址: FDH Res 0 et 00H Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 98 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 主机模式: 00: 保留 01: IIC 模块将致能以便由 SDA 及 SCL 读写数据. 10: IIC 模块将于 SDA 及 SCL 发出开始信号,再送出储存于 IICA1 或 IICA2(由 MAS 位选择)的地址 11: IIC 模块将于 SDA 及 SCL 发出停止信号. FU_EN[7:6] 此两位将自动清零,软件需重复写入. 从机模式: 01: FU_EN[7:6] 此两位于从机模式仅能写入 01.其它值是无效的. 注意: FU_EN[7:6] 当总线空闲时,于读写数据前此两位需先写入 01;否则,SCL 将被锁住 (置低). FU_EN[7:6] 当读写数据后并收到主机之停止信号时此两位需接着再写入 01. 在传送数据时(从机模式),于此两位写入 01 前待传送数据需先写入 IICRWD. FU_EN[7:6] 此两位将自动清零,软件需重复写入. Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 99 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 15. SPI功能 串行外围接口(SPI)是一个同步串行接口,允许主机和从机沟通. 中断向量为4Bh. SPI 使用4个信号 SPI_MOSI: 在主机模式中数据输出,在从机模式中数据输入。 SPI_MISO: 在主模式中数据输入,在从机模式中数据输出, SPI_SCK: 从机模式时钟输出,以上数据与同步 SPI_SS: 从机模式中输入. 从机器件检测该信号来判断是否被主模式选择。 在主机模式中,它可选择所需的从机器件的任何IO的值为零。如图 15-1所示的一个例子将显示主机与从机的4路信号之 间的关系 Master Slave 2 Slave 1 MOSI MISO CLK IO IO MOSI MISO CLK MOSI MISO CLK SS SS 图 15-1: SPI 主主机模式和从机模式之间的信号 这仅是单通道SPI的界面,SPI SFRs 如下所示: SPI 描述 AUX Auxiliary register SPIC1 SPIC2 SPIS SPITXD SPIRXD SPI control register 1 SPI control register 2 SPI status register SPI transmit data buffer SPI receive data buffer 地址 91h F1h F2h F5h Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 The relevant registers of the SPI function P4UR BRGS P4SPI P4IIC 1 SPI function SPIMS SPICK SPICK SPIEN SPISSP S P E SPIRS SPIFD TBC[2:0] T SPIML SPITX SPITD SPIRF SPIOV S IF R Bit 2 Bit 1 Bit 0 重置 值 P0KBI - DPS 00H SPIRX IF SPIBR[2:0] 08H RBC[2:0] 00H SPIRD R SPIRS 40H F3h SPITXD[7:0] 00H F4h SPIRXD[7:0] 00H Mnemonic: AUX Address: 91h Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 100 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 7 BRGS 6 - 5 P4SPI 4 P4UR1 3 P4IIC 2 P0KBI 1 - 0 DPS Reset 00H P4SPI: P4SPI = 0 – SPI function on P1. P4SPI = 1 – SPI function on P4. 15.1 SPI 控制寄存器 1 ( SPIC1 ) 符号: SPIC1 7 6 SPIEN SPIMSS 5 SPISSP 4 SPICKP 3 SPICKE 2 1 0 SPIBR[2:0] 地址: F1h Reset 08h SPIEN: SPI 模式使能位. “1” SPI 功能使能. “0” SPI 功能禁止. SPIMSS: 主/从机模式选择位 “1” 主机模式. “0” 从机模式. SPISSP: 从机选择的极性(仅从机模式有效) “1” -高电平动作. “0” -低电平动作. SPICKP: 时钟空闲极性(仅主机模式有效) “1” –空闲时 SCK 为高电平. Ex : “0” -空闲时 SCK 为低电平. Ex : SPICKE: 时钟采样相位选择位. “1” –数据锁存在上升沿 “0” –数据锁存在下降沿. *为确保数据锁存的稳定性,产生的输出数据,无论对方可锁存稳定的数据是在上升沿或下降沿, 都将作为考虑在以下示例中. sufficient set-up time sufficient hold time SPIBR[2:0]: SPI 速率选择位(仅主机模式有效),这里的 Fosc 为外部时钟或振荡器的频率 SPIBR[2:0] Baud rate 0:0:0 Fosc/4 0:0:1 Fosc/8 0:1:0 Fosc/16 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 101 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 0:1:1 1:0:0 1:0:1 1:1:0 1:1:1 Fosc/32 Fosc/64 Fosc/128 Fosc/256 Fosc/512 15.2 SPI 控制寄存器 2( SPIC2 ) 符号: SPIC2 7 6 SPIFD 5 TBC[2:0] 4 3 SPIRST 2 1 RBC[2:0] 0 地址: F2h Reset 00h SPIFD: 全双工通信模式使能位. “1” : 使能全双工模式. “0” : 禁止全双工模式. 当此位被置位时,TBC[2;0]和 RBC[2;0]将被重置并归零。也就是说,只有 8 位数据通讯在全双工 模式中被允许,当主机模式通过 MOSI 线传输数据到从机模式中,意味着带有数据输入和输出的 全双工模式在同样的 SCK 时钟中是同步的,如下图 15-2所示. Input Shift register SPIRXD Output Shift register SPITXD Clock Generator MISO MISO MOSI MOSI SCK SCK On-Bright Master Output Shift register SPITXD Input Shift register SPIRXD On-Bright Slave 图 15-2: SPI 主机和从机传输方法 TBC[2:0]: SPI 发送数据位,这里 1-8 位数据除了在全双工模式中是被允许的 TBC[2:0] Bit counter 0:0:0 8 bits output 0:0:1 1 bit output 0:1:0 2 bits output 0:1:1 3 bits output 1:0:0 4 bits output 1:0:1 5 bits output 1:1:0 6 bits output 1:1:1 7 bits output SPIRST: SPI 重新致能模式选择位. (仅从机模式有效) Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 102 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 = 0 禁能. SPI 于 SS 脚重新致能时,传送或接收数据. 于传送或接收数据缓冲寄存器内,前次传送或接收之数据完全保留.(表示它是有效的) = 1 使能. SPI 于 SS 脚重新致能时,传送或接收新数据, 于传送或接收数据缓冲寄存器内,前次传送或接收之数据全部舍弃. (表示它是无效的) RBC[2:0]: SPI 接收数据位,这里 1-8 位数据除了在全双工模式中是被允许的 RBC[2:0] Bit counter 0:0:0 8 bits input 0:0:1 1 bit input 0:1:0 2 bits input 0:1:1 3 bits input 1:0:0 4 bits input 1:0:1 5 bits input 1:1:0 6 bits input 1:1:1 7 bits input 15.3 SPI 状态寄存器 (SPIS ) 符号: SPIS 7 6 SPIRF SPIMLS 5 SPIOV 4 SPITXIF 3 SPITDR 2 SPIRXIF 1 SPIRDR 地址:F5H 0 Reset SPIRS 40H SPIRF: SS 脚被释放旗标指示位. 当 SS 脚被释放且 SPIRST 为”1”时,此位被置高. SPIMLS: MSB 或者 LSB 输入/输出优先 “1” : MSB 输入/输出优先 “0” : LSB 输入/输出优先 SPIOV: 溢出标志位 当 SPIRDR 被置位(SPIRXR 中的一个字节,但未被移除)且下一数据也进入时(这里不具备锁 存功能),该标志将被设置并导致在 SPIRXD 接收的数据被溢出毁坏,当 SPIRDR 被清除时,它 也被硬件清除。 SPITXIF: 传输中断标志 当 SPITXD 寄存器的数据被下载到转换寄存器时,该位被置位 SPITDR: 传输数据就绪位 当 MCU 结束对 SPITXD 寄存器读写数据时,MCU 须将改位置位,以通知 SPI 模块发送数据。在 SPI 模块完成从 SPITXD 或 SPITXD 发送数据到下载到转换寄存器后,该位将自动被清除。 SPIRXIF: 接受中断标志位 在 SPIRXD 被重载一个新的接收数据后,该位被置位 SPIRDR: 接收数据就绪位 当一字节被接收时,SPIRDR 被设为一个标志去通知 MCU。在获取来自 SPIRXD 寄存器的数据 后,MCU 须清除该位。如 SPI 模块向传输方写入新的数据至 SPIRXD 中且在该位清零之前,该数 据将随后被覆盖。 SPIRS: 接收起始位 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 103 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 该位被置位以此通知 SPI 模块来接收位于 SPIRXD 寄存器中的数据 15.4 SPI 发送数据缓冲器 (SPITXD ) 符号: SPITXD 7 6 5 4 3 SPITXD[7:0] 2 1 地址: F3h Reset 00h 0 SPITXD[7:0]: 传输数据缓冲 15.5 SPI 接收数据缓冲器 (SPIRXD) 符号: SPIRXD 7 6 5 4 3 SPIRXD[7:0] 2 1 0 地址: F4h Reset 00h SPIRXD[7:0]: 接收数据缓冲. 附:SS或CS沒有活躍在從模式下,MISO引腳必須浮。 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 104 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 16. KBI –键盘接口 键盘接口 (KBI) 可以连接到 8 x n 矩阵键盘或任何类似的器件。它有 8 个输入具有可编程中断能力高或低的水平上。 这些 8 投入通过 P2 或 P0,可以是外部的中断离开从闲置和停止模式。如图 16-1和图 16-2中所示,8 个输入是从彼此 独立但共享相同的中断向量 5Bh。 Input circuitry Input circuitry Input circuitry Input circuitry Input circuitry Input circuitry Input circuitry Input circuitry KBI0 KBI1 KBI2 KBI3 KBI4 KBI5 KBI6 KBI7 OR KBIIF: KBI interrupt flag IEKBI: KBI interrupt enable 图 16-1: 键盘接口框图 250KHz 0 KBIx De-bounce KBF.x 1 KBD[1:0] KBLS.x KBE.x 图 16-2: 键盘输入电路 符号 AUX KBLS KBE KBF KBD 描述 Auxiliary register KBI level selection KBI input enable KBI flag KBI De-bounce control register 地址 91h Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 The relevant registers of the KBI function P4UR BRGS P4SPI P4IIC 1 KBI function Bit 2 Bit 1 Bit 0 重置值 P0KBI - DPS 00H 93h KBLS7 KBLS6 KBLS5 KBLS4 KBLS3 KBLS2 KBLS1 KBLS0 00H 94h 95h KBE7 KBF7 KBDE N KBE6 KBF6 KBE5 KBF5 KBE4 KBF4 KBE3 KBF3 KBE2 KBF2 KBE1 KBF1 KBE0 KBF0 00H 00H KBD1 KBD0 00H 96h - Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 105 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 Mnemonic: AUX 7 6 5 BRGS P4SPI 4 P4UR1 3 P4IIC 2 P0KBI 1 - Address: 91h 0 Reset DPS 00H P0KBI: P0KBI = 0 –在 P2 的 KBI 功能. P0KBI = 1 –在 P0 的 KBI 功能. 16.1 键盘级别选择器寄存器 ( KBLS ) Mnemonic: KBLS 7 6 KBLS.7 KBLS.6 5 KBLS.5 4 KBLS.4 3 KBLS.3 2 KBLS.2 1 KBLS.1 Address: 93h 0 Reset KBLS.0 00h KBLS.7: 键盘线 7 级选择位 0 : 在 KBI7 做使能低电平级检测. 1 : 在 KBI7 做使能高电平级检测. KBLS.6: 键盘线 6 级选择位 0 : 在 KBI6 做使能低电平级检测. 1 : 在 KBI6 做使能高电平级检测 KBLS.5: 键盘线 5 级选择位 0 : 在 KBI5 做使能低电平级检测. 1 : 在 KBI5 做使能高电平级检测 KBLS.4: 键盘线 4 级选择位 0 : 在 KBI4 做使能低电平级检测. 1 : 在 KBI4 做使能高电平级检测 KBLS.3: 键盘线 3 级选择位 0 : 在 KBI3 做使能低电平级检测. 1 : 在 KBI3 做使能高电平级检测 KBLS.2: K 键盘线 2 级选择位 0 : 在 KBI2 做使能低电平级检测. 1 : 在 KBI2 做使能高电平级检测 KBLS.1: 键盘线 1 级选择位 0 : 在 KBI1 做使能低电平级检测. 1 : 在 KBI1 做使能高电平级检测 KBLS.0: 键盘线 0 级选择位 0 : 在 KBI0 做使能低电平级检测. 1 : 在 KBI0 做使能高电平级检测 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 106 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 16.2 键盘中断使能寄存器( KBE ) Mnemonic: KBE 7 6 KBE.7 KBE.6 5 KBE.5 4 KBE.4 3 KBE.3 2 KBE.2 1 KBE.1 Address: 94h 0 Reset KBE.0 00h 1 KBF.1 Address: 95h 0 Reset KBF.0 00h KBE.7: 盘线 7 使能位 0 : 使能标准的 I / O 引脚. 1 : KBF 寄存器中的使能 KBF.7 位产生一个中断请求. KBE.6: 盘线 6 使能位 0 : 使能标准的 I / O 引脚. 1 : KBF 寄存器中的使能 KBF.6 位产生一个中断请求. KBE.5: 盘线 5 使能位 0 : 使能标准的 I / O 引脚. 1 : KBF 寄存器中的使能 KBF.5 位产生一个中断请求 KBE.4: 盘线 4 使能位 0 : 使能标准的 I / O 引脚. 1 : KBF 寄存器中的使能 KBF.4 位产生一个中断请求 KBE.3: 盘线 3 使能位 0 : 使能标准的 I / O 引脚. 1 : KBF 寄存器中的使能 KBF.3 位产生一个中断请求 KBE.2: 盘线 2 使能位 0 : 使能标准的 I / O 引脚. 1 : KBF 寄存器中的使能 KBF.2 位产生一个中断请求 KBE.1: 盘线 1 使能位 0 : 使能标准的 I / O 引脚. 1 : KBF 寄存器中的使能 KBF.1 位产生一个中断请求 KBE.0: 盘线 0 使能位 0 : 使能标准的 I / O 引脚 1 : KBF 寄存器中的使能 KBF.0 位产生一个中断请求. 16.3 键盘中断旗标寄存器( KBF ) Mnemonic: KBF 7 6 KBF.7 KBF.6 5 KBF.5 4 KBF.4 3 KBF.3 2 KBF.2 KBF.7: 键盘线 7 旗标 KBI7 检测编程的水平,这是由硬件设置. 如果 KBE.7 被设置了,它将生成一个键盘中断请求。它必须由软件清除. KBF.6: 键盘线 6 旗标 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 107 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 KBI6 检测编程的水平,这是由硬件设置 如果 KBE.6 被设置了,它将生成一个键盘中断请求。它必须由软件清除. KBF.5: 键盘线 5 旗标 KBI5 检测编程的水平,这是由硬件设置. 如果 KBE.5 被设置了,它将生成一个键盘中断请求。它必须由软件清除. KBF.4: 键盘线 4 旗标 KBI4 检测编程的水平,这是由硬件设置. 如果 KBE.4 被设置了,它将生成一个键盘中断请求。它必须由软件清除. KBF.3: 键盘线 3 旗标 KBI3 检测编程的水平,这是由硬件设置. 如果 KBE.3 被设置了,它将生成一个键盘中断请求。它必须由软件清除. KBF.2: 键盘线 2 旗标 KBI2 检测编程的水平,这是由硬件设置. 如果 KBE.2 被设置了,它将生成一个键盘中断请求。它必须由软件清除. KBF.1: 键盘线 1 旗标 KBI1 检测编程的水平,这是由硬件设置 如果 KBE.1 被设置了,它将生成一个键盘中断请求。它必须由软件清除. KBF.0: 键盘线 0 旗标 KBI0 检测编程的水平,这是由硬件设置 I 如果 KBE.0 被设置了,它将生成一个键盘中断请求。它必须由软件清除. 16.4 键盘去反弹控制寄存器( KBD ) Mnemonic: KBD 7 6 KBDEN - 5 - 4 - 3 - 2 - 1 KBD.1 Address: 96H 0 Reset KBD.0 00H KBDEN: 使能 KBI 去反弹功能. 默认的 KBI 功能为使能. KBDEN = 0, 使能 KBI 去反弹功能. 去反弹时间选择通过 KBD [1:0]选择. KBDEN = 1, 使能 KBI 去反弹功能. KBI 输入口不需要去反弹机制. KBD[1:0]: 选择 KBI 去反弹时间. 如果 KBDEN=“0”,默认去反弹时间为 320 ms. KBD[1:0] = 00, 去反弹时间为 320 ms. KBD[1:0] = 01, 去反弹时间为 160 ms. KBD[1:0] = 10, 去反弹时间为 80 ms. KBD[1:0] = 11, 去反弹时间为 40 ms. Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 108 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 17. LVI & LVR–低电压中断和低电压复位 中断向量为63h. 符号 LVC 描述 Low voltage control 地址 Bit 7 E6h LVI_ EN Bit 6 Bit 5 LVI function LVRLP LVRE E Bit 4 Bit 3 Bit 2 LVSI F - - Bit 1 Bit 0 LVIS[1:0] 重置值 20H 17.1 低压控制寄存器 ( LVC ) 符号: LVC 7 LVI_EN 6 LVRLPE 5 LVRE 4 LVSIF 3 2 - 1 0 LVIS[1:0] 地址: E6h Reset 20h LVI_EN: 低电压中断功能使能位 0: 禁能低电压检测中断功能. 1: 使能低电压检测中断功能. LVRLPE 外部低电压复位功能(低功率)使能位. (请参阅 MCU 核心电压) 0: 禁止外部低电压复位(低功率)功能. 1: 使能外部低电压复位(低功率)功能. LVRE: 外部低电压重置功能使能位. (请参阅 MCU 的 VDD 电压) 0: 禁能外部低电压重置功能. 1: 使能外部低电压重置功能. LVSIF: 低电压中断旗标位 LVIS: 低电压中断电压位阶选择: 00: 1.75V 01: 2.75V 10: 3.35V 11: 4.20V Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 109 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 18. 10位模拟数字转换器(ADC) ADC模块的特性: SM59A16U1 提供 8 + 1 通道 10 位 ADC. 数字输出数据 [9:0] 被放入 ADCD [9:0]. ADC 通道 8 是仅为 OP0 转换为 ADC 功能. ADC 中断向量是 53 H, ADC SFRs 如下所示: Bit 7 Bit 6 符号 描述 地址 ADCC1 ADC Control register 1 ABh ADC7E N ADC6 EN ADCC2 ADC Control register 2 ACh Start ADJU ST ADCDH ADCDL ADCCS ADC data high byte ADC data low byte ADC clock select Bit 5 ADC ADC5 EN PWMT rigger EN Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 重置值 ADC4 EN EXTTri ggerE N ADC3 EN ADC2 EN ADC1 EN ADC0E N 00H ADCM ODE ADCCH[2:0] 08H ADh ADCDH [7:0] 00H AEh ADCDL [7:0] 00H AFh - - - ADCCS[4:0] 00H 18.1 ADC 控制寄存器 1( ADCC1 ) 符号: ADCC1 7 6 ADC7EN ADC6EN 5 ADC5EN 4 ADC4EN 3 ADC3EN 2 ADC2EN 1 ADC1EN 地址: ABh 0 Reset ADC0EN 00H ADC7EN: 使能 ADC 通道 7. ADC7EN = 0 –禁止 ADC 通道 7 ADC7EN = 1 –使能 ADC 通道 7 ADC6EN: 使能 ADC 通道 6. ADC6EN = 0 –禁止 ADC 通道 6 ADC6EN = 1 –使能 ADC 通道 6 ADC5EN: 使能 ADC 通道 5. ADC5EN = 0 –禁止 ADC 通道 5 ADC5EN = 1 –使能 ADC 通道 5 ADC4EN: 使能 ADC 通道 4. ADC4EN = 0 –禁止 ADC 通道 4 ADC4EN = 1 –使能 ADC 通道 4 ADC3EN: 使能 ADC 通道 3. ADC3EN = 0 –禁止 ADC 通道 3 ADC3EN = 1 –使能 ADC 通道 3 ADC2EN: 使能 ADC 通道 2. ADC2EN = 0 –禁止 ADC 通道 2 ADC2EN = 1 –使能 ADC 通道 2 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 110 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 ADC1EN: 使能 ADC 通道 1. ADC1EN = 0 –禁止 ADC 通道 1 ADC1EN = 1 –使能 ADC 通道 1 ADC0EN: 使能 ADC 通道 0. ADC0EN = 0 –禁止 ADC 通道 0 ADC0EN = 1 –使能 ADC 通道 0 18.2 ADC 控制寄存器( ADCC2) 符号: ADCC2 7 6 Start ADJUST 5 PWMTriggerEN 4 EXTTriggerEN 3 ADCMODE 地址: ACh 2 1 0 Reset ADCCH[2:0] 00H Start: 当该位被置位时,ADC 将启动连续转换. ADJUST: ADC 数字输出格式调整. ADJUST = 0: (默认) ADC 数字输出高字节 ADCD [9:2] = ADCDH [7:0]. ADC 数字输出低字节 ADCD [1:0] = ADCDL [1:0]. ADJUST = 1: ADC 数字输出高字节 ADCD [9:8] = ADCDH [1:0]. ADC 数字输出低字节 ADCD [7:0] = ADCDL [7:0]. PWMTriggerEN PWM 触发 ADC 开始转换 (HW 内部触发转换) 0 =禁止 1 =使能 EXTTriggerEN 外部引脚触发 ADC 开始转换 (HW 外部触发转换) 0 =禁止 1 =使能 ADCMOD 0 =连续模式 1 =单次转换模式 ADCCH[2:0]: ADC 通道选择. ADCCH [2:0] 000 001 010 011 100 101 110 111 通道 0 1 2 3 4 5 6 7 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 111 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 18.3 ADC 数据( ADCDH, ADCDL ) ADJUST = 0: 符号: ADCDH 7 6 ADCD[9] ADCD[8] 符号: ADCDL 7 6 - 5 ADCD[7] 4 ADCD[6] 3 ADCD[5] 5 - 4 - 3 - 5 - 4 - 3 - 2 ADCD[4] 2 - 地址: ADh 0 Reset ADCD[2] 00H 1 ADCD[3] 1 ADCD[1] 0 ADCD[0] 地址: AEh Reset 00H ADJUST = 1: 符号: ADCDH 7 6 符号: ADCDL 7 6 ADCD[7] ADCD[6] 5 ADCD[5] 4 ADCD[4] 2 - 3 ADCD[3] 1 ADCD[9] 2 ADCD[2] 地址: ADh 0 Reset ADCD[8] 00H 地址: AEh 0 Reset ADCD[0] 00H 1 ADCD[1] 18.4 ADC 时钟选择( ADCCS ) 符号: ADCCS 7 OP0 ToADC 6 - 5 ADCEN ToP34 地址: AFh Reset 4 3 2 1 0 ADCCS[4] ADCCS[3] ADCCS[2] ADCCS[1] ADCCS[0] 00H OP0ToADC: 选择 ADC 通道 8 作为输入源 0 =设置 ADC 输入源由 ADCC2 决定. 1 =设置 ADC 输入源作为 Op0 输出. ADCENToP34: ADC 内部信号测试和监视器. 0 = 禁止 ADC 内部信号输出至 P3.4 1 = 使能 ADC 内部信号输出至 P3.4 ADCCS[4:0]: ADC 时钟选择. Fosc 2 ( ADCCS 1) ADC_Clock ADC _ Conversion _ Rate 13 ADC _ Clock Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 112 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 19. USB功能 USB外设模块支持USB控制输入/输出,中断和批量输入/输出传递. 即,实现支持5个端点的号码(0,1,2,3,4)一共 5个端点。串行接口引擎(SIE)处理所有的USB2.0协议,并提供了一个简单的读/写协议用于MCU。 MCU用的是一个USB功能的器件,并结果一直是从机到USB主机。 USB主机从MCU的USB端口上启动所有USB数据传 递。MCU有5个USB端点 : Endpoint 0 :这种控制端点是用来初始化器件,并提供了访问USB配置,控制和状态寄存器。这个端点是一个8字节双向 FIFO. Endpoint 1 :此端点支持中断从MCU的发送邮箱传递到USB主机 Endpoint 1:是8字节中断端点. Endpoint 2:此端点支持中断从USB主机传递到MCU器件. Endpoint 2: 是8字节中断端点 Endpoint 3:此端点支持批量数据从MCU发送FIFO传递到USB主机. Endpoint 3:发送64字节FIFO. Endpoint 4:此端点支持批量数据从USB主机传递到MCU接收FIFO. Endpoint 4:为64字节接收FIFO 19.1 USB 器件列举传递 端 点 0 在 列 举 步 骤 中 發 揮 了 十 分 重 要 的 作 用 , 串 行 接 口 引 擎 被 设 计 是 用 于 处 理 整 个 主 要 USB 标 准 命 令 排 除 了 Class/Vendor,GetDescriptor,SetDescriptor,和SynchFrame命令。如果MCU收到这4种命令,SIE将命令传递到端点 0,USB中断旗标的寄存器1(UIFR1)位0将被设置为通知MCU读取端点0的命令,MCU的程序应具备能力去解码这些 命令和回应关系描述(MCU写器件描述到符端点0),完成这些步骤后,MCU应设置端点数据准备好控制寄存器 (EPDRDY)位1,SIE将通过USB电缆获取这些描述符数据并传递至主机,两个索引指针用于访问端点0,它必须由MCU 初始化, 且当MCU(主机)读(读指针)或写(写指针)到端点0数据寄存器后自动递增。 19.2 USB 中断输入传递 端点1使用中断方式从一组8字节的FIFO寄存器传递至USB主机,可以通过MCU写入,传递一个8字节的数据包,MCU将 数据写入到8个字节的寄存器并且设置发送旗标位(EPDRDY位2,端点1传递数据准备), SIE将提取端点1的数据和传 递数据到主机,如果USB主机尝试读取端点1,且当端点发送数据就绪位没有设置,一个NAK承认将返回。 USB中断传 递完成后,UIFR1位1将被设置为通知MCU端点1的寄存器已经被USB主机所读取,这保证了先前中断传递已经在端点1 的数据改变之前就已完成。 19.3 USB 中断输出传递 端点2是用中断从USB主机传递到一组8个字节的接收寄存器它通过MCU读取,去传递8个字节的数据包,主机首先执行 一个USB的8字节的中断传递至端点2的接收邮箱寄存器,然后设置UIFR1位2,这可能会导致局部总线中断信号MCU检 查EPDRDY位3(端点2接收数据就绪)是被设置与否。如果该位被设置,MCU可以安全从端点2读取数据, MCU完成读 阶段后,EPDRDY的位3应该被清除。然后,它可以等待,直到下一个数据包完成中断,再次读取整个数据包。如果 USB主机尝试写这些寄存器时,並且當EPDRDY位3被设置,NAK承认会返回,信号主机在下一个数据包不会被接受。 19.4 USB 批量从主机传递到器件 对于主机器件传输,主机首先安排从主机存储器的一个量的数据传递到本地的共享存储器。在MCU里,USB主机进行批 量的输出数据传递,并通过USB总线去接收FIFO端点4。 . MCU完成接收数据后,MCU将产生中断检查状态寄存器信号。例如,MCU程序应该是检查EPDRDY位5(端点4接收数 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 113 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 据就绪)设置与否。如果该位被设置,MCU可以安全从端点4读取数据,MCU完成读取步骤后,EPDRDY位5应被清 除。然后,它可以等待,直到下一个数据包完成中断,再次读取整个数据包。如果控制位的数据就绪(EPDRDY第5 位)从以前的数据包不会被清零,然后MCU将返回一个USB NAK承认到主机,下一个数据包的信号不能被接受。 MCU也可以读握手状态寄存器来检测数据包是否承认一个ACK,NAK,如果这些承认位被设置,然后发生了超时,在批 量传递完成的NAK或超时条件下,USB主机将发送另一个OUT令牌,MCU应再次收到相同的数据包。 19.5 USB 批量从器件传递到主机 对于器件到主机的传输,MCU首先从局部器件的数据量写入到发送FIFO端点3。当写入数据到端点3时,MCU必须通过 监控索引写指针 去追踪在FIFO里是否有可用空间。块已经被加载到发送FIFO 后,MCU应设置发送 旗标(准备好 EPDRDY位4,端点3 传输数据)通知SIE,FIFO数据准备。USB主机发送一个IN令牌到MCU,并启动一个USB批量-输 入传输,SIE将获取端点3数据和传递数据到主机。 当发送FIFO为空时,SIE将用包尾(End of Packet)终止数据包,没有更多的数据可用的信号,一旦包尾(End of Packet)发 生,MCU会被产生一个中断,该MCU可以从主机的ACK里读取握手状态寄存器来检测数据包是否被承认,或是否MCU 用NAK 去响应一个 IN令牌。 如果这些承认位被设置,然后发生了超时,在批量传递完成的NAK或超时条件下,USB主机将发送另一个IN令牌,MCU 应再次发送相同的数据包。 USB 模块特性: 低速(1.5Mbps 的)或全速( 12Mbps ). 支持控制,中断和批量传输. 5 个端点 FIFO: - EP0: 控制输入/ 输出. FIFO:8 个字节 - EP1: 中断输入. FIFO:8 个字节. - EP2: 中断输出. FIFO:8 个字节. - EP3: 批量输入. FIFO :64 个字节。 - EP4: 批量输出. FIFO :64 个字节. USB 中断向量是 73 h. USBRSM 中断向量是 7Bh. 注:晶振应该是 6、 12 或 24 MHz,以稳定地使用 USB 器件控制器. 符号 描述 地址 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 重置值 The relevant registers of the USB USBADDR USBDATA USB Address Register USB Data Register A6h USBADDR[7:0] 00h A7h USBDATA[7:0] 00h USB UCTRL1 USB Control 1 Register UCTRL2 USB Control 2 Register FEh FFh - - RWKU P EN EXT_ PHY PD_ LDO33 UDC _ EN USB_ CTRL_ EN 20H RWKU P PUR2 _ FW_C TRL PUR 2_ SW PUR1_ SW 02H Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 114 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 USTAT DEVADR FRMNUMH FRMNUML USB Status Register USB Device Address Register USB Frame Number Register, High Byte USB Frame Number Register, Low Byte F6h SPEE D C4h - PLL_FS[1:0] ALT_V AL INTF_ VAL CFG_ VAL EP0_ DTY PE SETU P DEVADR[6:0] C5h - C6h 00H FRMNUM[10:8] FRMNUM[7:0] HSTALL USB Host Stall Register C7h USB function DSTALL USB Device Stall Register BFh - EP4 HSTAL L EP4 DSTAL L EP4H SK EP3 HSTAL L EP3 DSTAL L EP3H SK 00H 00H 00H EP2 HSTAL L EP2 DSTAL L EP2H SK EP1 HSTA LL EP1 DSTA LL EP1H SK EP0 HSTA LL EP0 DSTA LL EP0H SK 00H 00H USB Handshake B1h 00H Status Register USB Interrupt UIER1 Enable B2h EP4IE EP3IE EP2IE EP1IE EP0IE 00H Register 1 USB Interrupt RSUM SUSI RSTI UIER2 Enable B3h USBIE CFGIE SOFIE 00H IE E E Register 2 USB Interrupt UIFR1 Flag B4h EP4IF EP3IF EP2IF EP1IF EP0IF 00H Register 1 USB Interrupt RSUM SUSI RSTI UIFR2 Flag B5h USBIF CFGIF SOFIF 00H IF F F Register 2 USB Endpoint RDYS EP4R EP3T EP2R EP1T EP0 EPDRDY Data B6h 2AH W DY DY DY DY TRDY Ready Register USB Endpoint 0 EP0CNT Data Counter B7h EP0CNT[3:0] 00H Register USB Endpoint 1 EP1CNT Data Counter A1h EP1CNT[3:0] 00H Register USB Endpoint 2 EP2CNT Data Counter A2h EP2CNT[3:0] 00H Register USB Endpoint 3 EP3CNT Data Counter A3h EP3CNT[6:0] 00H Register USB Endpoint 4 EP4CNT Data Counter A4h EP4CNT[6:0] 00H Register USB Endpoint 0 EP0DATA A7h EP0DATA[7:0] 00H Data Register EP1DATA USB Endpoint 1 9Eh EP1DATA[7:0] 00H Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 115 - HSKSTAT SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 EP2DATA EP3DATA EP4DATA Data Register USB Endpoint 2 Data Register USB Endpoint 3 Data Register USB Endpoint 4 Data Register 9Fh EP2DATA[7:0] 00H 93h EP3DATA[7:0] 00H 94h EP4DATA[7:0] 00H 19.6 USB 控制 1 寄存器( UCTRL1 ) 符号: UCTRL1 7 6 5 4 - 3 EXT_P HY 2 PD_ LDO33 1 UDC_ EN 地址: FEh 0 Reset USB_ 20H CTRL_EN EXT_PHY: 外部 PHY 使能. 当该位被设置,内部 PHY 将禁止和所有的数字信号切换到外部的外部连接外部 PHY. PD_LDO33: 3.3V LDO 停止位. 0 =正常. 1 =停止. UDC_EN: UDC 使能. 0 = UDC 块复位. 1 = 使能. USB_CTRL_EN: USB 控制块使能. 0 = 复位. 1 = 使能. 19.7 USB 控制 2 寄存器( UCTRL2 ) 符号: UCTRL2 7 6 5 - 4 RWKU PEN 3 RWKU P 2 PUR2_ FW_CTRL 1 PUR_ SW 0 PUR_ SW 地址: FFh Reset 02H RWKUP_EN: 远程唤醒功能使能的旗标. 这使能功能由 HOST 来设定使用设置功能命令功能设置和由主机清除使用明确的特殊命令 0 = 禁止. 1 =使能.. RWKUP_EN: 远程唤醒信号. 写此位 1 产生 1 个脉冲通知 USB_IF 和 UDC 做远程唤醒程序 RUP2_FW_CTRL: 上拉电阻 2 固件控制使能位. 0 =按照硬件上拉电路. 1 =由 RUP2_SW (UCTRL2 位 1)控制。 RUP2_SW: 上拉电阻 2 开关控制位. Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 116 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 0 = 打开. 1 = 关闭. RUP1_SW: 上拉电阻 2 开关控制位. 0 =打开. 1 =关闭. 19.8 USB 状态寄存器( USTAT ) 符号: USTAT 7 6 5 SPEE PLL_FS[1:0] D 4 ALT_V AL 3 INTF_ VAL 2 CFG_ VAL 1 EP0_ DTYPE 地址: F6h 0 Reset SET 00H UP SPEED: USB 速度状态. 0 =低速. 1 =全速 PLL_FS[1:0]: PLL 输入参考时钟状态: 00: 6MHz (外部晶振). 01: 12MHz (外部晶振). 10: 24MHz (外部晶振). ALT_VALL: 当前替代的值 INTF_VAL: 当前接口值. CFG_VAL: 目前的配置值. EP0_DTYPE: EP0 数据类型指标。此位是用来表示 EP0 接收 pkt 是 IN kpt 或 OUT kpt. 0 = OUT 数据. 1 = IN 数据. SETUP: 设置 pkt 指标。此位是用来表示 EP0 接收 pkt 是 SETUP 命令. 0 =数据 pkt. 1 = 设置 pkt. 19.9 USB 器件地址寄存器( DEVADR ) 符号: DEVADR 7 6 - 5 4 3 DEVADR[6:0] 2 1 0 地址: C4h Reset 00H DEVADR[6:0] 由主机设置的器件地址. Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 117 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 19.10 USB 帧数目寄存器( FRMNUMH, FRMNUML ) 符号: FRMNUMH 7 6 5 - 符号: FRMNUML 7 6 5 4 3 2 4 3 FRMNUM[7:0] 1 0 FRMNUM[10:8] 2 1 0 地址: C5h Reset 00H 地址: C6h Reset 00H 19.11 USB 主机暂停寄存器( HSTALL ) 符号: HSTALL 7 6 5 4 EP4H STALL - 3 EP3H STALL 2 EP2H STALL 1 EP1HS TALL 0 EP0 HSTALL 地址: C7h Reset 00H EP4HSTALL: EP4 暂停位设置由主机使用设置功能命令. EP3HSTALL: EP3 暂停位设置由主机使用设置功能命令 EP2HSTALL: EP2 暂停位设置由主机使用设置功能命令. EP1HSTALL: EP1 暂停位设置由主机使用设置功能命令. EP0HSTALL: EP0 暂停位设置由主机使用设置功能命令. 19.12 USB 器件暂停寄存器( DSTALL ) 符号: DSTALL 7 6 5 - 4 EP4D STALL 3 EP3D STALL 2 EP2D STALL 1 EP1D STALL 地址: BFh 0 Reset EP0D 00H STALL EP4DSTALL: 当 EP4 有任何错误时, EP4 暂停位由软件来设置. 0 =端点 4 器件工作. 1 =端点 4 器件暂停. EP3DSTALL: 当 EP3 有任何错误时, EP3 暂停位由软件来设置. 0 =端点 3 器件工作. 1 =端点 3 器件暂停. EP2DSTALL: 当 EP2 有任何错误时, EP2 暂停位由软件来设置. 0 =端点 2 器件工作. 1 =端点 2 器件暂停. EP1DSTALL: 当 EP1 有任何错误时, EP1 暂停位由软件来设置. 0 =端点 1 器件工作. 1 =端点 1 器件暂停. EP0DSTALL: 当 EP0 有任何错误时, EP0 暂停位由软件来设置. 0=端点 0 器件工作. Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 118 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 1=端点 0 器件暂停. 19.13 USB 握手状态寄存器( HSKSTAT ) 符号: HSKSTAT 7 6 5 - 4 EP4H SK 3 EP3H SK 2 EP2H SK 1 EP1H SK 地址: B1h 0 Reset EP0H 80H SK EP4HSK USB 端点 4 握手状态. 如果最后握手数据包是暂停,数据的错误数据包,在 USB 总线或 NACK 超时时间此位将自 动设置为 '1'。如果最后的握手数据包是 ACK,将自动清除该位。您可以检查此旗标来知道 通信状态。 EP3HSK USB 端点 3 握手状态. 如果最后握手数据包是暂停,数据的错误数据包,在 USB 总线或 NACK 超时时间此位将自 动设置为 '1'。如果最后的握手数据包是 ACK,将自动清除该位。您可以检查此旗标来知道 通信状态。 EP2HSK: USB 端点 2 握手状态. 如果最后握手数据包是暂停,数据的错误数据包,在 USB 总线或 NACK 超时时间此位将自 动设置为 '1'。如果最后的握手数据包是 ACK,将自动清除该位。您可以检查此旗标来知道 通信状态。 EP1HSK: USB 端点 1 握手状态. 如果最后握手数据包是暂停,数据的错误数据包,在 USB 总线或 NACK 超时时间此位将自 动设置为 '1'。如果最后的握手数据包是 ACK,将自动清除该位。您可以检查此旗标来知道 通信状态。 EP0HSK: USB 端点 0 握手状态. 如果最后握手数据包是暂停,数据的错误数据包,在 USB 总线或 NACK 超时时间此位将自 动设置为 '1'。如果最后的握手数据包是 ACK,将自动清除该位。您可以检查此旗标来知道 通信状态。 19.14 USB 中断使能寄存器 1 ( UIER1 ) 符号: UIER1 7 6 - 5 4 EP4IE 3 EP3IE 2 EP2IE 1 EP1IE 地址: B2h 0 Reset EP0IE 00H EP4IE: 端点 4 中断使能位. 0 =禁止. 1 = 使能. 当一个 USB 端点 4 数据已通过 MCU 接收到数据包,这位使能局部中断去作为设 置. EP3IE: 端点 3 中断使能位. 0 =禁止. 1 = 使能. This bit enables a local interrupt to be set when a USB Endpoint 3 data packet Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 119 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 has been sent by the MCU. EP2IE: 端点 2 中断使能位. 0 =禁止. 1 = 使能. This bit enables a local interrupt to be set when a USB Endpoint 2 data packet has been received by the MCU. EP1IE: 端点 1 中断使能位. 0 =禁止. 1 = 使能. This bit enables a local interrupt to be set when the USB host has read the endpoint 1 register. EP0IE: 端点 0 中断使能位. 0 =禁止. 1 = 使能. This bit enables a local interrupt to be set when the USB Endpoint 0 received the class / vender command by the MCU. 19.15 USB 中断使能寄存器 2( UIER2 ) 符号: UIER2 7 6 RSUMIE USBIE 5 4 - 3 CFGIE 2 SOFIE 1 SUSIE 地址: B3h 0 Reset RSTIE 00H RSUMIE: 恢复中断使能. 0 = 禁止 1 = 使能 USBIE: 所有 USB 中断除了恢复使能位外. 0 = 禁止 1 = 使能 CFGIE: 配置更改中断使能位. 0 = 禁止 1 = 使能 SOFIE: SOF (开始的帧) 中断使能位. 0 = 禁止 1 = 使能 SUSIE: 暂停中断使能位. 0 = 禁止 1 = 使能 RSTIE: USB 重置中断使能位. 0 = 禁止 1 = 使能 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 120 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 19.16 USB 中断旗标寄存器 1( UIFR1 ) 符号: UIFR1 7 6 - 5 4 EP4IF 3 EP3IF 2 EP2IF 1 EP1IF 地址: B4h 0 Reset EP0IF 00H EP4IF: 端点 4 中断旗标. 如果设置,此位表示当一个 USB 端点 4 数据已由 MCU 收到了数据包。这位由固件清除. EP3IF: 端点 3 中断旗标. 如果设置,此位表示当一个 USB 端点 3 数据已由 MCU 传送了数据包。这位由固件清除 EP2IF: 端点 2 中断旗标. 如果设置,此位表示当一个 USB 端点 2 数据已由 MCU 收到了数据包。这位由固件清除. EP1IF: 端点 1 中断旗标. 如果设置,此位表示当一个 USB 主机已经读到 端点 1 寄存器。这位由固件清除 EP0IF: 端点 0 中断旗标. 当 MCU 接收 Class / Vender 命令到端点 0 时,该位将会被设置。这位由固件清除 注: 当写"0",这些位将会被清除. 当写"1",这些位不会有任何改变 19.17 USB 中断旗标寄存器 2( UIFR2 ) 符号: UIFR2 7 6 RSUMIF USBIF 5 4 - 3 CFGIF 2 SOFIF 1 SUSIF 地址: B5h 0 Reset RSTIF 00H RSUMIF: 恢复中断旗标. USBIF: 所有 USB 中断除了恢复使能位外。 CFGIF: 配置更改中断旗标. SOFIF: SOF(开始的帧) 中断旗标. SUSIF: 暂停中断旗标. RSTIF: USB 重置中断旗标. 注: 当写"0",这些位将会被清除. 当写"1",这些位不会有任何改变 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 121 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 19.18 USB 端点数据就绪寄存器( EPDRDY ) 符号: EPDRDY 7 6 RDYSW 5 4 EP4RDY - 3 EP3TDY 2 EP2RDY 1 EP1TDY 0 EP0TRDY 地址: B6h Reset 2AH RDYSW: EPDRDY 写功能开关. 0 = EPDRDY 只可以写"0" 1 = EPDRDY 只可以写"1" EP4RDY: EP4 接收数据 FIFO 准备好了。 0: SIE 写 EP4 FIFO. 1: MCU 可以读取 EP4 FIFO 数据. EP3TDY: EP3 传输数据 FIFO 准备好了. 0: SIE 读取 EP3 FIFO。 1: MCU 可以写入 EP3 FIFO 数据. EP2RDY: EP2 接收数据 FIFO 准备好了. 0: SIE 写 EP2 FIFO 1: MCU 可以读取 EP2 FIFO 数据. EP1TDY: EP1 传输数据 FIFO 准备好了. 0: SIE 读取 EP1 FIFO。 1: MCU 可以写入 EP1 FIFO 数据. EP0TDRY: 通过 EP0 传输 / 接收数据 FIFO 准备好了. 0: SIE 写入/读取 EP0 FIFO 1: MCU 可以写入/读取 EP0 FIFO. 19.19 USB 端点 0 数据计数器寄存器( EP0CNT ) 符号: EP0CNT 7 6 5 4 3 - 2 1 EP0CNT[3:0] 0 地址: B7h Reset 00H EP0CNT[3:0]: 端点 0 接收 FIFO 寄存器 (EP0DATA) 由 SIE 写的后, EP0CNT 自动由 1 递增。当它达到最 大计数时,EP0CNT 将数到 8 H。MCU 读取 EP0DATA 寄存器后, EP0CNT 会自动减 1。如 果 EP0CNT = 00h,端点 0 FIFO 为空。 当端点 0 发送邮箱 (EP0DATA) 数据端口是由 MCU 写入,指针自动由 1 递增。当它达到最 大计数时,EP1CNT 将数到 8 H。 19.20 USB 端点 1 数据计数器寄存器( EP1CNT ) 符号: EP1CNT 7 6 5 - 4 3 2 1 EP1CNT[3:0] 0 地址: A1h Reset 00H Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 122 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 EP1CNT[3:0]: 当端点 1 发送邮箱 (EP1DATA) 数据端口是由 MCU 写入时, 此寄存器决定哪个端点 1 的地址 发送寄存器被访问。端点 1 发送邮箱 数据端口是由 MCU 写入之后,指针自动由 1 递增。当 它达到最大计数, EP1CNT 将数到 8 H 19.21 USB 端点 2 数据计数器寄存器( EP2CNT ) 符号: EP2CNT 7 6 5 4 3 - 2 1 EP2CNT[3:0] 0 地址: A2h Reset 00H EP2CNT[3:0]: 端点 2 接收 FIFO 寄存器 (EP2DATA) 由 SIE 写的之后, EP2CNT 自动由 1 递增。当它达到 最大计数, MCU 读取 EP2DATA 寄存器后, EP2CNT 会自动减 1。如果 EP2CNT = 00h,端 点 2 FIFO 为空. 19.22 USB 端点 3 数据计数器寄存器( EP3CNT ) 符号: EP3CNT 7 6 - 5 4 3 EP3CNT[6:0] 2 1 0 地址: A3h Reset 00H EP3CNT[6:0]: 端点 3 器件写入数据计数器寄存器. 当端点 3 发送 FIFO (EP3DATA) 数据端口是由 MCU 写入时, 此寄存器决定哪个端点 3 的地 址发送寄存器被访问。端点 3 发送 FIFO 数据端口是由 MCU 写入之后,EP3CNT 自动由 1 递 增。当它达到最大计数, EP3CNT 将数到 40 H。 19.23 USB 端点 4 数据计数器寄存器( EP4CNT ) 符号: EP4CNT 7 6 - 5 4 3 EP4CNT[6:0] 2 1 0 地址: A4h Reset 00H EP4CNT[6:0]: 端点 4 接收 FIFO 寄存器 (EP4DATA) 由 SIE 写的之后, EP4CNT 自动由 1 递增。当它达到 最大计数, EP4CNT 将数到 40 H , MCU 读取 EP4DATA 寄存器后, EP4CNT 会自动减 1。如 果 EP4CNT = 00h,端点 4 FIFO 为空. 19.24 USB 端点 0 数据寄存器( EP0DATA ) 符号: EP0DATA 7 6 5 4 3 EP0DATA[7:0] 2 1 0 地址: A7h Reset 00H EP0DATA[7:0]: 端点 0 传输/接收寄存器. 该寄存器是负责从 USB 主机存储 USB 标准命令,或描述符的内容由 MCU 来写入和等待 SIE 获取它们。当 USB 主机将 8 字节标准命令发送到端点 0 FIFO 时,中断 (UIFR1 位 0) 将会被产生通知 MCU。当 MCU 需要发送描述符通过端点 0 的时候,MCU 必须写入描述符 到这寄存器. Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 123 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 19.25 USB 端点 1 数据寄存器( EP1DATA ) 符号: EP1DATA 7 6 5 4 3 EP1DATA[7:0] 2 1 0 地址: 9Eh Reset 00H EP1DATA[7:0]: 端点 1 传输 FIFO 数据寄存器 此端口用于读取或写入到传输邮箱寄存器中的一个。寄存器正在访问是由端点 1 FIFO 指针 寄存器来选择的。八个传输寄存器由 MCU 写入并且从端点 1 通过 USB 中断传输来读取。 它们可以用于从 MCU 向 USB 主机传递信息。信息的格式和内容是由使用者定义。如果使 能了,USB 主机可以读取来自寄存器所生成一个局部中断。 注: 这些寄存器 只能在USB 操作期间被写. 19.26 USB 端点 2 数据寄存器( EP2DATA ) 符号: EP2DATA 7 6 5 4 3 EP2DATA[7:0] 2 1 0 地址: 9Fh Reset 00H EP2DATA[7:0]: 端点 2 收到 FIFO 数据寄存器. 这一寄存器是使用于由 MCU 读取于来自 USB 接收 FIFO 的数据。FIFO 的数据是由 USB 主 机来写入并使用中断传递到端点 2, 端点 2 数据 FIFO 是先进先出(first – in – first – out) 注: 这些寄存器 只能在USB 操作期间做读取. 19.27 USB 端点 3 数据寄存器( EP3DATA ) 符号: EP3DATA 7 6 5 4 3 EP3DATA[7:0] 2 1 0 地址: 93h Reset 00H EP3DATA[7:0]: 端点 3 传输 FIFO 数据寄存器 这一寄存器是使用于由 MCU 写入数据到传输的 FIFO。FIFO 是由 USB 主机来读取并使用 端点 3 来做批量传递, 端点 3 数据 FIFO 是先进先出(first – in – first – out). 注: 这些寄存器 只能在USB 操作期间被写. 19.28 USB 端点 4 数据寄存器( EP4DATA ) 符号: EP4DATA 7 6 5 4 3 EP4DATA[7:0] 2 1 0 地址: 94h Reset 00H EP4DATA[7:0]: 终结 4 点收到 FIFO 数据寄存器. Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 124 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 这一寄存器是使用于由 MCU 所读取来自 USB 接收 FIFO 的数据。FIFO 是由 USB 主机来写 入并使用批量传递到端点 4, 端点 4 数据 FIFO 是先进先出(first – in – first – out)。 注: 这些寄存器 只能在USB 操作期间做读取 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 125 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 20. 条码( Barcode ) 条码模块特点: ADC 值由 DMA 直接存储到 SRAM. ADC 将转换为条码原始数据后用于条形码解码. 条码的原始数据滤波器. 条码原始数据边坡率设置. 符号 BCCTRL ADDR2ML ADDR2MH LNGDATAL LNGDATAH RDATA FDATA 描述 地址 BarCode Control Register Start address to SRAM Low Byte Register Start address to SRAM High Byte Register Length of Data Low Byte Register Length of Data High Byte Register Rising of Data Register Falling of Data Register Bit 7 Bit 5 Bit 4 Barcode BarcodeINF[1:0 Bcc_en[1:0] ] CAh Bit 6 CBh Bit 3 Bit 2 RAWBIT NUM Bit 1 ADCDS[1:0] Bit 0 重置值 bcdidv 01H ADDR2M[7:0] CEh - 00H ADDR2M[12:8] EFh LNGDATA[7:0] DAh - 00H 00H LNGDATA[12:8] 00H C1h RDATA[7:0] 19H C2h FDATA[7:0] 18H 20.1 条码控制寄存器( BCCTRL ) 符号: BCCTRL 7 6 Bcc_en[1:0] 5 4 BarcodeINF[1:0] 3 RAWB ITNUM 2 1 ADCDS[1:0] 0 地址: CAh Reset bcdidv 01H Bcc_en 条码控制模式 [1:0] 如果 ADC 对 DAM 抵达 SRAM 的地址=6K, 硬件将自动停止"写行动"并且当条码模式使能时, 此位将被清为 0. 00 =禁止条码控制器 01 =使能 ADC 值存储到 SRAM 功能,直接将 ADC 值写入到 SRAM. 10 =使能条码解码器。[解码 ADC 数据 (MSB) 的 8 位] 分析/计数条码原始数据然后将结果写入到 SRAM. 结果的数据格式如下所示: b7 : 数据转换 b[6:0]: 长度 ex: 1000_0111 means 7 successive “1”. 1000_1000 means 8 successive “1”. Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 126 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 1000_0000 means 128 successive “1” [ ※大于 128 将继续增加]) 11 =使能条码解码器. [解码 ADC 数据 (MSB) 的 8 位] 分析/计数条码原始数据然后将结果写入到 SRAM. 结果的数据格式如下所示: b7 : 数据转换 b[6:0]: 长度 ex: 1000_0111 means 7 successive “1”. 1000_1000 means 8 successive “1”. 1000_0000 means greater then 128 successive “1” [※不会增加超过 128] ) BarcodeINF[1:0] 条码输入噪声滤波器 00 = 1 连续相同值识别为有效的数据. 01 = 2 续相同值识别为有效的数据. 10 = 3 续相同值识别为有效的数据. 11 = 4 续相同值识别为有效的数据. RAWBITNUM 原始数据位数 0 = 10 bit; 硬件写入原始数据 10 位到 SRAM. 1 = 8 bit; 硬件写入原始数据 8 位到 SRAM. ADCDS ADC 的数据选择 [1:0] 00 =与先前第 1 个 ADC 的数据做比较. 01 =与先前第 2 个 ADC 的数据做比较. 10 =与先前第 3 个 ADC 的数据做比较. 11 =与先前第 4 个 ADC 的数据做比较. bcdidv 条码解码器的初始数字值 bcdidv = 1 系统复位后 20.2 起始地址到 SRAM 寄存器( ADDR2ML, ADDR2MH ) 符号: ADDR2ML 7 6 符号: ADDR2MH 7 6 - 5 5 1 0 地址: CBh Reset 00H 2 1 ADDR2M[12:8] 0 地址: CEh Reset 00H 4 3 ADDR2M[7:0] 4 3 2 ADDR2M: 数据的起始地址写入到 SRAM; [12:0] 当条码控制器将数据写入 SRAM 时, 此寄存器的内容将不会更新。数据可以写入到任意的 SRAM 地址。 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 127 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 20.3 数据寄存器的长度( LNGDATAL, LNGDATAH ) 条码的原始数据长度时,完成数据写入 SRAM。(只读) 符号: LNGDATAL 7 6 5 Mnemonic: LNGDATAH 7 6 5 - 1 0 地址: EFh Reset 00H 2 1 LNGDATA[12:8] 0 地址: DAh Reset 00H 4 3 LNGDATA[7:0] 4 3 2 20.4 上升的数据寄存器 ( RDATA ) 符号: RDATA 7 6 5 4 3 RDATA[7:0] 2 1 0 地址: C1h Reset 00H 4 3 FDATA[7:0] 2 1 0 地址: C2h Reset 00H RDATA[7:0] 上升的边坡率的数据 20.5 下降的数据寄存器( FDATA ) 符号: FDATA 7 6 5 FDATA[7:0] 下降的边坡率的数据 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 128 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 21. 在系统编程(Internal ISP) SM59A16U1 可通过内部硬件电路产生闪存控制讯号.用户利用闪存控制寄存器,闪存地址寄存器和闪存数据寄存器在不需 要将SM59A16U1 移出系统的情况下实现ISP功能. SM59A16U1 提供了可以实现闪存编程/芯片擦除/页擦除/保护功能的 闪存控制讯号.用户需要去设计和使用任何SM59A16U1 可以输入数据的接口,然后利用ISP服务程序去实现闪存的编程/芯 片擦除/页擦除/保护功能. 21.1 ISP 服务程序 ISP服务程序是由用户自行开发并放置于ISP服务程序区的固件. 用户可依需求决定ISP服务程序的大小. 另外用户需将ISP 服务程序刻录至SM59A16U1 芯片中才可使用ISP功能. 由于ISP服务程序是由用户自行开发,它需包括闪存数据寄存器的刻录及SM59A16U1 芯片与上位机的通讯协议. 举例来 说, 用户使用SM59A16U1 芯片上之UART接口与上位机作数据之传送及接收,则SM59A16U1 芯片上之ISP服务程序内 需有波特率设定,为避免数据传输错误需有数据总合检查或同位检查或其它错误检查机制. 于正常动作模式或空闲模式可启动 ISP服务程序,于停止模式则不行. 21.2 锁定位(N) 锁定位N有两个功能:一是配置服务程序的大小,另一个则是通过闪存擦除功能锁定ISP服务程序的空间. ISP服务程序地址位从$F000 to $FFFF. 可被分为N*256字节(N=0-16). 当N为0时没有ISP功能.所有的64KB字节闪存都被 用来做程序存储.当N为1时,ISP服务程序占用256字节,剩余的63.75K 字节闪存可被用做程序存储.ISP服务程序的最大空 间为4K字节(当N为16时). 在这样的配置下,可用的程序存储空间为60K 字节. 在N定下来后,SM59A16U1 会从上往下(从最顶端到地址$FFFF)保存ISP服务程序空间.ISP服务程序的开始地址位于 $Fx00 (x为任意数字,以N为准). 请参考章节3.1有关ISP服务程序与程序内存之关系图. 如表 21-1所示 锁定位N功能不同于闪存保护功能,闪存擦除功能可以擦除除ISP服务程序空间外的所有闪存记忆体.如闪存没有被保 护,ISP服务程序的内容一直可被读.如闪存被保护,所有的闪存程序空间包括ISP服务程序空间不能被读. 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 表 21-1: ISP code area. ISP service program address No ISP service program 256 bytes (0xFF00h ~ 0xFFFFh) 512 bytes (0xFE00h ~ 0xFFFFh) 768 bytes (0xFD00h ~ 0xFFFFh) 1.0 K bytes (0xFC00h ~ 0xFFFFh) 1.25 K bytes (0xFB00h ~ 0xFFFFh) 1.5 K bytes (0xFA00h ~ 0xFFFFh) 1.75 K bytes (0xF900h ~ 0xFFFFh) 2.0 K bytes (0xF800h ~ 0xFFFFh) 2.25 K bytes (0xF700h ~ 0xFFFFh) 2.5 K bytes (0xF600h ~ 0xFFFFh) 2.75 K bytes (0xF500h ~ 0xFFFFh) 3.0 K bytes (0xF400h ~ 0xFFFFh) 3.25 K bytes (0xF300h ~ 0xFFFFh) 3.5 K bytes (0xF200h ~ 0xFFFFh) 3.75 K bytes (0xF100h ~ 0xFFFFh) Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 129 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 16 4.0 K bytes (0xF000h ~ 0xFFFFh) ISP 服务程序配置于N*256 字节 (N= 0 ~ 16) 21.3 对 ISP 服务程序编程 在锁定位N被设置并ISP服务程序被编程后,ISP服务程序记忆体被自动的保护(锁定).锁定位N有它自己的编程/擦除时序.这 不同于闪存记忆体的编程/擦除时序.因此,被锁定的ISP服务程序不可被闪存擦除功能所擦除.如客户需要擦除锁定的ISP服 务程序,他只可以通过烧写器实现.当SM59A16U1 在系统时,客户不可改变ISP服务程序. 21.4 启动 ISP 服务程序 要启动ISP服务程序就是要在ISP服务程序的开始地址装载程序计数(PC)并执行它.有四种实现的方法: (1) 空复位.用首地址为空($0000=#0FFH)的硬件复位会在 ISP 服务程序的开始地址装载 PC。硬件复位包括 MAX810 (复位电源) 和外部 pad 复位。硬件复位后,硬件复位后会发出约 256us 的频闪(strobe)。 (2) 执行跳转指令可以装载到 PC 的 ISP 服务程序的起始地址。 (3) 进入到 ISP 服务程序的硬件设置。用户可以通过设置 P3.4 为低"来强制 SM59A16U1 进入到 ISP 服务程序。 硬件复位包括 MAX810 (复位电源) 和外部 pad 复位。硬件复位后,硬件会发出通知。在应用系统设计时, 在复位期间,用户应该很小心的去设置 P3.4, 以防止 SM59A16U1 进入到 ISP 服务程序。 (4) 进入到的 ISP 服务程序的硬件设置,在硬件复位期间,RXD0 将会被检测到两个时钟信号。硬件复位包括 MAX810 (复位电源) 和外部 pad 复位。硬件复位后,硬件会发出 2 个时钟信号检测。 (5) 通过 USB 设定进入到 ISP 服务程序,USB 安装程序命令 (Endpoint 0)会在硬件重置期间内收到序列数 据: 0x40、 0x20、 0x5A、 0xA5、 0x69、 0x96,0x02,0x00。硬件复位包括内部 (复位电源) 和外部 pad 复位 在频闪(storbe)窗口中,硬件将检测到P3.4的状态,如果他们能满足上述条件之一,芯片会自动切换到 ISP 模式。ISP 服 务程序执行完后,用户需要复位 SM59A16U1,通过硬件复位或WDT 或跳到地址 0000 元去重新启动的固件程序。 为了用户的不同应用情况,这里有8种不同的进入机制.这个进入方法可以在烧路器或ISP中选取. 首地址为空例如$0000 = 0xFF. 且由内部重置信号触发. 首地址为空例如$0000 = 0xFF. 且由外部重置信号触发. P3.4=0. 且由内部重置信号触发. P3.4=0. 且由外部重置信号触发. RXD0 收到 0x55 数据 (波特率是 57600 bps)。及由内部触发复位信号. RXD0 收到 0x55 数据 (波特率是 57600 bps)。及由 PAD 触发复位信号. USB 端点 0 收到序列数据: 0x40、 0x20、 0x5A、 0xA5、 0x69、 0x96,0x02,0x00。由内部触发复位 信号. (8) USB 端点 0 收到序列数据: 0x40、 0x20、 0x5A、 0xA5、 0x69、 0x96,0x02,0x00。由内部触发复位 信号 (1) (2) (3) (4) (5) (6) (7) Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 130 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 21.5 ISP 寄存器– TAKEY, IFCON, ISPFAH, ISPFAL, ISPFD and ISPFC 符号 TAKEY IFCON ISPFAH ISPFAL ISPFD ISPFC 描述 地址 Time Access Key register Interface Control register ISP Flash Address – High register ISP Flash Address - Low register ISP Flash Data register ISP Flash Control register Bit 7 Bit 6 Bit 5 ISP function F7h Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 TAKEY [7:0] 8Fh ITS CDPR F32K F16K 重置值 00H ALEC. 1 ALEC. 0 EMEN ISPE 00H E1h ISPFAH [7:0] FFH E2h ISPFAL [7:0] FFH E3h ISPFD [7:0] FFH E4h EMF1 EMF2 EMF3 EMF4 - ISPF[2:0] 00H 21.6 时间访问关键登寄存器 ( TAKEY ) 符号: TAKEY 7 地址: F7H 6 5 4 3 TAKEY [7:0] 2 1 0 Reset 00H ISP使能位(ISPE)默认为只读,软件必须连续的对TAKEY寄存器写三个特定值55h,AAH,和5Ah,使ISPE位可写.这是: MOV TAKEY, #55h MOV TAKEY, #0AAh MOV TAKEY, #5Ah 21.7 Interface Control Register( IFCON ) 符号: IFCON 7 6 ITS CDPR 5 F32K 4 F16K 3 ALEC[1] 2 ALEC[0] 1 EMEN 0 ISPE 地址: 8FH Reset 00H 位 0(ISPE) of IFCON 是 ISP 使能位,用户可通过设置 ISPE 位为 1 使能 SM59A16U1 的全部 ISP 功能,通过设置 ISPE 为 0 来禁止全部 ISP 功能.ISPE 的作用像一个加密匙.用户可禁止所有的 ISP 功能以保护软件程序不被意外 的擦除.ISP 寄存器 ISPFAH,ISPFAL,ISPFD,与 ISPFC 默认为只读.软件必须将 ISPE 位设为 1 以使上述 4 个寄存 器为可写. Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 131 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 21.8 ISP 闪存地址寄存器 ( ISPFAH, ISPFAL ) 符号: ISPFAH 7 6 ISPFAH7 ISPFAH6 5 ISPFAH5 4 ISPFAH4 3 ISPFAH3 2 ISPFAH2 1 ISPFAH1 地址: E1H 0 Reset ISPFAH0 FFH 3 ISPFAL3 2 ISPFAL2 1 ISPFAL1 地址: E2H 0 Reset ISPFAL0 FFH ISPFAH [5:0]: 使用 ISP 功能之地址高字节 符号: ISPFAL 7 6 ISPFAL7 ISPFAL6 5 ISPFAL5 4 ISPFAL4 ISPFAL [7:0]: 使用 ISP 功能之地址低字节 ISPFAH 与 ISPFAL 提供了 16 位闪存记忆体地址用做 ISP 功能.这个闪存记忆体地址不应该包括 ISP 服务程序空 间地址.若 ISPFAH & ISPFAL 寄存器控制的闪存记忆体地址覆盖了 ISP 服务程序空间的地址.这个闪存程序/页擦 除等 ISP 功能的执行将会无效. 21.9 ISP 闪存数据寄存器 ( ISPFD ) 符号: ISPFD 7 6 ISPFD7 ISPFD6 5 ISPFD5 4 ISPFD4 3 ISPFD3 2 ISPFD2 1 ISPFD1 地址: E3H 0 Reset ISPFD0 FFH ISPFD [7:0]: 使用 ISP 功能之数值. ISPFD 寄存器提供 ISP 功能中所需之 8 位数据寄存器. 21.10 ISP 闪存控制寄存器 ( ISPFC ) 符号: ISPFC 7 6 EMF1 EMF2 5 EMF3 4 EMF4 3 - 2 ISPF[2] 1 ISPF[1] 地址: E4H 0 Reset ISPF[0] 00H EMF1: 进入机制 (1) 标志位, 由复位信号清除. (仅读) EMF2: 进入机制 (2) 标志位, 由复位信号清除. (仅读) EMF3: 进入机制 (3) 标志位, 由复位信号清除. (仅读) EMF4: 进入机制 (4) 标志位, 由复位信号清除. (仅读) ISPF [2:0]: ISP 功能选择位. ISPF[2:0] 000 001 010 011 100 101 110 111 ISP function Byte program Chip protect Page erase Chip erase Write option Read option Erase option reserved Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 132 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 闪存一页有 128 字节 可设定功能选择位如晶振输入输出脚可配置为一般 I/O (于 1.2 节描述)、内部复位时间选 择(于 1.4.1 节描述)、时钟源来源选择 (于 1.5 节描述)、复位脚可配置为一般 I/O(于第 5 章描述)、看门狗功能启动位(于第 10 章描述)、或 ISP 进入机制选择(于第 21 章描述)。 只能读取功能选择位于芯片被加密后. 选择的 ISP 功能在软件对 ISPFC 寄存器写入数据时将会执行一次. 要实现字节编程/页擦除 ISP 功能,用户需要在开始时指定闪存地址.在实现页擦除功能时,SM59A16U1 将除 ISPFAH 与 ISPFAL 寄存器中显示地址所在的整页. 范例. 闪存地址: $XYMN 将对地址$XY00 to $XYFF 执行页抹除 要实现芯片擦除 ISP 功能,SM59A16U1 将擦除除 ISP 服务程序外的所有闪存程序记忆体. 要实现芯片保护 ISP 功 能,SM59A16U1 内容将被读为#00H. 范例:将对地址$1005H 执行字节写,写入#22H MOV TAKEY, #55h MOV TAKEY, #0AAh MOV TAKEY, #5Ah ;ISPE 可写入属性 ORL IFCON, #01H ;使能 SM39R08A3 ISP 功能 MOV ISPFAH, #10H ; 设定闪存高字节地址,10H MOV ISPFAL, #05H ; 设定闪存低字节地址, 05H MOV ISPFD, #22H ; 设定将写入闪存之资料,资料= 22H MOV ISPFC, #00H ; 开始将写入闪存之资料#22H 写入地址$1005H MOV TAKEY, #0AAh MOV TAKEY, #5Ah ; ISPE 可写入属性 ANL IFCON, #0FEH ;禁止 SM39R08A3 ISP 功能 22. 運算放大器/比较器 SM59A16U1 集成了运算放大器(OPA)/比较器(Comparator)模块在芯片上。此模块支持运算放大器和比较器模式单独地 根据用户的配置。运算放大器模式使能时,双运算放大器可能适用于单个或两级放大器的网络,并可能作为前端信号处 理应用和内部路由到特定的 ADC 通道中。比较器模式使能时,内部的参考电压是可用在比较器终端机上进行配置。如图 22-1中所示。 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 133 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 Green : Analog Dx OPx_CALI[2:0] PDx HY_ONx OPx_MINUS OPx_PLUS CxPOSPAD (SFR) VBG(Bandgap) 1/2 VDD CxPOSVBG (SFR) CxPOSVDDD 2(SFR) Blue : Digital x : 0,1,2 - OPxO OPx + MUX level shifter CMPxO (SFR) CmpxOutEN(SFR) 图 22-1: 比较器模式运作 如果运算放大器和比较器模式两者在同一模块被使能,则 OPA 模式具有更高的优先级。 比较器的中断向量是 93 h。OPA/ Comparator SFR 显示如下所示: Addr Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 符号 描述 Comparator OpCmp Pin Op0E Cmp0 C0PosVB C0PosP Cmp1E OpPin F6h Op1En Select n En G AD n OpCmp Pin C1Pos OpPin2 CEh Select 2 Vddd2 Cmp0CO Comparator_ Hys0E Cmp0 CMF0MS CMF0M FEh CMF0 N 0 control n o 1 S0 Cmp1CO Comparator_ Hys1E Cmp1 CMF1MS CMF1M FFh CMF1 N 1 control n o 1 S0 Cmp2CO Comparator_ Hys2E Cmp2 CMF2MS CMF2M CFh CMF2 N 2 control n o 1 S0 Bit 1 Bit 0 重置值 C1PosV BG C0Pos Vddd2 C1PosP AD 00h - 00h - - 00h - - 00h - - 00h Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 134 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 22.1 運算放大器/比较器引脚选择( OpPin ) 符号: OpPin 7 6 Op0En Cmp0En 5 C0PosVBG 4 C0PosPAD 3 Op1En 2 Cmp1En 1 C1PosVBG 地址: F6h 0 Reset C1PosPAD 00H Op0En Op0 使能功能. 0 = Op0 电路禁止. 1 = Op0 电路使能,并自动将多功能之 I/O P2.5/P2.6/P2.7 切换到 Op0 相应的信号 Cmp0En : 比较器 0 使能位. 1: 比较器 0 电路使能,并自动将多功能之 I/O P2.5/P2.6/P2.7 切换到比较器 0 相应 的信号. C0PosVBG : 非反向输入端参考内部固定电压(1.2V±10%)使能位 1: 使能 C0PosPAD: 非反向输入端电压参考外部输入脚电压使能位 1: 使能 Op1En: Op1 使能功能. 0 = Op1 电路禁止. 1 = Op1 电路使能,并自动将多功能之 I/O P2.2/P2.3/P2.4 切换到 Op1 相应的信号. Cmp1_En : 比较器 1 使能位. 1: 比较器 1 电路使能,并自动将多功能之 I/O P2.2/P2.3/P2.4 切换到比较器 1 相应 的信号. C1PosVBG: 非反向输入端参考内部固定电压(1.2V±10%)使能位 1: 使能 C1PosPAD: 非反向输入端电压参考外部输入脚电压使能位 1: 使能 OpxEn 0 0 0 0 0 0 0 0 0 1 1 CmpxOut、Cmpx_En、CxPosVBG 及 CxPosPad 设定参考表: CxPos CxPos CxPos CmpxEn OP/Comparator positive input source VBG Pad Vddd2 0 X X X GPIO N/A 1 0 0 0 Not Allowed N/A Reference 1/2 Vdd 1 0 0 1 Comparator Voltage Positive pin input 1 0 1 0 Comparator voltage 1 0 1 1 Not Allowed N/A Internal Reference 1 1 0 0 Comparator Voltage 1 1 0 1 Not Allowed N/A 1 1 1 0 Not Allowed N/A 1 1 1 1 Not Allowed N/A X 0 0 0 Not Allowed N/A Reference 1/2 Vdd X 0 0 1 OP Voltage Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 135 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 1 X 0 1 0 OP 1 X 0 1 1 OP 1 X 1 0 0 OP 1 X 1 0 1 Not Allowed 1 X 1 1 0 OP 1 X 1 1 1 Not Allowed Positive pin input voltage OPxPIn output 1/2 Vdd Voltage Internal Reference Voltage N/A OPxPIn ouput Internal Reference Voltage N/A 22.2 運算放大器/比较器引脚选择 2 ( OpPin2 ) 7 Mnemonic: OpPin2 6 5 - 4 3 2 C1PosVddd2 Address: CEh 1 0 Reset C0PosVddd2 00H C1PosVddd2: 使能 Comparator_1 正级输入源,如 Vdd 划分 2.( 1/2 Vdd ) 0 =禁止正级输入源,如 Vdd 划分 2. 1 =使能正级输入源,如 Vdd 划分 2. C0PosVddd2: 使能 Comparator_0 正级输入源,如 Vdd 划分 2.( 1/2 Vdd ) 0 =禁止正级输入源,如 Vdd 划分 2. 1 =使能正级输入源,如 Vdd 划分 22. 22.3 Comparator 0 控制( Cmp0CON ) 符号: Cmp0CON 7 6 Hys0En Cmp0o 5 CMF0MS1 4 CMF0MS0 3 CMF0 2 Cmp0OutEN 1 - 0 - 地址:FEh Reset 00h Hys0En: 比较器 0 迟滞功能使能位 0: 禁能 1: 使能 Cmp0o: 比较器 0 结果输出位(仅读) 1: 非反向输入端电压高于反向输入端电压 0: 反向输入端电压高于非反向输入端电压 CMF0MS[1:0] : 选择比较器 0 旗标(CMF0)产生之模式 00: 比较器 0 旗标(CMF0)于比较器 0 输出转换时被置高 01: 比较器 0 旗标(CMF0)于比较器 0 输出为上升沿时被置高 10: 比较器 0 旗标(CMF0)于比较器 0 输出为下降沿时被置高 11: 无动作 CMF0: 比较器 0 旗标位 此位依 CMF0MS[1:0]之选择模式条件符合时被置高.此位需由软件清零. Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 136 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 Cmp0OutEN: Comparator_0 输出使能. 0 = Comparator_0 将无法输出至外部引脚. 1 = Comparator_0 将输出至外部引脚 22.4 Comparator 1 控制( Cmp1CON ) 7 Hys1En 符号: Cmp1CON 6 5 Cmp1o CMF1MS1 4 CMF1MS0 3 CMF1 2 Cmp1OutEN 1 - 地址:FFh 0 Reset 00h Hys1En: 比较器 1 迟滞功能使能位 0: 禁能 1: 使能 Cmp1o: 比较器 1 结果输出位(仅读) 1: 非反向输入端电压高于反向输入端电压 0: 反向输入端电压高于非反向输入端电压 CMF1MS[1:0] : 选择比较器 1 旗标(CMF1)产生之模式 00: 比较器 1 旗标(CMF1)于比较器 1 输出转换时被置高 01: 比较器 1 旗标(CMF1)于比较器 1 输出为上升沿时被置高 10: 比较器 1 旗标(CMF1)于比较器 1 输出为下降沿时被置高 11: 无动作 CMF1: 比较器 1 旗标位 此位依 CMF1MS[1:0]之选择模式条件符合时被置高.此位需由软件清零. Cmp1OutEN: Comparator_1 输出使能. 0 = Comparator_1 将无法输出至外部引脚. 1 = Comparator_1 将输出至外部引脚 Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 137 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 工作环境 描述 Symbol Min. Typ. Max. Unit. Operating temperature -40 25 85 ℃ VDD Supply voltage 2.2 - 5.5 V Vref Internal reference voltage 1.1 1.2 1.3 V TA Remarks Ambient temperature under bias DC 电气特性 TA = -40℃ to 85℃, Vcc = 5.0V Symbol Parameter Valid VIL1 Input Low-voltage VIL2 Input Low-voltage VIH1 Input High-voltage VIH2 Input High-voltage Port 0,1,2,3,4 RESET XTAL1 Port 0,1,2,3,4 RESET XTAL1 Vhys Hysteresis voltage RESET VOL Output Low-voltage Output High-voltage VOH1 using Strong Pull-up(1) Output High-voltage VOH2 using Weak Pull-up(2) IIL ITL ILI RRST CIO ICC Logic 0 Input Current Logical Transition Current Input Leakage Current Reset Pull-down Resistor Pin Capacitance Power Supply Current Min Typical Max Units 0.3Vdd V 0.2Vdd V 0.7Vdd V 0.8Vdd V 0.6 Port 0,1,2,3,4 Conditions V 0.4 V IOL= 5.5mA Port 0,1,2,3,4 2.6V V IOH= -4.3mA Port 0,1,2,3,4 2.6V V IOH= -100uA Port 0,1,2,3,4 -75 uA Vin= 0.45V Port 0,1,2,3,4 -650 uA Vin= 2.0V Port 0,1,2,3,4 ±10 uA 0.45V<Vin<Vcc 300 kΩ 10 pF RES 50 - 16 25 mA - 10 15 mA - 9 14 mA - 3 9 uA VDD Freq= 1MHz, Ta= 25℃ Active mode ,IRC=22.1184MHz Active mode, 12MHz VCC =5V 25 ℃ Idle mode, 12MHz VCC =5V 25 ℃ Power down mode VCC =5V 25 ℃ Notes: (1) Port in Push-Pull Output Mode (2) Port in Quasi-Bidirectional Mode (3) To Be Defined Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 138 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 TA = -40℃ to 85℃, VCC = 3.0V Symbol Parameter Valid VIL1 Input Low-voltage VIL2 Input Low-voltage VIH1 Input High-voltage VIH2 Input High-voltage Port 0,1,2,3,4 RESET XTAL1 Port 0,1,2,3,4 RESET XTAL1 Vhys Hysteresis voltage RESET VOL Output Low-voltage Port 0,1,2,3,4 VOH1 VOH2 IIL ITL ILI RRST CIO ICC Output High-voltage (1) using Strong Pull-up Output High-voltage using Weak Pull-up(2) Logic 0 Input Current Logical Transition Current Input Leakage Current Reset Pull-down Resistor Pin Capacitance Min Typical Max Units 0.3Vdd V 0.2Vdd V 0.7Vdd V 0.8Vdd V 0.6 Conditions V 0.4 V IOL= 3.6mA Port 0,1,2,3,4 2.6V V IOH= -3.0mA Port 0,1,2,3,4 2.6V V IOH= -60uA Port 0,1,2,3,4 -75 uA Vin= 0.45V Port 0,1,2,3,4 -650 uA Vin= 2.0V Port 0,1,2,3,4 ±10 uA 0.45V<Vin<Vdd 300 kΩ 10 pF N/A mA N/A mA N/A uA Power Supply Current RES 50 VDD Freq= 1MHz, Ta= 25℃ Active mode ,12MHz VCC =3.0 V 25 ℃ Idle mode, 12MHz VCC =3.0V 25 ℃ Power down mode VCC =3.0V 25 ℃ Notes: (1) Port in Push-Pull Output Mode (2) Port in Quasi-Bidirectional Mode (3) To Be Defined SYMBOL PARAMETER Maximum sourced current Maximum sink current An I/O pin Total I/O pins An I/O pin Total I/O pins Tj Max. Junction Temperature Absolute Maximum Ratings MAX N/A 150 N/A 150 150 UNIT mA mA mA mA ℃ Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 139 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 OPA 电气特性 Parameters Supply voltage/Operating voltage Operating current (single Op) CMRR PSRR Input offset voltage Gain bandwidth product Phase marge Slew rate(V/us) Min 2.5 60 60 - MAX. load - Output source current Output sink current - Typ 5 500 55 0.03 10K Ohm 100 pF 500 500 Max 5.5 200 - Units V uA dB dB mV KHz V/us - uA uA Comparator 电气特性 Ta=25℃ 描述 Symbol IOP Test Condition VDD Condition MIN TPY MAX Unit Operating current 5 - - 10 10 uA - Power Down Current 5 - - - 0.1 uA - Offset voltage 5 - -10 - +10 mV VCM Input voltage commom mode range - - Vss - Vdd-1.5 V Tp Propagation delay 5 △ Vin=10mV - 3 6 us - +/- 20 - mV Hysteresis Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 140 - SM59A16U1 内嵌 64KB 具有 ISP 功能的 Flash 和 6K+256B RAM 的 8 位控制器 LVR (Low Voltage Reset) 电气特性 Reset Function LVRE LVRLPE LVR detect voltage range Min Typical VIL=1.52V VIL=1.60V VIH=0.92V VIH=1.0V Max VIL=1.68V VIH=1.08V LVI (Low Voltage Interrupt) 电气特性 LVIS[1:0] = 00 LVIS[1:0] = 01 LVIS[1:0] = 10 LVIS[1:0] = 11 LVI detect voltage range Min Typical VIL=1.66V VIL=1.75V VIH=1.86V (VIH=1.95V) VIL=2.61V VIL=2.75V VIH=2.81V VIH=2.95V VIL=3.18V VIL=3.35V VIH=3.38V VIH=3.55V VIL=3.99V VIL=4.20V VIH=4.19V VIH=4.40V Max VIL=1.83V (VIH=2.03V) VIL=2.88V (VIH=3.08V VIL=3.51V VIH=3.71V VIL=4.41V VIH=4.61V Specifications subject to change without notice contact your sales representatives for the most recent information. ISSFD-M072 Ver A SM59A16U1 04/12/2013 - 141 -