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

  • 发资料

  • 发帖

  • 提问

  • 发视频

创作活动
CH552E

CH552E

  • 厂商:

    WCH(南京沁恒)

  • 封装:

    MSOP10

  • 描述:

    8 位增强型 USB 单片机

  • 数据手册
  • 价格&库存
CH552E 数据手册
CH552 手册 1 8 位增强型 USB 单片机 CH552、CH551 手册 版本:1E http://wch.cn 1、概述 CH552 芯片是一款兼容 MCS51 指令集的增强型 E8051 内核单片机, 其 79%的指令是单字节单周期 指令,平均指令速度比标准 MCS51 快 8~15 倍。 CH552 支持最高 24MHz 系统主频,内置 16K 程序存储器 ROM 和 256 字节内部 iRAM 以及 1K 字节 片内 xRAM,xRAM 支持 DMA 直接内存存取。 CH552 内置了 ADC 模数转换、触摸按键电容检测、3 组定时器和信号捕捉及 PWM、双异步串口、 SPI、USB 设备控制器和全速收发器等功能模块。 CH551 是 CH552 的简化版,程序存储器 ROM 为 10K,片内 xRAM 为 512 字节,异步串口仅 UART0, 封装形式仅 SOP16,触摸按键仅 4 通道,并且去掉了 ADC 模数转换模块和 USB type-C 模块,其它与 CH552 相同,可直接参考 CH552 手册和资料。 RAM DataFlash USB 设备 type-C 定时器 PWM 串口 型号 程序 ROM CH552 16KB 1280 CH551 10KB 768 128 全/低速 可配置 无 3组 2组 2组 1组 SPI 主/从 ADC 触摸按键 4路 6 通道 无 4 通道 下面为 CH552 的内部框图,仅供参考。 ROM 16KB iFlash Power-on Reset Watch-dog Reset DataFlash 128B iRAM 256B xRAM 1KB 1T E8051 Core Timer0 Timer1 Timer2 Cap1/2 PWM1 PWM2 UART0 UART1 Internal Address & Data & DMA Bus XT Internal Oscillator 4xPLL USB Device 8-bit Port3 8-bit Port2 CMP ADC 8-bit Port1 XT OSC SPI0 M/S Touch Key LDO VolReg 5V->3.3V Pins: GND VCC V33 RST P30~P37 P10~P17 2、特点 l Core:增强型 E8051 内核,兼容 MCS51 指令集,其 79%的指令是单字节单周期指令,平均指令 速度比标准 MCS51 快 8~15 倍,特有 XRAM 数据快速复制指令,双 DPTR 指针。 CH552 手册 2 l ROM:16KB 容量的可多次编程的非易失存储器 ROM,可以全部用于程序存储空间;或者可以分 l l l l l l l l l l l l l l l l l 为 14KB 程序存储区和 2KB 引导代码 BootLoader/ISP 程序区。 DataFlash:128 字节可多次擦写的非易失数据存储器,支持以字节为单位改写数据。 RAM:256 字节内部 iRAM,可以用于快速数据暂存以及堆栈;1KB 片内 xRAM,可以用于大量数 据暂存以及 DMA 直接内存存取。 USB:内嵌 USB 控制器和 USB 收发器,支持 USB-Device 设备模式,支持 USB type-C 主从检测, 支持 USB 2.0 全速 12Mbps 或者低速 1.5Mbps。支持最大 64 字节数据包,内置 FIFO,支持 DMA。 Timer:3 组定时器,T0/T1/T2 为标准 MCS51 定时器。 Capture:定时器 T2 扩展为支持 2 路信号捕捉。 PWM:2 组 PWM 输出,PWM1/PWM2 为 2 路 8 位 PWM 输出。 UART:2 组异步串口,都支持更高通讯波特率,UART0 为标准 MCS51 串口。 SPI:SPI 控制器内置 FIFO,时钟频率最高可达系统主频 Fsys 的一半,支持串行数据输入输出 单工复用,支持 Master/Slave 主从模式。 ADC:4 通道 8 位 A/D 模数转换器,支持电压比较。 Touch-Key:6 通道电容检测,支持最多 15 个触摸按键,支持独立定时中断。 GPIO:支持最多 17 个 GPIO 引脚(含 XI/XO 和 RST 以及 USB 信号引脚)。 Interrupt:支持 14 组中断信号源,包括与标准 MCS51 兼容的 6 组中断(INT0、T0、INT1、T1、 UART0、T2),以及扩展的 8 组中断(SPI0、TKEY、USB、ADC、UART1、PWMX、GPIO、WDOG),其 中 GPIO 中断可以从 7 个引脚中选择。 Watch-Dog:8 位可预设看门狗定时器 WDOG,支持定时中断。 Reset:支持 4 种复位信号源,内置上电复位,支持软件复位和看门狗溢出复位,可选引脚外 部输入复位。 Clock:内置 24MHz 时钟源,可以通过复用 GPIO 引脚支持外部晶体。 Power:内置 5V 到 3.3V 的低压差电压调整器,支持 5V 或 3.3V 甚至 2.8V 电源电压。支持低功 耗睡眠,支持 USB、UART0、UART1、SPI0 以及部分 GPIO 外部唤醒。 芯片内置唯一 ID 号。 3、封装 封装形式 塑体宽度 引脚间距 封装说明 订货型号 TSSOP-20 4.40mm 173mil 0.65mm 25mil 薄小型的 20 脚贴片 CH552T SOP-16 3.9mm 150mil 1.27mm 50mil 标准的 16 脚贴片 CH552G QFN-16 3*3mm 0.50mm 19.7mil 方形无引线 16 脚 CH552P MSOP-10 3.0mm 118mil 0.50mm 19.7mil 微小型的 10 脚贴片 CH552E SOP-16 3.9mm 150mil 1.27mm 50mil 标准的 16 脚贴片 CH551G CH552 手册 3 CH552T 1 2 3 4 5 6 7 8 9 10 CH552G 20 19 18 17 16 15 14 13 12 11 1 2 3 4 5 6 7 8 P3.2/TXD1_/INT0/VBUS1/AIN3 V33 P1.4/T2_/CAP1_/SCS/TIN2/UCC1/AIN1 VCC/VDD P1.5/MOSI/PWM1/TIN3/UCC2/AIN2 GND/VSS P1.6/MISO/RXD1/TIN4 P3.7/UDM P1.7/SCK/TXD1/TIN5 P3.6/UDP RST/T2EX_/CAP2_ P3.4/PWM2/RXD1_/T0 P3.1/PWM2_/TXD P3.3/INT1 P3.0/PWM1_/RXD P1.1/T2EX/CAP2/TIN1/VBUS2/AIN0 16 15 14 13 12 11 10 9 10 9 8 7 6 V33 VCC/VDD GND/VSS P3.7/UDM P3.6/UDP 13 14 15 16 CH551G 1 2 3 4 5 6 7 8 CH552P 16 15 14 13 12 11 10 9 0 P3.2/INT0 V33 P1.4/T2_/CAP1_/SCS/TIN2 VCC/VDD P1.5/MOSI/PWM1/TIN3 GND/VSS P1.6/MISO/TIN4 P3.7/UDM P1.7/SCK/TIN5 P3.6/UDP RST/T2EX_/CAP2_ P3.4/PWM2/T0 P3.1/PWM2_/TXD P3.3/INT1 P3.0/PWM1_/RXD P1.1/T2EX/CAP2/TIN1 P3.4/PWM2/RXD1_/T0 P3.6/UDP P3.7/UDM VCC/VDD V33 P1.5/MOSI/PWM1/TIN3/AIN2 P1.4/T2_/CAP1_/SCS/TIN2/AIN1 P3.2/TXD1_/INT0/VBUS1/AIN3 P1.4/T2_/CAP1_/SCS/TIN2/UCC1/AIN1 P1.5/MOSI/PWM1/TIN3/UCC2/AIN2 P1.6/MISO/RXD1/TIN4 P1.7/SCK/TXD1/TIN5 RST/T2EX_/CAP2_ GND/VSS 1 2 3 4 5 P1.0/T2/CAP1/TIN0 RST/T2EX_/CAP2_ P1.7/SCK/TXD1/TIN5 P1.6/MISO/RXD1/TIN4 8 7 6 5 1 2 3 4 CH552E P3.3/INT1 P1.1/T2EX/CAP2/TIN1/AIN0 P3.0/PWM1_/RXD P3.1/PWM2_/TXD 12 11 10 9 P3.2/TXD1_/INT0/VBUS1/AIN3 V33 P1.4/T2_/CAP1_/SCS/TIN2/UCC1/AIN1 VCC/VDD P1.5/MOSI/PWM1/TIN3/UCC2/AIN2 GND/VSS P1.6/MISO/RXD1/TIN4 P1.2/XI/RXD_ P1.7/SCK/TXD1/TIN5 P1.3/XO/TXD_ RST/T2EX_/CAP2_ P3.7/UDM P1.0/T2/CAP1/TIN0 P3.6/UDP P1.1/T2EX/CAP2/TIN1/VBUS2/AIN0 P3.5/T1 P3.1/PWM2_/TXD P3.4/PWM2/RXD1_/T0 P3.0/PWM1_/RXD P3.3/INT1 4、引脚 引脚号 引脚 其它功能名称 TSSOP20 SOP16 QFN16 名称 (左侧功能优先) 19 15 16 20 16 1 18 14 0 底板 6 6 7 7 - 8 8 9 11 17 - - 16 - - 2 2 3 其它功能描述 VCC VDD 电源输入端,需要外接 0.1uF 电源退耦电容。 V33 内部 USB 电源调整器输出和内部 USB 电源输入, 当电源电压小于 3.6V 时连接 VCC 输入外部电源, 当电源电压大于 3.6V 时外接 0.1uF 电源退耦电容 GND VSS 公共接地端。 RST RST/T2EX_/CAP2_ 后缀下划线的引脚是无下划线的同名引脚的映射。 P1.0 T2/CAP1/TIN0 RST引脚内置下拉电阻;其它GPIO默认有上拉电阻。 T2EX/CAP2/TIN1 RST:外部复位输入。 P1.1 /VBUS2/AIN0 T2:定时/计数器 2 的外部计数输入/时钟输出。 T2EX:定时/计数器 2 重载/捕捉输入。 P1.2 XI/RXD_ CAP1、CAP2:定时/计数器 2 的捕捉输入 1、2。 P1.3 XO/TXD_ TIN0~TIN5:0#~5#通道触摸按键电容检测输入。 T2_/CAP1_/SCS P1.4 /TIN2/UCC1/AIN1 AIN0~AIN3:0#~3#通道 ADC 模拟信号输入。 CH552 手册 4 MOSI/PWM1/TIN3 /UCC2/AIN2 3 3 2 P1.5 4 4 5 P1.6 MISO/RXD1/TIN4 5 5 6 P1.7 SCK/TXD1/TIN5 10 8 10 P3.0 PWM1_/RXD 9 7 9 P3.1 PWM2_/TXD 1 1 4 P3.2 11 10 12 P3.3 INT1 12 11 13 P3.4 PWM2/RXD1_/T0 13 - - P3.5 T1 14 12 14 P3.6 UDP 15 13 15 P3.7 UDM TXD1_/INT0 /VBUS1/AIN3 UCC1、UCC2:USB type-C 双向配置通道。 VBUS1、VBUS2:USB type-C 总线电压检测输入。 XI、XO:外部晶体振荡输入端、反相输出端。 RXD、TXD:UART0 串行数据输入、串行数据输出。 SCS、MOSI、MISO、SCK:SPI0 接口,SCS 是片选输 入,MOSI 是主机输出/从机输入,MISO 是主机输入 /从机输出,SCK 是串行时钟。 PWM1、PWM2:PWM1 输出、PWM2 输出。 RXD1、TXD1:UART1 串行数据输入、串行数据输出。 INT0、INT1:外部中断 0、外部中断 1 输入。 T0、T1:定时器 0、定时器 1 外部输入。 UDM、UDP:USB 设备的 D-、D+信号端。 注:P3.6 和 P3.7 内部使用 V33 作为 I/O 电源,所 以其输入输出的高电平只能到 V33 电压,不支持 5V 5、特殊功能寄存器 SFR 本手册中在对寄存器进行描述时可能使用了下列缩写: 缩写词 描述 RO 表示访问类型:只读 WO 表示访问类型:只写,读取的值无效 RW 表示访问类型:可读可写 H 以其结束表示 16 进制数 B 以其结束表示 2 进制数 5.1 SFR 简介和地址分布 CH552 用特殊功能寄存器 SFR 控制、管理设备以及设置工作模式。 SFR 占用内部数据存储空间的 80h-FFh 地址范围,只能通过直接地址方式的指令访问。其中地 址为 x0h 或 x8h 的寄存器是可以按位寻址的,这样就能避免访问某个具体的位时而修改其他位的值; 其它地址为非 8 倍数的寄存器只能按字节访问。 部分 SFR 仅在安全模式下才能写入数据,而在非安全模式下是只读状态,例如:GLOBAL_CFG、 CLOCK_CFG、WAKE_CTRL。 部分 SFR 具有一个或者多个别名,例如:SPI0_CK_SE/SPI0_S_PRE。 部分地址对应于多个独立的 SFR,例如:SAFE_MOD/CHIP_ID、ROM_CTRL/ROM_STATUS。 CH552 包含 8051 标准 SFR 的寄存器,同时又增加了其他设备控制寄存器。具体 SFR 见下表。 表 5.1 特殊功能寄存器表 SFR 0、8 1、9 2、A 0xF8 SPI0_STAT SPI0_DATA SPI0_CTRL 0xF0 B 0xE8 IE_EX IP_EX UEP4_1_MOD UEP2_3_MOD UEP0_DMA_L 0xE0 ACC USB_INT_EN USB_CTRL USB_DEV_AD 0xD8 USB_INT_FG USB_INT_ST USB_MIS_ST 0xD0 UDEV_CTRL UEP1_CTRL PSW 3、B 6、E 7、F RESET_KEEP WDOG_COUNT UEP0_DMA_H UEP1_DMA_L UEP1_DMA_H UEP2_DMA_L UEP2_DMA_H UEP3_DMA_L UEP3_DMA_H USB_RX_LEN UEP0_CTRL UEP0_T_LEN UEP4_CTRL UEP4_T_LEN UEP1_T_LEN UEP2_CTRL UEP2_T_LEN UEP3_CTRL UEP3_T_LEN SPI0_CK_SE SPI0_S_PRE 4、C 5、D SPI0_SETUP CH552 手册 5 0xC8 T2CON T2MOD RCAP2L RCAP2L TL2 TH2 T2CAP1L T2CAP1H 0xC0 SCON1 SBUF1 SBAUD1 TKEY_CTRL TKEY_DATL TKEY_DATH PIN_FUNC GPIO_IE 0xB8 IP CLOCK_CFG 0xB0 P3 GLOBAL_CFG 0xA8 IE WAKE_CTRL 0xA0 P2 0x98 SCON SBUF ADC_CFG PWM_DATA2 PWM_DATA1 PWM_CTRL PWM_CK_SE ADC_DATA 0x90 P1 USB_C_CTRL P1_MOD_OC P1_DIR_PU P3_MOD_OC P3_DIR_PU 0x88 TCON TMOD TL0 TL1 TH0 TH1 ROM_DATA_L ROM_DATA_H 0x80 ADC_CTRL SP DPL DPH ROM_ADDR_L ROM_ADDR_H SAFE_MOD CHIP_ID XBUS_AUX ROM_CTRL ROM_STATUS PCON 备注:(1)、红色文本代表可以按位寻址;(2)、以下是颜色框对应说明 寄存器地址 SPI0 相关寄存器 ADC 相关寄存器 Touch-Key 相关寄存器 USB 相关寄存器 定时/计数器 2 相关寄存器 端口设置相关寄存器 PWM1 和 PWM2 相关寄存器 UART1 相关寄存器 Flash-ROM 相关寄存器 5.2 SFR 分类和复位值 表 5.2 SFR 描述和复位值 功能分类 名称 时钟、睡眠 及电源控制 描述 复位值 B F0h B 寄存器 0000 0000b ACC E0h 累加器 0000 0000b PSW D0h 程序状态寄存器 0000 0000b 全局配置寄存器(CH552 引导程序状态下) 1010 0000b 全局配置寄存器(CH552 应用程序状态下) 1000 0000b 全局配置寄存器(CH551 引导程序状态下) 1110 0000b 全局配置寄存器(CH551 应用程序状态下) 1100 0000b CH552 芯片 ID 识别码(只读) 0101 0010b CH551 芯片 ID 识别码(只读) 0101 0001b GLOBAL_CFG 系统设置 相关寄存器 地址 B1h CHIP_ID A1h 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 0000h CH552 手册 相关寄存器 中断控制 相关寄存器 Flash-ROM 相关寄存器 端口设置 相关寄存器 定时/计数器 0和1 相关寄存器 UART0 相关寄存器 定时/计数器 2 相关寄存器 6 CLOCK_CFG B9h 系统时钟配置寄存器 1000 0011b WAKE_CTRL A9h 睡眠唤醒控制寄存器 0000 0000b PCON 87h 电源控制寄存器(上电复位状态下) 0001 0000b IP_EX E9h 扩展中断优先级控制寄存器 0000 0000b IE_EX E8h 扩展中断使能寄存器 0000 0000b GPIO_IE C7h 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 状态寄存器(只读) 0000 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 PIN_FUNC C6h 引脚功能选择寄存器 1000 0000b XBUS_AUX A2h 外部总线辅助设置寄存器 0000 0000b P3_DIR_PU 97h P3 端口方向控制和上拉使能寄存器 1111 1111b P3_MOD_OC 96h P3 端口输出模式寄存器 1111 1111b P1_DIR_PU 93h P1 端口方向控制和上拉使能寄存器 1111 1111b P1_MOD_OC 92h P1 端口输出模式寄存器 1111 1111b P3 B0h P3 端口输入输出寄存器 1111 1111b P2 A0h P2 端口输出寄存器 1111 1111b P1 90h P1 端口输入输出寄存器 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 T2CAP1H CFh Timer2 捕捉 1 数据高字节(只读) xxxx xxxxb T2CAP1L CEh Timer2 捕捉 1 数据低字节(只读) xxxx xxxxb T2CAP1 CEh T2CAP1L 和 T2CAP1H 组成 16 位 SFR TH2 CDh Timer2 计数器高字节 0000 0000b TL2 CCh Timer2 计数器低字节 0000 0000b T2COUNT CCh TL2 和 TH2 组成 16 位 SFR RCAP2H CBh 计数重载/捕捉 2 数据寄存器高字节 0000 0000b RCAP2L CAh 计数重载/捕捉 2 数据寄存器低字节 0000 0000b RCAP2 CAh RCAP2L 和 RCAP2H 组成 16 位 SFR T2MOD C9h Timer2 方式寄存器 xxxxh xxxxh xxxxh 0000h 0000h 0000 0000b CH552 手册 PWM1 和 PWM2 相关寄存器 SPI0 相关寄存器 UART1 相关寄存器 ADC 相关寄存器 Touch-Key 相关寄存器 USB 相关寄存器 7 T2CON C8h Timer2 控制寄存器 0000 0000b PWM_CK_SE 9Eh PWM 时钟分频设置寄存器 0000 0000b PWM_CTRL 9Dh PWM 控制寄存器 0000 0010b PWM_DATA1 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 SBAUD1 C2h UART1 波特率设置寄存器 xxxx xxxxb SBUF1 C1h UART1 数据寄存器 xxxx xxxxb SCON1 C0h UART1 控制寄存器 0100 0000b ADC_DATA 9Fh ADC 数据寄存器 xxxx xxxxb ADC_CFG 9Ah ADC 配置寄存器 0000 0000b ADC_CTRL 80h ADC 控制寄存器 x000 0000b TKEY_DATH C5h Touch-Key 数据高字节(只读) 0000 0000b TKEY_DATL C4h Touch-Key 数据低字节(只读) xxxx xxxxb TKEY_DAT C4h TKEY_DATL 和 TKEY_DATH 组成 16 位 SFR TKEY_CTRL C3h Touch-Key 控制寄存器 x000 0000b UEP1_DMA_H EFh 端点 1 缓冲区起始地址高字节 0000 00xxb UEP1_DMA_L EEh 端点 1 缓冲区起始地址低字节 xxxx xxxxb UEP1_DMA EEh UEP1_DMA_L 和 UEP1_DMA_H 组成 16 位 SFR UEP0_DMA_H EDh 端点 0 和 4 缓冲区起始地址高字节 0000 00xxb UEP0_DMA_L ECh 端点 0 和 4 缓冲区起始地址低字节 xxxx xxxxb UEP0_DMA ECh UEP0_DMA_L 和 UEP0_DMA_H 组成 16 位 SFR UEP2_3_MOD EBh 端点 2、3 模式控制寄存器 0000 0000b UEP4_1_MOD EAh 端点 1、4 模式控制寄存器 0000 0000b UEP3_DMA_H E7h 端点 3 缓冲区起始地址高字节 0000 00xxb UEP3_DMA_L E6h 端点 3 缓冲区起始地址低字节 xxxx xxxxb UEP3_DMA E6h UEP3_DMA_L 和 UEP3_DMA_H 组成 16 位 SFR UEP2_DMA_H E5h 端点 2 缓冲区起始地址高字节 0000 00xxb UEP2_DMA_L E4h 端点 2 缓冲区起始地址低字节 xxxx xxxxb UEP2_DMA E4h UEP2_DMA_L 和 UEP2_DMA_H 组成 16 位 SFR 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_RX_LEN DBh USB 接收长度寄存器(只读) 0xxx xxxxb 00xxh 0xxxh 0xxxh 0xxxh 0xxxh CH552 手册 8 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 UEP3_CTRL D6h 端点 3 控制寄存器 0000 0000b UEP2_T_LEN D5h 端点 2 发送长度寄存器 0000 0000b UEP2_CTRL D4h 端点 2 控制寄存器 0000 0000b UEP1_T_LEN D3h 端点 1 发送长度寄存器 0xxx xxxxb UEP1_CTRL D2h 端点 1 控制寄存器 0000 0000b UDEV_CTRL D1h USB 设备端口控制寄存器 10xx 0000b USB_C_CTRL 91h USB type-C 配置通道控制寄存器 0000 0000b 5.3 通用 8051 寄存器 表 5.3.1 通用 8051 寄存器列表 名称 地址 B F0h B 寄存器 00h A、ACC E0h 累加器 00h PSW D0h 程序状态寄存器 00h 全局配置寄存器(CH552 引导程序状态下) A0h 全局配置寄存器(CH552 应用程序状态下) 80h 全局配置寄存器(CH551 引导程序状态下) E0h 全局配置寄存器(CH551 应用程序状态下) C0h CH552 芯片 ID 识别码(只读) 52h CH551 芯片 ID 识别码(只读) 51h GLOBAL_CFG B1h 描述 复位值 CHIP_ID A1h SAFE_MOD A1h 安全模式控制寄存器(只写) 00h PCON 87h 电源控制寄存器(上电复位状态下) 10h 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): 位 名称 访问 描述 复位值 7 CY RW 进位标志位:执行算术运算和逻辑运算指令时,用于记录最高位的 进位或者借位;进行 8 位加法运算时,最高位进位,则该位置位, 0 CH552 手册 9 否则清零;进行 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 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 OV AC 数据地址指针(DPTR): 位 名称 访问 描述 复位值 [7:0] DPL RW 数据指针低字节 00h [7:0] DPH RW 数据指针高字节 00h DPL 和 DPH 组成 16 位数据指针 DPTR,用于访问 xRAM 数据存储器或者程序存储器,实际 DPTR 对应 DPTR0 和 DPTR1 两组物理上的 16 位数据指针,由 XBUS_AUX 中的 DPS 动态选择。 堆栈指针(SP): 位 名称 访问 [7:0] SP RW 描述 堆栈指针,主要用于程序调用和中断调用以及数据进出栈 复位值 07h CH552 手册 10 堆栈具体功能:保护断点和保护现场,按先入后出的原则进行管理。入栈时 SP 指针自动加 1, 保存数据或断点信息;出栈时取 SP 指针指向数据单元,SP 指针自动减 1。SP 在复位后的初值是 07h, 相应的默认堆栈存储从 08h 开始。 5.4 特有寄存器 全局配置寄存器(GLOBAL_CFG),仅在安全模式下可写: 位 名称 访问 描述 复位值 [7:6] 保留 RO 对于 CH552,是固定值 10 10b [7:6] 保留 RO 对于 CH551,是固定值 11 11b 1 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 和 DataFlash 写允许位: 该位为 0 则写保护;为 1 则 Flash-ROM 和 Data 可改写 0 2 bDATA_WE RW Flash-ROM 的 DataFlash 区域写允许位: 该位为 0 则写保护;为 1 则 DataFlash 区域可改写 0 0 0 1 bLDO3V3_OFF RW USB 电源调整器 LDO 的禁用控制位: 该位为 0 则允许 LDO,可以由 5V 电源产生 3.3V 电压用于 USB 和内部时钟振荡器; 为 1 则禁用 LDO,V33 引脚必须输入外部的 3.3V 电源 0 bWDOG_EN RW 看门狗复位使能位:该位为 0 看门狗只用作定时器;该位 为 1 允许计时溢出时产生看门狗复位 芯片 ID 识别码(CHIP_ID): 位 名称 访问 描述 复位值 [7:0] CHIP_ID RO 对于 CH552,是固定值 52h,用于识别芯片 52h [7:0] CHIP_ID RO 对于 CH551,是固定值 51h,用于识别芯片 51h 安全模式控制寄存器(SAFE_MOD): 位 名称 访问 [7:0] SAFE_MOD WO 描述 用于进入或者终止安全模式 复位值 00h 部分 SFR 仅在安全模式下才能写入数据,而在非安全模式下总是只读状态。进入安全模式步骤: (1)、向该寄存器写入 55h; (2)、接着向该寄存器写入 AAh; (3)、此后约 13 到 23 个系统主频周期都处于安全模式下,该有效期内可以改写一个或多个安全类 SFR 或普通 SFR; (4)、超出上述有效期后自动终止安全模式; (5)、或者再向该寄存器写任意值可以提前终止安全模式。 6、存储器结构 CH552 手册 11 6.1 存储器空间 CH552 寻址空间分为程序存储空间、内部数据存储空间、外部数据存储空间。 图 6.1 存储器结构图 Internal Data Address Space FFH 80H 7FH Upper 128 bytes internal RAM (indirect addressing by @R0/R1) Lower 128 bytes internal RAM (direct or indirect addressing) 00H SFR (Direct addressing) Program Address Space Reserved area Data Flash DATA_FLASH_ADDR Reserved area External Data Address Space FFFFH Configuration information ROM_CFG_ADDR Boot Loader Code Flash BOOT_LOAD_ADDR Reserved area @xdata 0400H 03FFH FFFFH C100H C0FFH C000H BFFFH 4000H 3FFFH 3FF8H 3FF7H 3800H 37FFH Application Code Flash 1KB on-chip expanded xRAM @xdata (indirect addressing by MOVX) 0000H 0000H 6.2 程序存储空间 程序存储空间共 64KB,如图 6.1 所示,其中 16KB 用于 ROM,包括保存指令代码的 Code Flash 区域和配置信息 Configuration Information 区域。 Code Flash 包括低地址区域的应用程序代码和高地址区域的引导程序代码,也可将这两块区域 合并用于保存单一应用程序代码。 对于 CH551,Code Flash 的应用程序代码区域仅 10KB。 ROM 是 iFlash™工艺,对于空白 ROM 正式封装后的成品,可以在 5V 电源下进行约 200 次编程。 Data Flash 地址范围为 C000h 到 C0FFH(仅偶地址有效,实际是每隔一个字节有一个存储单元), 只支持单字节(8 位)读和写操作,芯片掉电后数据保持不变。Data Flash 支持约 1 万次擦写,建议 均衡使用,禁止对同一存储单元超过 10K 次擦写,如有更多擦写次数建议用 CH558 或 CH546/7。 配置信息 Configuration Information 包括位于 3FF8H 到 3FFFH 地址的 4 组 16 位数据,后三组 为只读单元,提供芯片 ID。位于 3FF8H 地址的配置数据由编程器根据需要设定,参考表 6.2。 表 6.2 flash-ROM 配置信息描述 位地址 位名称 15 Code_Protect 说明 flash-ROM 中的代码和数据保护模式: 0-禁止编程器读出,程序保密;1-允许读出 建议值 0/1 CH552 手册 12 14 No_Boot_Load 使能 BootLoader 引导代码启动模式: 0-从 0000h 地址的应用程序启动; 1-从 3800h 地址的引导程序启动 13 En_Long_Reset 使能上电复位期间的额外延时复位: 0-标准短复位;1-宽复位,额外增加 44mS 复位时间 0 12 En_RST_RESET 使能 RST 引脚作为手工复位输入引脚:0-禁止;1-使能 RST 0 [11:10] 保留 (由编程器根据需要自动设定为 00) 00 9 Must_1 (由编程器根据需要自动设定为 1) 1 8 Must_0 (由编程器根据需要自动设定为 0) 0 [7:0] All_1 (由编程器根据需要自动设定为 FFh) 1 FFh 6.3 数据存储空间 内部数据存储空间共 256 字节,如图 6.1 所示,已全部用于 SFR 和 iRAM,其中 iRAM 用于堆栈 和快速数据暂存,可细分为工作寄存器 R0-R7、位变量 bdata、字节变量 data、idata 等。 外部数据存储空间共 64KB,如图 6.1 所示,部分用于 1KB 片内扩充 xRAM,剩余为保留区域。 对于 CH551,片内扩充 xRAM 仅 512 字节。 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 状态寄存器(只读) 00h 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 flash-ROM 地址寄存器(ROM_ADDR): 位 名称 访问 [7:0] ROM_ADDR_H RW flash-ROM 地址高字节 xxh RW flash-ROM 地址低字节,只支持偶地址, 对于 Data Flash,必须将实际偏移地址 00H-7FH 左移 1 位变为偶地址 00H/02H/04H…~FEH 后再置入 xxh 描述 复位值 [7:0] ROM_ADDR_L 描述 复位值 flash-ROM 数据寄存器(ROM_DATA): 位 名称 访问 [7:0] ROM_DATA_H RW flash-ROM 待写数据高字节 xxh [7:0] ROM_DATA_L RW flash-ROM 待写数据低字节, 对于 DataFlash,是待写数据字节或读出的数据字节 xxh flash-ROM 控制寄存器(ROM_CTRL): CH552 手册 13 位 名称 访问 [7:0] ROM_CTRL WO 描述 flash-ROM 控制寄存器 复位值 00h flash-ROM 状态寄存器(ROM_STATUS): 位 名称 访问 描述 复位值 7 保留 RO 保留 0 6 bROM_ADDR_OK RO flash-ROM 写操作地址有效状态位: 该位为 0 表示参数无效;为 1 表示地址有效 0 [5:2] 保留 RO 保留 1 bROM_CMD_ERR RO flash-ROM 操作命令错误状态位: 该位为 0 表示命令有效;为 1 表示是未知命令 0 0 保留 RO 保留 0 0000b 6.5 flash-ROM 操作步骤 1、写 flash-ROM 代码区域,向目标地址写入双字节数据: (1)、如果需要写 flash-ROM 代码,则必须选择 5V 电源电压; (2)、使能安全模式,SAFE_MOD = 55h;SAFE_MOD = 0AAh; (3)、设置全局配置寄存器 GLOBAL_CFG 开启写使能(bCODE_WE 或 bDATA_WE 对应 code 或 data); (4)、设置地址寄存器 ROM_ADDR,写入 16 位目标地址(最低位总是 0) ; (5)、设置数据寄存器 ROM_DATA,写入 16 位要写入的数据,步骤(4)、(5)顺序可对调; (6)、设置操作控制寄存器 ROM_CTRL 为 09Ah,执行写操作,操作期间程序自动暂停运行; (7)、操作完成后程序恢复运行,此时查询状态寄存器 ROM_STATUS 可以查看此次操作状态;如果 要写多个数据,则循环(4)、(5)、(6)、(7)步骤; (8)、再次进入安全模式,SAFE_MOD = 55h;SAFE_MOD = 0AAh; (9)、设置全局配置寄存器 GLOBAL_CFG 开启写保护(bCODE_WE=0,bDATA_WE=0)。 2、写 Data Flash 数据区域,向目标地址写入单字节数据: (1)、使能安全模式,SAFE_MOD = 55h;SAFE_MOD = 0AAh; (2)、设置全局配置寄存器 GLOBAL_CFG 开启写使能(bDATA_WE 对应 data); (3)、设置地址寄存器 ROM_ADDR,写入 16 位目标地址,实际偏移地址 00H-7FH 必须左移 1 位变为 偶地址 00H/02H/04H…~FEH 后再置入,最终地址依次是 C000H/C002H/C004…; (4)、设置数据寄存器 ROM_DATA_L,写入 8 位要写入的数据,步骤(3)、(4)顺序可对调; (5)、设置操作控制寄存器 ROM_CTRL 为 09Ah,执行写操作,操作期间程序自动暂停运行; (6)、操作完成后程序恢复运行,此时查询状态寄存器 ROM_STATUS 可以查看此次操作状态;如果 要写多个数据,则循环(3)、(4)、(5)、(6)步骤; (7)、再次进入安全模式,SAFE_MOD = 55h;SAFE_MOD = 0AAh; (8)、设置全局配置寄存器 GLOBAL_CFG 开启写保护(bCODE_WE=0,bDATA_WE=0)。 3、读 Data Flash 数据区域,从目标地址读取单字节数据: (1)、设置地址寄存器 ROM_ADDR,写入 16 位目标地址,实际偏移地址 00H-7FH 必须左移 1 位变为 偶地址,最终地址依次是 C000H/C002H/C004…; (2)、设置操作控制寄存器 ROM_CTRL 为 08Eh,执行读操作,操作期间程序自动暂停运行; (3)、操作完成后程序恢复运行,此时查询状态寄存器 ROM_STATUS 中的 bROM_CMD_ERR 可以查看此 次操作状态;如果命令有效,那么读出的 8 位数据将保存在数据寄存器 ROM_DATA_L 中; (4)、如果要读多个数据,则循环(1)、(2)、(3)步骤。 CH552 手册 14 4、读 flash-ROM: 直接使用 MOVC 指令,或通过指向程序存储空间的指针,读取目标地址的 code 或 data。 6.6 在板编程和 ISP 下载 当配置信息 Code_Protect=1 时,CH552 芯片 flash-ROM 中的代码和 Data Flash 中的数据可以 由外部的编程器通过同步串行接口读写; 当配置信息 Code_Protect=0 时, flash-ROM 中的代码和 Data Flash 中的数据被保护,无法读出,但是可以被擦除,擦除后重新上电则解除代码保护。 当 CH552 芯片被预置了 BootLoader 引导程序后,CH552 可以支持 USB 或者异步串口等多种 ISP 下载方式加载应用程序;但在没有引导程序的情况下,CH552 只能由外部专用编程器写入引导程序 或者应用程序。为了支持在板编程,必须临时使用 5V 电源电压,并且电路中需要预留 CH552 与编程 器之间的 4 根连接引脚,最少的必要连接引脚是 3 根:P1.4、P1.6、P1.7。 表 6.6.1 与编程器之间的连接引脚 引脚 GPIO 引脚描述 RST RST 编程状态下的复位控制引脚,高电平允许进入编程状态 SCS P1.4 编程状态下的片选输入引脚(必要) ,默认高电平,低电平有效 SCK P1.7 编程状态下的时钟输入引脚(必要) MISO P1.6 编程状态下的数据输出引脚(必要) 注:无论是在板编程或者是通过串口或 USB 下载程序,都必须临时使用 5V 电源电压。 6.7 芯片唯一 ID 号 每只单片机出厂时都具有唯一 ID 号,即芯片身份识别号。该 ID 数据共 5 个字节,存储于配置 信息 Configuration Information 区域的 3FFAH 到 3FFFH 地址。其中 3FFBH 地址为保留单元,3FFCH 和 3FFEH 两个地址各 16 位数据以及 3FFAH 地址的 8 位数据合并为 40 位芯片 ID 数据。 表 6.7.1 芯片 ID 地址表 程序空间地址 ID 数据描述 3FFAh、3FFBh ID 末字数据,依次是 40 位 ID 号的最高字节、保留字节 3FFCh、3FFDh ID 首字数据,依次是 ID 号的最低字节、次低字节 3FFEh、3FFFh ID 次字数据,依次是 ID 号的次高字节、高字节 该 ID 数据可以通过读 Code Flash 的方式获取。ID 号可以配合下载工具用于对目标程序进行加 密,一般的应用,只需使用到 ID 号前 32 位,即可以忽略 3FFAH 地址的 8 位数据。 7、电源管理、睡眠及复位 7.1 外部电源输入 CH552 芯片内置 5V 到 3.3V 的低压差电压调整器,支持外部 5V 或者 3.3V 甚至 2.8V 电源电压输 入,两种电源电压输入模式参考下表。 外部电源电压 VCC 引脚电压:外部电压 3V~5V V33 引脚电压:内部电压 3.3V 3.3V 或 3V 包括小于 3.6V 输入外部 3.3V 电压到电压调整器, 必须对地接不小于 0.1uF 退耦电容 输入外部 3.3V 作为内部工作电源, 必须对地接不小于 0.1uF 退耦电容 5V 包括大于 3.6V 输入外部 5V 电压到电压调整器, 必须对地接不小于 0.1uF 退耦电容 内部电压调整器 3.3V 输出 及 3.3V 内部工作电源输入, 必须对地接不小于 0.1uF 退耦电容 在电源上电或者系统复位后,CH552 默认处于运行状态。在性能满足要求的前提下,适当降低 CH552 手册 15 系统主频可以降低运行时的功耗。当 CH552 完全不需要运行时,可以设置 PCON 中的 PD 进入睡眠状 态,睡眠状态下可以选择通过 USB、UART0、UART1、SPI0 以及部分 GPIO 进行外部唤醒。 7.2 电源和睡眠控制寄存器 表 7.2.1 电源和睡眠控制寄存器列表 名称 地址 描述 复位值 WDOG_COUNT FFh 看门狗计数寄存器 00h RESET_KEEP FEh 复位保持寄存器 00h WAKE_CTRL A9h 睡眠唤醒控制寄存器 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 6 bWAK_RXD1_LO RW UART1 接收输入低电平唤醒使能,该位为 0 禁止唤醒。 根据 bUART1_PIN_X=0/1 选择 RXD1 或 RXD1_引脚 0 5 bWAK_P1_5_LO RW P1.5 低电平唤醒使能,为 0 禁止唤醒 0 4 bWAK_P1_4_LO RW P1.4 低电平唤醒使能,为 0 禁止唤醒 0 3 bWAK_P1_3_LO RW P1.3 低电平唤醒使能,为 0 禁止唤醒 0 2 bWAK_RST_HI RW RST 高电平唤醒使能,为 0 禁止唤醒 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 电源控制寄存器(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 CH552 手册 16 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 电源上电复位,来源:VCC 引脚电压低于检测电平 1 0 看门狗复位,来源:bWDOG_EN=1 并且看门狗超时溢出 1 1 外部引脚手工复位,来源:En_RST_RESET=1 并且 RST 输入高电平 7.3 复位控制 CH552 有 4 个复位源:上电复位、外部复位、软件复位、看门狗复位,后三者属于热复位。 7.3.1 上电复位 上电复位 POR 由片内电压检测电路产生。POR 电路持续监控 VCC 引脚的电源电压,低于检测电 平 Vpot 时产生上电复位,并由硬件自动延时 Tpor 以保持复位状态,延时结束后 CH552 运行。 只有上电复位才使 CH552 重新加载配置信息以及清零 RESET_KEEP,其它热复位不影响。 7.3.2 外部复位 外部复位由外加于 RST 引脚的高电平产生。当配置信息 En_RST_RESET 为 1,并且 RST 引脚上的 高电平持续时间大于 Trst 时触发复位过程。当外加高电平信号撤消后,硬件自动延时 Trdl 以保持 复位状态,延时结束后 CH552 从 0 地址开始执行。 7.3.3 软件复位 CH552 支持内部软件复位,以便不需要外部干预即可主动复位 CPU 状态并重新运行。设置全局 配置寄存器 GLOBAL_CFG 中的 bSW_RESET 为 1,即可软件复位,并且自动延时 Trdl 以保持复位状态, 延时结束后 CH552 从 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 将不 产生新的复位标志,而是保持前一次的复位标志不变。 对于有 ISP 引导程序的芯片,电源上电复位后,先运行引导程序,该程序根据需要软件复位芯 片以切换到应用程序状态,此次软件复位只导致 bBOOT_LOAD 清零,不影响 bRST_FLAG1/0 的状态(由 于复位前 bBOOT_LOAD=1),所以当切换到应用程序状态时,bRST_FLAG1/0 仍指示为上电复位状态。 7.3.4 看门狗复位 看门狗复位由看门狗定时器超时溢出时产生。看门狗定时器是 8 位计数器,其计数的时钟频率 为系统主频 Fsys/65536,当计满 0FFh 转向 00h 时产生溢出信号。 看门狗定时器溢出信号将触发中断标志 bWDOG_IF_TO 为 1,该中断标志在重新加载 WDOG_COUNT 时或者进入相应的中断服务程序时被自动清零。 通过向 WDOG_COUNT 写入不同的计数初始值,从而实现不同的定时周期 Twdc。在 6MHz 主频下, 写入 00h 时的看门狗定时周期 Twdc 约为 2.8 秒,写入 80h 时约为 1.4 秒。在 12MHz 主频时减半。 如果看门狗定时器溢出时 bWDOG_EN=1,那么产生看门狗复位,并且自动延时 Trdl 以保持复位 状态,延时结束后 CH552 从 0 地址开始执行。 当 bWDOG_EN=1 时为了避免被看门狗复位,必须及时重置 WDOG_COUNT,避免其溢出。 CH552 手册 17 8、系统时钟 8.1 时钟框图 图 8.1.1 时钟系统及结构图 内部时钟24MHz Fpll bOSC_EN_INT 1 0 Fosc 4xPLL倍频器 Fosc X 4 = 96MHz 外部晶振 USB时钟分频器 Fpll / 2 = 48MHz 系统时钟分频选择 MASK_SYS_CK_SEL Fsys bOSC_EN_XT USB XI 分频选择 bADC_CLK XO 分频器 SPI0_CK_SE 分频器 PWM_CK_SE ADC SPI0 PWM1/2 UART1 Touch-Key xRAM 分频器 除以65536 Watch-DOG E8051_core T0/T1/T2/UART0/GPIO iFlashROM/iRAM/SFR Fsys 内部时钟或者外部时钟经过二选一后作为原始时钟 Fosc,再经过 4xPLL 倍频后产生 Fpll 高频 时钟,最后经过两组分频器分别得到系统时钟 Fsys 和 USB 模块的时钟 Fusb4x。系统时钟 Fsys 直接 提供给 CH552 的各个模块。 8.2 寄存器描述 表 8.2.1 时钟控制寄存器列表 名称 地址 描述 复位值 CH552 手册 18 B9h CLOCK_CFG 系统时钟配置寄存器 83h 系统时钟配置寄存器(CLOCK_CFG),仅在安全模式下可写: 位 7 名称 bOSC_EN_INT 6 bOSC_EN_XT 访问 描述 复位值 RW 内部时钟振荡器使能,该位为 1 使能内部时钟振荡器 并且选用内部时钟;该位为 0 关闭内部时钟振荡器并 且选用外部晶体振荡器提供时钟 1 RW 外部晶体振荡器使能,该位为 1 则 P1.2/P1.3 引脚作 为 XI/XO 并启用振荡器,需在 XI 和 XO 之间外接石英 晶体或陶瓷振荡器;该位为 0 关闭外部振荡器 0 0 5 bWDOG_IF_TO RO 看门狗定时器中断标志位,该位为 1 表示有中断,由 定时器溢出信号触发;该位为 0 表示无中断。该位在 重新加载看门狗计数寄存器 WDOG_COUNT 时或者进入 相应的中断服务程序后自动清零 4 bROM_CLK_FAST RW flash-ROM 参 考 时 钟 频 率 选 择 : 0- 正 常 ( 如 果 Fosc>=16MHz) ;1-加快(如果 Fosc= min(可能接收到的最大数据包长度 + 2 字节,64 字节) 17、触摸按键 Touch-Key 17.1 Touch-Key 简介 CH552 芯片提供了电容检测模块及相关的定时器,具有 6 个输入通道,支持电容量范围 5pF~ 150pF。自电容方式可以支持最多 6 个触摸按键,互电容方式可以支持最多 15 个触摸按键。 17.2 Touch-Key 寄存器 表 17.2.1 Touch-Key 相关寄存器列表 名称 地址 描述 复位值 TKEY_CTRL C3h Touch-Key 控制寄存器 x0h TKEY_DATH C5h Touch-Key 数据高字节(只读) 00h TKEY_DATL C4h Touch-Key 数据低字节(只读) xxh TKEY_DAT C4h TKEY_DATL 和 TKEY_DATH 组成 16 位 SFR 00xxh Touch-Key 控制寄存器(TKEY_CTRL): 位 名称 访问 描述 复位值 x 7 bTKC_IF RO 定时中断标志。如果 bTKD_CHG=0 则在当前定时周 期结束时自动置 1 请求中断,当准备阶段结束时自 动 清 零 , 或 者 通 过 写 TKEY_CTRL 清 零 。 如 果 bTKD_CHG=1 则自动清零,不请求中断,跳过当前周 期,然后在下一个周期重新准备和检测,并在下一 个周期结束时自动置 1 请求中断 [6:5] 保留 RO 保留 0 00b 4 bTKC_2MS RW 电容检测定时器的周期选择:0-1mS;1-2mS。 每周期的前 87uS 为准备阶段,剩余时间检测阶段。 上述时间是基于 Fosc=24MHz 时的时间 3 保留 RO 保留 0 2 bTKC_CHAN2 RW 触摸按键电容检测输入选择高位 0 1 bTKC_CHAN1 RW 触摸按键电容检测输入选择中位 0 CH552 手册 0 48 bTKC_CHAN0 RW 触摸按键电容检测输入选择低位 0 由 bTKC_CHAN2~bTKC_CHAN0 选择触摸按键电容检测输入通道。 bTKC_CHAN2 bTKC_CHAN1 bTKC_CHAN0 0 0 关闭电容检测模块的电源, 仅用作周期为 1mS 或者 2mS 的独立定时中断 0 0 1 TIN0(P1.0) 0 1 0 TIN1(P1.1) 0 1 1 TIN2(P1.4) 1 0 0 TIN3(P1.5) 1 0 1 TIN4(P1.6) 1 1 0 TIN5(P1.7) 1 1 1 开启电容检测模块的电源但不连接任何通道 0 选择触摸按键电容检测输入通道 Touch-Key 数据寄存器(TKEY_DAT): 位 名称 访问 描述 复位值 RO Touch-Key 控制变化标志。该位为 1 说明 TKEY_CTRL 在 电容检测阶段被改写,有可能导致 TKEY_DAT 数据无效, 并且在当前周期结束时将不置 bTKC_IF。该位在每个定 时周期的准备阶段结束时自动清零,取数据需屏蔽该位 0 RO 保留 0 RO Touch-Key 数据高字节。在每个定时周期的准备阶段结 束时自动清零;在电容检测阶段自动计数;在准备阶段 保持数据不变,以便定时中断程序读取 00h RO Touch-Key 数据低字节。在每个定时周期的准备阶段结 束时自动清零;在电容检测阶段自动计数;在准备阶段 保持数据不变,以便定时中断程序读取 xxh bTKD_CHG 7 TKEY_DATH[7] 6 [5:0] [7:0] 保留 TKEY_DATH TKEY_DATL 17.3 Touch-Key 功能 电容检测步骤: (1)、设置 TKEY_CTRL 寄存器中的 bTKC_2MS 和 bTKC_CHAN2~bTKC_CHAN0,选择周期和输入通道。被 选择的输入通道,其所在 GPIO 引脚必须设置为高阻输入模式、或者开漏输出模式并且处于输 出 1 的状态(相当于高阻输入) ,Pn_DIR_PU[x]=0。 (2)、清零 bTKC_IF 并开启中断 IE_TKEY 等待定时中断,或者通过主动查询 bTKC_IF 进入中断程序。 (3)、当前通道的电容检测完毕后将自动设置 bTKC_IF 请求中断,同时进入下一个周期的准备阶段, 并保持 TKEY_DAT 数据不变约 87uS。 (4)、进入中断程序中,首先从 TKEY_DAT 中读取当前通道的电容数据,并屏蔽最高位 bTKD_CHG,该 数据是相对值,与电容量成反比,当触摸按键按下时的数据比未按下时的数据小。 (5)、设置 TKEY_CTRL 寄存器中的 bTKC_2MS 和 bTKC_CHAN2~bTKC_CHAN0,选择下一个输入通道。该 写操作将自动清零 bTKC_IF,结束中断请求。 (6)、用步骤(4)读取的 TKEY_DAT 数据与之前保存的该通道无按键时的数据比较,判断是否电容变化 和是否有按键被按下。 (7)、中断返回,当下一个通道的电容检测完毕后将转向步骤(3)。 18、参数 CH552 手册 49 18.1 绝对最大值(临界或者超过绝对最大值将可能导致芯片工作不正常甚至损坏) 名称 参数说明 最小值 最大值 单位 TA 工作时的环境温度 -40 85 ℃ TS 储存时的环境温度 -55 125 ℃ VCC 电源电压(VCC 接电源,GND 接地) -0.4 5.8 V VIO 除 P3.6/P3.7 之外其它输入或者输出引脚上的电压 -0.4 VCC+0.4 V VIOU P3.6/P3.7 输入或者输出引脚上的电压 -0.4 V33+0.4 V 最小值 典型值 最大值 单位 3.7 5 5.5 V 3.4 V 18.2 电气参数 5V(测试条件:TA=25℃,VCC=5V,Fsys=6MHz) 名称 VCC5 参数说明 VCC 引脚电源电压 V33 仅外接电容 V33 内部 USB 电源调整器输出电压 3.14 3.27 ICC24M5 Fsys=24MHz 工作时的总电源电流 8 11 mA ICC6M5 Fsys=6MHz 工作时的总电源电流 4 6 mA ICC750K5 Fsys=750KHz 工作时的总电源电流 2 3 mA ISLP5 睡眠后的总电源电流 0.1 0.2 mA ISLP5L VCC=V33=5V,且选用外部晶体时钟, 且 bLDO3V3_OFF=1 关闭 LDO, 完全睡眠后的总电源电流 0.008 0.02 mA IADC5 ADC 模数转换模块工作电流 200 800 uA ICMP5 电压比较器模块工作电流 100 500 uA ITKEY5 触摸按键电容检测模块工作电流 150 250 uA VIL5 低电平输入电压 -0.4 1.2 V VIH5 高电平输入电压 2.4 VCC+0.4 V VOL5 低电平输出电压(12mA 吸入电流) 0.4 V VOH5 高电平输出电压(8mA 输出电流) VCC-0.4 V VOH5U P3.6/P3.7 高电平输出电压(8mA 输出电流) V33-0.4 V IIN 无上拉输入端的输入电流 -5 0 5 uA IDN5 带下拉电阻输入端的输入电流 -35 -70 -140 uA IUP5 带上拉电阻输入端的输入电流 35 70 140 uA IUP5X 带上拉输入端由低向高翻转时的输入电流 250 400 600 uA Vpot 电源上电复位的门限电压 2.1 2.3 2.5 V 18.3 电气参数 3.3V(测试条件:TA=25℃,VCC=V33=3.3V,Fsys=6MHz) 名称 VCC3 参数说明 VCC 引脚 电源电压 最小值 典型值 最大值 单位 V33 短接到 VCC,开启 USB 3.0 3.3 3.6 V V33 短接到 VCC,关闭 USB 2.7 3.3 3.6 V ICC16M3 Fsys=16MHz 工作时的总电源电流 4 6 mA ICC6M3 Fsys=6MHz 工作时的总电源电流 2 4 mA ICC750K3 Fsys=750KHz 工作时的总电源电流 1 2 mA ISLP3 睡眠后的总电源电流 0.07 0.15 mA ISLP3L bLDO3V3_OFF=1 关闭 LDO, 完全睡眠后的总电源电流 0.004 0.01 mA IADC3 ADC 模数转换模块工作电流 150 500 uA CH552 手册 50 ICMP3 电压比较器模块工作电流 70 300 uA ITKEY3 触摸按键电容检测模块工作电流 130 200 uA VIL3 低电平输入电压 -0.4 0.8 V VIH3 高电平输入电压 1.9 VCC+0.4 V VOL3 低电平输出电压(8mA 吸入电流) 0.4 V VOH3 高电平输出电压(5mA 输出电流) VCC-0.4 V VOH3U P3.6/P3.7 高电平输出电压(8mA 输出电流) V33-0.4 V IIN 无上拉输入端的输入电流 -5 0 5 uA IDN3 带下拉电阻输入端的输入电流 -15 -30 -60 uA IUP3 带上拉电阻输入端的输入电流 15 30 60 uA IUP3X 带上拉输入端由低向高翻转时的输入电流 100 170 250 uA Vpot 电源上电复位的门限电压 2.1 2.3 2.5 V 18.4 时序参数(测试条件:TA=25℃,VCC=5V 或 VCC=V33=3.3V,Fsys=6MHz) 名称 参数说明 最小值 典型值 最大值 单位 Fxt 外部晶体频率或者 XI 输入时钟频率 6 24 25 MHz Fosc V33=3V~3.6V 时经校准后的内部时钟频率 23.64 24 24.36 MHz Fosc28 V33=2.8V~3V 时经校准后的内部时钟频率 23.28 24 24.72 MHz Fosc27 V33=2.7V 时经校准后的内部时钟频率 21 24 25 MHz Fpll 内部倍频后的 PLL 频率 24 96 100 MHz Fusb4x 使用 USB 设备功能时,USB 采样时钟频率 47.04 48 48.96 MHz 系统主频时钟频率(VCC>=4.4V) 0.1 6 24 MHz 系统主频时钟频率(4.4V>VCC>=3.3V) 0.1 6 16 MHz 系统主频时钟频率(VCC
CH552E 价格&库存

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

免费人工找货
CH552E
  •  国内价格
  • 1+2.34900
  • 30+2.26800
  • 100+2.10600
  • 500+1.94400
  • 1000+1.86300

库存:245

CH552E
    •  国内价格
    • 1+3.70750
    • 10+3.01460
    • 30+2.67960
    • 100+2.33310
    • 500+2.12520
    • 1000+2.02130

    库存:0