0
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心
发布
  • 发文章

  • 发资料

  • 发帖

  • 提问

  • 发视频

创作活动
CH559L

CH559L

  • 厂商:

    WCH(南京沁恒)

  • 封装:

    LQFP48_7X7MM

  • 描述:

    CH559L

  • 数据手册
  • 价格&库存
CH559L 数据手册
CH559 手册 1 8 位增强型 USB 单片机 CH559 手册 版本:1.5 http://wch.cn 1、概述 CH559 芯片是一款兼容 MCS51 指令集的增强型 E8051 内核单片机, 其 79%的指令是单字节单周期 指令,平均指令速度比标准 MCS51 快 8~15 倍。 CH559 支持最高 56MHz 系统主频, 内置 64K 程序存储器 Flash-ROM 和 256 字节内部 iRAM 以及 6K 字节片内 xRAM,部分 xRAM 支持 DMA 直接内存存取。 CH559 内置了 ADC 模数转换、4 组定时器和 PWM、双异步串口、双 SPI 等功能模块,以及内置双 端口 Root-HUB,支持 USB-Host 主机模式和 USB-Device 设备模式。 下面为 CH559 的内部框图,仅供参考。 Flash-ROM 64KB (Code or Data) iRAM 256B xRAM 6KB T0 T1 T2 Timer3 PWM3 PWM1 PWM2 UART0 UART1 Modem SPI0 M/S SPI1 M LED Ctrl Power-on Reset Watch-dog Reset Internal Oscillator 1T E8051 Core XT Internal Address & Data & DMA Bus USB PLL 8-bit 8-bit 8-bit 8-bit 8-bit xBUS Port0 ADC Port1 Port2 Port3 XT 8-bit USB 5-bit OSC Port4 H/D Port5 LDO VolReg 5V->3.3V Pins: GND VIN5 VDD33 P00~P07 P10~P17 P20~P27 P30~P37 P40~P47 P50/1/4/5/7 2、特点 l Core:增强型 E8051 内核,兼容 MCS51 指令集,其 79%的指令是单字节单周期指令,平均指令 l l l l l 速度比标准 MCS51 快 8~15 倍,特有 XRAM 数据快速复制指令,双 DPTR 指针。 ROM:64KB 非易失存储器 Flash-ROM,支持 100K 次擦写,可以全部用于程序存储空间;或者可 以分为 60KB 程序存储区和 1KB 数据存储区以及 3KB 引导代码 BootLoader/ISP 程序区。 RAM:256 字节内部 iRAM,可以用于快速数据暂存以及堆栈;6KB 片内 xRAM,可以用于大量数 据暂存以及 DMA 直接内存存取;支持在片外再外扩 32KB 外部 SRAM。 USB:内嵌 USB 控制器和双 USB 收发器,支持 USB-Host 主机模式和 USB-Device 设备模式,支 持 USB 2.0 全速 12Mbps 或者低速 1.5Mbps,USB 主机模式下可以通过双端口 Root-HUB 同时管 理两个 USB 设备。支持最大 64 字节数据包,内置 FIFO,支持 DMA。 Timer:4 组定时器,T0/T1/T2 为标准 MCS51 定时器;T2 扩展为支持 2 路信号捕捉;TMR3 内置 8 级 FIFO,支持 DMA,支持信号捕捉采样和 16 位 PWM 输出。 PWM:3 组 PWM 输出,PWM1/PWM2 为 2 路 8 位 PWM 输出;TMR3 支持 16 位 PWM 输出。 CH559 手册 2 l UART:2 组异步串口,UART0 为标准 MCS51 串口;UART1 兼容 16C550,内置 8 级 FIFO,支持 Modem l l l l l l l l l l l 信号,支持 RS485 半双工模式,支持预置本机地址用于多机通讯时自动匹配。 SPI:2 组 SPI 控制器,时钟频率最高可达系统主频 Fsys 的一半,支持串行数据输入输出单工 复用。SPI0 内置 FIFO,支持 Master/Slave 主从模式;SPI1 只支持主机模式。 ADC:8 通道 10 位或 11 位 A/D 模数转换器,内置 2 级 FIFO,支持 DMA,支持最高 1MSPS 采样率, 支持两通道自动轮测。 LED-CTRL:LED 屏控制卡数据传输接口,内置 4 级 FIFO,支持 DMA,支持 1/2/4 路数据线接口, 时钟频率最高可达系统主频 Fsys 的一半。 XBUS:8 位并行外部总线,兼容标准 MCS51 总线,用于连接片外 SRAM 存储器或者其它外设,支 持直接 15 位地址或者 ALE 复用低 8 位地址,支持 4 种总线存取速度。 GPIO:支持最多 45 个 GPIO 引脚(含 XI/XO 和 RST 以及 USB 信号引脚),3.3V 电压输出,除了 P1.0~P1.7、XI、XO、RST 之外都支持 5V 耐压输入。 Interrupt:支持 14 组中断信号源,包括与标准 MCS51 兼容的 6 组中断(INT0、T0、INT1、T1、 UART0、T2),以及扩展的 8 组中断(SPI0、TMR3、USB、ADC、UART1、PWM1、GPIO、WDOG),其 中 GPIO 中断可以从 7 个引脚中选择。 Watch-Dog:8 位可预设看门狗定时器 WDOG,支持定时中断。 Reset:支持 4 种复位信号源,内置上电复位,支持软件复位和看门狗溢出复位,可选引脚外 部输入复位。 Clock:内置 12MHz 时钟源,可以通过复用 GPIO 引脚支持外部晶体,内置 PLL 用于产生 USB 时 钟和所需频率的系统主频 Fsys。 Power:内置 5V 到 3.3V 的低压差电压调整器,内部工作电压为 3.3V,支持外部 3.3V 或者 5V 电源输入。支持低功耗睡眠,支持 USB、UART0、UART1、SPI0 以及部分 GPIO 外部唤醒。 芯片内置唯一 ID 号,支持 ID 号和校验。 P3.7/RD P4.3/PWM1_/A3 P4.2/PWM3_/CAP3_/A2 P4.6/XI/SCS_ P4.7/XO/SCK_ GND/VSS P4.1/A1 P4.0/LED2/A0/RXD1_ P2.0/A8 P2.1/MOSI1/A9 P2.2/MISO1/A10 P2.3/SCK1/A11 P1.6/AIN6/MISO P0.4/AD4/UCTS P1.7/AIN7/SCK P0.5/AD5/UDSR P5.7/RST P0.6/AD6/URI P3.0/RXD P0.7/AD7/UDCD P4.5/PWM2_/A5 P5.0/DM P4.4/LED3/TNOW_/TXD1_/A4 P5.1/DP CH559L P3.1/TXD P5.4/HM/ALE/XB P3.2/LED0/INT0 P5.5/HP/!A15/XA P3.3/LED1/!A15/INT1 P2.7/TXD1/DA7/A15 P3.4/LEDC/XCS0/T0 P2.6/RXD1/A14 P3.5/DA6/T1 P2.5/TNOW/PWM2/A13/T2EX_/CAP2_ P3.6/WR P2.4/PWM1/A12 36 35 34 33 32 31 30 29 28 27 26 25 1 2 3 4 5 6 7 8 9 10 P1.2/AIN2/PWM3/CAP3 VDD33 P1.4/AIN4/SCS VIN5 P1.5/AIN5/MOSI GND/VSS P1.6/AIN6/MISO P0.2/RXD_ P1.7/AIN7/SCK P0.3/TXD_ CH559T P5.7/RST P5.0/DM P3.2/LED0/INT0 P5.1/DP P3.4/LEDC/T0 P2.7/TXD1 P4.6/XI/SCS_ P2.6/RXD1 P4.7/XO/SCK_ P2.5/TNOW/PWM2/T2EX_/CAP2_ 13 14 15 16 17 18 19 20 21 22 23 24 1 2 3 4 5 6 7 8 9 10 11 12 P1.5/AIN5/MOSI P1.4/AIN4/SCS P1.3/AIN3 P1.2/AIN2/PWM3/CAP3 P1.1/AIN1/T2EX/CAP2 P1.0/AIN0/T2/CAP1 VDD33 VIN5 P0.0/AD0/UDTR P0.1/AD1/URTS P0.2/AD2/RXD_ P0.3/AD3/TXD_ 48 47 46 45 44 43 42 41 40 39 38 37 3、封装 封装形式 LQFP-48 塑体宽度 7*7mm 引脚间距 0.5mm 19.7mil 封装说明 订货型号 标准 LQFP48 脚贴片 CH559L 20 19 18 17 16 15 14 13 12 11 CH559 手册 3 SSOP-20 5.30mm 209mil 0.65mm 25mil 超小型 20 脚贴片 CH559T 4、引脚 引脚号 引脚 SSOP20 LQFP48 名称 19 41 其它功能名称 (左侧功能最优先) 其它功能描述 VIN5 V5 内部 5V->3.3V 电压调整器的 5V 外部电源输入, 需要外接 0.1uF 电源退耦电容。 VDD33 VDD/VCC 内部电压调整器输出和内部 3.3V 工作电源输入, 当电源电压小于 3.6V 时连接 VIN5 输入外部电源, 当电源电压大于 3.6V 时外接 3.3uF 电源退耦电容。 20 42 18 18 GND - 40 P0.0 AD0/UDTR - 39 P0.1 AD1/URTS 17 38 P0.2 AD2/RXD_ 16 37 P0.3 AD3/TXD_ - 36 P0.4 AD4/UCTS - 35 P0.5 AD5/UDSR - 34 P0.6 AD6/URI - 33 P0.7 AD7/UDCD - 43 P1.0 AIN0/T2/CAP1 - 44 P1.1 AIN1/T2EX/CAP2 1 45 P1.2 AIN2/PWM3/CAP3 - 46 P1.3 AIN3 2 47 P1.4 AIN4/SCS 3 48 P1.5 AIN5/MOSI 4 1 P1.6 AIN6/MISO 5 2 P1.7 AIN7/SCK - 21 P2.0 A8 - 22 P2.1 MOSI1/A9 - 23 P2.2 MISO1/A10 - 24 P2.3 SCK1/A11 - 25 P2.4 PWM1/A12 11 26 P2.5 12 27 P2.6 RXD1/A14 13 28 P2.7 TXD1/DA7/A15 - 4 P3.0 RXD - 7 P3.1 TXD 7 8 P3.2 LED0/INT0 - 9 P3.3 LED1/!A15/INT1 8 10 P3.4 LEDC/XCS0/T0 - 11 P3.5 DA6/T1 VSS TNOW/PWM2/A13 /T2EX_/CAP2_ 公共接地端。 P0 端口:默认是 8 位开漏双向端口,可选通过设置 P0_PU 使能内部上拉电阻,使之转为准双向端口。 P0 在访问外部总线时会临时自动切换为推挽输出,作 为双向数据总线 AD0~AD7;或者在复用地址模式下访 问外部总线时根据需要输出地址的低 8 位。 UDTR、URTS:UART1 的 modem 信号输出。 UCTS、UDSR、URI、UDCD:UART1 的 modem 信号输入。 RXD_、TXD_:RXD、TXD 引脚映射。 AIN0~AIN7:8 通道 ADC 模拟信号输入。 T2:定时/计数器 2 的外部计数输入/时钟输出。 T2EX:定时/计数器 2 重载/捕捉输入。 CAP1、CAP2:定时/计数器 2 的捕捉输入 1、2。 CAP3/PWM3:定时/计数器 3 捕捉输入/PWM 输出。 SCS、MOSI、MISO、SCK:SPI0 接口,SCS 是片选输入, MOSI 是主机输出/从机输入,MISO 是主机输入/从机 输出,SCK 是串行时钟。 P2 在访问外部总线时会临时自动切换为推挽输出,根 据需要输出地址的高 8 位 A8~A15。 MOSI1、MISO1、SCK1:SPI1 接口,MOSI1 是主机输出, MISO1 是主机输入,SCK1 是串行时钟输出。 PWM1、PWM2:PWM1 输出、PWM2 输出。 TNOW:UART1 正在发送输出指示。 T2EX_/CAP2_:T2EX/CAP2 引脚映射。 RXD1、TXD1:UART1 串行数据输入、串行数据输出。 DA7:直接地址模式下访问外部总线时输出地址 A7。 RXD、TXD:UART0 串行数据输入、串行数据输出。 INT0、INT1:外部中断 0、外部中断 1 输入。 LED0、LED1、LEDC:LED 串行数据 0、1、时钟输出。 !A15:外部总线地址 A15 反相输出,用于片选。 T0、T1:定时器 0、定时器 1 外部输入。 XCS0:外部总线地址 4000h~7FFFh 片选输出。 CH559 手册 4 - 12 P3.6 WR DA6:直接地址模式下访问外部总线时输出地址 A6。 WR、RD:外部总线写信号、读信号。 - 13 P3.7 RD - 20 P4.0 LED2/A0/RXD1_ - 19 P4.1 A1 - 15 - 14 - 6 - 5 9 16 10 17 A0~A5:在直接地址模式下访问外部总线时输出低 6 位地址 A0~A5。 P4.2 PWM3_/CAP3_/A2 LED2、LED3:LED 串行数据 2、3 输出。 P4.3 PWM1_/A3 RXD1_、TNOW_/TXD1_:RXD1、TNOW/TXD1 引脚映射。 P4.4 LED3/TNOW_/TXD1_/A4 PWM3_/CAP3_:PWM3/CAP3 引脚映射。 PWM1_、PWM2_:PWM1、PWM2 引脚映射。 P4.5 PWM2_/A5 XI、XO:外部晶体振荡输入端、反相输出端。 P4.6 XI/SCS_ SCS_、SCK_:SPI0 片选 SCS、SCK 引脚映射。 P4.7 X0/SCK_ 15 32 P5.0 DM 14 31 P5.1 DP - 30 P5.4 HM /ALE/XB - 29 P5.5 HP /!A15/XA 6 3 P5.7 RST DM、DP:USB 主机 HUB0 或 USB 设备的 D-、D+信号端。 XB、XA:iRS485 的 B/反相、A/同相信号端。 ALE:复用地址模式下的地址锁存信号输出。 !A15:外部总线地址 A15 反相输出,用于片选。 HM、HP:USB 主机扩展 HUB1 的 D-、D+信号端。 外部复位输入,内置下拉电阻。 5、特殊功能寄存器 SFR 本手册中在对寄存器进行描述时可能使用了下列缩写: 缩写词 描述 RO 表示访问类型:只读 WO 表示访问类型:只写,读取的值无效 RW 表示访问类型:可读可写 h 以其结束表示 16 进制数 b 以其结束表示 2 进制数 5.1 SFR 简介和地址分布 CH559 用特殊功能寄存器 SFR 和 xSFR 控制、管理设备以及设置工作模式。 SFR 占用内部数据存储空间的 80h-FFh 地址范围,只能通过直接地址方式的指令访问。其中地 址为 x0h 或 x8h 的寄存器是可以按位寻址的,这样就能避免访问某个具体的位时而修改其他位的值; 其它地址为非 8 倍数的寄存器只能按字节访问。 部分 SFR 仅在安全模式下才能写入数据,而在非安全模式下是只读状态,例如:GLOBAL_CFG、 PLL_CFG、CLOCK_CFG、SLEEP_CTRL、WAKE_CTRL。 部分 SFR 具有一个或者多个别名,例如:SPI0_CK_SE/SPI0_S_PRE、UDEV_CTRL/UHUB0_CTRL、 UEP1_CTRL/UH_SETUP、UEP2_CTRL/UH_RX_CTRL、UEP2_T_LEN/UH_EP_PID、UEP3_CTRL/UH_TX_CTRL、 UEP3_T_LEN/UH_TX_LEN、P5_PIN/P4_CFG。 部分地址对应于多个独立的 SFR,例如:TL2/T2CAP1L、TH2/T2CAP1H、SAFE_MOD/CHIP_ID、 T3_COUNT_L/T3_CK_SE_L 、 T3_COUNT_H/T3_CK_SE_H 、 SER1_FIFO/SER1_RBR/SER1_THR/SER1_DLL 、 SER1_IER/SER1_DLM、SER1_IIR/SER1_FCR、SER1_ADDR/SER1_DIV、ROM_CTRL/ROM_STATUS。 xSFR 占用外部数据存储空间 xdata 类型的 2440h-298Fh 地址范围,或者 pdata 类型的 40H-8Fh 地址范围。xSFR 只能通过 MOVX 指令间接寻址按字节访问,默认是基于 DPTR 指针;但在 bXIR_XSFR 置 1 后,还可以用更快捷的 R0 或者 R1 作为 pdata 类型指针访问名称为 pU*和 pLED_*的 xSFR。 CH559 手册 5 部分 xSFR 具有一个或者多个别名,例如:UEP2_3_MOD/UH_EP_MOD、UEP2_DMA_H/UH_RX_DMA_H、 UEP2_DMA_L/UH_RX_DMA_L 、 UEP2_DMA/UH_RX_DMA 、 UEP3_DMA_H/UH_TX_DMA_H 、 UEP3_DMA_L/UH_TX_DMA_L、UEP3_DMA/UH_TX_DMA。 部分地址对应于多个独立的 xSFR,例如:LED_DATA/LED_FIFO_CN。 CH559 包含 8051 标准 SFR 所有的寄存器,同时又增加了其他设备控制寄存器。具体 SFR 见下表。 表 5.1 特殊功能寄存器表 SFR 0、8 1、9 2、A 0xF8 SPI0_STAT SPI0_DATA SPI0_CTRL 0xF0 B ADC_STAT ADC_CTRL 0xE8 IE_EX IP_EX 0xE0 ACC 4、C 5、D 6、E 7、F SPI0_SETUP XBUS_SPEED RESET_KEEP WDOG_COUNT ADC_CHANN ADC_FIFO_L ADC_FIFO_H ADC_SETUP ADC_EX_SW SLEEP_CTRL WAKE_CTRL ADC_DMA_AL ADC_DMA_AH ADC_DMA_CN ADC_CK_SE USB_INT_EN USB_CTRL USB_DEV_AD UHUB1_CTRL USB_DMA_AL USB_DMA_AH 0xD8 USB_INT_FG USB_INT_ST USB_MIS_ST USB_HUB_ST UEP0_CTRL UEP0_T_LEN UEP4_CTRL UEP4_T_LEN 0xD0 PSW USB_RX_LEN UEP2_CTRL UEP2_T_LEN UEP3_CTRL UEP3_T_LEN UH_RX_CTRL UH_EP_PID UH_TX_CTRL UH_TX_LEN 0xC8 T2CON T2MOD RCAP2L RCAP2H TL2 TH2 T2CAP1L T2CAP1H PIN_FUNC GPIO_IE 0xC0 P4_OUT P4_IN P4_DIR P4_PU P0_DIR P0_PU PORT_CFG 0xB8 IP P1_IE P1_DIR P1_PU P2_DIR P2_PU P3_DIR P3_PU 0xB0 P3 GLOBAL_CFG PLL_CFG CLOCK_CFG SPI1_STAT SPI1_DATA SPI1_CTRL SPI1_CK_SE 0xA8 IE T3_STAT T3_CTRL T3_DMA_CN T3_DMA_AL T3_DMA_AH T3_FIFO_L T3_FIFO_H 0xA0 P2 XBUS_AUX T3_SETUP T3_COUNT_L T3_COUNT_H T3_CK_SE_L T3_CK_SE_H T3_END_L T3_END_H 0x98 SCON PWM_DATA2 PWM_DATA PWM_CTRL PWM_CK_SE PWM_CYCLE 0x90 P1 SER1_LCR SER1_MCR SER1_LSR SER1_MSR 0x88 ROM_DATA_L 0x80 SAFE_MOD CHIP_ID SBUF UEP1_CTRL UH_SETUP SER1_FIFO SER1_DLL 3、B SPI0_CK_SE SPI0_S_PRE UEP1_T_LEN UDEV_CTRL UHUB0_CTRL SER1_IER SER1_IIR SER1_DLM SER1_FCR TCON TMOD TL0 TL1 TH0 TH1 P0 SP DPL DPH ROM_ADDR_L ROM_ADDR_H 备注:(1)、红色文本代表可以按位寻址;(2)、以下是颜色框对应说明 寄存器地址 SPI0 相关寄存器 ADC 相关寄存器 USB 相关寄存器 定时/计数器 2 相关寄存器 端口设置相关寄存器 SPI1 相关寄存器 PWM1 和 PWM2 相关寄存器 UART1 相关寄存器 定时/计数器 0 和 1 相关寄存器 Flash-ROM 相关寄存器 ROM_CTRL ROM_STATUS P5_PIN P4_CFG SER1_ADDR SER1_DIV ROM_DATA_H PCON CH559 手册 6 5.2 SFR 分类和复位值 表 5.2 SFR 和 xSFR 描述和复位值 功能分类 系统设置 相关寄存器 时钟、睡眠 及电源控制 相关寄存器 中断控制 相关寄存器 Flash-ROM 相关寄存器 端口设置 相关寄存器 名称 地址 描述 复位值 B F0h B 寄存器 0000 0000b ACC E0h 累加器 0000 0000b PSW D0h 程序状态寄存器 0000 0000b GLOBAL_CFG B1h 全局配置寄存器(引导程序状态下) 1110 0000b 全局配置寄存器(应用程序状态下) 1100 0000b CHIP_ID A1h 芯片 ID 识别码(只读) 0101 1001b SAFE_MOD A1h 安全模式控制寄存器(只写) 0000 0000b DPH 83h 数据地址指针高 8 位 0000 0000b DPL 82h 数据地址指针低 8 位 0000 0000b DPTR 82h DPL 和 DPH 组成 16 位 SFR SP 81h 堆栈指针 0000 0111b WDOG_COUNT FFh 看门狗计数寄存器 0000 0000b RESET_KEEP FEh 复位保持寄存器(上电复位状态下) 0000 0000b WAKE_CTRL EBh 睡眠唤醒控制寄存器 0000 0000b SLEEP_CTRL EAh 睡眠控制寄存器 0000 0000b CLOCK_CFG B3h 系统时钟配置寄存器 1001 1000b PLL_CFG B2h PLL 时钟配置寄存器 1101 1000b PCON 87h 电源控制寄存器(上电复位状态下) 0001 0000b IP_EX E9h 扩展中断优先级控制寄存器 0000 0000b IE_EX E8h 扩展中断使能寄存器 0000 0000b GPIO_IE CFh GPIO 中断使能寄存器 0000 0000b IP B8h 中断优先级控制寄存器 0000 0000b IE A8h 中断使能寄存器 0000 0000b ROM_DATA_H 8Fh flash-ROM 数据寄存器高字节 xxxx xxxxb ROM_DATA_L 8Eh flash-ROM 数据寄存器低字节 xxxx xxxxb ROM_DATA 8Eh ROM_DATA_L 和 ROM_DATA_H 组成 16 位 SFR ROM_STATUS 86h flash-ROM 状态寄存器(只读) 1000 0000b ROM_CTRL 86h flash-ROM 控制寄存器(只写) 0000 0000b ROM_ADDR_H 85h flash-ROM 地址寄存器高字节 xxxx xxxxb ROM_ADDR_L 84h flash-ROM 地址寄存器低字节 xxxx xxxxb ROM_ADDR 84h ROM_ADDR_L 和 ROM_ADDR_H 组成 16 位 SFR XBUS_SPEED FDh 外部总线速度配置寄存器 1111 1111b XBUS_AUX A2h 外部总线辅助设置寄存器 0000 0000b PIN_FUNC CEh 引脚功能选择寄存器 0000 0000b P4_CFG C7h P4 端口配置寄存器 0000 0000b P5_IN C7h P5 端口输入寄存器(只读) 0000 0000b PORT_CFG C6h 端口配置寄存器 0000 1111b P0_PU C5h P0 端口上拉使能寄存器(En_P0_Pullup=0) 0000 0000b P0 端口上拉使能寄存器(En_P0_Pullup=1) 1111 1111b 0000h xxxxh xxxxh CH559 手册 定时/计数器 0和1 相关寄存器 UART0 相关寄存器 定时/计数器 2 相关寄存器 定时/计数器 3 相关寄存器 7 P0_DIR C4h P0 端口方向控制寄存器 0000 0000b P4_PU C3h P4 端口上拉使能寄存器 1111 1111b P4_DIR C2h P4 端口方向控制寄存器 0000 0000b P4_IN C1h P4 端口输入寄存器(只读) 1111 1111b P4_OUT C0h P4 端口输出寄存器 0000 0000b P3_PU BFh P3 端口方向控制寄存器 1111 1111b P3_DIR BEh P3 端口上拉使能寄存器 0000 0000 P2_PU BDh P2 端口上拉使能寄存器 1111 1111b P2_DIR BCh P2 端口方向控制寄存器 0000 0000b P1_PU BBh P1 端口上拉使能寄存器 1111 1111b P1_DIR BAh P1 端口方向控制寄存器 0000 0000b P1_IE B9h P1 端口输入使能寄存器 1111 1111b P3 B0h P3 端口输入输出寄存器 1111 1111b P2 A0h P2 端口输入输出寄存器 1111 1111b P1 90h P1 端口输入输出寄存器 1111 1111b P0 80h P0 端口输入输出寄存器 1111 1111b TH1 8Dh Timer1 计数高字节 xxxx xxxxb TH0 8Ch Timer0 计数高字节 xxxx xxxxb TL1 8Bh Timer1 计数低字节 xxxx xxxxb TL0 8Ah Timer0 计数低字节 xxxx xxxxb TMOD 89h Timer0/1 方式寄存器 0000 0000b TCON 88h Timer0/1 控制寄存器 0000 0000b SBUF 99h UART0 数据寄存器 xxxx xxxxb SCON 98h UART0 控制寄存器 0000 0000b TH2 CDh Timer2 计数器高字节 0000 0000b TL2 CCh Timer2 计数器低字节 0000 0000b T2COUNT CCh TL2 和 TH2 组成 16 位 SFR T2CAP1H CDh Timer2 捕捉 1 数据高字节(只读) xxxx xxxxb T2CAP1L CCh Timer2 捕捉 1 数据低字节(只读) xxxx xxxxb T2CAP1 CCh T2CAP1L 和 T2CAP1H 组成 16 位 SFR xxxxh RCAP2H CBh 计数重载/捕捉 2 数据寄存器高字节 0000 0000b RCAP2L CAh 计数重载/捕捉 2 数据寄存器低字节 0000 0000b RCAP2 CAh RCAP2L 和 RCAP2H 组成 16 位 SFR T2MOD C9h Timer2 方式寄存器 0000 0000b T2CON C8h Timer2 控制寄存器 0000 0000b T3_FIFO_H AFh Timer3 的 FIFO 高字节 xxxx xxxxb T3_FIFO_L AEh Timer3 的 FIFO 低字节 xxxx xxxxb T3_FIFO AEh T3_FIFO_L 和 T3_FIFO_H 组成 16 位 SFR T3_DMA_AH ADh DMA 当前缓冲区地址高字节 0000 xxxxb T3_DMA_AL ACh DMA 当前缓冲区地址低字节 xxxx xxx0b T3_DMA ACh T3_DMA_AL 和 T3_DMA_AH 组成 16 位 SFR T3_DMA_CN ABh DMA 剩余计数寄存器 0000 0000b T3_CTRL AAh Timer3 控制寄存器 0000 0010b 0000h 0000h xxxxh 0xxxh CH559 手册 PWM1 和 PWM2 相关寄存器 SPI0 相关寄存器 SPI1 相关寄存器 UART1 相关寄存器 ADC 相关寄存器 8 T3_STAT A9h Timer3 状态寄存器 0000 0000b T3_END_H A7h Timer3 计数终值高字节 xxxx xxxxb T3_END_L A6h Timer3 计数终值低字节 xxxx xxxxb T3_END A6h T3_END_L 和 T3_END_H 组成 16 位 SFR T3_COUNT_H A5h Timer3 当前计数高字节(只读) 0000 0000b T3_COUNT_L A4h Timer3 当前计数低字节(只读) 0000 0000b T3_COUNT A4h T3_COUNT_L 和 T3_COUNT_H 组成 16 位 SFR T3_CK_SE_H A5h Timer3 时钟分频设置高字节 0000 0000b T3_CK_SE_L A4h Timer3 时钟分频设置低字节 0010 0000b T3_CK_SE A4h T3_CK_SE_L 和 T3_CK_SE_H 组成 16 位 SFR T3_SETUP A3h Timer3 设置寄存器 0000 0100b PWM_CYCLE 9Fh PWM 循环周期寄存器 xxxx xxxxb PWM_CK_SE 9Eh PWM 时钟分频设置寄存器 0000 0000b PWM_CTRL 9Dh PWM 控制寄存器 0000 0010b PWM_DATA 9Ch PWM1 数据寄存器 xxxx xxxxb PWM_DATA2 9Bh PWM2 数据寄存器 xxxx xxxxb SPI0_SETUP FCh SPI0 设置寄存器 0000 0000b SPI0_S_PRE FBh SPI0 从机模式预置数据寄存器 0010 0000b SPI0_CK_SE FBh SPI0 时钟分频设置寄存器 0010 0000b SPI0_CTRL FAh SPI0 控制寄存器 0000 0010b SPI0_DATA F9h SPI0 数据收发寄存器 xxxx xxxxb SPI0_STAT F8h SPI0 状态寄存器 0000 1000b SPI1_CK_SE B7h SPI1 时钟分频设置寄存器 0010 0000b SPI1_CTRL B6h SPI1 控制寄存器 0000 0010b SPI1_DATA B5h SPI1 数据收发寄存器 xxxx xxxxb SPI1_STAT B4h SPI1 状态寄存器 0000 1000b SER1_DLL 9Ah UART1 波特率除数锁存器低字节 xxxx xxxxb SER1_FIFO 9Ah UART1 数据 FIFO 读写寄存器 xxxx xxxxb SER1_DIV 97h UART1 预分频除数寄存器 0xxx xxxxb SER1_ADDR 97h UART1 总线地址预置寄存器 1111 1111b SER1_MSR 96h UART1 调制解调器 MODEM 状态寄存器(只读) 1111 0000b SER1_LSR 95h UART1 线路状态寄存器(只读) 0110 0000b SER1_MCR 94h UART1 调制解调器 MODEM 控制寄存器 0000 0000b SER1_LCR 93h UART1 线路控制寄存器 0000 0000b SER1_IIR 92h UART1 中断识别寄存器(只读) 0000 0001b SER1_FCR 92h FIFO 控制寄存器(只写) 0000 0000b SER1_DLM 91h UART1 波特率除数锁存器高字节 1000 0000b SER1_IER 91h UART1 中断使能寄存器 0000 0000b ADC_EX_SW F7h ADC 扩展模拟开关控制寄存器 0000 0000b ADC_SETUP F6h ADC 设置寄存器 0000 1000b ADC_FIFO_H F5h ADC 的 FIFO 高字节(只读) 0000 0xxxb ADC_FIFO_L F4h ADC 的 FIFO 低字节(只读) xxxx xxxxb ADC_FIFO F4h ADC_FIFO_L 和 ADC_FIFO_H 组成 16 位 SFR xxxxh 0000h 0020h 0xxxh CH559 手册 USB 相关寄存器 USB 相关寄存器 xSFR 区域 9 ADC_CHANN F3h ADC 通道选择寄存器 0000 0000b ADC_CTRL F2h ADC 控制寄存器 0000 0000b ADC_STAT F1h ADC 状态寄存器 0000 0100b ADC_CK_SE EFh ADC 时钟分频设置寄存器 0001 0000b ADC_DMA_CN EEh DMA 剩余计数寄存器 0000 0000b ADC_DMA_AH EDh DMA 当前缓冲区地址高字节 0000 xxxxb ADC_DMA_AL ECh DMA 当前缓冲区地址低字节 xxxx xxx0b ADC_DMA ECh ADC_DMA_AL 和 ADC_DMA_AH 组成 16 位 SFR USB_DMA_AH E7h DMA 当前缓冲区地址高字节(只读) 000x xxxxb USB_DMA_AL E6h DMA 当前缓冲区地址低字节(只读) xxxx xxx0b USB_DMA E6h USB_DMA_AL 和 USB_DMA_AH 组成 16 位 SFR UHUB1_CTRL E5h USB 主机 HUB1 端口控制寄存器 1100 x000b UHUB0_CTRL E4h USB 主机 HUB0 端口控制寄存器 0100 x000b UDEV_CTRL E4h USB 设备端口控制寄存器 0100 x000b USB_DEV_AD E3h USB 设备地址寄存器 0000 0000b USB_CTRL E2h USB 控制寄存器 0000 0110b USB_INT_EN E1h USB 中断使能寄存器 0000 0000b UEP4_T_LEN DFh 端点 4 发送长度寄存器 0xxx xxxxb UEP4_CTRL DEh 端点 4 控制寄存器 0000 0000b UEP0_T_LEN DDh 端点 0 发送长度寄存器 0xxx xxxxb UEP0_CTRL DCh 端点 0 控制寄存器 0000 0000b USB_HUB_ST DBh USB 主机 HUB 端口状态寄存器(只读) 0000 0000b USB_MIS_ST DAh USB 杂项状态寄存器(只读) xx10 1000b USB_INT_ST D9h USB 中断状态寄存器(只读) 00xx xxxxb USB_INT_FG D8h USB 中断标志寄存器 0010 0000b UEP3_T_LEN D7h 端点 3 发送长度寄存器 0xxx xxxxb UH_TX_LEN D7h USB 主机发送长度寄存器 0xxx xxxxb UEP3_CTRL D6h 端点 3 控制寄存器 0000 0000b UH_TX_CTRL D6h USB 主机发送端点控制寄存器 0000 0000b UEP2_T_LEN D5h 端点 2 发送长度寄存器 0000 0000b UH_EP_PID D5h USB 主机令牌设置寄存器 0000 0000b UEP2_CTRL D4h 端点 2 控制寄存器 0000 0000b UH_RX_CTRL D4h USB 主机接收端点控制寄存器 0000 0000b UEP1_T_LEN D3h 端点 1 发送长度寄存器 0xxx xxxxb UEP1_CTRL D2h 端点 1 控制寄存器 0000 0000b UH_SETUP D2h USB 主机辅助设置寄存器 0000 0000b USB_RX_LEN D1h USB 接收长度寄存器(只读) 0xxx xxxxb UEP4_1_MOD 2446h 端点 1、4 模式控制寄存器 0000 0000b UEP2_3_MOD 2447h 端点 2、3 模式控制寄存器 0000 0000b UH_EP_MOD 2447h USB 主机端点模式控制寄存器 0000 0000b UEP0_DMA_H 2448h 端点 0 和 4 缓冲区起始地址高字节 000x xxxxb UEP0_DMA_L 2449h 端点 0 和 4 缓冲区起始地址低字节 xxxx xxx0b UEP0_DMA 2448h UEP0_DMA_L 和 UEP0_DMA_H 组成 16 位 SFR 0xxxh xxxxh xxxxh CH559 手册 LED 控制卡 相关寄存器 xSFR 区域 10 UEP1_DMA_H 244Ah 端点 1 缓冲区起始地址高字节 000x xxxxb UEP1_DMA_L 244Bh 端点 1 缓冲区起始地址低字节 xxxx xxx0b UEP1_DMA 244Ah UEP1_DMA_L 和 UEP1_DMA_H 组成 16 位 SFR UEP2_DMA_H 244Ch 端点 2 缓冲区起始地址高字节 000x xxxxb UEP2_DMA_L 244Dh 端点 2 缓冲区起始地址低字节 xxxx xxx0b UEP2_DMA 244Ch UEP2_DMA_L 和 UEP2_DMA_H 组成 16 位 SFR UH_RX_DMA_H 244Ch USB 主机接收缓冲区起始地址高字节 000x xxxxb UH_RX_DMA_L 244Dh USB 主机接收缓冲区起始地址低字节 xxxx xxx0b UH_RX_DMA 244Ch UH_RX_DMA_L 和 UH_RX_DMA_H 组成 16 位 SFR UEP3_DMA_H 244Eh 端点 3 缓冲区起始地址高字节 000x xxxxb UEP3_DMA_L 244Fh 端点 3 缓冲区起始地址低字节 xxxx xxx0b UEP3_DMA 244Eh UEP3_DMA_L 和 UEP3_DMA_H 组成 16 位 SFR UH_TX_DMA_H 244Eh USB 主机发送缓冲区起始地址高字节 000x xxxxb UH_TX_DMA_L 244Fh USB 主机发送缓冲区起始地址低字节 xxxx xxx0b UH_TX_DMA 244Eh UH_TX_DMA_L 和 UH_TX_DMA_H 组成 16 位 SFR pU* 254*h 在 bXIR_XSFR 置 1 后,该名称用于以 pdata 类 型寻址上述 xSFR,比 xdata 类型寻址更快捷 LED_STAT 2880h LED 状态寄存器 010x 0000b LED_CTRL 2881h LED 控制寄存器 0000 0010b LED_FIFO_CN 2882h FIFO 计数状态寄存器(只读) 0000 0000b LED_DATA 2882h LED 数据寄存器(只写) xxxx xxxxb LED_CK_SE 2883h LED 时钟分频设置寄存器 0001 0000b LED_DMA_AH 2884h DMA 当前缓冲区地址高字节 000x xxxxb LED_DMA_AL 2885h DMA 当前缓冲区地址低字节 xxxx xxx0b LED_DMA 2884h LED_DMA_AL 和 LED_DMA_AH 组成 16 位 SFR LED_DMA_CN 2886h LED DMA 剩余计数寄存器 xxxx xxxxb LED_DMA_XH 2888h DMA 当前辅助缓冲区地址高字节 000x xxxxb LED_DMA_XL 2889h DMA 当前辅助缓冲区地址低字节 xxxx xxx0b LED_DMA_X 2888h LED_DMA_XL 和 LED_DMA_XH 组成 16 位 SFR pLED_* 298*h 在 bXIR_XSFR 置 1 后,该名称用于以 pdata 类 型寻址上述 xSFR,比 xdata 类型寻址更快捷 xxxxh xxxxh xxxxh xxxxh xxxxh xxxxh xxxxh 5.3 通用 8051 寄存器 表 5.3.1 通用 8051 寄存器列表 名称 地址 描述 复位值 B F0h B 寄存器 00h A、ACC E0h 累加器 00h PSW D0h 程序状态寄存器 00h GLOBAL_CFG B1h 全局配置寄存器(引导程序状态下) E0h 全局配置寄存器(应用程序状态下) C0h CHIP_ID A1h 芯片 ID 识别码(只读) 59h SAFE_MOD A1h 安全模式控制寄存器(只写) 00h PCON 87h 电源控制寄存器(上电复位状态下) 10h CH559 手册 11 DPH 83h 数据地址指针高 8 位 00h DPL 82h 数据地址指针低 8 位 00h DPTR 82h DPL 和 DPH 组成 16 位 SFR SP 81h 堆栈指针 0000h 07h B 寄存器(B): 位 名称 访问 [7:0] B RW 描述 复位值 算术运算寄存器,主要用于乘法和除法运算,可按位寻址 00h A 累加器(A、ACC): 位 名称 访问 [7:0] A/ACC RW 描述 复位值 算术运算累加器,可按位寻址 00h 程序状态寄存器(PSW): 位 名称 访问 描述 复位值 0 7 CY RW 进位标志位:执行算术运算和逻辑运算指令时,用于记录最高位的 进位或者借位;进行 8 位加法运算时,最高位进位,则该位置位, 否则清零;进行 8 位减法运算时,若借位,则该位置位,否则清零; 逻辑指令可使该位置位或清零 6 AC RW 辅助进位标志位:记录加减法运算时,低 4 位向高 4 位有进位或借 位,AC 置位,否则清零 0 5 F0 RW 可按位寻址的通用标志位 0:使用者可自己定义,可软件清零或置位 0 4 RS1 RW 寄存器组选择位高位 0 3 RS0 RW 寄存器组选择位低位 0 2 OV RW 溢出标志位:加减法运算时,运算结果超过 8 位二进制数,则 OV 置 1,标志溢出,否则清 0 0 1 F1 RW 可按位寻址的通用标志位 1:使用者可自己定义,可软件清零或置位 0 0 P RO 奇偶标志位:记录指令执行后累加器 A 中 1 的奇偶性,奇数个 1 则 P 置位,偶数个 1 则 P 清零 0 处理器的状态保存在状态寄存器 PSW 中,PSW 支持按位寻址。状态字中包括进位标志位,用于 BCD 码处理的辅助进位标志位,奇偶标志位,溢出标志位,还有用于工作寄存器组选择的 RS0 和 RS1。 工作寄存器组所在的区域都可以通过直接或者间接方式进行访问。 表 5.3.2 RS1 和 RS0 工作寄存器组选择表 RS1 RS0 工作寄存器组 0 0 0 组(00h-07h) 0 1 1 组(08h-0Fh) 1 0 2 组(10h-17h) 1 1 3 组(18h-1Fh) 表 5.3.3 影响标志位的操作(X 表示标志位与操作结果有关) 操作 CY OV AC 操作 CY ADD X X X SETB C 1 ADDC X X X CLR C 0 SUBB X X X CPL C X OV AC CH559 手册 12 MUL 0 X MOV C, bit X DIV 0 X ANL C, bit X DA A X ANL C,/bit X RRC A X ORL C, bit X RLC A X ORL C,/bit X CJNE X 数据地址指针(DPTR): 位 名称 访问 描述 复位值 [7:0] DPL RW 数据指针低字节 00h [7:0] DPH RW 数据指针高字节 00h DPL 和 DPH 组成 16 位数据指针 DPTR,用于访问 xSFR、xBUS、xRAM 数据存储器或者程序存储器, 实际 DPTR 对应 DPTR0 和 DPTR1 两组物理上的 16 位数据指针,由 XBUS_AUX 中的 DPS 动态选择。 堆栈指针(SP): 位 名称 访问 [7:0] SP RW 描述 堆栈指针,主要用于程序调用和中断调用以及数据进出栈 复位值 07h 堆栈具体功能:保护端点和保护现场,按先入后出的原则进行管理。入栈时 SP 指针自动加 1, 保存数据或断点信息;出栈时取 SP 指针指向数据单元,SP 指针自动减 1。SP 在复位后的初值是 07h, 相应的默认堆栈存储从 08h 开始。 5.4 特有寄存器 全局配置寄存器(GLOBAL_CFG),仅在安全模式下可写: 位 名称 访问 描述 复位值 [7:6] 保留 RO 固定值 11 1 11b 5 bBOOT_LOAD RO Boot loader 状态位,用于区分 ISP 引导程序状态或者应 用程序状态:电源上电时置 1,软件复位时清 0。 对于有 ISP 引导程序的芯片,该位为 1 说明从未软件复位 过,通常是上电后运行的 ISP 引导程序状态;该位为 0 说明已经软件复位过,通常是应用程序状态 4 bSW_RESET RW 软件复位控制位:置 1 导致软件复位,硬件自动清零 0 3 bCODE_WE RW Flash-ROM 写允许位: 该位为 0 则写保护;为 1 则 Flash-ROM 可写可擦 0 2 bDATA_WE RW Flash-ROM 的 DataFlash 区域写允许位: 该位为 0 则写保护;为 1 则 DataFlash 区域可写可擦 0 0 0 1 bXIR_XSFR RW MOVX_@R0/R1 指令访问范围控制位: 该位为 0 允许访问全部 xdata 区域 xRAM/xBUS/xSFR; 该位为 1 则专用于访问 xSFR,不能访问 xRAM/xBUS 0 bWDOG_EN RW 看门狗复位使能位:该位为 0 看门狗只用作定时器;该位 为 1 允许计时溢出时产生看门狗复位 芯片 ID 识别码(CHIP_ID): 位 名称 访问 描述 复位值 CH559 手册 [7:0] 13 CHIP_ID RO 固定值 59h,用于识别芯片 59h 安全模式控制寄存器(SAFE_MOD): 位 名称 访问 [7:0] SAFE_MOD WO 描述 复位值 用于进入或者终止安全模式 00h 部分 SFR 仅在安全模式下才能写入数据,而在非安全模式下总是只读状态。进入安全模式步骤: (1)、向该寄存器写入 55h; (2)、接着向该寄存器写入 AAh; (3)、此后约 13 到 23 个系统主频周期都处于安全模式下,该有效期内可以改写一个或多个安全类 SFR 或普通 SFR (4)、超出上述有效期后自动终止安全模式 (5)、或者再向该寄存器写任意值可以提前终止安全模式 6、存储器结构 6.1 存储器空间 CH559 寻址空间分为程序存储空间、内部数据存储空间、外部数据存储空间。 图 6.1 存储器结构图 Internal Data Address Space FFH 80H 7FH Upper 128 bytes internal RAM (indirect addressing by @R0/R1) SFR (Direct addressing) Lower 128 bytes internal RAM (direct or indirect addressing) 00H External Data Address Space FFFFH 8000H 7FFFH 4000H 3FFFH 2990H 298FH 2440H 243FH 1800H 17FFH 0000H xCS1/xBUS1 @xdata, 32KB (indirect addressing by MOVX) xCS0/xBUS0 @xdata, 16KB (indirect addressing by MOVX) Reserved area @xdata xSFR area @xdata (indirect addressing by MOVX) Reserved area @xdata 6KB on-chip expanded xRAM @xdata (indirect addressing by MOVX) Program Address Space Configuration information ROM_CFG_ADDR Boot Loader Code Flash BOOT_LOAD_ADDR Data Flash or Code Flash DATA_FLASH_ADDR FFFFH FFFEH FFFDH F400H F3FFH F000H EFFFH Application Code Flash 0000H CH559 手册 14 6.2 程序存储空间 程序存储空间共 64KB,如图 6.1 所示,已全部用于 flash-ROM,包括保存指令代码的 Code Flash 区域、保存非易失数据的 Data Flash 区域、以及配置信息 Configuration Information 区域。 Data Flash 地址范围为 F000h 到 F3FFH,支持单字节读(8 位)、双字节写(16 位)、块擦除(1K 字节)操作,芯片掉电后数据保持不变,也可用作 Code Flash。 Code Flash 包括低地址区域的应用程序代码和高地址区域的引导程序代码,也可将这两块区域 以及 Data Flash 合并用于保存单一应用程序代码。 配置信息 Configuration Information 共 16 位数据,由编程器根据需要设定,参考表 6.1。 表 6.2 flash-ROM 配置信息描述 位地址 位名称 说明 建议值 15 Code_Protect flash-ROM 中的代码和数据保护模式: 0-禁止编程器读出,程序保密;1-允许读出 14 No_Boot_Load 使能 BootLoader 引导代码启动模式: 0-从 0000h 地址的应用程序启动; 1-从 F400h 地址的引导程序启动 1 13 En_Long_Reset 使能上电复位期间的额外延时复位: 0-标准短复位;1-宽复位,额外增加 87mS 复位时间 0 12 XT_OSC_Strong 选择晶体振荡器的对外驱动能力:0-标准;1-增强 0 11 En_P5.7_RESET 使能 P5.7 作为手工复位输入引脚:0-禁止;1-使能 RST 1 10 En_P0_Pullup 使能系统复位期间 P0 端口的内部上拉电阻: 0-复位后禁止上拉电阻;1-复位后启用上拉电阻 1 9 Must_1 (由编程器根据需要自动设定为 1) 1 8 Must_0 (由编程器根据需要自动设定为 0) 0 [7:0] All_1 (由编程器根据需要自动设定为 FFh) 0/1 FFh 6.3 数据存储空间 内部数据存储空间共 256 字节,如图 6.1 所示,已全部用于 SFR 和 iRAM,其中 iRAM 用于堆栈 和快速数据暂存,可细分为工作寄存器 R0-R7、位变量 bdata、字节变量 data、idata 等。 外部数据存储空间共 64KB,如图 6.1 所示,部分用于 6KB 片内扩充 xRAM 和 xSFR,除了两块保 留区域之外,剩余的 4000h 到 FFFFh 地址范围是外部总线区域。 6.4 flash-ROM 寄存器 表 6.4 flash-ROM 操作寄存器列表 名称 地址 描述 复位值 ROM_DATA_H 8Fh flash-ROM 数据寄存器高字节 xxh ROM_DATA_L 8Eh flash-ROM 数据寄存器低字节 xxh ROM_DATA 8Eh ROM_DATA_L 和 ROM_DATA_H 组成 16 位 SFR ROM_STATUS 86h flash-ROM 状态寄存器(只读) 80h ROM_CTRL 86h flash-ROM 控制寄存器(只写) 00h ROM_ADDR_H 85h flash-ROM 地址寄存器高字节 xxh ROM_ADDR_L 84h flash-ROM 地址寄存器低字节 xxh ROM_ADDR 84h ROM_ADDR_L 和 ROM_ADDR_H 组成 16 位 SFR xxxxh xxxxh CH559 手册 15 flash-ROM 地址寄存器(ROM_ADDR): 位 名称 访问 描述 复位值 [7:0] ROM_ADDR_H RW flash-ROM 地址高字节 xxh [7:0] ROM_ADDR_L RW flash-ROM 地址低字节,只支持偶地址 xxh flash-ROM 数据寄存器(ROM_DATA): 位 名称 访问 描述 复位值 [7:0] ROM_DATA_H RW flash-ROM 待写数据高字节 xxh [7:0] ROM_DATA_L RW flash-ROM 待写数据低字节 xxh flash-ROM 控制寄存器(ROM_CTRL): 位 名称 访问 [7:0] ROM_CTRL WO 描述 flash-ROM 控制寄存器 复位值 00h flash-ROM 状态寄存器(ROM_STATUS): 位 名称 访问 描述 复位值 7 保留 RO 保留 1 6 bROM_ADDR_OK RO flash-ROM 操作地址有效状态位: 该位为 0 表示参数无效;为 1 表示地址有效 0 [5:2] 保留 RO 保留 1 bROM_CMD_ERR RO flash-ROM 操作命令错误状态位: 该位为 0 表示命令有效;为 1 表示是未知命令 0 0 bROM_CMD_TOUT RO flash-ROM 操作结果状态位: 该位为 0 表示操作成功;为 1 表示操作超时 0 0000b 6.5 flash-ROM 操作步骤 1、擦除 flash-ROM,将目标块中全部数据位变为 1: (1)、使能安全模式,SAFE_MOD = 55h;SAFE_MOD = 0AAh; (2)、设置全局配置寄存器 GLOBAL_CFG 开启写使能(bCODE_WE 或 bDATA_WE 对应 code 或 data); (3)、设置地址寄存器 ROM_ADDR,写入 16 位目标地址,实际仅高 6 位有效; (4)、设置操作控制寄存器 ROM_CTRL 为 0A6h,执行块擦除操作,操作期间程序自动暂停运行; (5)、操作完成后程序恢复运行,此时查询状态寄存器 ROM_STATUS 可以查看此次操作状态;如果 要擦除多个块,则循环(3)、(4) 、(5)步骤; (6)、再次进入安全模式,SAFE_MOD = 55h;SAFE_MOD = 0AAh; (7)、设置全局配置寄存器 GLOBAL_CFG 开启写保护(bCODE_WE=0,bDATA_WE=0)。 2、写 flash-ROM,将目标双字节中部分数据位从 1 变为 0: (1)、使能安全模式,SAFE_MOD = 55h;SAFE_MOD = 0AAh; (2)、设置全局配置寄存器 GLOBAL_CFG 开启写使能(bCODE_WE 或 bDATA_WE 对应 code 或 data); (3)、设置地址寄存器 ROM_ADDR,写入 16 位目标地址,实际仅高 15 位有效; (4)、设置数据寄存器 ROM_DATA,写入 16 位要写入的数据,步骤(3)、(4)顺序可对调; (5)、设置操作控制寄存器 ROM_CTRL 为 09Ah,执行写操作,操作期间程序自动暂停运行; (6)、操作完成后程序恢复运行,此时查询状态寄存器 ROM_STATUS 可以查看此次操作状态;如果 要写多个数据,则循环(3)、(4)、(5)、(6)步骤; CH559 手册 16 (7)、再次进入安全模式,SAFE_MOD = 55h;SAFE_MOD = 0AAh; (8)、设置全局配置寄存器 GLOBAL_CFG 开启写保护(bCODE_WE=0,bDATA_WE=0)。 3、读 flash-ROM: 直接使用 MOVC 指令,或通过指向程序存储空间的指针,读取目标地址的 code 或 data。 6.6 在板编程和 ISP 下载 当配置信息 Code_Protect=1 时,CH559 芯片 flash-ROM 中的代码和数据可以由外部的编程器通 过同步串行接口读写;当配置信息 Code_Protect=0 时,flash-ROM 中的代码和数据被保护,无法读 出,但是可以被擦除,擦除后重新上电则解除代码保护。 当 CH559 芯片被预置了 BootLoader 引导程序后,CH559 可以支持 USB 或者异步串口等多种 ISP 下载方式加载应用程序;但在没有引导程序的情况下,CH559 只能由外部专用编程器写入引导程序 或者应用程序。为了支持在板编程,电路中需要预留 CH559 与编程器之间的 5 根连接引脚。 表 6.6.1 与编程器之间的连接引脚 引脚 GPIO 引脚描述 RST P5.7 编程状态下的复位控制引脚,高电平允许进入编程状态 SCS P1.4 编程状态下的片选输入引脚,默认高电平,低电平有效 SCK P1.7 编程状态下的时钟输入引脚 MOSI P1.5 编程状态下的数据输入引脚 MISO P1.6 编程状态下的数据输出引脚 6.7 芯片唯一 ID 号 每只单片机出厂时都具有唯一 ID 号,即芯片身份识别号。该 ID 数据及其校验和共 8 个字节, 存储于专用只读存储器的偏移地址为 20h 的区域中,可以在 E_DIS 为 1 关闭全局中断的期间通过类 似读 Code Flash 的方式获取,具体操作请参考 C 语言例子程序 GETID.C。 表 6.7.1 芯片 ID 地址表 偏移地址 ID 数据描述 20h、21h ID 首字数据,依次是 ID 号的最低字节、次低字节 22h、23h ID 次字数据,依次是 ID 号的次高字节、高字节 24h、25h ID 末字数据,依次是 48 位 ID 号的次最高字节、最高字节 26h、27h ID 首字、次字、末字数据的 16 位累加和,用于 ID 校验 ID 号可以配合下载工具用于对目标程序进行加密,一般的应用,只需使用到 ID 号前 32 位。 7、电源管理、睡眠及复位 7.1 外部电源输入 CH559 芯片内部工作电压为 3.3V,I/O 引脚的输入输出电压为 3.3V,除了 P1.0~P1.7、XI、XO、 RST 之外的 I/O 引脚都可以承受 5V 电压输入。CH559 芯片内置 5V 到 3.3V 的低压差电压调整器,支 持外部 3.3V 或者 5V 电源电压输入,两种电源电压输入模式参考下表。 外部电源电压 VIN5 引脚电压:外部电压 3.3V~5V VDD33 引脚电压:内部电压 3.3V 3.3V 包括小于 3.6V 输入外部 3.3V 电压到电压调整器, 必须对地接不小于 0.1uF 退耦电容 输入外部 3.3V 作为内部工作电源, 必须对地接不小于 0.1uF 退耦电容 5V 包括大于 3.6V 输入外部 5V 电压到电压调整器, 必须对地接不小于 0.1uF 退耦电容 内部电压调整器 3.3V 输出 及 3.3V 内部工作电源输入, CH559 手册 17 必须对地接不小于 3.3uF 退耦电容 在电源上电或者系统复位后,CH559 默认处于运行状态。当某些功能模块不需要使用时,可以 关闭这些模块的时钟,以降低功耗。当 CH559 完全不需要运行时,可以设置 PCON 中的 PD 进入睡眠 状态,睡眠状态下可以选择通过 USB、UART0、UART1、SPI0 以及部分 GPIO 进行外部唤醒。 7.2 电源和睡眠控制寄存器 表 7.2.1 电源和睡眠控制寄存器列表 名称 地址 描述 复位值 WDOG_COUNT FFh 看门狗计数寄存器 00h RESET_KEEP FEh 复位保持寄存器 00h WAKE_CTRL EBh 睡眠唤醒控制寄存器 00h SLEEP_CTRL EAh 睡眠控制寄存器 00h PCON 87h 电源控制寄存器 10h 看门狗计数寄存器(WDOG_COUNT): 位 名称 访问 描述 复位值 [7:0] WDOG_COUNT RW 看门狗当前计数,计满 0FFh 转向 00h 时溢出,溢出时自 动设置中断标志 bWDOG_IF_TO 为 1 00h 复位保持寄存器(RESET_KEEP): 位 名称 访问 描述 复位值 [7:0] RESET_KEEP RW 复位保持寄存器,数值可以被人为修改,除了上电复位可 将其清零之外,其它任何复位都不影响该数值 00h 睡眠唤醒控制寄存器(WAKE_CTRL),仅在安全模式下可写: 位 名称 访问 描述 复位值 7 bWAK_BY_USB RW USB 事件唤醒使能,该位为 0 禁止唤醒 0 0 6 bWAK_RXD1_LO RW UART1 接收输入低电平唤醒使能,该位为 0 禁止唤醒。 iRS485 模式下选择 XA/XB 差分输入,非 iRS485 模式下根 据 bIER_PIN_MOD1=1/0 选择 RXD1 或 RXD1_引脚 5 bWAK_P1_5_LO RW P1.5 低电平唤醒使能,为 0 禁止唤醒 0 4 bWAK_P1_4_LO RW P1.4 低电平唤醒使能,为 0 禁止唤醒 0 3 bWAK_P0_3_LO RW P0.3 低电平唤醒使能,为 0 禁止唤醒 0 2 bWAK_CAP3_LO RW Timer3 捕捉输入低电平唤醒使能,为 0 禁止唤醒。 根据 bTMR3_PIN_X=0/1 选择 CAP3 或 CAP3_引脚 0 1 bWAK_P3_2E_3L RW P3.2 边沿变化和 P3.3 低电平唤醒使能,为 0 禁止唤醒 0 0 bWAK_RXD0_LO RW UART0 接收输入低电平唤醒使能,为 0 禁止唤醒。 根据 bUART0_PIN_X=0/1 选择 RXD0 或 RXD0_引脚 0 睡眠控制寄存器(SLEEP_CTRL),仅在安全模式下可写: 位 名称 访问 描述 复位值 7 bSLP_OFF_USB RW USB 时钟关闭控制,该位为 1 关闭时钟 0 6 bSLP_OFF_ADC RW ADC 时钟关闭控制,该位为 1 关闭时钟 0 CH559 手册 18 5 bSLP_OFF_UART1 RW UAR1 时钟关闭控制,该位为 1 关闭时钟 0 4 bSLP_OFF_P1S1 RW PWM1 和 SPI1 时钟关闭控制,该位为 1 关闭时钟 0 3 bSLP_OFF_SPI0 RW SPI0 时钟关闭控制,该位为 1 关闭时钟 0 2 bSLP_OFF_TMR3 RW Timer3 时钟关闭控制,该位为 1 关闭时钟 0 1 bSLP_OFF_LED RW LED-CTRL 时钟关闭控制,该位为 1 关闭时钟 0 0 bSLP_OFF_XRAM RW xRAM 时钟关闭控制,该位为 1 关闭时钟 0 电源控制寄存器(PCON): 位 名称 访问 描述 复位值 7 SMOD RW 当用定时器 1 产生 UART0 波特率时,选择 UART0 模式 1、 2、3 的通讯波特率:0-慢速模式;1-快速模式 0 6 保留 RO 保留 0 5 bRST_FLAG1 R0 芯片最近一次复位标志高位 0 4 bRST_FLAG0 R0 芯片最近一次复位标志低位 1 3 GF1 RW 通用标志位 1:使用者可自己定义,可软件清零或置位 0 2 GF0 RW 通用标志位 0:使用者可自己定义,可软件清零或置位 0 1 PD RW 睡眠模式使能,置 1 后睡眠,唤醒后硬件自动清零 0 0 保留 RO 保留 0 表 7.2.2 芯片最近一次复位标志描述 bRST_FLAG1 bRST_FLAG0 复位标志描述 0 0 软件复位,来源:bSW_RESET=1 并且(bBOOT_LOAD=0 或 bWDOG_EN=1) 0 1 电源上电复位,来源:VDD33 引脚电压低于检测电平 1 0 看门狗复位,来源:bWDOG_EN=1 并且看门狗超时溢出 1 1 外部引脚手工复位,来源:En_P5.7_RESET=1 并且 P5.7 输入高电平 7.3 复位控制 CH559 有 4 个复位源:上电复位、外部复位、软件复位、看门狗复位,后三者属于热复位。 7.3.1 上电复位 上电复位 POR 由片内电压检测电路产生。POR 电路持续监控 VDD33 引脚的电源电压,低于检测 电平 Vpot 时产生上电复位,并由硬件自动延时 Tpor 以保持复位状态,延时结束后 CH559 运行。 只有上电复位才使 CH559 重新加载配置信息以及清零 RESET_KEEP,其它热复位不影响。 7.3.2 外部复位 外部复位由外加于 RST 引脚的高电平产生。当配置信息 En_P5.7_RESET 为 1,并且 RST 引脚上 的高电平持续时间大于 Trst 时触发复位过程。当外加高电平信号撤消后,硬件自动延时 Trdl 以保 持复位状态,延时结束后 CH559 从 0 地址开始执行。 7.3.3 软件复位 CH559 支持内部软件复位,以便不需要外部干预即可主动复位 CPU 状态并重新运行。设置全局 配置寄存器 GLOBAL_CFG 中的 bSW_RESET 为 1,即可软件复位,并且自动延时 Trdl 以保持复位状态, 延时结束后 CH559 从 0 地址开始执行,bSW_RESET 位由硬件自动清零。 当 bSW_RESET 置 1 时,如果 bBOOT_LOAD=0 或者 bWDOG_EN=1,那么复位后 bRST_FLAG1/0 将指示 为软件复位;当 bSW_RESET 置 1 时,如果 bBOOT_LOAD=1 并且 bWDOG_EN=0,那么 bRST_FLAG1/0 将不 CH559 手册 19 产生新的复位标志,而是保持前一次的复位标志不变。 对于有 ISP 引导程序的芯片,电源上电复位后,先运行引导程序,该程序根据需要软件复位芯 片以切换到应用程序状态,此次软件复位只导致 bBOOT_LOAD 清零,不影响 bRST_FLAG1/0 的状态(由 于复位前 bBOOT_LOAD=1),所以当切换到应用程序状态时,bRST_FLAG1/0 仍指示为上电复位状态。 7.3.4 看门狗复位 看门狗复位由看门狗定时器超时溢出时产生。看门狗定时器是 8 位计数器,其计数的时钟频率 为系统主频 Fsys/262144,当计满 0FFh 转向 00h 时产生溢出信号。 看门狗定时器溢出信号将触发中断标志 bWDOG_IF_TO 为 1,该中断标志在重新加载 WDOG_COUNT 时或者进入相应的中断服务程序时被自动清零。 通过向 WDOG_COUNT 写入不同的计数初始值,从而实现不同的定时周期 Twdc。在 12MHz 主频下, 写入 00h 时的看门狗定时周期 Twdc 约为 5.9 秒,写入 80h 时约为 2.8 秒。 如果看门狗定时器溢出时 bWDOG_EN=1,那么产生看门狗复位,并且自动延时 Trdl 以保持复位 状态,延时结束后 CH559 从 0 地址开始执行。 当 bWDOG_EN=1 时为了避免被看门狗复位,必须及时重置 WDOG_COUNT,避免其溢出。 8、系统时钟 8.1 时钟框图 图 8.1.1 时钟系统及结构图 CH559 手册 20 内部时钟12MHz 0 XI XO Fpll bOSC_EN_INT 1 Fosc PLL倍频器 乘以MASK_PLL_MULT 范围24MHz~350MHz 外部晶振 bOSC_EN_XT Fsys USB时钟分频器 除以MASK_USB_4X_DIV 系统时钟分频器 除以MASK_SYS_CK_DIV bSLP_OFF_USB USB bSLP_OFF_LED bSLP_OFF_ADC bSLP_OFF_UART1 bSLP_OFF_SPI0 分频器 LED_CK_SE 分频器 ADC_CK_SE 分频器 SER1_D* 分频器 SPI0_CK_SE 分频器 SPI1_CK_SE bSLP_OFF_P1S1 bSLP_OFF_TMR3 分频器 PWM_CK_SE 分频器 T3_CK_SE LED-CTRL ADC UART1 SPI0 SPI1 PWM1/2 Timer3 bSLP_OFF_XRAM xRAM 分频器 除以262144 Fsys Watch-DOG E8051_core T0/T1/T2/UART0/GPIO FlashROM/iRAM/SFR 内部时钟或者外部时钟经过二选一后作为原始时钟 Fosc,再经过 PLL 倍频后产生 Fpll 高频时 钟,最后经过两组分频器分别得到系统时钟 Fsys 和 USB 模块的时钟 Fusb4x。系统时钟 Fsys 直接或 者经过时钟门控后提供给 CH559 的各个模块,各个模块并不需要同时工作,为了降低功耗,可以通 过设置睡眠控制寄存器禁止无需工作的模块的时钟。 CH559 手册 21 8.2 寄存器描述 表 8.2.1 时钟控制寄存器列表 名称 地址 描述 复位值 CLOCK_CFG B3h 系统时钟配置寄存器 98h PLL_CFG B2h PLL 时钟配置寄存器 D8h 系统时钟配置寄存器(CLOCK_CFG),仅在安全模式下可写: 位 7 6 名称 bOSC_EN_INT bOSC_EN_XT 访问 描述 复位值 RW 内部时钟振荡器使能,该位为 1 使能内部时钟振荡器 并且选用内部时钟;该位为 0 关闭内部时钟振荡器并 且选用外部晶体振荡器提供时钟 1 RW 外部晶体振荡器使能,该位为 1 则 P4.6/P4.7 引脚作 为 XI/XO 并启用振荡器,需在 XI 和 XO 之间外接石英 晶体或陶瓷振荡器;该位为 0 关闭外部振荡器 0 0 11000b 5 bWDOG_IF_TO RO 看门狗定时器中断标志位,该位为 1 表示有中断,由 定时器溢出信号触发;该位为 0 表示无中断。该位在 重新加载看门狗计数寄存器 WDOG_COUNT 时或者进入 相应的中断服务程序后自动清零 [4:0] MASK_SYS_CK_DIV RW 系统时钟分频系数,数值为 00000b 时代表 100000b PLL 时钟配置寄存器(PLL_CFG),仅在安全模式下可写: 位 名称 访问 描述 [7:5] MASK_USB_4X_DIV RW USB 时钟分频系数,数值为 000b 时代表 1000b [4:0] MASK_PLL_MULT RW PLL 参考时钟倍频系数 复位值 110b 11000b 8.3 时钟配置 CH559 芯片上电后默认使用内部时钟,内部时钟频率是 12MHz。可以通过 CLOCK_CFG 选择内部时 钟或者外部晶体振荡器时钟,如果关闭外部晶体振荡器,那么 XI 和 XO 引脚可以作为 P4.6 和 P4.7 普通 I/O 端口使用。如果使用外部晶体振荡器提供时钟,那么应该在 XI 和 XO 引脚之间跨接晶体, 以及分别为 XI 和 XO 引脚对 GND 连接振荡电容;如果从外部直接输入时钟信号,那么应该从 XI 引脚 输入,XO 引脚悬空。 原始时钟频率 Fosc = bOSC_EN_INT ? 12MHz : Fxt PLL 频率 Fpll = Fosc * ( PLL_CFG & MASK_PLL_MULT ) USB 时钟分频系数 Kusb = ( PLL_CFG & MASK_USB_4X_DIV ) >> 5 USB 时钟频率 Fusb4x = Fpll / ( Kusb ? Kusb : 8 ) 系统时钟分频系数 Ksys = CLOCK_CFG & MASK_SYS_CK_DIV 系统主频 Fsys = Fpll / ( Ksys ? Ksys : 32 ) 复位后的默认状态下,Fosc=12MHz,Fpll=288MHz,Fusb4x=48MHz,Fsys=12MHz。 切换到外部晶体振荡器提供时钟的步骤如下: (1)、进入安全模式,步骤一 SAFE_MOD = 55h;步骤二 SAFE_MOD = AAh; (2)、用“位或”操作将 CLOCK_CFG 中的 bOSC_EN_XT 置 1,其它位保持不变,启用晶体振荡器; (3)、延时数毫秒,通常 5mS~10mS,等待晶体振荡器工作稳定; (4)、再次进入安全模式,步骤一 SAFE_MOD = 55h;步骤二 SAFE_MOD = AAh; CH559 手册 22 (5)、用“位与”操作将 CLOCK_CFG 中的 bOSC_EN_INT 清 0,其它位保持不变,切换到外部时钟; (6)、关闭安全模式,向 SAFE_MOD 写入任意数值提前终止安全模式。 修改系统主频的步骤如下: (1)、提前计算好 PLL_CFG 和 CLOCK_CFG 的新数值,避免计算过程太久超出安全模式的有效期; (2)、进入安全模式,步骤一 SAFE_MOD = 55h;步骤二 SAFE_MOD = AAh; (3)、向 PLL_CFG 写入新数值; (4)、向 CLOCK_CFG 写入新数值; (5)、关闭安全模式,向 SAFE_MOD 写入任意数值提前终止安全模式。 备注: (1)、PLL 频率 Fpll 建议不要超出 24MHz~350MHz 频率范围; (2)、优先使用较低的系统时钟频率 Fsys,从而降低系统动态功耗,并使工作温度范围变宽; (3)、如果使用到 USB 模块,那么 Fusb4x 必须调整到 48MHz; (4)、切换外部晶振和修改系统主频是独立的两项操作,如果同时需要两者,那么建议分两种情况: (A)、如果外部晶振频率不超过 13MHz,那么先切换到外部晶振,然后修改系统主频; (B)、如果外部晶振频率大于 13MHz,那么先降低 PLL_CFG 寄存器中的 PLL 参考时钟倍频系数,避 免 PLL 频率 Fpll 溢出,然后切换到外部晶振,最后修改系统主频,或者也可在修改 PLL_CFG 的同时修改系统主频。 9、中断 CH559 芯片支持 14 组中断信号源,包括与标准 MCS51 兼容的 6 组中断:INT0、T0、INT1、T1、 UART0、T2,以及扩展的 8 组中断:SPI0、TMR3、USB、ADC、UART1、PWM1、GPIO、WDOG,其中 GPIO 中断可以从 7 个 I/O 引脚中选择。 9.1 寄存器描述 表 9.1.1 中断向量表 中断源 入口地址 中断号 描述 INT_NO_INT0 0x0003 0 外部中断 0 或 LED 控制卡中断: 当 bLED_OUT_EN=0 是外部中断 0; 当 bLED_OUT_EN=1 是 LED 控制卡中断 INT_NO_TMR0 0x000B 1 定时器 0 中断 INT_NO_INT1 0x0013 2 外部中断 1 INT_NO_TMR1 0x001B 3 定时器 1 中断 INT_NO_UART0 0x0023 4 UART0 中断 INT_NO_TMR2 0x002B 5 定时器 2 中断 INT_NO_SPI0 0x0033 6 SPI0 中断 INT_NO_TMR3 0x003B 7 定时器 3 中断 INT_NO_USB 0x0043 8 USB 中断 INT_NO_ADC 0x004B 9 ADC 中断 INT_NO_UART1 0x0053 10 UART1 中断 INT_NO_PWM1 0x005B 11 PWM1 中断 INT_NO_GPIO 0x0063 12 GPIO 中断 默认优先权顺序 高优先权 ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ 低优先权 CH559 手册 23 INT_NO_WDOG 0x006B 13 看门狗定时器中断 表 9.1.2 中断相关寄存器列表 名称 地址 描述 复位值 IP_EX E9h 扩展中断优先级控制寄存器 00h IE_EX E8h 扩展中断使能寄存器 00h GPIO_IE CFh GPIO 中断使能寄存器 00h IP B8h 中断优先级控制寄存器 00h IE A8h 中断使能寄存器 00h 中断使能寄存器(IE): 位 名称 访问 描述 复位值 7 EA RW 全局中断使能控制位,该位为 1 并且 E_DIS 为 0 则允许中断;该 位为 0 屏蔽所有中断请求 0 0 6 E_DIS RW 全局中断禁用控制位,该位为 1 屏蔽所有中断请求;该位为 0 并 且 EA 为 1 则允许中断。 该位通常用于在 flash-ROM 操作期间临时 禁止中断 5 ET2 RW 定时器 2 中断使能位,该位为 1 允许 T2 中断;为 0 屏蔽 0 4 ES RW 异步串口 0 中断使能位,该位为 1 允许 UART0 中断;为 0 屏蔽 0 3 ET1 RW 定时器 1 中断使能位,该位为 1 允许 T1 中断;为 0 屏蔽 0 2 EX1 RW 外部中断 1 使能位,该位为 1 允许 INT1 中断;为 0 屏蔽 0 1 ET0 RW 定时器 0 中断使能位,该位为 1 允许 T0 中断;为 0 屏蔽 0 0 EX0 RW 外部中断 0 和 LED 控制卡中断使能位,该位为 1 允许 INT0/LED 中断,由 bLED_OUT_EN 选择;为 0 屏蔽 0 扩展中断使能寄存器(IE_EX): 位 名称 访问 描述 复位值 7 IE_WDOG RW 看门狗定时器中断使能位,该位为 1 允许 WDOG 中断;为 0 屏蔽 0 6 IE_GPIO RW GPIO 中断使能位,该位为 1 允许 GPIO_IE 中使能的中断;为 0 屏 蔽 GPIO_IE 中所有中断 0 5 IE_PWM1 RW PWM1 中断使能位,该位为 1 允许 PWM1 中断;为 0 屏蔽 0 4 IE_UART1 RW 异步串口 1 中断使能位,该位为 1 允许 UART1 中断;为 0 屏蔽 0 3 IE_ADC RW ADC 模数转换中断使能位,该位为 1 允许 ADC 中断;为 0 屏蔽 0 2 IE_USB RW USB 中断使能位,该位为 1 允许 USB 中断;为 0 屏蔽 0 1 IE_TMR3 RW 定时器 3 中断使能位,该位为 1 允许 Timer3 中断;为 0 屏蔽 0 0 IE_SPI0 RW SPI0 中断使能位,该位为 1 允许 SPI0 中断;为 0 屏蔽 0 GPIO 中断使能寄存器(GPIO_IE): 位 7 名称 bIE_IO_EDGE 访问 描述 复位值 RW GPIO 边沿中断模式使能: 该位为 0 选择电平中断模式,GPIO 引脚输入有效电平则 bIO_INT_ACT 为 1 并一直请求中断,GPIO 输入无效电平时 bIO_INT_ACT 为 0 并取消中断请求; 0 CH559 手册 24 该位为 1 选择边沿中断模式,GPIO 引脚输入有效边沿时产生 中断标志 bIO_INT_ACT 并请求中断,该中断标志无法软件清 零,只能在复位时或电平中断模式下或进入相应的中断服务 程序时被自动清零 6 bIE_RXD1_LO RW 该位为 1 使能 UART1 接收引脚中断(电平模式低电平有效, 边沿模式下降沿有效);该位为 0 禁止。iRS485 模式下选择 XA/XB 差分输入,非 iRS485 模式下根据 bIER_PIN_MOD1=1/0 选择 RXD1 或 RXD1_引脚 5 bIE_P5_5_HI RW 该位为 1 使能 P5.5 中断(电平模式高电平有效,边沿模式上 升沿有效);该位为 0 禁止 0 4 bIE_P1_4_LO RW 该位为 1 使能 P1.4 中断(电平模式低电平有效,边沿模式下 降沿有效);该位为 0 禁止 0 3 bIE_P0_3_LO RW 该位为 1 使能 P0.3 中断(电平模式低电平有效,边沿模式下 降沿有效);该位为 0 禁止 0 2 bIE_P5_7_HI RW 该位为 1 使能 P5.7 中断(电平模式高电平有效,边沿模式上 升沿有效);该位为 0 禁止 0 1 bIE_P4_1_LO RW 该位为 1 使能 P4.1 中断(电平模式低电平有效,边沿模式下 降沿有效);该位为 0 禁止 0 RW 该位为 1 使能 UART0 接收引脚中断(电平模式低电平有效, 边沿模式下降沿有效);该位为 0 禁止。根据 bUART0_PIN_X=0/1 选择 RXD0 或 RXD0_引脚 0 描述 复位值 0 bIE_RXD0_LO 0 中断优先级控制寄存器(IP): 位 名称 访问 7 PH_FLAG RO 高优先级中断正在执行标志位 0 6 PL_FLAG RO 低优先级中断正在执行标志位 0 5 PT2 RW 定时器 2 中断优先级控制位 0 4 PS RW UART0 中断优先级控制位 0 3 PT1 RW 定时器 1 中断优先级控制位 0 2 PX1 RW 外部中断 1 的中断优先级控制位 0 1 PT0 RW 定时器 0 中断优先级控制位 0 0 PX0 RW 外部中断 0 和 LED 控制卡中断的中断优先级控制位 0 扩展中断优先级控制寄存器(IP_EX): 位 名称 访问 描述 复位值 7 bIP_LEVEL RO 当前中断嵌套等级标志位,该位为 0 则表示无中断或者嵌套 2 级中断;该位为 1 则表示当前嵌套 1 级中断 0 6 bIP_GPIO RW GPIO 中断优先级控制位 0 5 bIP_PWM1 RW PWM1 中断优先级控制位 0 4 bIP_UART1 RW UART1 中断优先级控制位 0 3 bIP_ADC RW ADC 中断优先级控制位 0 2 bIP_USB RW USB 中断优先级控制位 0 1 bIP_TMR3 RW Timer3 中断优先级控制位 0 0 bIP_SPI0 RW SPI0 中断优先级控制位 0 CH559 手册 25 IP 和 IP_EX 寄存器用于设定中断优先级,如果某位被置 1,则对应的中断源被设定为高优先级; 如果某位被清 0,则对应的中断源被设为低优先级。对于同级中断源,系统有默认的优先权顺序, 默认优先极顺序如表 9.1.1 所示。其中 PH_FLAG 和 PL_FLAG 组合表示当前中断的优先级。 表 9.1.3 当前中断优先级状态指示 PH_FLAG PL_FLAG 当前中断优先级状态 0 0 当前无中断 0 1 当前正在执行低优先级中断 1 0 当前正在执行高优先级中断 1 1 意外状态,未知错误 10、I/O 端口 10.1 GPIO 简介 CH559 提供最多 45 个 I/O 引脚,部分引脚具有复用功能。其中,端口 P0~P3 的输入和输出以 及 P4 的输出都可以按位寻址。 如果引脚没有被配置成复用功能,则默认是通用 I/O 引脚状态。作为通用数字 I/O 使用时,所 有 I/O 端口都具有真正的“读–修改–写”功能,支持 SETB 或者 CLR 等位操作指令独立地改变某些 引脚的方向或者端口电平等。 10.2 GPIO 寄存器 本节所有的寄存器和位以通用格式表示:小写的“n”表示端口的序号(n=0、1、2、3),而小写 的“x”代表位的序号(x=0、1、2、3、4、5、6、7)。 表 10.2.1 GPIO 寄存器列表 名称 地址 描述 复位值 P0 80h P0 端口输入输出寄存器 FFh P0_DIR C4h P0 端口方向控制寄存器 00h P0_PU C5h P0 端口上拉使能寄存器 00h/FFh P1 90h P1 端口输入输出寄存器 FFh P1_IE B9h P1 端口输入使能寄存器 FFh P1_DIR BAh P1 端口方向控制寄存器 00h P1_PU BBh P1 端口上拉使能寄存器 FFh P2 A0h P2 端口输入输出寄存器 FFh P2_DIR BCh P2 端口方向控制寄存器 00h P2_PU BDh P2 端口上拉使能寄存器 FFh P3 B0h P3 端口输入输出寄存器 FFh P3_DIR BEh P3 端口方向控制寄存器 00h P3_PU BFh P3 端口上拉使能寄存器 FFh P4_OUT C0h P4 端口输出寄存器 00h P4_IN C1h P4 端口输入寄存器(只读) FFh P4_DIR C2h P4 端口方向控制寄存器 00h P4_PU C3h P4 端口上拉使能寄存器 FFh P4_CFG C7h P4 端口配置寄存器 00h P5_IN C7h P5 端口输入寄存器(只读) 00h CH559 手册 26 PIN_FUNC CEh 引脚功能选择寄存器 00h PORT_CFG C6h 端口配置寄存器 0Fh XBUS_SPEED FDh 总线速度配置寄存器 FFh XBUS_AUX A2h 总线辅助设置寄存器 00h 端口配置寄存器(PORT_CFG): 位 名称 访问 描述 复位值 0000b [7:4] bPn_DRV RW Pn 端口输出驱动能力选择, 该位为 0 选择驱动电流 5mA 级别;该位为 1 对于 P0/P2/P3 选择驱动电流 20mA 级 别,对于 P1 选择驱动电流 10mA 级别 [3:0] bPn_OC RW Pn 端口开漏输出使能,该位为 0 设置端口为推挽输出; 1111b 该位为 1 设置端口为开漏输出 Pn 端口输入输出寄存器(Pn): 位 名称 访问 [7:0] Pn.0~Pn.7 RW 描述 复位值 Pn.x 引脚状态输入和数据输出位,可以按位寻址 FFh Pn 端口方向控制寄存器(Pn_DIR): 位 名称 访问 [7:0] Pn_DIR RW 描述 复位值 Pn.x 引脚方向设置 00h P0 端口上拉使能寄存器(P0_PU)和 Pn 端口上拉使能寄存器(Pn_PU),此处 n=1/2/3: 位 名称 访问 [7:0] P0_PU RW [7:0] Pn_PU RW 描述 复位值 P0.x 引脚上拉电阻使能(当配置 En_P0_Pullup=0) 00h P0.x 引脚上拉电阻使能(当配置 En_P0_Pullup=1) FFh Pn.x 引脚上拉电阻使能,该位为 0 禁止上拉;该位为 1 使能上拉 FFh 由 PORT_CFG 中的位 bPn_OC 和端口方向控制寄存器 Pn_DIR 以及端口上拉使能寄存器 Pn_PU 组合 实现 Pn 端口的相关配置,具体如下。 表 10.2.2 端口配置寄存器组合 bPn_OC Pn_DIR Pn_PU 工作模式描述 0 0 0 高阻输入模式,引脚没有上拉电阻 0 0 1 上拉输入模式,引脚有上拉电阻 0 1 X 推挽输出模式,具有对称驱动能力,可以输出或者吸收较大电流 1 0 0 高阻输入弱准双向模式,开漏输出,引脚没有上拉电阻 1 1 0 高阻输入准双向模式,开漏输出,引脚没有上拉电阻,当输出从低电平 转高电平时自动驱动 2 个时钟周期的高电平以加速转换 1 0 1 弱准双向模式(仿 8051),开漏输出,支持输入,引脚有上拉电阻 1 1 1 准双向模式(标准 8051),开漏输出,支持输入,引脚有上拉电阻,当输 出从低电平转高电平时自动驱动 2 个时钟周期的高电平以加速转换 P0~P3 端口支持纯输入或推挽输出以及准双向等模式,P4 端口支持纯输入或推挽输出等模式。 CH559 手册 27 各引脚都有可以自由控制的连接到 VDD33 的内部上拉电阻,以及都有连接到 GND 的保护二极管。 图 10.2.1 是 P1 端口的 P1.x 引脚的等效原理图, 去掉 P1_IE 和 AIN 以及 ADC_CHANN 之后可以适 用于 P0、P2、P3 端口。 图 10.2.1 I/O 引脚等效原理图 VDD33 Pn_DIR[x] VDD33 70K 10K Delay 2 Clock Pn_PU[x] Pn[x] OUT Pn[x] bPn_OC ADC_CHANN[x] P1_IE[x] GND AIN[x] 1 Pn[x] IN // GND 0 P1 端口输入使能寄存器(P1_IE): 位 名称 访问 描述 复位值 [7:0] P1_IE RW P1.x 引脚输入使能,该位为 0 则引脚用于 ADC 模拟输 入,禁止数字输入;该位为 1 则使能数字输入 FFh 10.3 P4 端口 P4 端口输出寄存器(P4_OUT): 位 名称 访问 [7:0] P4_OUT.0~P4_OUT.7 RW 描述 P4.x 引脚数据输出位,可以按位寻址 复位值 00h P4 端口输入寄存器(P4_IN): 位 名称 访问 [7:0] P4_IN RO 描述 P4.x 引脚状态输入位 复位值 FFh P4 端口上拉使能寄存器(P4_PU): 位 名称 访问 描述 复位值 [7:0] P4_PU RW P4.x 引脚上拉电阻使能,该位为 0 禁止上拉;该位为 1 使能上拉 FFh P4 端口方向控制寄存器(P4_DIR): 位 名称 访问 描述 复位值 [7:0] P4_DIR RW P4.x 引脚方向设置,该位为 0 则用于输入;该位为 1 则用于输出 00h CH559 手册 28 P4 端口配置寄存器(P4_CFG)和 P5 端口输入寄存器(P5_IN): 位 名称 访问 描述 复位值 7 P5.7 R0 P5.7 引脚状态输入位 0 0 6 bIO_INT_ACT R0 GPIO 中断请求激活状态: 当 bIE_IO_EDGE=0 时,该位为 1 表示 GPIO 输入有效电平, 将请求中断,为 0 表示输入无效电平; 当 bIE_IO_EDGE=1 时,该位作为边沿中断标志,为 1 表示 检测到有效边沿,该位无法软件清零,只能在复位时或电 平中断模式下或进入相应的中断服务程序时被自动清零 5 P5.5 R0 P5.5 引脚状态输入位,内置有可控的下拉电阻 0 4 P5.4 R0 P5.4 引脚状态输入位,内置有可控的下拉电阻 0 3 bSPI0_PIN_X RW SPI0 引脚 SCS/SCK 映射使能,该位为 0 则使用 P1.4/P1.7; 该位为 1 则使用 P4.6/P4.7 0 2 bP4_DRV RW P4 端口输出驱动能力选择,该位为 0 选择驱动电流 5mA 级 别;该位为 1 选择驱动电流 20mA 级别 0 1 P5.1 R0 P5.1 引脚状态输入位,内置有可控的下拉电阻 0 0 P5.0 R0 P5.0 引脚状态输入位,内置有可控的下拉电阻 0 10.4 GPIO 复用与映射 CH559 部分 I/O 引脚具有复用功能,上电后默认均为通用 I/O 引脚,使能不同功能模块后,相 应引脚被配置成各自功能模块对应的功能引脚。 引脚功能选择寄存器(PIN_FUNC): 位 名称 访问 描述 复位值 7 bPWM1_PIN_X RW PWM1/PWM2 引脚映射使能位,该位为 0 则 PWM1/2 使用 P2.4/P2.5;该位为 1 则 PWM1/2 使用 P4.3/P4.5 0 6 bTMR3_PIN_X RW PWM3/CAP3 引脚映射使能位,该位为 0 则 PWM3/CAP3 使用 P1.2;该位为 1 则 PWM3/CAP3 使用 P4.2 0 5 bT2EX_PIN_X RW T2EX/CAP2 引脚映射使能位,该位为 0 则 T2EX/CAP2 使用 P1.1;该位为 1 则 T2EX/CAP2 使用 P2.5 0 4 bUART0_PIN_X RW UART0 引 脚 映 射 使 能 位 , 该 位 为 0 则 RXD0/TXD0 使 用 P3.0/P3.1;该位为 1 则 RXD0/TXD0 使用 P0.2/P0.3 0 RW xBUS 外部总线功能使能位,该位为 0 关闭外部总线;该位为 1 使能 P0 端口作为 8 位数据总线,以及 P3.6/P3.7 作为总线 访问期间的写/读选通控制 0 RW xBUS 外部总线片选输出使能位,该位为 0 禁止输出片选,可 由外部电路自行译码;该位为 1 则 P3.4 作为 CS0 输出(XCS0 片选 0,低电平有效),以及在 ALE 禁用的情况下将总线地址 A15 取反后输出到 P3.3(相当于片选 1,低电平有效) 0 RW xBUS 外部总线高 8 位地址输出使能位,该位为 0 禁止输出; 该位为 1 则在 MOVX_@DPTR 指令访问外部总线期间,P2 端口 输出总线地址高 8 位 0 3 2 1 bXBUS_EN bXBUS_CS_OE bXBUS_AH_OE CH559 手册 0 bXBUS_AL_OE 29 RW xBUS 外部总线低 8 位地址输出使能位,该位为 0 则是复用地 址模式,在访问外部总线时根据需要将地址低 8 位与数据总 线复用输出,由 ALE 控制外部电路锁存;该位为 1 则是直接 地址模式,通过 P4.0~P4.5 和 P3.5 以及 P2.7 输出低 8 位 地址 A0~A7 表 10.4.1 GPIO 引脚复用功能列表 GPIO 其它功能:按从左到右的优先顺序 P0[0] AD0、UDTR/bUDTR、P0.0 P0[1] AD1、URTS/bURTS、P0.1 P0[2] AD2、RXD_/bRXD_、P0.2 P0[3] AD3、TXD_/bTXD_、P0.3 P0[4] AD4、UCTS/bUCTS、P0.4 P0[5] AD5、UDSR/bUDSR、P0.5 P0[6] AD6、URI/bURI、P0.6 P0[7] AD7、UDCD/bUDCD、P0.7 P1[0] AIN0、T2/bT2、CAP1/bCAP1、P1.0 P1[1] AIN1、T2EX/bT2EX、CAP2/bCAP2、P1.1 P1[2] AIN2、PWM3/bPWM3、CAP3/bCAP3、P1.2 P1[3] AIN3、P1.3 P1[4] AIN4、SCS/bSCS、P1.4 P1[5] AIN5、MOSI/bMOSI、P1.5 P1[6] AIN6、MISO/bMISO、P1.6 P1[7] AIN7、SCK/bSCK、P1.7 P2[0] A8、P2.0 P2[1] MOSI1/bMOSI1、A9、P2.1 P2[2] MISO1/bMISO1、A10、P2.2 P2[3] SCK1/bSCK1、A11、P2.3 P2[4] PWM1/bPWM1、A12、P2.4 P2[5] TNOW/bTNOW、PWM2/bPWM2、A13、T2EX_/bT2EX_、CAP2_/bCAP2_、P2.5 P2[6] RXD1/bRXD1、A14、P2.6 P2[7] TXD1/bTXD1、DA7/bDA7、A15、P2.7 P3[0] RXD/bRXD、P3.0 P3[1] TXD/bTXD、P3.1 P3[2] LED0/bLED0、INT0/bINT0、P3.2 P3[3] LED1/bLED1、!A15、INT1/bINT1、P3.3 P3[4] LEDC/bLEDC、XCS0/bXCS0、T0/bT0、P3.4 P3[5] DA6/bDA6、T1/bT1、P3.5 P3[6] WR/bWR、P3.6 P3[7] RD/bRD、P3.7 P4[0] LED2/bLED2、A0、RXD1_/bRXD1_、P4.0 P4[1] A1、P4.1 P4[2] PWM3_/bPWM3_、CAP3_/bCAP3_、A2、P4.2 0 CH559 手册 30 P4[3] PWM1_/bPWM1_、A3、P4.3 P4[4] LED3/bLED3、TNOW_/bTNOW_、TXD1_/bTXD1_、A4、P4.4 P4[5] PWM2_/bPWM2_、A5、P4.5 P4[6] XI、SCS_/bSCS_、P4.6 P4[7] XO、SCK_/bSCK_、P4.7 P5[0] DM/bDM、P5.0 P5[1] DP/bDP、P5.1 P5[4] HM/bHM、ALE、XB、P5.4 P5[5] HP/bHP、!A15、XA、P5.5 P5[7] RST/bRST、P5.7 上表中所述按从左到右的优先顺序,是指多个功能模块竞争使用该 GPIO 时的优先顺序。例如, P2 端口已被设置为输出总线地址高 8 位,如果实际只用到 A8~A11 地址,那么 P2.4/P2.5 仍可用于 更高优先级的 PWM1/PWM2 等功能,P2.6 仍可用于 RXD1 功能,P2.7 仍可用于更高优先级的 TXD1 或者 DA7 等功能,从而避免在未用到 A12~A15 地址时浪费 P2.4~P2.7 引脚。 11、外部总线 xBUS 11.1 外部总线寄存器 外部总线辅助设置寄存器(XBUS_AUX): 位 名称 访问 描述 复位值 7 bUART0_TX R0 指示 UART0 的发送状态,为 1 表示正在发送过程中 0 6 bUART0_RX R0 指示 UART0 的接收状态,为 1 表示正在接收过程中 0 5 bSAFE_MOD_ACT R0 指示安全模式状态,为 1 表示当前正在安全模式下 0 0 4 bALE_CLK_EN RW ALE 引脚时钟输出使能,该位为 1 允许 ALE 在没有 xBUS 操作期间输出系统主频的 12 分频,即 Fsys/12;该位为 0 禁止输出时钟信号,仅在访问外部总线必要时输出低 8 位地址锁存信号,以降低 EMI 3 GF2 RW 通用标志位 2:使用者可自己定义,可软件清零或置位 0 2 bDPTR_AUTO_INC RW 使能在 MOVX_@DPTR 指令完成后 DPTR 自动加 1 0 1 保留 RO 保留 0 0 DPS RW 双 DPTR 数据指针选择位: 该位为 0 选择 DPTR0;该位为 1 选择 DPTR1 0 外部总线速度配置寄存器(XBUS_SPEED): 位 名称 访问 描述 复位值 7 bXBUS1_SETUP RW 选择 XBUS1 建立时间:该位为 0 则 2 个时钟周期;该位为 1 则 3 个时钟周期 1 6 bXBUS1_HOLD RW 选择 XBUS1 保持时间:该位为 0 则 1 个时钟周期;该位为 1 则 2 个时钟周期 1 5 bXBUS1_WIDTH1 RW XBUS1 总线脉冲宽度高位 1 4 bXBUS1_WIDTH0 RW XBUS1 总线脉冲宽度低位 1 3 bXBUS0_SETUP RW 选择 XBUS0 建立时间:该位为 0 则 2 个时钟周期;该位为 1 则 3 个时钟周期 1 2 bXBUS0_HOLD RW 选择 XBUS0 保持时间:该位为 0 则 1 个时钟周期;该位为 1 CH559 手册 31 1 则 2 个时钟周期 1 bXBUS0_WIDTH1 RW XBUS0 总线脉冲宽度高位 1 0 bXBUS0_WIDTH0 RW XBUS0 总线脉冲宽度低位 1 bXBUSn_WIDTH1 和 bXBUSn_WIDTH0(其中 n=0 或 1),用于选择总线片选 n 的读写有效脉冲宽度, 00 则 2 时钟周期,01 则 4 时钟周期,10 则 8 时钟周期,11 则 16 时钟周期。 11.2 外部总线引脚 表 11.2.1 外部总线引脚列表 GPIO 直接地址 模式引脚 复用地址 模式引脚 功能描述 P3.7 RD RD 外部总线读信号输出引脚,低电平有效,上升沿采样输入 P3.6 WR WR 外部总线写信号输出引脚,低电平有效 D0~D7 D0~D7 8 位双向数据总线 A0~A7 复用低 8 位地址 A[0:7]输出,由 ALE 控制外部电路锁存 P0.0~P0.7 P4.0~P4.5 A0~A5 未用到 总线直接地址 A[0:5]输出引脚,另需设置 P4_DIR 输出 P3.5 A6 未用到 总线直接地址 A6 输出引脚 P2.7 A7 总线直接地址 A7 输出引脚 A15 总线地址 A15 输出引脚 P2.0~P2.6 A8~A14 A8~A14 P3.4 XCS0 XCS0 片选 0 输出引脚,地址范围 4000h~7FFFh,低电平有效 P3.3 !A15 !A15 总线地址 A15 反相输出引脚,相当于片选 1 输出,地址范 围 8000h~FFFFh,低电平有效,仅在 ALE 禁用状态可用 P5.5 !A15 !A15 总线地址 A15 反相输出引脚,相当于片选 1 输出,地址范 围 8000h~FFFFh,低电平有效,仅在 ALE 使能状态可用 ALE 复用低 8 位地址锁存控制输出引脚,高电平有效 P5.4 ALE 总线地址 A[8:14]输出引脚 系统主频的 12 分频时钟 Fsys/12 输出引脚,占空比 1/12 以上在外部总线状态下未用到的部分地址输出和片选输出等引脚,可以根据 GPIO 复用优先顺序 用于其它模块,并且 P4.0~P4.5 中未用到的引脚还可以设置 P4_DIR 保持输入状态。 当 bXBUS_CS_OE=1 时,总线地址 A15 反相信号将根据 ALE 输出状态选择输出引脚,当 ALE 被允 许输出时,!A15 选择从 P5.5 输出;当 ALE 被禁止输出时,!A15 选择从 P3.3 输出。ALE 输出状态由 bUH1_DISABLE、bXBUS_EN、bXBUS_AL_OE 以及 bALE_CLK_EN 组合决定,参考下表 11.2.2。 表 11.2.2 P5.4 引脚复用 ALE 输出状态表 bUH1_DISABLE bXBUS_EN bXBUS_AL_OE bALE_CLK_EN P5.4 引脚功能描述 0 X X X 禁止 ALE 输出,优先用作 HM(P5.5 用作 HP) 1 0 X 0 禁止 ALE 输出,默认用作 XB(P5.5 用作 XA) 1 0 X 1 ALE 仅输出系统主频的 12 分频时钟信号 1 1 1 0 禁止 ALE 输出,默认用于 XB(P5.5 用作 XA) 1 1 1 1 ALE 仅输出系统主频的 12 分频时钟信号 1 1 0 0 ALE 仅在总线时输出低 8 位地址锁存信号 1 1 0 1 ALE 在访问总线时输出低 8 位地址锁存信号, 空闲时输出系统主频的 12 分频时钟信号 12、定时器 Timer CH559 手册 32 12.1 Timer0/1 Timer0/1 是 2 个 16 位定时/计数器,通过 TCON 和 TMOD 来配置 Timer0 和 Timer1,TCON 用于定 时/计数器 T0 和 T1 的启动控制与溢出中断以及外部中断控制。每个定时器都是由 2 个 8 位寄存器组 成的 16 位定时单元。定时器 0 的高字节计数器是 TH0,低字节是 TL0;定时器 1 的高字节计数器是 TH1,低字节是 TL1。定时器 1 还可以作为 UART0 的波特率发生器。 表 12.1.1 Timer0/1 相关寄存器列表 名称 地址 描述 复位值 TH1 8Dh Timer1 计数高字节 xxh TH0 8Ch Timer0 计数高字节 xxh TL1 8Bh Timer1 计数低字节 xxh TL0 8Ah Timer0 计数低字节 xxh TMOD 89h Timer0/1 方式寄存器 00h TCON 88h Timer0/1 控制寄存器 00h 定时/计数器 0/1 控制寄存器(TCON): 位 名称 访问 描述 复位值 7 TF1 RW Timer1 溢出中断标志位,进入定时器 1 中断后自动清零 0 6 TR1 RW Timer1 启动/停止位,置 1 启动,由软件置位或者清零 0 5 TF0 RW Timer0 溢出中断标志位,进入定时器 0 中断后自动清零 0 4 TR0 RW Timer0 启动/停止位,置 1 启动,由软件置位或者清零 0 3 IE1 RW INT1 外部中断 1 的中断请求标志位,进入中断后自动清零 0 2 IT1 RW INT1 外部中断 1 触发方式控制位,该位为 0 选择外部中断为低 电平触发;该位为 1 选择外部中断为下降边沿触发 0 1 IE0 RW INT0 外部中断 0 的中断请求标志位,进入中断后自动清零 0 0 IT0 RW INT0 外部中断 0 触发方式控制位,该位为 0 选择外部中断为低 电平触发;该位为 1 选择外部中断为下降边沿触发 0 定时/计数器 0/1 方式寄存器(TMOD): 位 名称 访问 描述 复位值 0 7 bT1_GATE RW 门控使能位,控制 Timer1 启动是否受外部中断信号 INT1 的影 响。该位为 0 则定时/计数器 1 是否启动与 INT1 无关;该位为 1 则只有 INT1 引脚为高电平并且 TR1 为 1 时才能启动 6 bT1_CT RW 定时或者计数方式选择位,该位为 0 工作于定时方式;该位为 1 工作于计数方式,使用 T1 引脚的下降沿作为时钟 0 5 bT1_M1 RW 定时/计数器 1 模式选择高位 0 4 bT1_M0 RW 定时/计数器 1 模式选择低位 0 0 3 bT0_GATE RW 门控使能位,控制 Timer0 启动是否受外部中断信号 INT0 的影 响。该位为 0 则定时/计数器 0 是否启动与 INT0 无关;该位为 1 则只有 INT0 引脚为高电平并且 TR0 为 1 时才能启动 2 bT0_CT RW 定时或者计数方式选择位,该位为 0 工作于定时方式;该位为 1 工作于计数方式,使用 T0 引脚的下降沿作为时钟 0 1 bT0_M1 RW 定时/计数器 0 模式选择高位 0 0 bT0_M0 RW 定时/计数器 0 模式选择低位 0 表 12.1.2 bTn_M1 和 bTn_M0 选择 Timern 工作模式(n=0、1) CH559 手册 33 bTn_M1 bTn_M0 Timern 工作模式(n=0、1) 0 0 模式 0:13 位定时/计数器 n,计数单元由 TLn 的低 5 位和 THn 组成,TLn 的高 3 位无效。计数从 13 位全为 1 变成全为 0 时,设置溢出标志 TFn,并需重置初值 0 1 模式 1:16 位定时/计数器 n,计数单元由 TLn 和 THn 组成。计数从 16 位全为 1 变成全为 0 时,设置溢出标志 TFn,并需重置初值 1 0 模式 2:8 位重载定时/计数器 n,计数单元使用 TLn,THn 作为重载计数单元。 计数从 8 位全为 1 变成全为 0 时,设置溢出标志 TFn,并自动从 THn 加载初值 1 模式 3:如果是定时/计数器 0,那么定时/计数器 0 被分成 2 个部分 TL0 和 TH0, TL0 作为 8 位定时/计数器使用,占用 Timer0 的全部控制位;而 TH0 也做另一个 8 位定时器使用,占用 Timer1 的 TR1、TF1 和中断资源,并且此时 Timer1 仍然 可用,只是不能使用启动控制位 TR1 和溢出标志位 TF1。 如果是定时/计数器 1,那么进入模式 3 将停止定时/计数器 1。 1 Timern 计数低字节(TLn)(n=0、1): 位 名称 访问 [7:0] TLn RW 描述 复位值 Timern 计数低字节 xxh Timern 计数高字节(THn)(n=0、1): 位 名称 访问 [7:0] THn RW 描述 复位值 Timern 计数高字节 xxh 12.2 Timer2 Timer2 是 16 位自动重载定时/计数器,通过 T2CON 和 T2MOD 寄存器进行配置,定时器 2 的高字 节计数器是 TH2,低字节是 TL2。Timer2 可以作为 UART0 的波特率发生器,还具有 2 路信号电平捕 捉功能,捕捉计数存储于 RCAP2 和 T2CAP1 寄存器中。 表 12.2.1 Timer2 相关寄存器列表 名称 地址 描述 复位值 TH2 CDh Timer2 计数器高字节 00h TL2 CCh Timer2 计数器低字节 00h T2COUNT CCh TL2 和 TH2 组成 16 位 SFR T2CAP1H CDh Timer2 捕捉 1 数据高字节(只读) xxh T2CAP1L CCh Timer2 捕捉 1 数据低字节(只读) xxh T2CAP1 CCh T2CAP1L 和 T2CAP1H 组成 16 位 SFR xxxxh RCAP2H CBh 计数重载/捕捉 2 数据寄存器高字节 00h RCAP2L CAh 计数重载/捕捉 2 数据寄存器低字节 00h RCAP2 CAh RCAP2L 和 RCAP2H 组成 16 位 SFR T2MOD C9h Timer2 方式寄存器 00h T2CON C8h Timer2 控制寄存器 00h 0000h 0000h 定时/计数器 2 控制寄存器(T2CON): 位 名称 访问 描述 复位值 7 TF2 RW 当 bT2_CAP1_EN=0 时,是 Timer2 的溢出中断标志,当 Timer2 计数从 16 位全为 1 变成全为 0 时,设置该溢出标志为 1,需 0 CH559 手册 34 要软件清零;当 RCLK=1 或者 TCLK=1 时,该位不会被置 1 7 CAP1F RW 当 bT2_CAP1_EN=1 时,是 Timer2 捕捉 1 中断标志,由 T2 有效 边沿触发,需要软件清零 0 6 EXF2 RW Timer2 的外部触发标志,当 EXEN2=1 时由 T2EX 有效边沿触发 置 1,需要软件清零 0 5 RCLK RW UART0 接收时钟选择,该位为 0 选择 Timer1 溢出脉冲产生波 特率;该位为 1 选择 Timer2 溢出脉冲产生波特率 0 4 TCLK RW UART0 发送时钟选择,该位为 0 选择 Timer1 溢出脉冲产生波 特率;该位为 1 选择 Timer2 溢出脉冲产生波特率 0 3 EXEN2 RW T2EX 触发使能位,该位为 0 忽略 T2EX;该位为 1 使能在 T2EX 有效边沿时触发重载或者捕捉 0 2 TR2 RW Timer2 启动/停止位,置 1 启动,由软件置位或者清零 0 1 C_T2 RW Timer2 时钟源选择位,该位为 0 使用内部时钟;该位为 1 使 用基于 T2 引脚下降沿的边沿计数 0 RW Timer2 功能选择位,如果 RCLK 或者 TCLK 为 1,则该位应该强 制为 0。该位为 0 则 Timer2 作为定时/计数器,并且当计数器 溢出或者 T2EX 电平变化时能够自动重载计数初值;该位为 1 使能 Timer2 的捕捉 2 功能,捕捉 T2EX 有效边沿 0 0 CP_RL2 定时/计数器 2 方式寄存器(T2MOD): 位 7 名称 bTMR_CLK 访问 描述 复位值 RW 已选择快速时钟的 T0/T1/T2 定时器的最快时钟模式使能,该 位为 1 则使用没有分频的系统主频 Fsys 作为计数时钟;该位 为 0 则使用分频时钟。该位对选择标准时钟的定时器没有影响 0 0 6 bT2_CLK RW Timer2 内部时钟频率选择位,该位为 0 选标准时钟,定时/计 数模式为 Fsys/12,UART0 时钟模式为 Fsys/4;该位为 1 选快 速 时 钟 , 定 时 / 计 数 模 式 为 Fsys/4(bTMR_CLK=0) 或 Fsys(bTMR_CLK=1),UART0 时钟模式为 Fsys/2(bTMR_CLK=0) 或 Fsys(bTMR_CLK=1) 5 bT1_CLK RW Timer1 内部时钟频率选择位,该位为 0 选标准时钟 Fsys/12; 为 1 选快速时钟 Fsys/4(bTMR_CLK=0)或 Fsys(bTMR_CLK=1) 0 4 bT0_CLK RW Timer0 内部时钟频率选择位,该位为 0 选标准时钟 Fsys/12; 为 1 选快速时钟 Fsys/4(bTMR_CLK=0)或 Fsys(bTMR_CLK=1) 0 3 bT2_CAP_M1 RW Timer2 捕捉模式高位 2 bT2_CAP_M0 RW Timer2 捕捉模式低位 1 T2OE RW Timer2 时钟输出使能位,该位为 0 禁止输出;该位为 1 使能 T2 引脚输出时钟,频率为 Timer2 溢出速率的一半 0 RW 当 RCLK=0、TCLK=0、CP_RL2=1、C_T2=0、T2OE=0 时的捕捉 1 模式使能,该位为 1 启用捕捉 1 功能捕捉 T2 有效边沿;该位 为 0 禁用捕捉 1 0 0 bT2_CAP1_EN 计数重载/捕捉 2 数据寄存器(RCAP2): 捕捉模式选择: X0:从下降沿到下降沿 01:从任意沿到任意沿,即电平变化 11:从上升沿到上升沿 0 0 CH559 手册 35 位 名称 访问 描述 复位值 [7:0] RCAP2H RW 在定时/计数器模式下是重载值的高字节;在捕捉模式下是 CAP2 捕捉到的定时器的高字节 00h [7:0] RCAP2L RW 在定时/计数器模式下是重载值的低字节;在捕捉模式下是 CAP2 捕捉到的定时器的低字节 00h Timer2 计数器(T2COUNT),仅当 bT2_CAP1_EN=0 时有效: 位 名称 访问 描述 复位值 [7:0] TH2 RW 当前计数器高字节 00h [7:0] TL2 RW 当前计数器低字节 00h Timer2 捕捉 1 数据(T2CAP1),仅当 bT2_CAP1_EN=1 时有效: 位 名称 访问 描述 复位值 [7:0] T2CAP1H RO CAP1 捕捉到的定时器的高字节 xxh [7:0] T2CAP1L RO CAP1 捕捉到的定时器的低字节 xxh 12.3 Timer3 表 12.3.1 Timer3 相关寄存器列表 名称 地址 描述 复位值 T3_FIFO_H AFh Timer3 的 FIFO 高字节 xxh T3_FIFO_L AEh Timer3 的 FIFO 低字节 xxh T3_FIFO AEh T3_FIFO_L 和 T3_FIFO_H 组成 16 位 SFR T3_DMA_AH ADh DMA 当前缓冲区地址高字节 0xh T3_DMA_AL ACh DMA 当前缓冲区地址低字节 xxh T3_DMA ACh T3_DMA_AL 和 T3_DMA_AH 组成 16 位 SFR T3_DMA_CN ABh DMA 剩余计数寄存器 00h T3_CTRL AAh Timer3 控制寄存器 02h T3_STAT A9h Timer3 状态寄存器 00h T3_END_H A7h Timer3 计数终值高字节 xxh T3_END_L A6h Timer3 计数终值低字节 xxh T3_END A6h T3_END_L 和 T3_END_H 组成 16 位 SFR T3_COUNT_H A5h Timer3 当前计数高字节(只读) 00h T3_COUNT_L A4h Timer3 当前计数低字节(只读) 00h T3_COUNT A4h T3_COUNT_L 和 T3_COUNT_H 组成 16 位 SFR T3_CK_SE_H A5h Timer3 时钟分频设置高字节 00h T3_CK_SE_L A4h Timer3 时钟分频设置低字节 20h T3_CK_SE A4h T3_CK_SE_L 和 T3_CK_SE_H 组成 16 位 SFR T3_SETUP A3h Timer3 设置寄存器 xxxxh 0xxxh xxxxh 0000h 0020h 04h Timer3 设置寄存器(T3_SETUP): 位 名称 访问 描述 复位值 7 bT3_IE_END RW 该位为 1 使能捕捉模式计数超时中断或者 PWM 模式循 环周期结束中断;该位为 0 关闭使能 0 CH559 手册 36 6 bT3_IE_FIFO_OV RW 该位为 1 使能 FIFO 溢出中断;该位为 0 关闭使能 0 5 bT3_IE_FIFO_REQ RW 该位为 1 使能捕捉模式 FIFO>=4 中断或者 PWM 模式 FIFO=4 触发,PWM 模式下由 FIFO= min(可能接收到的最大数据包长度 + 2 字节,64 字节) 16.4 主机寄存器 在 USB 主机模式下 CH559 提供了一组双向主机端点, 包括一个发送端点 OUT 和一个接收端点 IN, 数据包的最大长度是 64 字节,支持控制传输、批量传输、中断传输和实时/同步传输。 由主机端点发起的每一个 USB 事务,在处理结束后总是自动设置中断标志 UIF_TRANSFER。应用 程序可以直接查询或在 USB 中断服务程序中查询并分析中断标志寄存器 USB_INT_FG,根据各中断标 志分别进行相应的处理;并且,如果 UIF_TRANSFER 有效,那么还需要继续分析 USB 中断状态寄存器 USB_INT_ST,根据当前 USB 传输事务的应答 PID 标识 MASK_UIS_H_RES 进行相应的处理。 如果事先设定了主机接收端点的 IN 事务的同步触发位 bUH_R_TOG,那么可以通过 U_TOG_OK 或 CH559 手册 66 bUIS_TOG_OK 判断当前所接收到的数据包的同步触发位是否与主机接收端点的同步触发位匹配,如 果数据同步,则数据有效;如果数据不同步,则数据应该被丢弃。每次处理完 USB 发送或者接收中 断后,都应该正确修改相应主机端点的同步触发位,用于同步下次所发送的数据包和检测下次所接 收的数据包是否同步;另外,通过设置 bUEP_AUTO_TOG 可以实现在发送成功或者接收成功后自动翻 转相应的同步触发位。 USB 主机令牌设置寄存器 UH_EP_PID 是对 USB 设备模式下的 USB 端点 1 控制寄存器的复用,用 于设置被操作的目标设备的端点号和本次 USB 传输事务的令牌 PID 包标识。SETUP 令牌和 OUT 令牌 所对应的数据由主机发送端点提供,准备发送的数据在 UH_TX_DMA 缓冲区中,准备发送的数据长度 设置在 UH_TX_LEN 中;IN 令牌所对应的数据由目标设备返回给主机接收端点,接收到的数据存放在 UH_RX_DMA 缓冲区中,接收到的数据长度存放在 USB_RX_LEN 中。 表 16.4.1 USB 主机相关寄存器列表 名称 地址 描述 复位值 UH_SETUP D2h USB 主机辅助设置寄存器 0000 0000b UH_RX_CTRL D4h USB 主机接收端点控制寄存器 0000 0000b UH_EP_PID D5h USB 主机令牌设置寄存器 0000 0000b UH_TX_CTRL D6h USB 主机发送端点控制寄存器 0000 0000b UH_TX_LEN D7h USB 主机发送长度寄存器 0xxx xxxxb USB_HUB_ST DBh USB 主机 HUB 端口状态寄存器(只读) 0000 0000b UHUB0_CTRL E4h USB 主机 HUB0 端口控制寄存器 0100 x000b UHUB1_CTRL E5h USB 主机 HUB1 端口控制寄存器 1100 x000b UH_EP_MOD 2447h USB 主机端点模式控制寄存器 0000 0000b UH_RX_DMA_H 244Ch USB 主机接收缓冲区起始地址高字节 000x xxxxb UH_RX_DMA_L 244Dh USB 主机接收缓冲区起始地址低字节 xxxx xxx0b UH_RX_DMA 244Ch UH_RX_DMA_L 和 UH_RX_DMA_H 组成 16 位 SFR UH_TX_DMA_H 244Eh USB 主机发送缓冲区起始地址高字节 000x xxxxb UH_TX_DMA_L 244Fh USB 主机发送缓冲区起始地址低字节 xxxx xxx0b UH_TX_DMA 244Eh UH_TX_DMA_L 和 UH_TX_DMA_H 组成 16 位 SFR pUH_* 254*h 在 bXIR_XSFR 置 1 后,该名称用于以 pdata 类型 寻址上述 xSFR,比 xdata 类型寻址更快捷 xxxxh xxxxh USB 主机辅助设置寄存器(UH_SETUP): 位 名称 访问 描述 复位值 7 bUH_PRE_PID_EN RW 低速前导包 PRE PID 使能位,该位为 1 使能 USB 主机 通过外部 HUB 与低速 USB 设备通讯;为 0 禁用低速前 导包,USB 主机与低速 USB 设备之间不能有 HUB 0 6 bUH_SOF_EN RW 自动产生 SOF 包使能位,该位为 1 由 USB 主机自动产 生 SOF 包;为 0 不自动产生,但可以手工产生 0 [5:0] 保留 RO 保留 00h USB 主机接收端点控制寄存器(UH_RX_CTRL): 位 名称 访问 描述 复位值 7 bUH_R_TOG RW USB 主机接收器(处理 IN 事务)期望的同步触发位,该 位为 0 表示期望 DATA0;为 1 表示期望 DATA1 0 [6:5] 保留 RO 保留 00b CH559 手册 67 4 bUH_R_AUTO_TOG RW 自动翻转 bUH_R_TOG 使能控制位,该位为 1 表示在 USB 主机接收成功后自动翻转 bUH_R_TOG 标志;为 0 表示 不自动翻转,但可以手动切换 3 保留 RO 保留 0 0 2 bUH_R_RES RW USB 主机接收器对 IN 事务的响应控制位,为 0 表示应 答 ACK 或就绪;为 1 表示无响应,用于与目标设备的 非端点 0 进行实时/同步传输 [1:0] 保留 RO 保留 0 00b USB 主机令牌设置寄存器(UH_EP_PID): 位 名称 访问 描述 复位值 [7:4] MASK_UH_TOKEN RW 设置本次 USB 传输事务的令牌 PID 包标识 0000b [3:0] MASK_UH_ENDP RW 设置本次被操作的目标设备的端点号 0000b USB 主机发送端点控制寄存器(UH_TX_CTRL): 位 名称 访问 描述 7 保留 RO 保留 0 6 bUH_T_TOG RW USB 主机发送器(处理 SETUP/OUT 事务)准备的同步触 发位,该位为 0 表示发送 DATA0;为 1 表示发送 DATA1 0 5 保留 RO 保留 0 0 4 bUH_T_AUTO_TOG RW 自动翻转 bUH_T_TOG 使能控制位,该位为 1 表示在 USB 主机发送成功后自动翻转 bUH_T_TOG 标志;为 0 表示 不自动翻转,但可以手动切换 [3:1] 保留 RO 保留 RW USB 主机发送器对 SETUP/OUT 事务的响应控制位,为 0 表示期望应答 ACK 或就绪;为 1 表示期望无响应,用 于与目标设备的非端点 0 进行实时/同步传输 0 bUH_T_RES 复位值 000b 0 USB 主机发送长度寄存器(UH_TX_LEN): 位 名称 访问 [7:0] UH_TX_LEN RW 描述 设置 USB 主机发送端点准备发送的数据字节数 复位值 xxh USB 主机 HUB 端口状态寄存器(USB_HUB_ST): 位 名称 访问 描述 复位值 7 bUHS_H1_ATTACH RO HUB1 端口的 USB 设备连接状态位,该位为 1 表示 HUB1 已经 连接 USB 设备;该位为 0 表示没有。同 bUMS_H1_ATTACH 0 6 bUHS_HM_LEVEL RO 记录 USB 设备刚连接到 HUB1 端口时的 HM 引脚的状态,为 0 表示低电平;为 1 表示高电平。用于判断全速或低速 0 5 bUHS_HP_PIN RO 当前 HP 引脚状态,为 0 表示低电平;为 1 表示高电平 0 4 bUHS_HM_PIN RO 当前 HM 引脚状态,为 0 表示低电平;为 1 表示高电平 0 3 bUHS_H0_ATTACH RO HUB0 端口的 USB 设备连接状态位,该位为 1 表示 HUB0 已经 连接 USB 设备;该位为 0 表示没有。同 bUMS_H0_ATTACH 0 2 bUHS_DM_LEVEL RO 记录 USB 设备刚连接到 HUB0 端口时的 DM 引脚的状态,为 0 表示低电平;为 1 表示高电平。用于判断全速或低速 0 CH559 手册 68 1 bUHS_DP_PIN RO 当前 DP 引脚状态,为 0 表示低电平;为 1 表示高电平 0 0 bUHS_DM_PIN RO 当前 DM 引脚状态,为 0 表示低电平;为 1 表示高电平 0 USB 主机 HUBn 端口控制寄存器(UHUBn_CTRL)(n=0、1): 位 名称 访问 描述 复位值 7 保留 RO 对于 UHUB0_CTRL 是保留 0 7 bUH1_DISABLE RW 对于 UHUB1_CTRL 是 USB 主机 HUB1 端口引脚禁用位,该位 为 1 禁用 HP/HM 引脚,释放 P5.5/P5.4 将用于其它功能; 该位为 0 使能 P5.5/P5.4 作为 HP/HM 用于 HUB1 端口 1 6 bUH_RECV_DIS RW USB 主机 HUBn 端口接收器禁用位,该位为 1 禁用接收器, 没有静态功耗;该位为 0 使能接收器,产生静态功耗 1 5 bUH_DP_PD_DIS RW USB 主机 HUBn 端口 DP/HP 引脚内部下拉电阻禁用位,该位 为 1 禁用内部下拉电阻;该位为 0 使能内部下拉电阻 0 4 bUH_DM_PD_DIS RW USB 主机 HUBn 端口 DM/HM 引脚内部下拉电阻禁用位,该位 为 1 禁用内部下拉电阻;该位为 0 使能内部下拉电阻 0 3 bUH_DIFF_IN R0 对于 UHUB0_CTRL 是当前 DP 和 DM 引脚之间的差分输入状态 对于 UHUB1_CTRL 是当前 HP 和 HM 引脚之间的差分输入状态 x 2 bUH_LOW_SPEED RW USB 主机 HUBn 端口低速模式使能位, 该位为 1 选择 1.5Mbps 低速模式;该位为 0 选择 12Mbps 全速模式 0 1 bUH_BUS_RESET RW USB 主机 HUBn 端口总线复位控制位,该位为 1 强制 HUBn 端口输出 USB 总线复位;该位为 0 结束输出 0 0 bUH_PORT_EN RW USB 主机 HUBn 端口使能位,该位为 0 禁用 HUBn 端口;该位 为 1 使能 HUBn 端口。当 USB 设备断开连接时该位自动清零 0 USB 主机端点模式控制寄存器(UH_EP_MOD): 位 名称 访问 描述 复位值 7 保留 RO 保留 0 6 bUH_EP_TX_EN RW 该位为 0 禁止 USB 主机发送端点发送数据;该位为 1 使能 USB 主机发送端点发送数据(SETUP/OUT) 0 5 保留 RO 保留 0 4 bUH_EP_TBUF_MOD RW USB 主机发送端点数据缓冲区模式控制位 0 3 bUH_EP_RX_EN RO 该位为 0 禁止 USB 主机接收端点接收数据;该位为 1 使能 USB 主机接收端点接收数据(IN) 0 [2:1] 保留 RO 保留 0 bUH_EP_RBUF_MOD RW USB 主机接收端点数据缓冲区模式控制位 00b 0 由 bUH_EP_TX_EN 和 bUH_EP_TBUF_MOD 组合控制 USB 主机发送端点数据缓冲区模式,参考下表。 表 16.4.2 主机发送缓冲区模式 bUH_EP_TX_EN bUH_EP_TBUF_MOD 0 x 端点被禁用,未用到 UH_TX_DMA 缓冲区 1 0 单 64 字节发送缓冲区(SETUP/OUT) 1 双 64 字节发送缓冲区,通过 bUH_T_TOG 选择: 当 bUH_T_TOG=0 时选择前 64 字节缓冲区; 当 bUH_T_TOG=1 时选择后 64 字节缓冲区 1 结构描述:以 UH_TX_DMA 为起始地址 由 bUH_EP_RX_EN 和 bUH_EP_RBUF_MOD 组合控制 USB 主机接收端点数据缓冲区模式,参考下表。 CH559 手册 69 表 16.4.3 主机接收缓冲区模式 bUH_EP_RX_EN bUH_EP_RBUF_MOD 0 x 端点被禁用,未用到 UH_RX_DMA 缓冲区 1 0 单 64 字节接收缓冲区(IN) 1 双 64 字节接收缓冲区,通过 bUH_R_TOG 选择: 当 bUH_R_TOG=0 时选择前 64 字节缓冲区; 当 bUH_R_TOG=1 时选择后 64 字节缓冲区 1 结构描述:以 UH_RX_DMA 为起始地址 USB 主机接收缓冲区起始地址 (UH_RX_DMA): 位 名称 访问 描述 复位值 [7:0] UH_RX_DMA_H RW USB 主机接收缓冲区起始地址高字节,仅低 5 位有效, 高 3 位固定为 0 xxh [7:0] UH_RX_DMA_L RW USB 主机接收缓冲区起始地址低字节,仅高 7 位有效, 最低位固定为 0,仅支持偶地址 xxh USB 主机接发送冲区起始地址 (UH_TX_DMA): 位 名称 访问 描述 复位值 [7:0] UH_TX_DMA_H RW USB 主机发送缓冲区起始地址高字节,仅低 5 位有效, 高 3 位固定为 0 xxh [7:0] UH_TX_DMA_L RW USB 主机发送缓冲区起始地址低字节,仅高 7 位有效, 最低位固定为 0,仅支持偶地址 xxh 17、LED 屏接口 17.1 LED 控制卡接口 CH559 提供了 LED 屏控制卡数据传输接口,内置 4 级 FIFO,支持 DMA 和中断,节约 CPU 处理时 间,支持 1/2/4 路数据线接口。 表 17.1.1 LED 屏接口相关寄存器列表 名称 地址 描述 复位值 LED_STAT 2880h LED 状态寄存器 010x 0000b LED_CTRL 2881h LED 控制寄存器 0000 0010b LED_FIFO_CN 2882h FIFO 计数状态寄存器(只读) 0000 0000b LED_DATA 2882h LED 数据寄存器(只写) xxxx xxxxb LED_CK_SE 2883h LED 时钟分频设置寄存器 0001 0000b LED_DMA_AH 2884h DMA 当前缓冲区地址高字节 000x xxxxb LED_DMA_AL 2885h DMA 当前缓冲区地址低字节 xxxx xxx0b LED_DMA 2884h LED_DMA_AL 和 LED_DMA_AH 组成 16 位 SFR LED_DMA_CN 2886h LED DMA 剩余计数寄存器 xxxx xxxxb LED_DMA_XH 2888h DMA 当前辅助缓冲区地址高字节 000x xxxxb LED_DMA_XL 2889h DMA 当前辅助缓冲区地址低字节 xxxx xxx0b LED_DMA_X 2888h LED_DMA_XL 和 LED_DMA_XH 组成 16 位 SFR pLED_* 298*h 在 bXIR_XSFR 置 1 后,该名称用于以 pdata 类型寻 址上述 xSFR,比 xdata 类型寻址更快捷 xxxxh xxxxh CH559 手册 70 LED 状态寄存器(LED_STAT): 位 名称 访问 描述 复位值 7 bLED_IF_DMA_END RW DMA 完成中断标志位,该位为 1 表示有中断;该位 为 0 则无中断。写 1 清零或写 LED_DMA_CN 时清零 0 6 bLED_FIFO_EMPTY RO FIFO 空状态指示位,为 1 表示 FIFO 空 0 5 bLED_IF_FIFO_REQ RW 该位为 1 表示请求向 FIFO 写入数据中断标志位, 由 FIFO=3V) 1 12 56 MHz 系统主频时钟频率(VDD33
CH559L 价格&库存

很抱歉,暂时无法提供与“CH559L”相匹配的价格&库存,您可以联系我们找货

免费人工找货
CH559L
    •  国内价格
    • 1+10.33560
    • 10+8.89920
    • 30+8.00280

    库存:230

    CH559L
    •  国内价格
    • 1+7.39200
    • 100+7.39200
    • 625+7.39200
    • 1250+7.39200

    库存:7

    CH559L
      •  国内价格
      • 1+9.20310

      库存:30