CH567 WCH | Alldatasheet

Document overview

  • Manufacturer or author: Provided By ALLDATASHEET.COM(FREE DATASHEET DOWNLOAD SITE)
  • PDF pages: 88

Technical content

V1.1 相关资料下载网址:www.wch.cn CH567 数据手册 概述 CH567是高性能的 32位 RISC精简指令集微控制器,内置192KB FLASH闪存、32KB SRAM及32KB DataFlash。片上集成两组独立的高速USB2.0主/从控制器、4组 SD控制器、加密算法模块、4组 UART 接口、7组PWM、3组定时器等丰富的外设资源,可广泛的应用于各种嵌入式应用。 功能  内核: - 32位 RISC精简指令集内核 - 最高主频120MHz  存储: - 192KB字节程序存储区,支持写保护 - 32KB 字节SRAM - 32KB字节DataFlash  双USB2.0高速收发器(内置PHY): - 高速Host / Device模式 - 支持控制/批量/中断/同步传输 - 支持双缓冲PINT-PONG机制 - 支持DMA  4 组独立SD控制器: - 支持单线、4线、8 线通讯模式 - 支持SD/TF卡、SDIO卡以及eMMC卡等 - 内置FIFO - 支持AES和SM4算法 - 提供8 种加解密模式 - 支持DMA  定时器: - 3组26位定时器 - 支持信号宽度采样/边沿捕捉、PWM可调输 出、计数功能 - TMR1和 TMR2支持DMA  通用异步串口UART: - 4组独立UART,兼容16C550 - 最高波特率6Mbps - 内置FIFO,多个触发级  PWMX: - 扩展4组PWM输出 - 占空比可调  SPI: - 2 组 SPI 接口,1 个支持Master 和 Slave 模式,1个只支持Master模式 - 内置FIFO - SPI0支持DMA  LED屏接口: - 支持1/2/4路数据线 - 内置FIFO,支持双缓冲 - 支持DMA  主动并口: - 8位数据、15位地址总线 - 时序可调  低功耗: - 睡眠模式 - 支持部分GPIO或者USB信号唤醒  通用I/O端口: - 30个GPIO口 - 8个引脚可设置电平/边沿中断 - 部分引脚具有复用及映射功能  芯片ID号: - 唯一64bit ID 识别号  电源:  封装:LQFP48 应用 安全存储、家居安防、USB相关应用、监控、报警系统、打印机、扫描仪等应用控制。

CH567数据手册 相关资料下载网址:www.wch.cn 第 1 章 引脚信息 1.1 引脚排列 图 2-1 LQFP48封装引脚排列 1.2 引脚描述 引 脚 号 引脚 名称 类型 主功能(复位后)/ 复用功能及映射 功能描述

1 PA1 I/O PA1

/MOSI1/LED1/CMD2/A1 PA1:通用双向数字I/0引脚。 MOSI1:SPI1串行数据引脚,主机输出。 LED1:LED串行数据线1。 CMD2:SD2控制器命令信号线。 A1:并口地址线1。

2 PA0 I/O PA0

/SCK1/LED0/CMD1/A0 PA0:通用双向数字I/0引脚。 SCK1:SPI1串行时钟引脚,主机时钟输出。

CH567数据手册 相关资料下载网址:www.wch.cn LED0:LED串行数据线0。 CMD1:SD1控制器命令信号线。 A0:并口地址0。 3 V33IO1 P V33I01 外设1组的3.3V电源,需外接0.1uF电容。

4 PB7 I/O PB7

/TXD0/SD33/D7 PB7:通用双向数字I/0引脚。 TXD0:UART0串行数据输出。 SD33:SD3控制器数据线3。 D7:并口数据线7。

5 PB6 I/O PB6

/RTS/SD32/D6 PB6:通用双向数字I/0引脚。 RTS:UART0的 MODEM输出信号,请求发送。 SD32:SD3控制器数据线2。 D6:并口数据线6。

6 PB5 I/O PB5

/DTR/SD31/D5 PB5:通用双向数字I/0引脚。 DTR:UART0的 MODEM输出信号,数据终端就绪。 SD31:SD3控制器数据线1。 D5:并口数据线5。

7 PB4 I/O PB4

/SD30/D4/RXD0/INT6 PB4:通用双向数字I/0引脚。 SD30:SD3控制器数据线0。 D4:并口数据线4。 RXD0:UART0串行数据输入。 INT6:IO中断 6。

8 PB3 I/O PB3

/SD23/D3/DCD PB3:通用双向数字I/0引脚。 SD23:SD2控制器数据线3。 D3:并口数据线3。 DCD:UART0的 MODEM输入信号,载波检测。

9 PB2 I/O

/PWM5_/SD22/D2/CAP1_ /RI PB2:通用双向数字I/0引脚。 PWM5_:PWM5功能映射。 SD22:SD2控制器数据线2。 D2:并口数据线2。 CAP1_:CAP1功能映射。 RI:UART0的MODEM输入信号,振铃指示。

10 PB1 I/O PB1

/SD21/D1/DSR PB1:通用双向数字I/0引脚。 SD21:SD2控制器数据线1。 D1:并口数据线1。 DSR:UART0的 MODEM输入信号,数据装置就绪。

11 PB0 I/O PB0

/SD20/D0/CTS PB1:通用双向数字I/0引脚。 SD20:SD2控制器数据线0。 D0:并口数据线0。 CTS:UART0的 MODEM输入信号,清除发送。

12 RUSB0 I/O RUSB0 需对地接12KΩ电阻,用于USB0-PHY。

13 UDP0 USB UDP0(UD0+) USB0总线的D+数据线。

14 UDM0 USB UDM0(UD0-) USB0总线的D-数据线。

15 V33USB P V33USB USB0外设电源。

16 XO I/O XO 晶体振荡反相输出端。

17 XI I XI 晶体振荡输入端。

18 RUSB1 I/O RUSB1 需对地接12KΩ电阻,用于USB1-PHY。

19 UDP1 USB UDP1(UD1+) USB1总线的D+数据线。

20 UDM1 USB UDM1(UD1-) USB1总线的D-数据线。

21 V33IO3 P V33IO3 USB1和外设3组 3.3V电源,需外接0.1uF电容。

CH567数据手册 相关资料下载网址:www.wch.cn

22 GND P GND 地:公共接地端,0V参考点。

23 VCORE P VCORE 内核电源,需连接VCORE并外接0.1uF电容。

24 PB11 I/O PB11

/PWM6_/A14/CAP2_ PB11:通用双向数字I/0引脚。 PWM6_:PWM6功能映射。 A14:并口地址线14。 CAP2_:CAP2功能映射。

25 PB12 I/O PB12

/A12 PB12:通用双向数字I/0引脚。 A12:并口地址线12。

26 PB13 I/O PB13

/A13 PB13:通用双向数字I/0引脚。 A13:并口地址线13。

27 PB8 I/O PB8

/RD#/RXD1_ PB9:通用双向数字I/0引脚。 RD#:并口读控制线。 RXD1_:UART1的 RXD引脚映射。

28 PB9 I/O PB9

/TXD1_/WR# PB9:通用双向数字I/0引脚。 TXD1_:UART1的 TXD引脚映射。 WR#:并口写控制线。

29 PB10 I/O PB10

/DBGIO/INT7 PB10:通用双向数字I/0引脚。 DBGIO:仿真调试接口的数据输入输出口。 INT7:IO中断 7。

30 RST# I RST#

/DBGCK RST#:外部复位输入脚,低电平有效,内置上拉电阻。 DBGCK:仿真调试接口的时钟输入口。

31 PA3 I/O

/PWM4/LED3/A3/CAP0 /INT0 PA3:通用双向数字I/0引脚。 PWM4:脉宽调制输出通道4。 LED3:LED串行数据线3。 A3:并口地址线3。 CAP0:定时器 0 捕获输入引脚。 INT0:IO中断 0。

32 PA4 I/O

/PWM0/LEDC/A4/RXD3 /INT1 PA4:通用双向数字I/0引脚。 PWM0:脉宽调制输出通道0。 LEDC:LED串行时钟线。 A4:并口地址线4。 RXD3:UART3串行数据输入。 INT1:IO中断 1。

33 PA5 I/O PA5

/TXD3/PWM1/A5 PA5:通用双向数字I/0引脚。 TXD3:UART3串行数据输出。 PWM1:脉宽调制输出通道1。 A4:并口地址线5。

34 PA6 I/O PA6

/SDCK/A6/RXD2/INT2 PA6:通用双向数字I/0引脚。 SDCK:SD控制器时钟线输出。 A6:并口地址线6。 RXD2:UART2串行数据输入。 INT2:IO中断 2。

35 PA7 I/O PA7

/TXD2/CMD0/A7 PA7:通用双向数字I/0引脚。 TXD2:UART2串行数据输出。 CMD0:SD0控制器命令信号线。 A7:并口地址线7。

36 PA8 I/O PA8

/PWM2/SD00/A8/RXD1 PA8:通用双向数字I/0引脚。 PWM2:脉宽调制输出通道2。 SDOO:SD0控制器数据线0。

CH567数据手册 相关资料下载网址:www.wch.cn A8:并口地址线8。 RXD1:UART1串行数据输入。

37 PA10 I/O

/PWM5/SD02/A10/CAP1 /INT3 PA10:通用双向数字I/0引脚。 PWM5:脉宽调制输出通道5。 SDO2:SD0控制器数据线2。 A10:并口地址线10。 CAP1:定时器1捕获输入引脚。 INT3:IO中断 3。

38 PA11 I/O

/PWM6/SD03/A11/CAP2 /INT4 PA11:通用双向数字I/0引脚。 PWM6:脉宽调制输出通道6。 SDO3:SD0控制器数据线3。 A11:并口地址线11。 CAP2:定时器2捕获输入引脚。 INT4:IO中断 4。 39 V33IO2 P V33IO2 外设2组3.3V电源,需外接0.1uF电容。

40 PA9 I/O PA9

PA9:通用双向数字I/0引脚。 TXD1:UART1串行数据输出。 PWM3:脉宽调制输出通道3。 SDO1:SD0控制器数据线1。 A9:并口地址线9。 41 V33REG P V33REG 电源电压调节器输入3.3V电源,需外接0.1uF电容。

42 GND P GND 地:公共接地端,0V参考点。

43 VCORE P VCORE 内核电源输出,需外接3.3uF或10uF电容。

44 PA15 I/O PA15

/MISO0/SD13/RXD0_ PA15:通用双向数字I/0引脚。 MIOS0:SPI0串行数据引脚,主机输入/从机输出。 SD13:SD1控制器数据线3。 RXD0_:UART0的 RXD引脚映射。

45 PA14 I/O PA14

/MOSI0/TXD0_/SD12 PA14:通用双向数字I/0引脚。 MOSI0:SPI0串行数据引脚,主机输出/从机输入。 TXD0_:UART0的 TXD引脚映射。 SD12:SD1控制器数据线2。

46 PA13 I/O PA13

/SCK0/SD11 PA13:通用双向数字I/0引脚。 SCK0:SPI0串行时钟引脚,主机输出/从机输入。 SD11:SD1控制器数据线1。

47 PA12 I/O PA12

/SD10/SCS/INT5 PA12:通用双向数字I/0引脚。 SD10:SD1控制器数据线0。 SCS:SPI0从机片选输入引脚。 INT5:IO中断 5。

48 PA2 I/O PA2

/MISO1/LED2/CMD3/A2 PA2:通用双向数字I/0引脚。 MISO1:SPI1 串行数据引脚,主机输入;SPI1 单工模 式下,串行数据输入输出引脚。 LED2:LED串行数据线2。 CMD3:SD3控制器命令信号线。 A2:并口地址线2。 (2)、USB:USB信号。 (3)、表中管脚的复用功能优先级按高到底排列(不包括主功能GPIO功能)

CH567数据手册 相关资料下载网址:www.wch.cn 说明: 为了兼容外部器件的电源系统,CH567 将外设和 IO 的电源进行划区管理,提供多组电源引脚。 上述引脚描述中,不同的颜色管脚属于不同电源域,分配如下: 字体颜色:同电源V33REG/V33USB 字体颜色:同电源V33IO1 字体颜色:同电源V33IO2 字体颜色:同电源V33IO3

CH567数据手册 相关资料下载网址:www.wch.cn 第 2 章 系统结构及存储器 2.1 系统结构 下图为 CH567 芯片系统结构框图。 Core 32bits RISC DMA ECDC SM4/AES SPI*2 GPIO Timer*3 Capture/PWM FLASH 192KB V33REG LDO PORTA MOSI*2 SCK*2,MISO*2,SCS UART*4 TXD*4,RTS,DTR RXD*4,CTSDCD,RI,DSR PWM*3 SYS USB1_CTRL USB0_CTRL FIFO 64bit Internal Data Bus SDSDSDSD USB PHY USB PHY DM1 DP1 LED DP0 DM0 VCORE PORTB SRAM 32K CAP*3 LEDC,LED0/1/2/3 DATA FLASH 32K BUS D0~D7 A0~A14 WR&RD 图2-1 CH567 内部结构框图 CH567的 64bit系统总线上挂接了CPU内核、DMA仲裁控制器、SRAM以及各种外设模块。其中DMA 控制器可用于外设USB、SATA、SD、SPI0、LED、TIMER等模块。 2.2 存储器映射 CH567包含有一个4GB的地址空间,存储器映射主要包含几个不同区域,详见下图所示。

CH567数据手册 相关资料下载网址:www.wch.cn RESERVE BUS RESERVE PERIPHERAL RESERVE SRAM RESERVE CODE 0x0000 0000 0x0003 FFFF 0x0004 0000 0x001F FFFF 0x0020 0000 0x0020 7FFF 0x0020 8000 0x003F FFFF 0x0040 0000 0x0040 FFFF 0x0041 0000 0x007F FFFF 0x0080 0000 0x0080 7FFF 0xFFFF FFFF SPI1 SPI0 UART3 UART2 UART1 UART0 Reserve TMR2 TMR1 TMR0 Reserve SYS +1FFF +1400 +13FF +1000 +27FF +2400 +23FF +2000 +2FFF +2C00 +2BFF +2800 +37FF +3400 +33FF +3000 +3FFF +3C00 +3BFF +3800 +47FF +4400 +43FF +4000 +63FF +6000 +53FF +5000 +A3FF +A000 +93FF +8000USB0&1 Reserve LED Reserve PWMX Reserve ECDC Reserve SDC Reserve +C7FF +C400 +4800 +4FFF +5400 +5FFF +6400 +7FFF +9400 +9FFF +A400 +C3FF 0x0080 8000 图 2-2 存储器映射图 2.3 存储器映射表 各存储器映射区域地址范围如下表所示: 表2-1 存储器映射区域地址 地址范围 用途 描述 0x0000 0000-0x0003 FFFF 片上非易失性存储器 Flash存储器(256KB) 0x0004 0000-0x001F FFFF 保留 - 0x0020 0000-0X0020 7FFF 片上SRAM, 通常用于存储数据 32KB 0x0020 8000-0x003F FFFF 保留 - 0x0040 0000-0x0040 FFFF 各种外设 多个外设模块 0x0041 0000-0x007F FFFF 保留 - 0x0080 0000-0x0080 7FFF 外部系统总线 32KB 0x0080 8000-0xFFFF 7FFF 保留 - 2.4 外设地址分配 CH567主要包含以下外设,每个外设占用一定的地址空间,外设寄存器的实际访问地址为:基地 址+偏移地址。在后续章节中,寄存器的地址有详细说明。下表为各个外设基地址的分配表。 表2-2 外设基地址分配表 外设编号 外设名称 外设基址

1 SYS 0x0040 1000

2 TMR0 0x0040 2000

CH567数据手册 相关资料下载网址:www.wch.cn

3 TMR1 0x0040 2400

4 TMR2 0x0040 2800

5 UART0 0x0040 3000

6 UART1 0x0040 3400

7 UART2 0x0040 3800

8 UART3 0x0040 3C00

9 SPI0 0x0040 4000

10 SPI1 0x0040 4400

11 PWMX 0x0040 5000

12 LED 0x0040 6000

13 USB0 0x0040 8000

14 USB1 0x0040 9000

15 SDC 0x0040 A000

16 ECDC 0x0040 C400

下表为后续章节寄存器描述中“访问”的解释说明: 缩写词 描述 RF 读取值为固定值,不受复位影响。 RO 只读。 WO 只写(读取值为0 或无效)。 RZ 只读,读取完之后自动清0。 WZ 写清0。 RW 可读可写。 RW1 读/写1清0。 WA 只写(安全模式下),读取值为0 或无效。 RWA 读/安全模式下写。

CH567数据手册 相关资料下载网址:www.wch.cn 第 3 章 系统控制 3.1 电源控制 CH567需要外部提供工作电压3.3V。在图1-1的封装引脚描述中,外部提供了多组电源和地。内 部电源管理采用多电源域分组模式,可以根据使用的外设资源,连接不同的电源系统。 在系统或电源复位后,CH567处于运行状态。当CPU不需要继续运行,或者某些功能模块不需要 使用时,可以关闭这些模块的时钟或电源,以降低功耗。 3.2 复位控制 CH567支持3种复位形式,分别为电源上电复位、外部手工复位和内部软件复位。复位会导致系 统重新加载配置信息,并重新加载程序代码到RAM缓冲区中,加载时间约为8.8mS。 寄存器R8_GLOB_RESET_KEEP,只在上电复位时被复位,而不受其它复位形式影响。 3.2.1 电源上电复位 当电源电压低于上电复位门限Vpot时,CH567 发生复位。下图为CH567上电复位图。 图 3-1 上电复位 3.2.2 外部手工复位 外部手工复位由外部加到 RST#引脚的低电平产生。当复位低电平持续时间大于最小复位脉冲宽 度(Trst)时即触发芯片进行复位。 图 3-2 外部复位 3.2.3 内部软件复位

CH567数据手册 相关资料下载网址:www.wch.cn 芯片提供了内部软件复位功能,以便在某些特定情况下,不需要外部干预进行软件复位。设置 全局复位配置寄存器(R8_RST_WDOG_CTRL)的位RB_SOFTWARE_RESET为1,即可实现软件复位。该位会 自动清0。 3.2.4 复位特性 复位参数请参考15.4节的时序参数表。 3.3 寄存器描述 系统控制相关寄存器物理基地址为:0x0040 1000 表 3-1 时钟及CPU控制相关寄存器列表 名称 偏移地址 描述 复位值 R8_SAFE_ACCESS_SIG 0x00 安全访问标记寄存器 8h00 R8_CHIP_ID 0x01 芯片 ID寄存器 8h68 R8_SAFE_ACCESS_ID 0x02 安全访问ID寄存器 8h02 R8_GLOB_ROM_CFG 0x04 ROM 配置寄存器 8h80 R8_RST_BOOT_STAT 0x05 BOOT状态寄存器 8hC1 R8_RST_WDOG_CTRL 0x06 复位寄存器 8h00 R8_GLOB_RESET_KEEP 0x07 复位保持寄存器 8h00 R8_SLP_WAKE_CTRL 0x0E 唤醒控制寄存器 8h00 R8_SLP_POWER_CTRL 0x0F 低功耗电源管理寄存器 8h00 安全访问标记寄存器(R8_SAFE_ACCESS_SIG): 位 名称 访问 描述 复位值 [7:0] R8_SAFE_ACCESS_SIG WO 安全访问标记寄存器。 部分寄存器(访问属性为 RWA)为保护寄 存器,必须进入安全访问模式才能进行 读写操作。对该寄存器先写入0x57,再 写入0xA8,即可进入安全访问模式,并 且限时约 110 个主时钟周期(Tsys),超 过则自动保护。 00h [6:4] RB_SAFE_ACC_TIMER RO 安全访问时间,固定为128 Tsys 0 [1:0] RB_SAFE_ACC_MODE RO 当前安全访问模式状态: 11:安全模式,可访问属性RWA寄存器; 其他:非安全模式; 芯片ID寄存器(R8_CHIP_ID) 位 名称 访问 描述 复位值 [7:0] R8_CHIP_ID RF 固定值67h,用于识别芯片。 67h 安全访问ID寄存器(R8_SAFE_ACCESS_ID): 位 名称 访问 描述 复位值 [7:0] R8_SAFE_ACCESS_ID RF 固定值02h。 02h ROM配置寄存器(R8_GLOB_ROM_CFG): 位 名称 访问 描述 复位值

CH567数据手册 相关资料下载网址:www.wch.cn [7:4] Reserved RWA 保留,[7:6]必须写10b,读为0。 0000b

3 RB_ROM_CODE_WE RWA

Flash ROM 代码和数据区擦除 /写使能 1:可编程/擦除; 0:写保护

2 RB_ROM_DATA_WE RWA

Flash ROM数据区擦除/写使能位: 1:可编程/擦除; 0:写保护。

1 RB_CODE_RAM_WE RWA

代码RAM区写使能位: 1:写使能; 0:写保护。

0 RB_ROM_EXT_RE RO

外部编程器读Flash ROM使能位: 1:读使能; 0:读保护。 BOOT状态寄存器(R8_RST_BOOT_STAT) 位 名称 访问 描述 复位值 [7:6] Reserved RO 保留。 11b

5 RB_BOOT_LOADER RO

引导程序状态: 1:引导程序状态(Boot-Loader); 0:用户程序状态。

4 RB_CFG_DEBUG_EN RO

调试使能控制位: 1:使能; 0:禁止。

3 RB_CFG_BOOT_EN RO

引导程序使能控制位: 1:使能; 0:禁止。

2 RB_CFG_RESET_EN RO

外部复位使能控制位: 1:外部输入低电平信号复位; 0:禁止。 [1:0] RB_RESET_FLAG RO 最近一次复位标志,见表3-2。 1 表3-2最近一次复位标志描述 RB_RESET_FLAG 复位标志描述 00b 软件复位,来源:RB_SOFTWARE_RESET=1 并且RB_BOOT_LOADER=0。 01b 上电复位,来源:芯片工作电压低于门槛电压。 11b 手动复位,来源:RST#脚输入低电平。 位 名称 访问 描述 复位值 [7:1] Reserved RO 保留,其中[7:6]必须写01b。 00h

0 RB_SOFTWARE_RESET WA/

系统软件复位,自动清零: 1:系统复位; 0:无动作 复位保持寄存器(R8_GLOB_RESET_KEEP) 位 名称 访问 描述 复位值 [7:0] R8_GLOB_RESET_KEEP RW 复位保持寄存器,该寄存器值不受手动 00h

CH567数据手册 相关资料下载网址:www.wch.cn 复位、软件复位或者看门狗复位影响。 唤醒控制寄存器(R8_SLP_WAKE_CTRL) 位 名称 访问 描述 复位值 [7:5] Reserved RO 保留。 0

4 RB_SLP_GPIO_WAKE RWA

GPIO端口唤醒使能控制位: 1:使能; 0:禁止。 [3:2] Reserved R0 保留。 0

1 RB_SLP_USB1_WAKE RWA

USB1唤醒使能控制位: 1:使能; 0:禁止。

0 RB_SLP_USB0_WAKE RWA

USB0唤醒使能控制位: 1:使能; 0:禁止。 低功耗电源管理寄存器(R8_SLP_POWER_CTRL) 位 名称 访问 描述 复位值

7 RB_SLP_STANDBY RWA

低功耗模式控制位, 如果进入自动清零: 1:请求内核低功耗; 0:无动作。 [6:2] Reserved R0 保留。 0

1 RB_SLP_USB1_PWRDN RWA

USB1电源控制位: 1:关闭; 0:正常上电。

0 RB_SLP_USB0_PWRDN RWA

USB0电源控制位: 1:关闭; 0:正常上电。 3.4 低功耗模式及唤醒 低功耗状态时(RB_SLP_STANDBY位置1),PLL停止工作,CH567内部时钟暂停,CPU不再工作, 也不响应任何中断,但是如果唤醒后CPU开始工作,发现唤醒事件同时也属于中断事件(例如某GPIO 唤醒并且产生GPIO中断),那么会当作中断处理。 为降低功耗,在进入低功耗状态前,如果低功耗期间不会用到的物理PHY模块(例如USB)应该 提前关闭。设置RB_SLP_USB0_PWRDN位为1,RB_SLP_USB1_PWRDN位为 1。另外,各个GPIO引脚不能 处于悬浮状态,需要设置为输出状态或者外部有固定电平的输入状态,如果外面没有固定电平输入, 需要设置为内部下拉模式的输入状态。 在低功耗模式下,CH567仅支持部分GPIO或者USB唤醒,参考R8_SLP_WAKE_CTRL寄存器。 支持唤醒的GPIO引脚有8个,分别是8 个支持GPIO中断的引脚。GPIO唤醒事件源与GPIO中断 事件源相同,但只有电平触发(不需要R8_GPIO_INT_MODE),当R8_GPIO_INT_POLAR对应的位为0 时,GPIO引脚出现低电平时唤醒,当R8_GPIO_INT_POLAR对应的位为1时,GPIO引脚出现高电平时 唤醒。 下面以GPIO口PA3唤醒为例,配置如下: RB_GPIO_PA3_IP=0; RB_GPIO_PA3_IE=1; RB_SLP_GPIO_WAKE=1; 当PA3口出现低电平时,将产生唤醒事件,CH567跳出低功耗模式后,会触发PA3口的GPIO中

CH567数据手册 相关资料下载网址:www.wch.cn 第 4 章 时钟控制 4.1 时钟框图 CH567内部时钟结构如下图所示: SATA PHY USB0CTRL 30MHz OSC USB PHY SD_CLK _OUT HCLK RB_CLK_SEL_PLL PLL 分频器 R8_CLK_PLL_DIV 分频器 SD_CLK_CFG USB1CTRL 480MHz 30MHz 30MHz RB_SLP_USB0_PWRDN RB_SLP_USB1_PWRDN RB_SLP_CLK_USB1 RB_SLP_CLK_USB0 60MHz HCLK 分频器 R8_UARTx_DIV RB_SLP_CLK_UARTx UARTx_CLK x = 0/1/2/3 分频器 R8_PWM_CLOCK_DIV RB_SLP_CLK_PWMx PWMx_CLK RB_SLP_CLK_TMRx TIMEx_CLK x = 0/1/2 分频器 MASK_ED_CLK_PRE RB_SLP_CLK_ECDC ECDC_CLK 分频器 R8_LED_CLOCK_DIV RB_SLP_CLK_LED LEDC_CLK 分频器 R8_SPIx_CLOCK_DIV RB_SLP_CLK_SPIx SPI0/1_CLK_OUT HCLK HCLK XO XI RB_SLP_CLK_SDC 60MHz BUS_CLK 图 4-1 时钟结构框图 外部时钟送入 CH567 后,一路挂接到 USB-PHY 上,产生 USB 控制器需要的时钟频率,一路通过 PLL 模块产生480MHz的倍频时钟。通过时钟源选择控制位(RB_CLK_SEL_PLL),得到用于分频前的时 钟频率30MHz或者480MHz,此时钟频率经过分频器(R8_CLK_PLL_DIV)得到系统时钟Fsys(HCLK), 即 CPU的主时钟,范围2MHz-120MHz。

CH567数据手册 相关资料下载网址:www.wch.cn 各外设模块时钟都有对应的时钟寄存器控制位,进行单独的打开或关闭。为降低芯片功耗,可以 关闭不使用的功能模块时钟。 4.2 寄存器描述 时钟控制相关寄存器物理基地址为:0x0040 1000 表 4-1 时钟控制相关寄存器列表 名称 偏移地址 描述 复位值 R8_CLK_PLL_DIV 0x08 PLL 输出时钟分频寄存器 8h42 R8_CLK_CFG_CTRL 0x0A 时钟配置寄存器 8h80 R8_SLP_CLK_OFF0 0x0C 睡眠控制寄存器0 8h00 R8_SLP_CLK_OFF1 0x0D 睡眠控制寄存器1 8h00 PLL输出时钟分频寄存器(R8_CLK_PLL_DIV) 位 名称 访问 描述 复位值 [7:0] R8_CLK_PLL_DIV RWA 低4 位有效,[7:6]位必须写01b,最小 值2。 8h42 位 名称 访问 描述 复位值 [7:2] Reserved RWA 保留,[7:6]必须写10b。 100000b

1 RB_CLK_SEL_PLL RWA

时钟源选择: 1:PLL 480MHz; 0:外部晶振 30MHz。

0 RB_CLK_PLL_SLEEP RWA

PLL 睡眠控制位: 1:PLL睡眠; 0:PLL正常工作。 睡眠控制寄存器0(R8_SLP_CLK_OFF0) 位 名称 访问 描述 复位值

7 RB_SLP_CLK_UART3 RWA

UART3时钟控制位: 1:UART3时钟关闭; 0:UART3时钟开启。

6 RB_SLP_CLK_UART2 RWA

UART2时钟控制位: 1:UART2时钟关闭; 0:UART2时钟开启。

5 RB_SLP_CLK_UART1 RWA

UART1时钟控制位: 1:UART1时钟关闭; 0:UART1时钟开启。

4 RB_SLP_CLK_UART0 RWA

UART0时钟控制位: 1:UART0时钟关闭; 0:UART0时钟开启。

3 RB_SLP_CLK_PWMX RWA

PWM 时钟控制位: 1:PWM时钟关闭; 0:PWM时钟开启。

2 RB_SLP_CLK_TMR2 RWA TIMER2时钟控制位:

1:TIMER2时钟关闭; 0

CH567数据手册 相关资料下载网址:www.wch.cn 0:TIMER2时钟开启。

1 RB_SLP_CLK_TMR1 RWA

TIMER1时钟控制位: 1:TIMER1时钟关闭; 0:TIMER1时钟开启。

0 RB_SLP_CLK_TMR0 RWA

TIMER0时钟控制位: 1:TIMER0时钟关闭; 0:TIMER0时钟开启。 睡眠控制寄存器1(R8_SLP_CLK_OFF1) 位 名称 访问 描述 复位值

7 RB_SLP_CLK_ECDC RWA

ECDC(加解密模块)时钟控制位: 1:ECDC时钟关闭; 0:ECDC时钟开启。

6 Reserved RO 保留。 0

5 RB_SLP_CLK_USB1 RWA

USB 时钟控制位: 1:USB时钟关闭; 0:USB时钟开启。

4 RB_SLP_CLK_USB0 RWA

USB0时钟控制位: 1:USB0时钟关闭; 0:USB0时钟开启。

3 RB_SLP_CLK_LED RWA

LEDC时钟控制位: 1:LEDC时钟关闭; 0:LEDC时钟开启。

2 RB_SLP_CLK_SDC RWA

SDC时钟控制位: 1:SDC时钟关闭; 0:SDC时钟开启。

1 RB_SLP_CLK_SPI1 RWA

SPI1时钟控制位: 1:SPI1时钟关闭; 0:SPI1时钟开启。

0 RB_SLP_CLK_SPI0 RWA

SPI0时钟控制位: 1:SPI0时钟关闭; 0:SPI0时钟开启。 4.3 系统时钟配置 外部晶振时钟:Fosc = 30MHz; PLL倍频时钟: Fpll = 480MHz; 1.选择PLL时钟源:Fsrc = RB_CLK_SEL_PLL ? PLL_FREQ : OSC_FREQ; 2.系统时钟计算: Fsys = Fsrc / R8_CLK_PLL_DIV, (2MHz - 120MHz)。 系统上电默认选择30MHz作为PLL时钟源,分频系数2,默认主频15MHz。

CH567数据手册 相关资料下载网址:www.wch.cn 第 5 章 通用和复用功能 I/O

5.1 GPIO 简介

系统提供了2组GPIO端口PA和PB,共30个通用输入输出引脚,部分引脚具有复用和映射功能。 每个 GPIO 端口有一个 32 位方向配置寄存器 ( R32_Px_DIR ),一个 32 位数据输入寄存器 ( R32_Px_PIN ),一个32位数据输出寄存器( R32_Px_OUT ),一个32 位清除寄存( R32_Px_CLR ), 一个 32位上拉配置寄存器( R32_Px_PU ),一个32位开漏输出和输入下拉配置寄存器(R32_Px_PD ), 一个 32 位 I/O 驱动能力配置寄存器 (R32_Px_DRV )和一个 32 位施密特触发使能配置寄存器 (R32_Px_SMT )。 PA 端口中,PA[0]-PA[15]位有效,对应芯片上 16 个 GPIO 引脚;PB 端口中,PB[0]-PB[13]位有 效,对应芯片上14个 GPIO引脚;其中8个 GPIO口具有中断功能,可实现睡眠唤醒功能。 每个I/O端口位可以自由编程,但是I/O端口寄存器必须按8位、16位或者32位字访问。如果 引脚的复用功能没有开启,则做为通用I/O口使用。 下图是GPIO内部结构框图: GND I/O 70K70K R32_Px_PU V33IO //// 70K70K R32_Px_PU Q Q SET CLR D CKCK Data_Bus Write R32_Px_OUT R32_Px_DIR Write R32_Px_CLR PowerOnReset R32_Px_DRV R32_Px_IN V33IO GND R32_Px_SMT Read R32_Px_OUT 图 5-1 IO内部结构框图 5.2 寄存器描述 GPIO相关寄存器物理基地址为:0x0040 1000 表 5-1 GPIO相关寄存器列表 名称 偏移地址 描述 复位值 R8_GPIO_INT_STATUS 0x1C GPIO中断标志寄存器 8h00 R8_GPIO_INT_ENABLE 0x1D GPIO中断使能寄存器 8h00 R8_GPIO_INT_MODE 0x1E GPIO中断触发模式寄存器 8h00 R8_GPIO_INT_POLAR 0x1F GPIO中断极性寄存器 8h00 R32_PA_DIR 0x40 PA 端口方向设置寄存器 32h0000 0000 R32_PA_PIN 0x44 PA 端口数据输入寄存器 32hxxxx xxxx R32_PA_OUT 0x48 PA 端口数据输出寄存器 32h0000 0000

CH567数据手册 相关资料下载网址:www.wch.cn R32_PA_CLR 0x4C PA 端口输出清0 寄存器 32h0000 0000 R32_PA_PU 0x50 PA 端口上拉使能寄存器 32h0000 0000 R32_PA_PD 0x54 PA 端口开漏输出和输入下拉配 置寄存器 32h0000 0000 R32_PA_DRV 0x58 PA 端口驱动能力配置寄存器 32h0000 0000 R32_PA_SMT 0x5C PA 端口施密特触发器使能配置 寄存器 32h0000 0000 R32_PB_DIR 0x60 PB 端口方向设置寄存器 32h0000 0000 R32_PB_PIN 0x64 PB 端口数据输入寄存器 32hxxxx 8000 R32_PB_OUT 0x68 PB 端口数据输出寄存器 32h0000 0000 R32_PB_CLR 0x6C PB 端口输出清0 寄存器 32h0000 0000 R32_PB_PU 0x70 PB 端口上拉配置寄存器 32h0000 0000 R32_PB_PD 0x74 PB 端口开漏输出和输入下拉配 置寄存器 32h0000 0000 R32_PB_DRV 0x78 PB 端口驱动能力配置寄存器 32h0000 0000 R32_PB_SMT 0x7C PB 端口施密特触发器使能配置 寄存器 32h0000 0000 R8_PORT_PIN 0x12 复用重映射配置寄存器 8h00 GPIO中断标志寄存器(R8_GPIO_INT_STATUS) 位 名称 访问 描述 复位值

7 RB_GPIO_PB10_IS RW1

PB10引脚中断标志位,写1 清零: 1:有中断产生; 0:无中断产生。

6 RB_GPIO_PB4_IS RW1

PB4 引脚中断标志位,写1清零: 1:有中断产生; 0:无中断产生。

5 RB_GPIO_PA12_IS RW1

PA12引脚中断标志位,写1 清零: 1:有中断产生; 0:无中断产生。

4 RB_GPIO_PA11_IS RW1

PA11引脚中断标志位,写1 清零: 1:有中断产生; 0:无中断产生。

3 RB_GPIO_PA10_IS RW1

PA10引脚中断标志位,写1 清零: 1:有中断产生; 0:无中断产生。

2 RB_GPIO_PA6_IS RW1

PA6引脚中断标志位,写1清零: 1:有中断产生; 0:无中断产生。

1 RB_GPIO_PA4_IS RW1

PA4引脚中断标志位,写1清零: 1:有中断产生; 0:无中断产生。

0 RB_GPIO_PA3_IS RW1

PA3引脚中断标志位,写1清零: 1:有中断产生; 0:无中断产生。 GPIO中断使能寄存器(R8_GPIO_INT_ENABLE) 位 名称 访问 描述 复位值

CH567数据手册 相关资料下载网址:www.wch.cn

7 RB_GPIO_PB10_IE RW

PB10引脚中断使能位: 1:使能相应中断; 0:禁止相应中断。

6 RB_GPIO_PB4_IE RW

PB4 引脚中断使能位: 1:使能相应中断; 0:禁止相应中断。

5 RB_GPIO_PA12_IE RW

PA12引脚中断使能位: 1:使能相应中断; 0:禁止相应中断。

4 RB_GPIO_PA11_IE RW

PA11引脚中断使能位: 1:使能相应中断; 0:禁止相应中断。

3 RB_GPIO_PA10_IE RW

PA10引脚中断使能位: 1:使能相应中断; 0:禁止相应中断。

2 RB_GPIO_PA6_IE RW

PA6 引脚中断使能位: 1:使能相应中断; 0:禁止相应中断。

1 RB_GPIO_PA4_IE RW

PA4 引脚中断使能位: 1:使能相应中断; 0:禁止相应中断。

0 RB_GPIO_PA3_IE RW

PA3 引脚中断使能位: 1:使能相应中断; 0:禁止相应中断。 GPIO中断触发模式寄存器(R8_GPIO_INT_MODE) 位 名称 访问 描述 复位值

7 RB_GPIO_PB10_IM RW

PB10引脚中断模式选择位: 1:边沿触发; 0:电平触发。

6 RB_GPIO_PB4_IM RW

PB4 引脚中断模式选择位: 1:边沿触发; 0:电平触发。

5 RB_GPIO_PA12_IM RW

PA12引脚中断模式选择位: 1:边沿触发; 0:电平触发。

4 RB_GPIO_PA11_IM RW

PA11引脚中断模式选择位: 1:边沿触发; 0:电平触发。

3 RB_GPIO_PA10_IM RW

PA10引脚中断模式选择位: 1:边沿触发; 0:电平触发。

2 RB_GPIO_PA6_IM RW

PA6 引脚中断模式选择位: 1:边沿触发; 0:电平触发。

1 RB_GPIO_PA4_IM RW

PA4 引脚中断模式选择位: 1:边沿触发; 0:电平触发。

0 RB_GPIO_PA3_IM RW PA3 引脚中断模式选择位: 0

CH567数据手册 相关资料下载网址:www.wch.cn 1:边沿触发; 0:电平触发。 GPIO中断极性寄存器(R8_GPIO_INT_POLAR) 位 名称 访问 描述 复位值

7 RB_GPIO_PB10_IP RW

PB10引脚中断极性选择位: 1:高电平/上升沿; 0:低电平/下降沿。

6 RB_GPIO_PB4_IP RW

PB4 引脚中断极性选择位: 1:高电平/上升沿; 0:低电平/下降沿。

5 RB_GPIO_PA12_IP RW

PA12引脚中断极性选择位: 1:高电平/上升沿; 0:低电平/下降沿。

4 RB_GPIO_PA11_IP RW

PA11引脚中断极性选择位: 1:高电平/上升沿; 0:低电平/下降沿。

3 RB_GPIO_PA10_IP RW

PA10引脚中断极性选择位: 1:高电平/上升沿; 0:低电平/下降沿。

2 RB_GPIO_PA6_IP RW

PA6 引脚中断极性选择位: 1:高电平/上升沿; 0:低电平/下降沿。

1 RB_GPIO_PA4_IP RW

PA4 引脚中断极性选择位: 1:高电平/上升沿; 0:低电平/下降沿。

0 RB_GPIO_PA3_IP RW

PA3引脚中断极性选择位: 1:高电平/上升沿; 0:低电平/下降沿。 PA端口方向设置寄存器(R32_PA_DIR) 位 名称 访问 描述 复位值 [31:16] Reserved R0 保留。 0 [15:0] R32_PA_DIR RW PA引脚当前输入输出方向控制: 1:引脚方向为输出模式; 0:引脚方向为输入模式。 PA端口输入数据寄存器(R32_PA_PIN) 位 名称 访问 描述 复位值 [31:16] Reserved R0 保留。 0 [15:0] R32_PA_PIN RO PA引脚前电平状态: 1:引脚输入高电平; 0:引脚输入低电平。 仅在方向寄存器(R32_PA_DIR)对应位为 0 时,该位值有效。 PA端口输出数据寄存器 (R32_PA_OUT) 位 名称 访问 描述 复位值

CH567数据手册 相关资料下载网址:www.wch.cn [31:16] Reserved R0 保留。 0 [15:0] R32_PA_OUT RW PA引脚输出电平状态: 1:引脚输出高电平; 0:引脚输出低电平。 仅在方向寄存器(R32_PA_DIR)对应位为 1 时,该位值有效。 PA端口位清除寄存器(R32_PA_CLR) 位 名称 访问 描述 复位值 [31:16] Reserved R0 保留。 0 [15:0] R32_PA_CLR WZ PA保持/清除数据输出控制: 1:引脚输出低电平; 0:无影响。 PA端口上拉配置寄存器(R32_PA_PU) 位 名称 访问 描述 复位值 [31:16] Reserved R0 保留。 0 [15:0] R32_PA_PU RW PA引脚上拉功能使能控制: 1:使能引脚上拉功能; 0:关闭引脚上拉功能。 PA端口开漏输出和输入下拉配置寄存器(R32_PA_PD) 位 名称 访问 描述 复位值 [31:16] Reserved R0 保留。 0 [15:0] R32_PA_PD RW 方向寄存器(R32_PA_DIR)对应位配置为 1(即输出模式)时: 1:启用该引脚开漏输出功能; 0:关闭该引脚开漏输出功能。 方向寄存器(R32_PA_DIR)对应位配置为 0(即输入模式)时: 1:启用该引脚下拉功能; 0:关闭该引脚下拉功能。 PA端口驱动能力配置寄存器 (R32_PA_DRV) 位 名称 访问 描述 复位值 [31:16] Reserved R0 保留。 0 [15:0] R32_PA_DRV RW PA引脚输出驱动能力控制: 1:驱动电流最大16mA; 0:驱动电流最大8mA。 PA端口施密特触发器使能配置寄存器(R32_PA_SMT): 位 名称 访问 描述 复位值 [31:16] Reserved R0 保留。 0 [15:0] R32_PA_SMT RW PA引脚施密特触发器功能控制: 1:启用该引脚施密特触发器输入功能, 或低斜率输出功能; 0:关闭该引脚施密特触发器输入功能, 或低斜率输出功能。

CH567数据手册 相关资料下载网址:www.wch.cn PB端口方向设置寄存器(R32_PB_DIR) 位 名称 访问 描述 复位值 [31:14] Reserved R0 保留。 0 [13:0] R32_PB_DIR RW PB引脚当前输入输出方向控制: 1:引脚方向为输出模式; 0:引脚方向为输入模式。 PB端口输入数据寄存器(R32_PB_PIN) 位 名称 访问 描述 复位值 [31:14] Reserved R0 保留。 0 [13:0] R32_PB_PIN RO PB引脚前电平状态: 1:引脚输入高电平; 0:引脚输入低电平。 仅在方向寄存器(R32_PB_DIR)对应位为 0 时,该位值有效。 PB端口输出数据寄存器 (R32_PB_OUT) 位 名称 访问 描述 复位值 [31:14] Reserved R0 保留。 0 [13:0] R32_PB_OUT RW PB引脚输出电平状态: 1:引脚输出高电平; 0:引脚输出低电平。 仅在方向寄存器(R32_PB_DIR)对应位为 1 时,该位值有效。 PB端口位清除寄存器(R32_PB_CLR) 位 名称 访问 描述 复位值 [31:14] Reserved R0 保留。 0 [13:0] R32_PB_CLR WZ PB保持/清除数据输出控制: 1:引脚输出低电平; 0:无影响。 PB端口上拉配置寄存器(R32_PB_PU) 位 名称 访问 描述 复位值 [31:14] Reserved R0 保留。 0 [13:0] R32_PB_PU RW PB引脚上拉功能使能控制: 1:使能引脚上拉功能; 0:关闭引脚上拉功能。 PB端口开漏输出和输入下拉配置寄存器(R32_PB_PD) 位 名称 访问 描述 复位值 [31:14] Reserved R0 保留。 0 [13:0] R32_PB_PD RW 方向寄存器(R32_PB_DIR)对应位配置为 1(即输出模式)时: 1:启用该引脚开漏输出功能;

CH567数据手册 相关资料下载网址:www.wch.cn 0:关闭该引脚开漏输出功能。 方向寄存器(R32_PB_DIR)对应位配置为 0(即输入模式)时: 1:启用该引脚下拉功能; 0:关闭该引脚下拉功能。 如果上拉配置寄存器 (R32_PB_PU)对应 位配置也为 1 则启用输入状态弱保持功 PB端口驱动能力配置寄存器 (R32_PB_DRV) 位 名称 访问 描述 复位值 [31:14] Reserved R0 保留。 0 [13:0] R32_PB_DRV RW PB引脚输出驱动能力控制: 1:驱动电流最大16mA; 0:驱动电流最大8mA。 PB端口施密特触发器使能配置寄存器(R32_PB_SMT): 位 名称 访问 描述 复位值 [31:14] Reserved R0 保留。 0 [13:0] R32_PB_SMT RW PB引脚施密特触发器功能控制: 1:启用该引脚施密特触发器输入功能, 或低斜率输出功能; 0:关闭该引脚施密特触发器输入功能, 或低斜率输出功能。 复用重映射配置寄存器(R8_PORT_PIN) 位 名称 访问 描述 复位值 [7:6] Reserved RO 保留。 0

5 RB_PIN_UART1 RW

UART1重映射配置位: 1:RXD1/TXD1 到PB8/PB9脚; 0:RXD1/TXD1 到PA8/PA9脚。

4 RB_PIN_UART0 RW

UART0重映射配置位: 1:RXD0/TXD0 到PA15/PA14脚; 0:RXD0/TXD0 到PB4/PB7脚。

3 Reserved RO 保留。 0

2 RB_PIN_TMR2 RW

TIMER2重映射配置位: 1:TMR2/PWM6/CAP2 到 PB11脚; 0:TMR2/PWM6/CAP2 到 PA11脚。

1 RB_PIN_TMR1 RW

TIMER1重映射配置位: 1:TMR1/PWM5/CAP1 到 PB2脚; 0:TMR1/PWM5/CAP1 到 PA10脚。

0 Reserved RO 保留。 0

5.3 GPIO 的复用与重映射

5.3.1 复用功能

CH567数据手册 相关资料下载网址:www.wch.cn 芯片部分I/O 引脚具有复用功能,上电后默认所有I/O 引脚均为通用I/O 功能,启用不同功能模 块后,相应引脚被配置成各自功能模块对应的功能引脚。 如果一个管脚复用多个功能,并且多个功能都已开启,那么复用功能的优先级顺序请参考1.2节 引脚的“复用功能及映射”列表中功能顺序,优先级从高到低。 例如:PA0脚复用为 /SCK1/LED0/CMD1,则SPI1的时钟功能优先,SD1控制器的CMD1功能最低。 这样可以在多个复用功能中,将功能优先级最低的部分不需使用引脚启用相对更高优先级的复用功 以下各表为各个功能模块所使用的I/O引脚。 表5-2 串行外设接口(SPI0) 引脚 GPIO 功能描述 SCS PA12 SPI0从机片选输入引脚 SCK0 PA13 SPI0串行时钟引脚,主机输出/从机输入 MOSI0 PA14 SPI0串行数据引脚,主机输出/从机输入 MISO0 PA15 SPI0串行数据引脚,主机输入/从机输出 表5-3 串行外设接口(SPI1) 引脚 GPIO 功能描述 SCK1 PA0 SPI1串行时钟输出引脚 MOSI1 PA1 SPI1串行数据输出引脚(只有主机功能) MISO1 PA2 SPI1串行数据输入引脚(只有主机功能) 表5-4 通用异步收发器(UART0) 引脚 GPIO 功能描述 RXD0 PB4 UART0接收器输入引脚 TXD0 PB7 UART0发送器输出引脚 RXD0_ PA15 UART0的 RXD引脚功能映射 TXD0_ PA14 UART0的 TXD引脚功能映射 DTR PB5 UART0的 MODEM信号,数据终端就绪 RTS PB6 UART0的 MODEM信号,请求发送 CTS PB0 UART0的 MODEM信号,清除发送 DSR PB1 UART0的 MODEM信号,数据装置就绪 RI PB2 UART0的 MODEM信号,振铃指示 DCD PB3 UART0的 MODEM信号,载波检测 表5-5 通用异步收发器(UART1-3) 引脚 GPIO 功能描述 RXD1 PA8 UART1接收器输入引脚 TXD1 PA9 UART1发送器输出引脚 RXD1_ PB8 UART1的 RXD引脚功能映射 TXD1_ PB9 UART1的 TXD引脚功能映射 RXD2 PA6 UART2接收器输入引脚 TXD2 PA7 UART2发送器输出引脚 RXD3 PA4 UART3接收器输入引脚 TXD3 PA5 UART3发送器输出引脚 表5-6 SD控制器(SD0-3)

CH567数据手册 相关资料下载网址:www.wch.cn 引脚 GPIO 功能描述 SDCK PA6 SD0-3时钟信号引脚 CMD0 PA7 SD0 命令信号引脚 SD00 PA8 SD0 数据信号0引脚 SD01 PA9 SD0 数据信号1引脚 SD02 PA10 SD0 数据信号2引脚 SD03 PA11 SD0 数据信号3引脚 CMD1 PA0 SD1 命令信号引脚 SD10 PA12 SD1 数据信号0引脚 SD11 PA13 SD1 数据信号1引脚 SD12 PA14 SD1 数据信号2引脚 SD13 PA15 SD1 数据信号3引脚 CMD2 PA1 SD2 命令信号引脚 SD20 PB0 SD2 数据信号0引脚 SD21 PB1 SD2 数据信号1引脚 SD22 PB2 SD2 数据信号2引脚 SD23 PB3 SD2 数据信号3引脚 CMD3 PA2 SD3 命令信号引脚 SD30 PB4 SD3 数据信号0引脚 SD31 PB5 SD3 数据信号1引脚 SD32 PB6 SD3 数据信号2引脚 SD33 PB7 SD3 数据信号3引脚 表 5-7 LED控制卡 引脚 GPIO 功能描述 LED0 PA0 LED 串行数据0引脚 LED1 PA1 LED 串行数据1引脚 LED2 PA2 LED 串行数据2引脚 LED3 PA3 LED 串行数据3引脚 LEDC PA4 LED 串行时钟引脚 表5-8 ISP下载(ISP) 引脚 GPIO 功能描述 SCS PA12 ISP 下载片选输入引脚 SCK PA13 ISP 下载时钟输入引脚 MOSI PA14 ISP 下载数据输入引脚 MISO PA15 ISP 下载数据输出引脚 RST RST# ISP 下载复位输入引脚 5.3.2 重映射 为了优化芯片封装的外设数目,可以把一些复用功能重新映射到其他引脚上。设置复用映射寄存 器 R8_PORT_PIN可实现引脚的重映射。 CH567支持UART0、TIMER1、TIMER 2外设引脚的重映射,具体参考下表: 表 5-9 重映射引脚 外设功能 默认引脚 重映射引脚 UART0 PB4/PB7 PA15/PA14

CH567数据手册 相关资料下载网址:www.wch.cn UART1 PA8/PA9 PB8/PB9 TIMER1/PWM5 PA10 PB2 TIMER2/PWM6 PA11 PB11

CH567数据手册 相关资料下载网址:www.wch.cn 第 6 章 串行外设接口 SPI

6.1 SPI 简介

SPI是一种全双工串行接口,可处理多个连接到指定总线上的主机和从机。在数据通讯过程中, 总线上只能有一个主机和一个从机通信。通常SPI接口由 4个引脚组成:SPI片选引脚(SCS)、SPI时 钟引脚(SCK)、SPI串行数据引脚MISO(主机输入/从机输出引脚)和SPI串行数据引脚MOSI(主机输出 /从机输入引脚)。 CH567芯片拥有2 个SPI接口,其各自特性分别如下所示: SPI0特性: (1)、支持主机模式和设备模式; (2)、兼容串行外设接口(SPI)规范; (3)、支持模式0 和模式3数据传输方式; (4)、8 位数据传输方式; (5)、时钟频率接近Fsys一半; (6)、8 字节FIFO; (7)、设备模式支持首字节为命令模式或数据流模式; (8)、支持DMA数据传输。 SPI1特性: (1)、只支持主机模式; (2)、支持模式0 和模式3数据传输方式; (3)、8 位数据传输方式; (4)、时钟频率最高接近Fsys一半; (5)、8 字节FIFO。 6.2 寄存器描述 SPI0 相关寄存器物理起始地址为:0x0040 4000 SPI1 相关寄存器物理起始地址为:0X0040 4400 表6-1 SPI0相关寄存器列表 名称 偏移地址 描述 复位值 R8_SPI0_CTRL_MOD 0x00 SPI0模式配置寄存器 8h00 R8_SPI0_CTRL_CFG 0x01 SPI0配置寄存器 8h00 R8_SPI0_INTER_EN 0x02 SPI0中断使能寄存器 8h00 R8_SPI0_CLOCK_DIV R8_SPI0_SLAVE_PRE 0x03 SPI0主机模式时钟分频寄存器 SPI0设备模式预置数据寄存器 8h10 R8_SPI0_BUFFER 0x04 SPI0数据缓冲区 8hxx R8_SPI0_RUN_FLAG 0x05 SPI0工作状态寄存器 8h00 R8_SPI0_INT_FLAG 0x06 SPI0中断标志寄存器 8h00 R8_SPI0_FIFO_COUNT 0x07 SPI0收发FIFO计数寄存器 8hxx R16_SPI0_TOTAL_CNT 0x0C SPI0收发数据长度寄存器 16hxxxx R8_SPI0_FIFO 0x10 SPI0 FIFO寄存器 8hxx R8_SPI0_FIFO_COUNT1 0x13 SPI0收发FIFO计数寄存器 8hxx R16_SPI0_DMA_NOW 0x14 SPI0 DMA缓冲区当前地址 16hxxxx R16_SPI0_DMA_BEG 0x18 SPI0 DMA缓冲区起始地址 16hxxxx R16_SPI0_DMA_END 0x1C SPI0 DMA缓冲区结束地址 16hxxxx

CH567数据手册 相关资料下载网址:www.wch.cn 表6-2 SPI1相关寄存器列表 名称 偏移地址 描述 复位值 R8_SPI1_CTRL_MOD 0x00 SPI1模式配置寄存器 8h00 R8_SPI1_CTRL_CFG 0x01 SPI1配置寄存器 8h00 R8_SPI1_INTER_EN 0x02 SPI1中断使能寄存器 8h00 R8_SPI1_CLOCK_DIV 0x03 SPI1主机模式时钟分频寄存器 8hxx R8_SPI1_BUFFER 0x04 SPI1数据缓冲区 8hxx R8_SPI1_RUN_FLAG 0x05 SPI1工作状态寄存器 8h00 R8_SPI1_INT_FLAG 0x06 SPI1中断标志寄存器 8h00 R8_SPI1_FIFO_COUNT 0x07 SPI1收发FIFO计数寄存器 8hxx R16_SPI1_TOTAL_CNT 0x0C SPI1收发数据长度寄存器 16hxxxx R8_SPI1_FIFO 0x10 SPI1 FIFO寄存器 8hxx R8_SPI1_FIFO_COUNT1 0x13 SPI1收发FIFO计数寄存器 8hxx SPI模式配置寄存器(R8_SPIx_CTRL_MOD) (x=0/1) 位 名称 访问 描述 复位值

7 RB_SPI_MISO_OE RW

MISO引脚输出使能位(可在2 线模式数 据线切换方向使用): 1:MISO引脚输出使能; 0:MISO引脚输出禁止。

6 RB_SPI_MOSI_OE RW

MOSI引脚输出使能位: 1:MOSI引脚输出使能; 0:MOSI引脚输出禁止。

5 RB_SPI_SCK_OE RW

SCK 引脚输出使能位 1:SCK引脚输出使能; 0:SCK引脚输出禁止。

4 RB_SPI_FIFO_DIR RW

FIFO方向设置位: 1:输入模式(主机模式读数据); 0:输出模式(主机模式写数据)。

3 RB_SPI_SLV_CMD_MOD RW

SPI0设备模式首字节配置位,仅SPI0: 1:首字节命令模式; 0:数据流模式。 在首字节命令模式下,当接收到SPI片 选有效后的首字节数据后,将视为命令 码,且中断标志寄存器中的 该位仅在设备模式下有效。

3 RB_SPI_MST_SCK_MOD RW

主机时钟采样模式配置位: 1:模式3(空闲时SCK为高电平); 0:模式0(空闲时SCK为低电平)。 该位仅在主机模式下有效。

2 RB_SPI_2WIRE_MOD RW

2 线或 3 线 SPI 模式配置位,仅 SPI0, SPI1无需此控制位: 1:2线模式(SCK,MISO); 0:3线模式(SCK,MOSI,MISO)。

1 RB_SPI_ALL_CLEAR RW FIFO寄存器及计数寄存器清0 位:

1:强制清除; 1

CH567数据手册 相关资料下载网址:www.wch.cn 0:不清除。

0 RB_SPI_MODE_SLAVE RW

SPI0主从模式选择位,仅SPI0 1:设备模式; 0:主机模式。 注:SPI1不支持设备模式。 SPI配置寄存器(R8_SPIx_CTRL_CFG) (x=0/1) 位 名称 访问 描述 复位值 [7:6] Reserved R0 保留。 0

5 RB_SPI_BIT_ORDER RW

SPI 数据位序选择位: 1:低字节在前; 0:高字节在前。

4 RB_SPI_AUTO_IF RW

使能访问BUFFER/FIFO 自动清除标志位 1:使能; 0:禁止。

3 Reserved R0 保留。 0

2 RB_SPI_DMA_LOOP RW

SPI0 DMA地址循环使能位: 1:使能DMA地址循环功能; 0:禁止DMA地址循环功能。 注:SPI1不支持。

1 Reserved R0 保留。 0

0 RB_SPI_DMA_ENABLE RW

SPI0 DMA使能/禁止位,仅支持SPI0: 1:使能DMA; 0:禁止DMA。 注:如果使能 DMA 地址循环模式功能,当 DMA 地址增加到设置的末尾地址时,自动循环指向设 置的首地址,而不需要重新设置 DMA 起始地址寄存器(R16_SPI0_DMA_BEG) 和 DMA 结束地址寄存器 (R16_SPI0_DMA_END)。 SPI中断使能寄存器(R8_SPIx_INTER_EN) (x=0/1) 位 名称 访问 描述 复位值

7 RB_SPI_IE_FST_BYTE RW

从模式下,第一个字节接收中断使能位, 仅支持SPI0: 1:使能接收到第一个字节中断; 0:禁止接收到第一个字节中断。 开启此功能需要设置SPI为设备模式, 同时需要将RB_SPI_SLV_CMD_MOD位为 1,首字节命令模式。 [6:5] Reserved R0 保留。 0

4 RB_SPI_IE_FIFO_OV RW

FIFO溢出中断使能位,仅支持SPI0: 1:使能相应中断; 0:禁止相应中断。

3 RB_SPI_IE_DMA_END RW

DMA 结束中断使能位,仅支持SPI0: 1:使能相应中断; 0:禁止相应中断。

2 RB_SPI_IE_FIFO_HF RW

FIFO过半中断使能位: 1:使能相应中断; 0:禁止相应中断。

1 RB_SPI_IE_BYTE_END RW SPI 单字节传输完成中断使能位: 0

CH567数据手册 相关资料下载网址:www.wch.cn 1:使能相应中断; 0:禁止相应中断。

0 RB_SPI_IE_CNT_END RW

SPI 全部字节传输完成中断使能位: 1:使能相应中断; 0:禁止相应中断。 SPI主机模式时钟分频寄存器(R8_SPIx_CLOCK_DIV) (x=0/1) 位 名称 访问 描述 复位值 [7:0] R8_SPI_CLOCK_DIV RW 主机模式分频系数,最小值为2 SPI 时钟频率=主频/分频系数。 10h SPI设备模式预置数据寄存器(R8_SPI0_SLAVE_PRE): 位 名称 访问 描述 复位值 [7:0] R8_SPI0_SLAVE_PRE RW SPI0设备模式下,预置的返回数据。 用于接收首字节数据后的返回数据。 注:SPI1不支持 10h SPI数据缓冲区(R8_SPIx_BUFFER) (x=0/1) 位 名称 访问 描述 复位值 [7:0] R8_SPIx_BUFFER RW SPI 数据发送和接收缓冲区 xx SPI工作状态寄存器(R8_SPIx_RUN_FLAG) (x=0/1) 位 名称 访问 描述 复位值

7 RB_SPI_SLV_SELECT RO

SPI0设备模式选择状态位: 1:设备模式; 0:主机模式。 注:SPI1不支持

6 RB_SPI_SLV_CS_LOAD RO

SPI0设备模式片选后首次加载状态位: 1:加载完成; 0:未完成(可修改预加载值)。 注:SPI1不支持

5 RB_SPI_FIFO_READY RO

FIFO准备完成状态位: 1:FIFO准备完成; 0:FIFO未准备好。

4 RB_SPI_SLV_CMD_ACT RO

SPI0设备模式下命令接收完成状态位, 即交换完首字节数据: 1:首字节交换完成; 0:首字节交换未完成。 注:SPI1不支持 [3:0] Reserved R0 保留。 0 SPI中断标志寄存器(R8_SPIx_INT_FLAG) (x=0/1) 位 名称 访问 描述 复位值

7 RB_SPI_IF_FST_BYTE RW1

SPI0设备模式下,首字节接收标志位: 1:接收到首字节; 0:未接收到首字节。 注:SPI1不支持。

6 RB_SPI_FREE RO 当前SPI空闲状态位: 0

CH567数据手册 相关资料下载网址:www.wch.cn 1:当前SPI处于空闲状态; 0:当前SPI处于非空闲状态。

5 Reserved RO 保留。 0

4 RB_SPI_IF_FIFO_OV RW1

SPI0 FIFO溢出标志位,仅支持SPI0: 1:FIFO溢出; 0:FIFO未溢出。 注:SPI1不支持。

3 RB_SPI_IF_DMA_END RW1

SPI0 DMA结束标志位,仅支持SPI0: 1:DMA传输结束; 0:DMA传输未结束。 注:SPI1不支持。

2 RB_SPI_IF_FIFO_HF RW1

FIFO数据过半标志位: 1:数据达到FIFO缓冲区一半; 0:数据未达到FIFO缓冲区一半。 计数 >= 4触发; RB_SPI_FIFO_DIR=0,发送数据, FIFO 计数 < 4触发。

1 RB_SPI_IF_BYTE_END RW1

SPI 单字节传输完成标志位: 1:SPI单字节传输完成; 0:SPI单字节传输未完成。

0 RB_SPI_IF_CNT_END RW1

SPI 全部字节传输完成标志位: 1:SPI全部字节传输完成; 0:SPI全部字节传输未完成。 SPI收发FIFO计数寄存器(R8_SPIx_FIFO_COUNT) (x=0/1) 位 名称 访问 描述 复位值 [7:0] R8_SPIx_FIFO_COUNT RW 当前FIFO中字节计数。 xx SPI收发FIFO计数寄存器(R8_SPIx_FIFO_COUNT1) (x=0/1) 位 名称 访问 描述 复位值 [7:0] R8_SPIx_FIFO_COUNT1 RW 当前FIFO中字节计数,等效寄存器 R8_SPIx_FIFO_COUNT。 xx SPI收发数据总长度寄存器(R16_SPIx_TOTAL_CNT) (x=0/1) 位 名称 访问 描述 复位值 [15:0] R16_SPIx_TOTAL_CNT RW SPI 数据收发总字节数,低12位有效。 在使用DMA时一次最多可以发送4095个 字节。 SPI FIFO寄存器(R8_SPIx_FIFO) (x=0/1) 位 名称 访问 描述 复位值 [7:0] R8_SPIx_FIFO RO/ WO SPI FIFO寄存器。FIFO大小为8个字节。 0 寄存器R8_SPIx_BUFFER和寄存器R8_SPIx_FIFO均为SPI数据相关寄存器,主要区别在于:后者 读取完一个字节数据之后, 因为是从FIFO读取, 所以长度寄存器(R16_SPI_TOTAL_CNT)的值自动减 1, 而前者读取完一个字节,长度寄存器值不变。

CH567数据手册 相关资料下载网址:www.wch.cn SPI0 DMA缓冲区当前地址(R16_SPI0_DMA_NOW) 位 名称 访问 描述 复位值 [15:0] R16_SPI0_DMA_NOW RW DMA缓冲区当前地址,仅支持SPI0。 通过查询此值可以判断DMA运行情况。 xxxx SPI0 DMA缓冲区起始地址(R16_SPI0_DMA_BEG) 位 名称 访问 描述 复位值 [15:0] R16_SPI0_DMA_BEG RW DMA 缓冲区起始地址,仅支持SPI0。 指向SPI0收发数据缓冲区起始地址。 xxxx SPI0 DMA缓冲区结束地址(R16_SPI0_DMA_END) 位 名称 访问 描述 复位值 [15:0] R16_SPI0_DMA_END RW DMA 缓冲区结束地址,仅支持SPI0。 指向SPI0收发数据缓冲区结束地址。 xxxx

6.3 SPI 传输格式

SPI仅支持模式0和模式3两种传输格式, 可以通过设置SPI模式配置寄存器(R8_SPIx_CTRL_MOD) 的 RB_SPI_MST_SCK_MOD位来进行选择。 数据传输格式如下图所示: 模式0:RB_SPI_MST_SCK_MOD = 0 MSB 6 5 4 3 2 1 LSB MSB 1 2 3 4 5 6 7 8 6 5 4 3 2 1 LSB MSB* Cycle CLK MOSI MISO 模式0时序图 图6-1 SPI模式0传输格式 模式3: RB_SPI_MST_SCK_MOD = 1 MSB 6 5 4 3 2 1 LSB 1 2 3 4 5 6 7 8 6 5 4 3 2 1 LSB Cycle CLK MOSI MISO 模式3时序图 MSBLSB* 图6-2 SPI模式3传输格式

6.4 SPI 配置

6.4.1 SPI 主机模式

CH567数据手册 相关资料下载网址:www.wch.cn SPI主机模式下,在SCK引脚产生串行时钟,片选引脚可以指定为任意I/O引脚。 配置步骤: (1)、设置SPI主机模式时钟分频寄存器(R8_SPIx_CLOCK_DIV),配置SPI时钟速度; (2)、设置SPI模式配置寄存器(R8_SPIx_CTRL_MOD)的RB_SPI_MODE_SLAVE位为0,配置SPI为 主机模式; (3)、设置SPI模式配置寄存器(R8_SPIx_CTRL_MOD)的RB_SPI_SLV_CMD_MOD位,根据连接的设备 需求设置为模式0 或模式3; (4)、设置SPI模式配置寄存器(R8_SPIx_CTRL_MOD)的RB_SPI_FIFO_DIR位,配置FIFO方向,若 为 1 则当前FIFO方向为数据输入,若为0则当前FIFO方向为数据输出。 (5)、设置SPI模式配置寄存器(R8_SPIx_CTRL_MOD)的RB_SPI_MOSI_OE位和RB_SPI_SCK_OE位为 1, RB_SPI_MISO_OE位为0,并设置PA口方向寄存器(R32_PB_DIR)中 MOSI引脚和SCK引脚对应的位 为 1,MISO引脚对应的位为0,将 MOSI引脚和SCK引脚方向配置为输出,MISO引脚方向配置为输入; 数据发送过程: (1)、设置SPI模式配置寄存器(R8_SPIx_CTRL_MOD)的RB_SPI_FIFO_DIR位为0,置当前FIFO方 向为输出; (2)、写R16_SPIx_TOTAL_CNT寄存器,设置要发送的数据长度; (3)、写R8_SPIx_FIFO寄存器,往FIFO里写要发送的数据,如果R8_SPI0_FIFO_COUNT小于FIFO 大小则可以继续往FIFO写数据; (4)、所有数据写入FIFO后,等待R16_SPIx_TOTAL_CNT寄存器为0,则说明数据发送完成,如 果发送一字节,也可以等待R8_SPI0_FIFO_COUNT为0,则说明FIFO中没有数据即数据已发送完毕。 数据接收过程: (1)、设置SPI模式配置寄存器(R8_SPIx_CTRL_MOD)的RB_SPI_FIFO_DIR位为1,置当前FIFO方 向为输入; (2)、写R16_SPIx_TOTAL_CNT寄存器,设置要接收的数据长度; (3)、等待R8_SPIx_FIFO_COUNT寄存器不为0,则说明接收到返回数据; (4)、读取R8_SPIx_FIFO中的值即为接收到的数据。

6.4.2 SPI 从机模式

只有SPI0支持从机模式,从机模式下,SCK引脚用于接收连接的SPI主机的串行时钟。 配置步骤: (1)、设置 SPI0 模式配置寄存器(R8_SPI0_CTRL_MOD)的 RB_SPI_MODE_SLAVE 位为 1,配置 SPI0 为从机模式; (2)、根据需要设置SPI0模式配置寄存器(R8_SPI0_CTRL_MOD)的 RB_SPI_SLV_CMD_MOD位; (3)、设置 SPI0 模式配置寄存器(R8_SPI0_CTRL_MOD)的 RB_SPI_FIFO_DIR位,配置FIFO 方向, 若为 1则当前FIFO方向为数据输入,若为0 则当前FIFO方向为数据输出; (4)、设置SPI0模式配置寄存器(R8_SPI0_CTRL_MOD)的RB_SPI_MOSI_OE位和RB_SPI_SCK_OE位 为 0,RB_SPI_MISO_OE位为1,并设置PA 口方向寄存器(R32_PB_DIR)中 MOSI引脚、SCK引脚和SCS 引脚对应的位为0,MISO引脚对应的位为1,将 MOSI引脚、SCK引脚和SCS引脚方向配置为输入, MISO引脚方向配置为输出。如果MISO引脚不配置输出方向,当片选有效(低电平)时,MISO将自动 使能输出。建议,设置MISO引脚设置为输入模式,使MISO在片选无效时决不输出,便于多机操作时, 共享 SPI总线。注意:在SPI从模式下MISO引脚的I/O引脚方向,除了能够由MISO引脚方向配置为 输出之外,还支持SPI片选有效期间自动配置为输出,但其输出数据由RB_SPI_MISO_OE选择,当 RB_SPI_MISO_OE为1时输出SPI数据,当RB_SPI_MISO_OE为0 时输出GPIO寄存器的数据。 (5)、可选的,设置 SPI0 设备模式预置数据寄存器(R8_SPI0_SLAVE_PRE),用于被片选后首次自 动加载到缓冲区中用于对外输出。当8 个时钟过去之后(即首个数据字节在主从双方之间交换完毕) , 控制器得到外部 SPI 主机发来的首字节数据(命令码),外部 SPI 主机交换得到 R8_SPI0_SLAVE_PRE 中的预置数据(状态值) 。该寄存器的位7将SPI片选有效后的SCK低电平期间自动加载到MISO引脚

CH567数据手册 相关资料下载网址:www.wch.cn 上,对于SPI模式0(CLK默认为低电平) ,如果预置了R8_SPI0_SLAVE_PRE的位7,那么外部SPI主 机将在 SPI 片选有效但尚未传输数据时,就能够通过查询 MISO 引脚得到 R8_SPI0_SLAVE_PRE 的位 7 的预置值,从而通过仅仅有效一下SPI片选就能获得R8_SPI0_SLAVE_PRE的位7 的值。 数据发送过程: (1)、设置 SPI 模式配置寄存器(R8_SPIx_CTRL_MOD)的 RB_SPI_FIFO_DIR位为 0,配置当前 FIFO 方向为数据输出; (2)、将发送数据写入到FIFO 寄存器(R8_SPIx_FIFO)中,并将 SPI 发送/接收数据总长度寄存器 (R16_SPIx_TOTAL_CNT)加1,建议一次性将R16_SPIx_TOTAL_CNT为较大的值,这样,只要FIFO中有 数据就会自动发送,FIFO空时自动暂停,不必每次设置R16_SPIx_TOTAL_CNT; (3)、如果发送单个字节,则等待R16_SPIx_TOTAL_CNT寄存器为0,等待数据发送完毕;如果发 送多个字节,则可以一次性最多写入8 个数据到FIFO寄存器(R8_SPIx_FIFO)中,再等待发送完毕; 数据接收过程: (1)、设置SPI模式配置寄存器(R8_SPIx_CTRL_MOD)的RB_SPI_FIFO_DIR位为1,配置当前 FIFO方向为数据输入; (2)、等待查询SPI发送/接收数据总长度寄存器(R16_SPIx_TOTAL_CNT),如果该寄存器不为0, 则表示接收到数据,通过读取FIFO寄存器(R8_SPIx_FIFO)来获取接收到的数据。 单个字节的数据接收, 也可以不使用FIFO, 可以直接读SPI数据缓冲区寄存器(R8_SPIx_BUFFER) 得到对方给的当前数据启动传输。

6.5 DMA 功能

CH567 只有 SPI0 具有 DMA功能,SPI1 不具备此功能。通过使能DMA 功能,可以在减少软件干预 的基础上更便捷的实现SPI数据的接收和发送。

6.5.1 SPI 主机模式 DMA 发送数据配置

(1)、按照6.4.1节,将SPI0 配置为主机模式; (2)、如果需要产生 DMA 完成 中断 ,则 将 SPI 中断使能寄存器 (R8_SPIx_INTER_EN)的 (3)、初始化R16_SPI_DMA_BEG寄存器为SPI数据发送缓冲区开始地址; (4)、初始化R16_SPI_DMA_END寄存器为SPI数据发送缓冲区结束地址; (5)、清SPI中断状态寄存器(R8_SPIx_INT_FLAG); (6)、初始化R16_SPI_TOTAL_CNT寄存器为需要发送的数据个数,如果DMA已使能则启动传输; (7)、如果需要使能DMA地址循环模式功能,则需要设置SPI的DMA控制寄存器 (R8_SPIx_CTRL_DMA)的 RB_SPI_DMA_LOOP位为1; (8)、设置 SPI 的 DMA 控制寄存器(R8_SPIx_CTRL_DMA)的 RB_SPI_DMA_ENABLE 位为 1,使能 DMA 进行数据发送。

6.5.2 SPI 主机模式 DMA 接收数据配置

(1)、按照6.4.1节,将SPI0配置为主机模式; (2)、如果需要产生 DMA 中断将寄存器 R8_SPI_INTER_EN 的 RB_SPI_IE_DMA_END 位置 1,使能产 生 DMA结束中断; (3)、初始化R16_SPI_DMA_BEG寄存器为SPI数据接收缓冲区开始地址; (4)、初始化R16_SPI_DMA_END寄存器为SPI数据接收缓冲区结束地址; (5)、清SPI中断状态寄存器(R8_SPIx_INT_FLAG); (6)、初始化R16_SPI_TOTAL_CNT寄存器为需要接收的数据个数,如果DMA已使能则启动传输; (7)、 如果需要使能DMA地址循环模式功能,则需要设置SPI的DMA控制寄存器(R8_SPIx_CTRL_DMA)

CH567数据手册 相关资料下载网址:www.wch.cn 的 RB_SPI_DMA_LOOP位为1; (8)、设置 SPI 的 DMA 控制寄存器(R8_SPIx_CTRL_DMA)的 RB_SPI_DMA_ENABLE 位为 1,使能 DMA 进行数据接收。如果DMA使能在前,在设置完R16_SPI_TOTAL_CNT后即自动开始传输。

CH567数据手册 相关资料下载网址:www.wch.cn 第 7 章 通用异步收发器 UART

7.1 UART 简介

CH567提供了4组全双工的异步串口,UART0/1/2/3。支持全双工和半双工串口通讯,其中UART0 提供发送状态引脚用于切换RS485,并且支持MODEM调制解调器信号CTS、DSR、RI、DCD、DTR、RTS。 UART特性: (1)、兼容16C550异步串口并且有所增强; (2)、支持5、6、7或者8个数据位以及1或者2 个停止位; (4)、可编程通讯波特率,支持115200bps以及最高达6Mbps的通讯波特率; (5)、内置8 个字节的FIFO先进先出缓冲器,支持4个FIFO触发级; (6)、UART0支持MODEM调制解调器信号CTS、DSR、RI、DCD、DTR、RTS,可转成RS232电平; (7)、支持硬件流控制信号CTS和RTS自动握手和自动传输速率控制,兼容TL16C550C; (8)、支持串口帧错误检测、支持Break线路间隔检测; (9)、支持全双工和半双工串口通讯,UART0提供发送状态引脚用于切换RS485; 7.2 寄存器描述 UART0相关寄存器物理起始地址为:0x0040 3000 UART1相关寄存器物理起始地址为:0x0040 3400 UART2相关寄存器物理起始地址为:0x0040 3800 UART3相关寄存器物理起始地址为:0x0040 3c00 表7-1 UART0相关寄存器列表 名称 偏移地址 描述 复位值 R8_UART0_MCR 0x00 调制解调器MODEM控制寄存器 8h00 R8_UART0_IER 0x01 中断使能寄存器 8h00 R8_UART0_FCR 0x02 FIFO控制寄存器 8h00 R8_UART0_LCR 0x03 线路控制寄存器 8h00 R8_UART0_IIR 0x04 中断识别寄存器 8h01 R8_UART0_LSR 0x05 线路状态寄存器 8hC0 R8_UART0_MSR 0x06 调制解调器MODEM状态寄存器 8hx0 R8_UART0_RBR 0x08 接收缓冲寄存器 8hxx R8_UART0_THR 0x08 发送保持寄存器 8hxx R8_UART0_RFC 0x0A 接收FIFO计数寄存器 8hxx R8_UART0_TFC 0x0B 发送FIFO计数寄存器 8hxx R16_UART0_DL 0x0C 波特率除数锁存器 16hxxxx R8_UART0_DIV 0x0E 预分频除数寄存器 8hxx R8_UART0_ADR 0x0F 从机地址寄存器 8hFF 表7-2 UART1相关寄存器列表 名称 偏移地址 描述 复位值 R8_UART1_MCR 0x00 调制解调器MODEM控制寄存器 8h00 R8_UART1_IER 0x01 中断使能寄存器 8h00 R8_UART1_FCR 0x02 FIFO控制寄存器 8h00 R8_UART1_LCR 0x03 线路控制寄存器 8h00

CH567数据手册 相关资料下载网址:www.wch.cn R8_UART1_IIR 0x04 中断识别寄存器 8h01 R8_UART1_LSR 0x05 线路状态寄存器 8hC0 R8_UART1_RBR 0x08 接收缓冲寄存器 8hxx R8_UART1_THR 0x08 发送保持寄存器 8hxx R8_UART1_RFC 0x0A 接收FIFO计数寄存器 8hxx R8_UART1_TFC 0x0B 发送FIFO计数寄存器 8hxx R16_UART1_DL 0x0C 波特率除数锁存器 16hxxxx R8_UART1_DIV 0x0E 预分频除数寄存器 8hxx 表7-3 UART2相关寄存器列表 名称 偏移地址 描述 复位值 R8_UART2_MCR 0x00 调制解调器MODEM控制寄存器 8h00 R8_UART2_IER 0x01 中断使能寄存器 8h00 R8_UART2_FCR 0x02 FIFO控制寄存器 8h00 R8_UART2_LCR 0x03 线路控制寄存器 8h00 R8_UART2_IIR 0x04 中断识别寄存器 8h01 R8_UART2_LSR 0x05 线路状态寄存器 8hC0 R8_UART2_RBR 0x08 接收缓冲寄存器 8hxx R8_UART2_THR 0x08 发送保持寄存器 8hxx R8_UART2_RFC 0x0A 接收FIFO计数寄存器 8hxx R8_UART2_TFC 0x0B 发送FIFO计数寄存器 8hxx R16_UART2_DL 0x0C 波特率除数锁存器 16hxxxx R8_UART2_DIV 0x0E 预分频除数寄存器 8hxx 表7-4 UART3相关寄存器列表 名称 偏移地址 描述 复位值 R8_UART3_MCR 0x00 调制解调器MODEM控制寄存器 8h00 R8_UART3_IER 0x01 中断使能寄存器 8h00 R8_UART3_FCR 0x02 FIFO控制寄存器 8h00 R8_UART3_LCR 0x03 线路控制寄存器 8h00 R8_UART3_IIR 0x04 中断识别寄存器 8h01 R8_UART3_LSR 0x05 线路状态寄存器 8hC0 R8_UART3_RBR 0x08 接收缓冲寄存器 8hxx R8_UART3_THR 0x08 发送保持寄存器 8hxx R8_UART3_RFC 0x0A 接收FIFO计数寄存器 8hxx R8_UART3_TFC 0x0B 发送FIFO计数寄存器 8hxx R16_UART3_DL 0x0C 波特率除数锁存器 16hxxxx R8_UART3_DIV 0x0E 预分频除数寄存器 8hxx 调制解调器MODEM控制寄存器(R8_UARTx_MCR)(x=0/1/2/3) 位 名称 访问 描述 复位值

7 RB_MCR_HALF RW

UART0半双工收发模式使能/禁止位 1:进入半双工收发模式,发送优先,不 发送时为接收; 0:禁止半双工收发模式。 注:仅支持UART0。

6 RB_MCR_TNOW RW UART0 的正在发送状态(TNOW)输出(DTR

引脚)使能位: 0

CH567数据手册 相关资料下载网址:www.wch.cn 1:使能串口0 的DTR引脚输出正在发送 状态TNOW,可以用于控制RS485收发切 0:禁止。 注:仅支持UART0。

5 RB_MCR_AU_FLOW_EN RW

UART0 允许 CTS 和 RTS 硬件自动流控制 1:允许CTS和RTS硬件自动流控制; 0:无效。 注:仅支持UART0。 流控模式下,如果此位为 1,那么仅在 检测到CTS引脚输入有效 (低电平有效) 时串口才继续发送下一个数据,否则暂 停串口发送,当此位为 1 时的 CTS 输入 状态变化不会产生 MODEM 状态中断。如 果此位为 1 并且 RTS 为 1,那么当接收 FIFO空时, 串口会自动有效RTS引脚 (低 电平有效) , 直到接收的字节数达到FIFO 的触发点时, 串口才自动无效RTS引脚, 并能够在接收FIFO空时再次有效RTS引 脚。使用硬件自动带率控制,可将己方 的 CTS 引脚接到对方的 RTS 引脚,并将 己方的RTS引脚送到对方的CTS引脚。

4 RB_MCR_LOOP RW

UART0内部回路的测试模式控制位: 1:使能内部回路的测试模式; 0:禁止内部回路的测试模式。 在内部回路的测试模式下,串口所有对 外输出引脚均为无效状态,TXD 内部返 回到RXD(即TSR的输出内部返回到RSR 的输入) ,RTS 内部返回到 CTS,DTR 内 部返回到DSR,OUT1内部返回到RI,OUT2 内部返回到DCD 注:仅支持UART0。

3 RB_MCR_OUT2 RW

串口的中断请求输出控制位: 1:使能; 0:禁止。

2 RB_MCR_OUT1 RW

用户自定义 MODEM 控制位,没有连接实 际输出引脚: 1:置高; 0:置低。 注:仅支持UART0。

1 RB_MCR_RTS RW

RTS 引脚输出有效控制位: 1:使能RTS引脚输出有效 (低电平有效) 0:禁止RTS引脚输出有效 注:仅支持UART0。

0 RB_MCR_DTR RW

DTR 引脚输出有效控制位: 1:使能引脚输出有效(低电平有效); 0:禁止引脚输出有效。 注:仅支持UART0。

CH567数据手册 相关资料下载网址:www.wch.cn 中断使能寄存器(R8_UARTx_IER)(x=0/1/2/3) 位 名称 访问 描述 复位值

7 RB_IER_RESET WZ

串口软件复位控制位,自动清零: 1:软件复位该串口; 0:不进行软件复位。

6 RB_IER_TXD_EN RW

串口TXD引脚输出使能位: 1:使能引脚输出; 0:禁止引脚输出。

5 RB_IER_RTS_EN RW

UART0的RTS引脚输出使能位: 1:使能引脚输出; 0:禁止引脚输出。 注:仅支持UART0。

4 RB_IER_DTR_EN RW

UART0的DTR/TNOW引脚输出使能位: 1:使能引脚输出; 0:禁止引脚输出。 注:仅支持UART0。

3 RB_IER_MODEM_CHG RW

UART0的调制解调器输入状态变化中断 使能位: 1:使能相应中断; 0:禁止相应中断。 注:仅支持UART0。

2 RB_IER_LINE_STAT RW

接收线路状态中断使能位: 1:使能相应中断; 0:禁止相应中断。

1 RB_IER_THR_EMPTY RW

发送保持寄存器空中断使能位: 1:使能相应中断; 0:禁止相应中断。

0 RB_IER_RECV_RDY RW

接收数据中断使能位: 1:使能相应中断; 0:禁止相应中断。 FIFO控制寄存器(R8_UARTx_FCR) (x=0/1/2/3) 位 名称 访问 描述 复位值 [7:6] RB_FCR_FIFO_TRIG RW 接收 FIFO 的中断和硬件流控制的触发 点设置域: 00:1字节; 01:2字节; 10:4字节; 11:7字节。 该域用来设置接收 FIFO 的中断和硬件 流控制的触发点,例如:00对应1 个字 节,即接收满 1 个字节产生接收数据可 用的中断,并在使能硬件流控制时自动 无效RTS引脚。 [5:3] Reserved RO 保留 0

2 RB_FCR_TX_FIFO_CLR WZ

发送FIFO数据清空使能位,自动清零: 1:清空发送FIFO中的数据(不含TSR); 0:不清空发送FIFO中的数据。

CH567数据手册 相关资料下载网址:www.wch.cn

1 RB_FCR_RX_FIFO_CLR WZ

接收FIFO数据清空使能位,自动清零: 1:清空接收FIFO中的数据(不含RSR); 0:不清空接收FIFO中的数据。

0 RB_FCR_FIFO_EN RW

该 FIFO使能位: 1:启用FIFO,内部FIFO大小8字节; 0:禁用FIFO。 禁用FIFO后为16C450兼容模式,相当 于FIFO只有一个字节(RECV_TG1=0、 RECV_TG0=0、FIFO_EN=1),建议启用 FIFO。 线路控制寄存器(R8_UARTx_LCR)(x=0/1/2/3) 位 名称 访问 描述 复位值

7 RB_LCR_DLAB/

RB_LCR_GP_BIT RW 串口通用位(用户自定义)。 0

6 RB_LCR_BREAK_EN RW

强制产生BREAK线路间隔使能位: 1:强制产生BREAK线路间隔; 0:不产生BREAK线路间隔。 [5:4] RB_LCR_PAR_MOD RW 奇偶校验位格式设置域 00:奇校验; 01:偶校验; 10:标志位(MARK,置1); 11:空白位(SPACE,清0)。 该域仅当RB_LCR_PAR_EN位为1时有效。

3 RB_LCR_PAR_EN RW

奇偶校验位使能位: 1:允许发送时产生和接收时校验奇偶校 验位; 0:无奇偶校验位。

2 RB_LCR_STOP_BIT RW

停止位格式设置位: 0:一个停止位; 1:两个停止位。 [1:0] RB_LCR_WORD_SZ RW 串口数据长度设置域: 00:5个数据位; 01:6个数据位; 10:7个数据位; 11:8个数据位。 中断识别寄存器(R8_UARTx_IIR)(x=0/1/2/3) 位 名称 访问 描述 复位值 [7:6] RB_IIR_FIFO_ID RO 串口FIFO启用状态位: 1:FIFO已启用; 0:FIFO未启用。 [5:4] Reserved R0 保留。 0 [3:0] RB_IIR_INT_MASK RO 中断标志域:如果 RB_IIR_NO_INT 位为 0,则表示有中断产生,需要读取该域判 断中断源。具体请参看下表

0 RB_IIR_NO_INT RO

串口无中断标志位: 1;无中断; 0:有中断。

CH567数据手册 相关资料下载网址:www.wch.cn 中断识别寄存器(R8_UARTx_IIR)的RB_IIR_NO_INT位以及RB_IIR_INT_MASK域的每一个位所表示 的含义如下表所示: 表8-3 IIR寄存器中 RB_IIR_INT_MASK含义 IIR 寄存器位 优先 级 中断类型 中断源 清中断 方法 IID3 IID2 IID1 NOINT 0 0 0 1 无 没有中断产生 没有中断 1 1 1 0 0 总线地址匹配 接收到1个数据是串口总线地址,且 该地址与预置从机值相匹配或是广 播地址。 注:该中断只适用UART0。 读 IIR 或 禁用 多机 模式 0 1 1 0 1 接收线路状态 OVER_ERR、PAR_ERR、FRAM_ERR、 BREAK_ERR 读LSR 0 1 0 0 2 接收数据可用 接收到的字节数达到FIFO的触发点。 读RBR 1 1 0 0 2 接收数据超时 超过 4个数据时间未收到下一数据。 读RBR 0 0 1 0 3 THR寄存器空 发送保持寄存器空,或者, RB_IER_THR_EMPTY位从0变1 触发。 读IIR 或写 THR 0 0 0 0 4 MODEM输入变化 △CTS、△DSR、△RI、△DCD置1 触发。 读MSR 线路状态寄存器(R8_UARTx_LSR)(x=0/1/2/3) 位 名称 访问 描述 复位值

7 RB_LSR_ERR_RX_FIFO RO

接收 FIFO错误标志位: 1:接收FIFO中存在至少一个PAR_ERR、 FRAM_ERR或 BREAK_ERR错误; 0:接收FIFO未存在错误。

6 RB_LSR_TX_ALL_EMP RO

发送保持寄存器 THR 和发送移位寄存器 TSR 全空标志位: 1:两者全空; 0:两者非全空。

5 RB_LSR_TX_FIFO_EMP RO

发送FIFO空标志位: 1:发送FIFO空; 0:发送FIFO非空。

4 RB_LSR_BREAK_ERR RZ

BREAK线路间隔检测标志位: 1:检测到BREAK线路间隔: 0:未检测到BREAK线路间隔。

3 RB_LSR_FRAME_ERR RZ

数据帧错误标志位: 1:表示正在从接收 FIFO 中读取的数据 的帧错误,缺少有效的停止位; 0:数据帧正确。

2 RB_LSR_PAR_ERR RZ

接收数据奇偶校验错误标志位: 1:表示正在从接收 FIFO 中读取的数据 的奇偶校验错; 0:奇偶校验正确。

1 RB_LSR_OVER_ERR RZ

接收FIFO缓冲区溢出标志位: 1:已溢出; 0;未溢出。

0 RB_LSR_DATA_RDY RO

接收 FIFO中有接收到的数据标志位: 1:FIFO中有数据; 0:无数据。

CH567数据手册 相关资料下载网址:www.wch.cn 读取FIFO中所有数据后, 该位自动清0。 调制解调器MODEM状态寄存器(R8_UART0_MSR) 仅UART0使用 位 名称 访问 描述 复位值

7 RB_MSR_DCD RO

DCD 引脚状态位: 1:DCD引脚有效(低电平有效); 0:DCD引脚无效(高电平)。 注:仅支持UART0。 x

6 RB_MSR_RI RO

RI引脚状态位: 1:RI引脚有效(低电平有效); 0:RI引脚无效(高电平)。 注:仅支持UART0。 x

5 RB_MSR_DSR RO

DSR 引脚状态位: 1:DSR引脚有效(低电平有效); 0:DSR引脚无效(高电平)。 注:仅支持UART0。 x

4 RB_MSR_CTS RO

CTS 引脚状态位: 1:CTS引脚有效(低电平有效); 0:CTS引脚无效(高电平)。 注:仅支持UART0。 x

3 RB_MSR_DCD_CHG RZ

DCD 引脚输入状态变化标志位: 1:发生变化; 0:无变化。 注:仅支持UART0。

2 RB_MSR_RI_CHG RZ

RI引脚输入状态变化标志位: 1:发生变化; 0:无变化。 注:仅支持UART0。

1 RB_MSR_DSR_CHG RZ

DSR 引脚输入状态变化标志位: 1:发生变化; 0:无变化。 注:仅支持UART0。

0 RB_MSR_CTS_CHG RZ

CTS 引脚输入状态变化标志位: 1:发生变化; 0:无变化。 注:仅支持UART0。 接收缓冲寄存器(R8_UARTx_RBR)(x=0/1/2/3) 位 名称 访问 描述 复位值 [7:0] R8_UARTx_RBR RO 数据接收缓冲寄存器。 如果LSR的DATA_RDY位为1,则可以从 该寄存器读取接收到的数据; 如果 FIFO_EN 为 1,则从串口移位寄存 器 RSR 接收到的数据首先被存放于接收 FIFO中,然后通过该寄存器读出 x 发送保持寄存器(R8_UARTx_THR)(x=0/1/2/3) 位 名称 访问 描述 复位值

CH567数据手册 相关资料下载网址:www.wch.cn [7:0] R8_UARTx_THR WO 发送保持寄存器。 包括发送FIFO,用于写入准备发送的数 据;如果 FIFO_EN 为 1,则写入的数据 首先被存放于发送FIFO中, 然后通过发 送移位寄存器TSR逐个输出 x 接收FIFO计数寄存器(R8_UARTx_RFC)(x=0/1/2/3) 位 名称 访问 描述 复位值 [7:0] R8_UARTx_RFC RO 当前接收FIFO中数据计数。最大值8。 x 发送FIFO计数寄存器(R8_UARTx_TFC)(x=0/1/2/3) 位 名称 访问 描述 复位值 [7:0] R8_UARTx_TFC RO 当前发送FIFO中数据计数。最大值8。 x 波特率除数锁存器(R16_UARTx_DL)(x=0/1/2/3) 位 名称 访问 描述 复位值 [15:0] R16_UARTx_DL RW 16位除数用于计算波特率。 公式:除数 = 串口内部基准时钟 / 16 / 所需通讯波特率。 例: 如 果 串 口 内 部 基 准 时 钟为 1.8432MHz,所需波特率为9600bps,则 除数=1843200/16/9600=12 x 预分频除数寄存器(R8_UARTx_DIV)(x=0/1/2/3) 位 名称 访问 描述 复位值 [7:0] R8_UARTx_DIV RW 用于计算串口的内部基准时钟,低7位 有效。 公式:除数 = Fsys * 2 / 串口内部基 准时钟,最大值127。 例:如果系统主时钟为 96MHz,除数为 104 , 那 么 串 口 内 部 基 准 时 钟 为 1.846MHz, 与常用的基准时钟1.8432相 差0.16% x 从机地址寄存器(R8_UART0_ADR) 仅UART0使用 位 名称 访问 描述 复位值 [7:0] R8_UART0_ADR RW 串口0从机地址: FFh:不使用; 其他:从机地址。 8hFF R8_UART0_ADR 预置本机作为从机时的地址,用于在多机通讯时自动比较接收到的地址,并在地 址匹配或者在接收到广播地址 0FFH 时产生中断,同时允许接收后续数据包。在地址没有匹配之前不 接收任何数据,开始发送数据后或者重写 R8_UART0_ADR 寄存器后停止接收任何数据,直到下次地址 再次匹配或者接收到广播地址时再允许接收。 R8_UART0_ADR 为 0FFH时或者RB_LCR_PAR_EN=0 时,禁用总线地址自动比较功能。 R8_UART0_ADR 不为0FFH并且RB_LCR_PAR_EN=1 时,启用总线地址自动比较功能,同时应该配置 下述参数:RB_LCR_WORD_SZ 控制域位 11b 以选择 8 个数据位方式,对于地址字节为 MARK 的情况(即 数据字节的位9 为 0),应设置RB_LCR_PAR_MOD控制域 10b,对于地址字节为SPACE 的情况(即数据 字节的位9为1) ,应设置RB_LCR_PAR_MOD控制域11b。

CH567数据手册 相关资料下载网址:www.wch.cn

7.3 UART 应用

CH567芯片的 UART0/1/2/3输出引脚都是3.3V LVCMOS电平。异步串口方式下引脚包括:数据传 输引脚(支持UART0/1/2/3)和 MODEM联络信号引脚(只支持UART0)。数据传输引脚包括:TXD引脚 和 RXD引脚,默认都是高电平;MODEM联络信号引脚包括:CTS引脚、DSR引脚、RI引脚、DCD引脚、 DTR 引脚、RTS 引脚,默认都是高电平。所有这些MODEM 联络信号都可以作为通用I/O 引脚,由应用 程序控制并定义其用途。 4 组 UART 各自拥有独立的收发缓冲区及8 字节 FIFO,支持单工、半双工或者全双工异步串行通 讯。串行数据包括1个低电平起始位,5、6、7 或8个数据位,0 个或者1个附加校验位或者标志位, 1 个或者2个高电平停止位,支持奇校验/偶校验/标志校验/空白校验。支持常用通讯波特率:1200、 7.8125M等。串口发送信号的波特率误差小于0.2%,串口接收信号的允许波特率误差不大于2%。 7.3.1 波特率计算 1)计算基准时钟,设置R8_UART0_DIV寄存器,最大值127; 2)计算波特率,设置R16_UART0_DL寄存器; 波特率公式 = Fsys * 2 / R8_UART0_DIV / 16 / R16_UART0_DL. 7.3.2 串口发送 串口发送的“THR 寄存器空”中断(IIR 寄存器的低4 位为 02H)是指发送 FIFO 空。当读取 IIR 寄存器后,该中断被清除,或者当向THR写入下一个数据后,该中断也能被清除。如果仅仅是向THR 写入一个字节,那么由于该字节很快被转移到发送移位寄存器TSR中开始发送,所以很快会再次产生 发送 THR寄存器空中断的请求,此时可以写入下一个准备发送的数据。当TSR寄存器中的数据被全部 移出后,串口发送才真正完成,此时LSR寄存器的RB_LSR_TX_ALL_EMP位变为1 有效。 在中断触发方式下,当收到串口发送保持寄存器 THR 空的中断后,如果已使能 FIFO,那么可以 向 THR寄存器及FIFO一次写入最多8字节,然后控制器会按顺序自动发送;如果禁止FIFO,那么一 次只能写入一个字节;如果没有数据需要发送,那么可以直接退出(之前读取IIR时已经自动清除中 断) 。 在查询方式下,可以根据LSR寄存器的RB_LSR_TX_FIFO_EMP位判断发送FIFO是否为空,当此位 为 1 则可以向THR寄存器及FIFO写入数据,如果使能FIFO,那么一次可以写入最多8 个字节。 7.3.3 串口接收 串口接收数据可用中断(IIR寄存器的低4位为04H)是指接收FIFO中的已有数据字节数已经到 或超过由 FCR 寄存器的 RB_FCR_FIFO_TRIG设置选择的FIFO 触发点。当从RBR 读取数据使 FIFO 字数 低于 FIFO触发点时,该中断被清除。 串口接收数据超时中断(IIR寄存器的低4位为0CH)是指接收FIFO中至少有一个字节的数据, 并且从上一次串口接收到数据和从上一次被单片机取走数据开始, 已经等待了相当于接收4个数据的 时间。当再次接收到一个新的数据后,该中断被清除,或者当单片读取一次RBR寄存器后,该中断也 能被清除。当接收FIFO 全空时,LSR 寄存器的 RB_LSR_DATA_RDY位为 0,当接收FIFO 中有数据时, RB_LSR_DATA_RDY位为1有效。 在中断触发方式下,当收到串口接收数据超时的中断后,可以读取 R8_UARTx_RFC 寄存器查询当 前 FIFO 中剩余数据计数,直接读取全部数据,或者不断查询LSR 寄存器的 RB_LSR_DATA_RDY 位,如 果此位有效则读数据,直到此位无效。当收到串口接收数据可用的中断后,可以先从RBR寄存器读取 由 FCR 寄器的 RB_FCR_FIFO_TRIG 设定的字节数,然后直接读取该字节个数的数据,或者也可以根据 RB_LSR_DATA_RDY位和R8_UARTx_RFC寄存器读取当前FIFO中所有数据。 在查询方式下,单片机可以根据LSR 寄存器的 RB_LSR_DATA_RDY 位判断接收 FIFO 是否为空,和

CH567数据手册 相关资料下载网址:www.wch.cn 读取 R8_UARTx_RFC寄存器获取当前FIFO中数据计数,来获取串口接收的所有数据。 7.3.4 硬件流控制 硬件流控制包括自动 CTS(MCR 寄存器的 RB_MCR_AU_FLOW_EN 为 1)和自动 RTS(MCR 寄存器的 如果使能自动CTS,那么CTS引脚在串口发送数据之前必须有效。串口发送器在发送下一个数据 之前会检测CTS引脚,当CTS引脚状态有效时,发送器发送下一个数据。为了使发送器停止发送后面 的数,CTS引脚必须在当前发送的最后一个停止位的中间时刻之前被无效。自动CTS功能减少了向单 片机系统申请的中断。当使能硬件流控制后,由于控制器会根据CTS引脚状态自动控制发送器,所以 CTS 引脚电平的改变不会触发MODEM中断。如果使能自动RTS,那么仅当FIFO中有足够空间接收数据 时才使RTS引脚输出有效,而在接收FIFO满时使RTS引脚输出无效。如果接收FIFO中的数据被全部 取走或清空,那么RTS引脚输出有效。当到达接收FIFO的触发点时(接收FIFO中已有字节数不少于 FCR 寄存器的 RB_FCR_FIFO_TRIG 设定的字节数) ,RTS 引脚输出无效,并且允许对方发送器在RTS 引 脚无效后再发送一个另外的数据。一旦接收 FIFO 被取空数据,RTS 引脚就会自动重有效,从而使对 方的发送器恢复发送。如果自动 CTS 和自动 RTS 都被使能(MCR 寄存器的 RB_MCR_AU_FLOW_EN 和 RB_MCR_RTS都为1) ,那么当己方的RTS引脚连接对方的CTS引脚时,除非己方的接收FIFO中有足够 的空间,否方不会发送数据。因此,通过这种硬件流控制,可以避免串口接收时的FIFO 溢出和超时 错误。

CH567数据手册 相关资料下载网址:www.wch.cn 第 8 章 通用定时器 TMRx

8.1 TMRx简介

CH567芯片提供了3个 26位定时器,TMR0、TMR1和TMR2,最长定时时间为2^26 个时钟周期。 所有定时器均支持捕捉、PWM以及中断功能,另外 TMR1 和TMR2支持DMA功能。 特性: (1)、3 个 26位定时器,每个定时器定时时间最大为2^26个时钟周期; (2)、每个定时器都支持PWM功能; (3)、每个定时器都支持捕获功能; (4)、每个定时器都支持定时器中断,其中TMR1和TMR2 支持DMA及中断; (5)、捕获功能可设置为电平变化捕获功能和高或低电平保持时间捕获功能; (6)、PWM功能支持动态的调整PWM占空比设置; 8.2 寄存器描述 TMR0相关寄存器物理起始地址为:0x0040 2000 TMR1相关寄存器物理起始地址为:0x0040 2400 TMR2相关寄存器物理起始地址为:0x0040 2800 表8-1 TMR0 相关寄存器列表 名称 偏移地址 描述 复位值 R8_TMR0_CTRL_MOD 0x00 模式设置寄存器 8h02 R8_TMR0_INTER_EN 0x02 中断使能寄存器 8h00 R8_TMR0_INT_FLAG 0x06 中断标志寄存器 8h00 R8_TMR0_FIFO_COUNT 0x07 FIFO计数寄存器 8h00 R32_TMR0_COUNT 0x08 当前计数值寄存器 32h0000 0000 R32_TMR0_CNT_END 0x0C 计数终值设置寄存器 32h0000 0000 R32_TMR0_FIFO 0x10 FIFO寄存器 32h0000 0000 表8-2 TMR1 相关寄存器列表 名称 偏移地址 描述 复位值 R8_TMR1_CTRL_MOD 0x00 模式设置寄存器 8h02 R8_TMR1_CTRL_DMA 0x01 DMA控制寄存器 8h00 R8_TMR1_INTER_EN 0x02 中断使能寄存器 8h00 R8_TMR1_INT_FLAG 0x06 中断标志寄存器 8h00 R8_TMR1_FIFO_COUNT 0x07 FIFO计数寄存器 8h00 R32_TMR1_COUNT 0x08 当前计数值寄存器 32h0000 0000 R32_TMR1_CNT_END 0x0C 计数终值寄存器 32h0000 0000 R32_TMR1_FIFO 0x10 FIFO寄存器 32h0000 0000 R16_TMR1_DMA_NOW 0x14 DMA当前缓冲区地址 16h0000 R16_TMR1_DMA_BEG 0x18 DMA起始缓冲区地址 16h0000 R16_TMR1_DMA_END 0x1C DMA结束缓冲区地址 16h0000 表8-3 TMR2 相关寄存器列表 名称 偏移地址 描述 复位值 R8_TMR2_CTRL_MOD 0x00 模式设置寄存器 8h02

CH567数据手册 相关资料下载网址:www.wch.cn R8_TMR2_CTRL_DMA 0x01 DMA控制寄存器 8h00 R8_TMR2_INTER_EN 0x02 中断使能寄存器 8h00 R8_TMR2_INT_FLAG 0x06 中断标志寄存器 8h00 R8_TMR2_FIFO_COUNT 0x07 FIFO计数寄存器 8h00 R32_TMR2_COUNT 0x08 当前计数值寄存器 32h0000 0000 R32_TMR2_CNT_END 0x0C 计数终值寄存器 32h0000 0000 R32_TMR2_FIFO 0x10 FIFO寄存器 32h0000 0000 R16_TMR2_DMA_NOW 0x14 DMA当前缓冲区地址 16h0000 R16_TMR2_DMA_BEG 0x18 DMA起始缓冲区地址 16h0000 R16_TMR2_DMA_END 0x1C DMA结束缓冲区地址 16h0000 模式设置寄存器(R8_TMRx_CTRL_MOD) (x=0/1/2) 位 名称 访问 描述 复位值 [7:6] RB_TMR_CAP_EDGE RW 捕获模式,边沿触发方式设置域: 00:禁止触发; 01:捕获任何边沿变化之间的时间; 10:捕获下降沿到下降沿之间时间; 11:捕获上升沿到上升沿之间时间; [7:6] RB_TMR_PWM_REPEAT RW PWM 重复模式设置域: 00:重复1次; 01:重复4次; 10:重复8次; 11:重复16次。

4 RB_TMR_CAP_COUNT RW

1:计数; 0:捕获。

4 RB_TMR_OUT_POLAR RW

PWM 模式输出极性设置位: 1:默认高电平,低电平有效; 0:默认低电平,高电平有效。

3 RB_TMR_OUT_EN RW

定时器输出使能位 1:定时器输出使能; 0:定时器输出禁止。

2 RB_TMR_COUNT_EN RW

定时器模块使能位: 1:使能; 0:禁止。

1 RB_TMR_ALL_CLEAR RW

计数器的FIFO和COUNT寄存器清0 位: 1:强制清除; 0:无动作。

0 RB_TMR_MODE_IN RW

定时器模式设置位: 1:捕获/计数模式 0:定时模式/PWM模式 中断使能寄存器(R8_TMRx_INTER_EN) (x=0/1/2) 位 名称 访问 描述 复位值 [7:5] Reserved RO 保留。 x

4 RB_TMR_IE_FIFO_OV RW FIFO溢出中断使能位:

1:使能相应中断; 0

CH567数据手册 相关资料下载网址:www.wch.cn 0:禁止相应中断。

3 RB_TMR_IE_DMA_END RW

DMA 结束中断使能位,不支持TMR0: 1:使能相应中断; 0:禁止相应中断。

2 RB_TMR_IE_FIFO_HF RW

FIFO过半中断使能位: 1:使能相应中断; 0:禁止相应中断。 (capture fifo >=4 or PWM fifo <=3)

1 RB_TMR_IE_DATA_ACT RW

捕获模式,电平变化中断使能位: 1:使能相应中断; 0:禁止相应中断。 PWM 模式,PWM完成中断使能位: 1:使能相应中断; 0:禁止相应中断。

0 RB_TMR_IE_CYC_END RW

捕获模式,捕获超时中断使能位: 1:使能相应中断; 0:禁止相应中断。 PWM 模式,PWM时钟周期结束中断使能 1:使能相应中断; 0:禁止相应中断。 中断标志寄存器(R8_TMRx_INT_FLAG) (x=0/1/2) 位 名称 访问 描述 复位值 [7:5] Reserved RO 保留。 x

4 RB_TMR_IF_FIFO_OV RW1

FIFO溢出标志位: 1:已溢出; 0:未溢出。

3 RB_TMR_IF_DMA_END RW1

DMA 完成标志位,不支持TMR0: 1:已完成; 0:未完成。

2 RB_TMR_IF_FIFO_HF RW1

FIFO计数过半标志位: 1:FIFO计数已过半; 0:IFO计数未过半。 (capture fifo >=4 or PWM fifo <=3)

1 RB_TMR_IF_DATA_ACT RW1

捕获模式,捕获到电平变化标志位: 1:捕获到电平变化; 0:未捕获到电平变化。 PWM 模式,PWM触发标志位: 1:已触发(PWM计数到达指定数值); 0:未触发。

0 RB_TMR_IF_CYC_END RW1

捕获模式,超时标志位: 1:已超时;0:未超时。 PWM 模式,PWM周期结束标志位: 1:已结束;0:未结束。 定时模式: 1:定时周期结束;0:未结束。 写1 清零。

CH567数据手册 相关资料下载网址:www.wch.cn FIFO计数寄存器(R8_TMRx_FIFO_COUNT) (x=0/1/2) 位 名称 访问 描述 复位值 [7:0] R8_TMRx_FIFO_COUNT RO FIFO内数据字节计数,最大值8。 x 当前计数值寄存器(R32_TMRx_COUNT) (x=0/1/2) 位 名称 访问 描述 复位值 [31:0] R32_TMRx_COUNT RO 计数器当前计数值。 x 计数终值设置寄存器(R32_TMRx_CNT_END) (x=0/1/2) 位 名称 访问 描述 复位值 [31:0] R32_TMRx_CNT_END RW 定时器模式下定时时钟数; PWM 模式下PWM周期总时钟数; 捕获模式下捕获超时时钟数; 最大值67108864。 注:R32_TMRx_COUNT是从0 起计数,所 以最大值为R32_TMRx_CNT_END减1。 仅低26位有效。 x FIFO寄存器(R32_TMRx_FIFO) (x=0/1/2) 位 名称 访问 描述 复位值 [31:0] R32_TMRx_FIFO RO/ WO FIFO数据寄存器,仅低 26位有效。 x DMA控制寄存器(R8_TMRx_CTRL_DMA) (x=1/2) 位 名称 访问 描述 复位值 [7:3] Reserved RO 保留。 x

2 RB_TMR_DMA_LOOP RW

DMA 地址循环功能使能位,不支持TMR0: 1:使能DMA地址循环功能; 0:禁止DMA地址循环功能。 如果使能DMA地址循环模式功能, 当DMA 地址增加到设置的末尾地址时,自动循 环指向设置的首地址。

1 Reserved RO 保留。 0

0 RB_TMR_DMA_ENABLE RW

DMA 功能使能位,不支持TMR0: 1:使能DMA; 0:禁止DMA。 DMA当前缓冲区地址(R16_TMRx_DMA_NOW) (x=1/2) 位 名称 访问 描述 复位值 [15:0] R16_TMRx_DMA_NOW RW DMA 数据缓冲区当前地址。 可以作为已转换次数的计算,计算方法 COUNT=(TMR_DMA_NOW-TMR_DMA_BEG)/4 xxxx DMA起始缓冲区地址(R16_TMRx_DMA_BEG) (x=1/2) 位 名称 访问 描述 复位值 [15:0] R16_TMRx_DMA_BEG RW DMA 数据缓冲区起始地址,地址必须 4 xxxx

CH567数据手册 相关资料下载网址:www.wch.cn 字节对齐。 即 PWM 进行数据发送或者捕获模式下, 开始捕获到的数据从此缓冲区地址开 DMA结束缓冲区地址(R16_TMRx_DMA_END) (x=1/2) 位 名称 访问 描述 复位值 [15:0] R16_TMRx_DMA_END RW DMA 数据缓冲区结束地址,地址必须 4 字节对齐。 即 PWM 进行数据发送或者捕获模式下, 开始捕获到的数据 至此缓冲区地址 结 xxxx

8.3 TMRx功能

8.3.1 定时、计数功能 CH567的 3个定时器,每一个支持最长定时时间为2^26个时钟周期。如果系统时钟周期为96M, 则最长定时时间为:10.4ns*2^26 ≈ 0.7s。如果系统时钟低于96M,则定时时间更长。 3 个定时器都有独立的中断。 定时功能寄存器初始化如下: (1)、设置寄存器R32_TMRx_CNT_END为需要定时的时间值; 具体计算方法为:Time = Fsys * R32_TMRx_CNT_END (2)、设置寄存器R8_TMRx_CTRL_MOD中的RB_TMR_MODE_IN位为为 0,RB_TMR_ALL_CLEAR位为 0; (3)、将寄存器R8_TMRx_CTRL_MOD的RB_TMR_COUNT_EN位置1,启动定时器功能; (4)、定时时间结束时,寄存器R8_TMRx_INT_FLAG的RB_TMR_IF_CYC_END位将置1,需写1清零。

8.3.2 PWM 功能

CH567 芯片的 3 个定时器,均具有 PWM 功能。PWM 可设置默认输出极性为高电平或低电平,重复 次数可选为 1,4,8 或 16 次,该重复功能结合 DMA 可以用于模仿 DAC 的效果。PWM 输出最短时间周 期为 1个系统时钟,可动态修改PWM的占空比,模仿出特殊波形,例如准正弦波。 PWM功能操作: PWM输出时需要设置寄存器(R32_TMRx_FIFO)和寄存器(R32_TMRx_CNT_END),R32_TMRx_FIFO为数 据寄存器,R32_TMRx_CNT_END为PWM总周期寄存器。 PWM操作步骤如下: (1)、设置 PWM 总周期寄存器 R32_TMRx_CNT_END,最小值为 1,该寄存器的值必须大于等于 R32_TMRx_FIFO寄存器的值; (2)、设置数据寄存器R32_TMRx_FIFO,最小值为0,对应占空比0%,最大值同R32_TMR_CNT_END, 对应占空比100%,占空比计算:R32_TMRx_FIFO/R32_TMRx_CNT_END。TMR1和 TMR2 支持连续动态数据 (DMA) ,可以模仿出特殊波形; (3)、将模式设置寄存器(R8_TMRx_CTRL_MOD)中的RB_TMR_MODE_IN位清0,启用PWM模式;同时 将 RB_TMR_ALL_CLEAR位置1 再清0强制清除FIFO和COUNT;设置RB_TMR_OUT_POLAR位选择输出极 性。如果需要设置重复次数,则根据需要设置RB_TMR_PWM_REPEAT域。 (4)、将模式设置寄存器(R8_TMRx_CTRL_MOD)中的 RB_TMR_COUNT_EN位和RB_TMR_OUT_EN位置 1, 开启 PWM功能; (5)、将PWM对应的I/O引脚设置为输出; (6)、如果需要启用中断则设置相应的中断使能寄存器位;

CH567数据手册 相关资料下载网址:www.wch.cn (7)、PWM完成后,如果开启中断则产生相对应的定时器中断,同时通过读取R8_TMRx_INT_FLAG 寄存器了解PWM是否完成以及PWM过程中是否产生错误; 例如:设置RB_TMR_OUT_POLAR位为0,R32_TMRx_FIFO 为6,R32_TMRx_CNT_END为18,则产生 PWM 的基本时序图如下所示,其占空比为: PWM占空比 = R32_TMRx_FIFO/R32_TMRx_CNT_END = 1/3 图8-1 PWM输出时序图 如果RB_TMR_PWM_REPEAT域设置为00则表示上述过程重复1 次,01表示重复4 次,10表示重复 8 次,11表示重复16次。重复之后再取FIFO中的下一个数据继续。 8.3.3 捕获功能 CH567芯片的3 个定时器都具备捕获功能,其中TMR1 和TMR2 的捕获功能支持DMA方式存储。捕 获模式可以选择任何边沿触发开始至任何边沿触发结束、上升沿触发开始至上升沿触发结束或下降沿 触发开始至下降沿触发结束三种模式。以下为捕获触发模式说明表: 表8-4 捕获触发模式说明表 捕获模式选择位 (RB_TMR_CATCH_EDGE) 触发方式 图示 00 禁止捕获 无 01 边沿触发 10 下降沿至下降沿 11 上升沿至上升沿 边沿触发模式下有2种触发状态,可以捕获高电平宽度或低电平宽度。数据寄存器 (R32_TMRx_FIFO)的有效数据最高位(位25)为1表示捕获电平为高电平,反之则捕获低电平。如 果连续多组数据的位25都是1(或0) ,说明该高(或低)电平的宽度超过超时值,需多组累计。 下降沿至下降沿、或者上升沿至上升沿触发模式下,可以捕获一个输入变化周期。数据寄存器 (R32_TMRx_FIFO)的有效数据最高位(位25)为0表示正常采样到一个周期,为1 则表示输入变化

CH567数据手册 相关资料下载网址:www.wch.cn 周期超过超时值R32_TMRx_CNT_END,需加上后一组数据累计为单个输入变化周期。 具体说明如下图所示: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 输入脉冲 RB_TMR_CAP_EDGE = Fsys

3 Tsys 3 Tsys 10 Tsys

13 Tsys

6 Tsys

图8-2 以系统时钟周期为捕获周期 如上图所示,每个时钟周期内采样一次, 当 RB_TMR_CATCH_EDGE = 2b01时, 设置为边沿触发采样, 采样到的时间宽度为3Tsys、3Tsys、10Tsys; 当 RB_TMR_CATCH_EDGE = 2b10时,设置为下降沿至下降沿采样,采样到的时间宽度为13Tsys; 当 RB_TMR_CATCH_EDGE = 2b11时,设置为上升沿至上升沿采样,采样到的时间宽度为6Tsys。 捕获模式操作步骤: (1)、设置寄存器R32_TMRx_CNT_END用于设定捕获超时时间,默认最大超时时间为2^26 个时钟 周期,建议设置合理的超时,避免输入长时间无变化时长时间无数据,如果在最大超时时间内没有检 测到电平变化,则R32_TMRx_FIFO寄存器的位25置1; (2)、将捕获对应的I/O引脚方向设置为输入; (3)、 将模式设置寄存器(R8_TMRx_CTRL_MOD)的RB_TMR_MODE_IN置 1,RB_TMR_CAP_COUNT位置0, 同时 RB_TMR_ALL_CLEAR位清0,用于清除FIFO和 COUNT。同时设置RB_TMR_CAP_EDGE控制域位选择 捕获模式; (4)、如果需要启用中断,则将中断寄存器R8_TMRx_INTER_EN中相应位置1,启动相应中断; (5)、如果需要采用DMA方式(只支持TMR1 和TMR2)保存捕获的数据,需将R8_TMRx_CTRL_DMA 寄存器RB_TMR_DMA_ENABLE位置1,使能DMA功能,同时将寄存器R16_TMRx_DMA_BEG设置为存储捕 获数据缓冲区的首地址,将寄存器R16_TMRx_DMA_END设置为存储捕获数据缓冲区的结束地址; (6)、将寄存器R8_TMRx_CTRL_MOD的 RB_TMR_COUNT_EN位置1,使能定时器模块,启动捕获功能; (7)、捕获完成后,寄存器R8_TMRx_INT_FLAG会产生相应的中断状态。默认捕获的数据存放在寄 存器 R32_TMRx_FIFO中,如果采用DMA数据传输,则捕获到的数据自动存放在DMA设置的数据缓冲区

CH567数据手册 相关资料下载网址:www.wch.cn 第 9 章 PWM

9.1 PWM 控制器简介

CH567额外提供了4路 PWM输出,占空比可调,PWM周期固定可选2种模式,操作简单。 扩展的PWM管脚输出标识为PWM3/ PWM4/ PWM5/ PWM6,其中PWM5和PWM6支持重映射到PWM5_ 和 PWM6_引脚。 9.2 寄存器描述 PWM0/1/2/3相关寄存器物理基地址为:0x0040 5000 表 9-1 PWM0/1/2/3相关寄存器列表 名称 偏移地址 描述 复位值 R8_PWM_CTRL_MOD 0x00 PWM 模式控制寄存器 8h00 R8_PWM_CTRL_CFG 0x01 PWM 配置控制寄存器 8h00 R8_PWM_CLOCK_DIV 0x02 PWM 时钟分频寄存器 8h00 R32_PWM_DATA 0x08 PWM0/1/2/3数据保持寄存器 32h PWM模式控制寄存器(R8_PWM_CTRL_MOD) 位 名称 访问 描述 复位值

7 RB_PWM3_POLAR RW

PWM3输出极性控制位: 1:默认高电平,低有效; 0:默认低电平,高有效。

6 RB_PWM2_POLAR RW

PWM2输出极性控制位: 1:默认高电平,低有效; 0:默认低电平,高有效。

5 RB_PWM1_POLAR RW

PWM1输出极性控制位: 1:默认高电平,低有效; 0:默认低电平,高有效。

4 RB_PWM0_POLAR RW

PWM0输出极性控制位: 1:默认高电平,低有效; 0:默认低电平,高有效。

3 RB_PWM3_OUT_EN RW

PWM3输出使能位: 1:使能; 0:禁止。

2 RB_PWM2_OUT_EN RW

PWM2输出使能位: 1:使能; 0:禁止。

1 RB_PWM1_OUT_EN RW

PWM1输出使能位: 1:使能; 0:禁止。

0 RB_PWM0_OUT_EN RW

PWM0输出使能位: 1:使能; 0:禁止。 PWM配置控制寄存器(R8_PWM_CTRL_CFG) 位 名称 访问 描述 复位值 [7:1] Reserved RW 保留。 0

CH567数据手册 相关资料下载网址:www.wch.cn

0 RB_PWM_CYCLE_SEL RW

PWM 周期选择: 1:255个时钟周期; 0:256个时钟周期。 PWM时钟分频寄存器(R8_PWM_CLOCK_DIV) 位 名称 访问 描述 复位值 [7:0] R8_PWM_CLOCK_DIV RW PWM 基准时钟分频系数。 计算:CLK=Fsys/R8_PWM_CLOCK_DIV。 0 PWM0/1/2/3数据保持寄存器(R32_PWM_DATA) 位 名称 访问 描述 复位值 [31:24] R8_PWM3_DATA RW PWM3数据保持寄存器。 xx [23:16] R8_PWM2_DATA RW PWM2数据保持寄存器。 xx [15:8] R8_PWM1_DATA RW PWM1数据保持寄存器。 xx [7:0] R8_PWM0_DATA RW PWM0数据保持寄存器。 xx

9.3 PWM 配置

1) 设置PWM0-PWM3引脚方向为输出,可选地,设置相应I/O的驱动能力; 2) 设置寄存器R8_PWM_CLOCK_DIV,计算PWM的时钟基准频率; 3) 设置PWM模式控制寄存器R8_PWM_CTRL_MOD,配置PWMx的输出极性,并开启相应的PWMx 4) 设置R8_PWM_CTRL_CFG寄存器和R32_PWM_DATA寄存器,配置输出的PWM占空比。 计算公式: PWMx 占空比 = R8_PWMx_DATA / (RB_PWM_CYCLE_SEL ? 255 : 256 ) 说明:如果R8_PWM_CTRL_MOD寄存器中,对应的RB_PWMx_OUT_EN输出使能一直开启,会不断输 出 PWM波形直到RB_PWMx_OUT_EN被禁止。

CH567数据手册 相关资料下载网址:www.wch.cn 第 10 章 LED 屏控制器

10.1 LED 控制器简介

CH567提供了LED屏控制卡接口,内置 4 字节FIFO,支持DMA和中断,节约 CPU 处理时间,支 持 1/2/4 路数据线接口。 10.2 寄存器描述 LED相关寄存器物理基地址为:0x0040 6000 表 10-1 LED相关寄存器列表 名称 偏移地址 描述 复位值 R8_LED_CTRL_MOD 0x00 LED 模式配置寄存器 8h02 R8_LED_CLOCK_DIV 0x01 LED 串行时钟分频寄存器 8hxx R8_LED_STATUS 0x04 LED 状态寄存器 8h00 R16_LED_FIFO 0x08 LED FIFO寄存器 16hxxxx R16_LED_DMA_CNT 0x10 LED DMA 剩余计数寄存器 16hxxxx R16_LED_DMA_MAIN 0x14 LED 主缓冲区DMA地址 16hxxxx R16_LED_DMA_AUX 0x18 LED 辅助缓冲区DMA地址 16hxxxx LED模式配置寄存器(R8_LED_CTRL_MOD) 位 名称 访问 描述 复位值 [7:6] RB_LED_CHAN_MOD RW LED 通道模式设置域: 00:LED0,单通道输出; 01:LED0/1,双通道输出; 10:LED0~3,4通道输出; 11:LED0~3,4通道输出,其中LED2/3 通道数据来源辅助缓冲区。

5 RB_LED_IE_FIFO RW

FIFO计数过半中断使能: 1:FIFO计数<=2中断触发; 0:禁止相应中断。

4 RB_LED_DMA_EN RW

LED DMA功能和DMA中断使能: 1:使能; 0:禁止。

3 RB_LED_OUT_EN RW

LED 信号输出: 1:使能; 0:禁止。

2 RB_LED_OUT_POLAR RW

LED 数据输出极性控制位: 1:翻转输出,数据0 输出1,数据1输 出0; 0:直通输出,数据0 输出0,数据1输 出1。

1 RB_LED_ALL_CLEAR RW

清除LED FIFO和计数器: 1:强制清除; 0:无动作。

0 RB_LED_BIT_ORDER RW

LED 串行数据位序: 1:高字节在前; 0:低字节在前。

CH567数据手册 相关资料下载网址:www.wch.cn LED串行时钟分频寄存器(R8_LED_CLOCK_DIV) 位 名称 访问 描述 复位值 [7:0] R8_LED_CLOCK_DIV RW LED 控制输出时钟分频系数。 计算:CLK=Fsys/R8_LED_CLOCK_DIV。 xx LED状态寄存器(R8_LED_STATUS) 位 名称 访问 描述 复位值

7 RB_LED_IF_DMA_END RW1

DMA 传输完成标志位: 1:DMA传输完成; 0:未完成。 写1清零或者写R16_LED_DMA_CNT清零。

6 RB_LED_FIFO_EMPTY RO

FIFO空状态位: 1:FIFO空; 0:FIFO非空。

5 RB_LED_IF_FIFO RW1

FIFO计数过半中断标志位: 1:FIFO计数 <= 2; 0:FIFO计数 > 2。 写1 清零或者写R16_LED_FIFO清零。

4 RB_LED_CLOCK O

当前LED时钟信号电平状态: 1:高电平; 0:低电平。 [2:0] RB_LED_FIFO_COUNT RO 当前FIFO中字节计数值,一定偶数。 0 LED FIFO寄存器(R16_LED_FIFO) 位 名称 访问 描述 复位值 [15:0] R16_LED_FIFO WO LED 数据FIFO入口,16位写入。 xxxx LED DMA 剩余计数寄存器(R16_LED_DMA_CNT) 位 名称 访问 描述 复位值 [15:0] R16_LED_DMA_CNT RW LED_DMA_MAIN主缓冲区当前DMA剩余字 (16位)计数,DMA启动后自动递减, 仅低12位有效。不包括辅助缓冲区。 xxxx LED 主缓冲区DMA地址(R16_LED_DMA_MAIN) 位 名称 访问 描述 复位值 [15:0] R16_LED_DMA_MAIN RW 主缓冲区DMA起始地址/当前地址, 预设 初值后,自动递增。 xxxx LED 辅助缓冲区DMA地址(R16_LED_DMA_AUX) 位 名称 访问 描述 复位值 [15:0] R16_LED_DMA_AUX RW 辅助缓冲区DMA起始地址/当前地址,预 设初值后,自动递增。 xxxx

10.3 LED 控制应用

CH567数据手册 相关资料下载网址:www.wch.cn 1) 设置LEDC和必要的LED0~LED3引脚方向为输出,可选地,设置相应I/O的驱动能力; 2) 设置R8_LED_CLOCK_DIV选择LED输出时钟频率; 3) 设置DMA起始地址R16_LED_DMA_MAIN指向准备输出数据的缓冲区,即主缓冲区; 4) 如果选择LED通道模式3,那么还要设置辅助DMA起始地址R16_LED_DMA_AUX指向辅助缓冲 5) 设置LED控制寄存器 R8_LED_CTRL_MOD,选择通道模式、输出极性、位顺序、启用中断和DMA 功能等; 6) 设置DMA计数寄存器R16_LED_DMA_CNT,启动DMA发送,或者用写FIFO的方式发送数据; 7) 查询或者使用中断处理中断相应状态。

CH567数据手册 相关资料下载网址:www.wch.cn 第 11 章 USB 控制器

11.1 USB 控制器简介

CH567 内嵌双路USB2.0控制器和USB-PHY,且都具有主机控制器和USB设备控制器双重角色。 当作为主机控制器时,它们可支持低速、全速和高速的USB设备。当作为设备控制器时,皆可以灵活 设置为低速、全速或高速模式以适应各种应用。 USB0和 USB1控制器特性如下: 1) 支持USB 2.0、USB 1.1、USB 1.0; 2) 支持USB Host主机功能和USB Device设备功能; 3) 主机支持高速HUB; 4) 硬件可配置为高速、全速、低速设备; 5) 主机和设备均支持控制传输、批量传输、中断传输、实时/同步传输; 6) 支持DMA直接访问各端点缓冲区的数据; 7) 支持挂起,远程唤醒和恢复功能; 8) 除设备端点0 外,其他端点均支持最大512字节的数据包,部分端点支持双缓冲。 11.2 寄存器描述 CH567集成双 USB2.0主从控制器(内置PHY)USB0和USB1,可以灵活配置为主机功能或者设备 功能。 CH567 的USB0和 USB1相关寄存器分为3 个部分, 部分寄存器是在主机和设备模式下进行复用的。 1) USB全局寄存器; 2) USB设备控制器寄存器; 3) USB主机控制器寄存器。 USB0相关寄存器物理基地址为:0x0040 8000 USB1相关寄存器物理基地址为:0x0040 9000 11.2.1 全局寄存器描述 表 11-1 USB全局寄存器列表 名称 偏移地址 描述 复位值 USBx_CTRL 00h USB 控制寄存器 8h06 USBx_INT_EN 02h USB 中断使能寄存器 8h00 USBx_DEV_AD 03h USB 设备地址寄存器 8h00 USBx_FRAME_NO 04h USB 帧号寄存器 16h0000 USBx_SUSPEND 06h USB 挂起控制寄存器 8h00 USBx_SPPED_TYPE 08h USB 当前速度类型寄存器 8h00 USBx_MIS_ST 09h USB 杂项状态寄存器 8hxx10_1000b USBx_INT_FG 0Ah USB 中断标志寄存器 8h00 USBx_INT_ST 0Bh USB 中断状态寄存器 8h00xx_xxxxb USBx_RX_LEN 0Ch USB 接收长度寄存器 16hxxxx USB控制寄存器(USBx_CTRL)(x=0/1) 位 名称 访问 描述 复位值 7 bUC_HOST_MODE RW USB 工作模式选择位: 0:设备模式(DEVICE); 0

CH567数据手册 相关资料下载网址:www.wch.cn 1:主机模式(HOST)。 [6:5] UC_SPEED_TYPE RW USB 总线信号传输速率选择位: 4 bUC_DEV_PU_EN RW 设备模式下,USB 设备使能和内部上拉 电阻控制位: 1: 使能USB设备传输并且启用内部上拉 电阻; 0:不启用。 3 bUC_INT_BUSY RW USB 传输完成中断标志未清零前自动暂 停使能位: 1:在中断标志 UIF_TRANSFER 未清零前 自动暂停,设备模式下自动应答忙NAK, 主机模式下自动暂停后续传输; 0:不暂停。 2 bUC_RESET_SIE RW USB 协议处理器软件复位控制位: 1:强制复位USB协议处理器(SIE) ,需 要软件清零; 0:不复位。 1 bUC_CLR_ALL RW 1:清空 USB 中断标志和 FIFO,需要软 件清零; 0:不清空。 0 bUC_DMA_EN RW USB 的DMA和DMA中断控制位: 1:使能DMA功能和DMA中断; 0:关闭DMA。 USB中断使能寄存器(USBx_INT_EN)(x=0/1) 位 名称 访问 描述 复位值 7 bUIE_DEV_SOF RW USB 设备模式,接收SOF包中断: 1:使能相应中断; 0:禁止相应中断。 6 bUIE_DEV_NAK RW USB 设备模式,接收到NAK中断: 1:使能相应中断; 0:禁止相应中断。 5 保留 RO 保留。 0 4 bUIE_FIFO_OV RW FIFO溢出中断: 1:使能相应中断; 0:禁止相应中断。 3 bUIE_HST_SOF RW USB 主机模式,SOF定时中断: 1:使能相应中断; 0:禁止相应中断。 2 bUIE_SUSPEND RW USB 总线挂起或唤醒事件中断: 1:使能相应中断; 0:禁止相应中断。 1 bUIE_TRANSFER RW USB 传输完成中断: 1:使能相应中断; 0:禁止相应中断。 0 bUIE_DETECT RW USB 主机模式下,USB设备连接或断开事 件中断: 1:使能相应中断;

CH567数据手册 相关资料下载网址:www.wch.cn 0:禁止相应中断。 0 bUIE_BUS_RST RW USB 设备模式,USB总线复位事件中断: 1:使能相应中断; 0:禁止相应中断。 USB设备地址寄存器(USBx_DEV_AD)(x=0/1) 位 名称 访问 描述 复位值 7 保留 RO 保留。 0 [6:0] MASK_USB_ADDR RW 主机模式下是当前操作的 USB 设备的地 址或HUB地址; 设备模式下是该USB设备的地址。 00h USB帧号寄存器(USBx_FRAME_NO)(x=0/1) 位 名称 访问 描述 复位值 [15:0] USB_FRAME_NO RO 帧号,主机模式下表示即将发送的 SOF 包的帧号,设备模式下表示当前接收到 的SOF包的帧号。 其中低11位为有效帧 号,高3 位为高速模式的微帧号。 USBx_FRAME_NO是 16为寄存器, 其中低11位表示SOF包帧号, 高3 为表示当前属于第几个微帧, 可在操作高速HUB下进行中断、同步/实时传输时使用。 USB挂起寄存器(USBx_SUSPEND)(x=0/1) 位 名称 访问 描述 复位值 [7:2] 保留 RO 保留。 0 1 bUS_RESUME RW 远程唤醒控制位: 1:远程唤醒主机; 0:无动作。 0 保留 RO 保留。 0 注:需要远程唤醒时,将bUS_RESUME位拉高再拉低即可。 USB速度类型寄存器(USBx_SPEED_TYPE)(x=0/1) 位 名称 访问 描述 复位值 [7:2] 保留 RO 保留。 0 [1:0] USB_SPEED_TYPE RO 在主机模式下,表示当前连接的设备速 度类型,在设备模式下,表示当前设备 的速度类型; 00b 注:区别于 USBx_CTRL 寄存器中的 UC_SPEED_TYPE,UC_SPEED_TYPE 表示期望处于的最高速度, 假设在设备模式下,设置UC_SPEED_TYPE为高速,当该设备连接在一个全速主机下,则实际的速度类 型就是全速,通过查询 USB_SPEED_TYPE 寄存器可以获知。在主机模式下,设置UC_SPEED_TYPE 为高 速, 当连接一个全速设备时, 则实际通讯速度就是全速, 通过查询USBx_SPEED_TYPE寄存器可以获知。 USB杂项状态寄存器(USBx_MIS_ST)(x=0/1) 位 名称 访问 描述 复位值 7 bUMS_SOF_PRES RO USB 主机模式下SOF包预示状态位: 1:将要发送SOF包,此时如有其它USB 数据包将被自动延后; 0:无SOF包发送。 x

CH567数据手册 相关资料下载网址:www.wch.cn 6 bUMS_SOF_ACT RO USB 主机模式下SOF包传输状态位: 1:正在发出SOF包; 0:发送完成或者空闲。 x 5 bUMS_SIE_FREE RO USB 协议处理器的空闲状态位: 1:协议器空闲; 0:忙,正在进行USB传输。 4 bUMS_R_FIFO_RDY RO USB 接收FIFO数据就绪状态位: 1:接收FIFO非空; 0:接收FIFO为空。 3 bUMS_BUS_RESET RO USB 总线复位状态位: 1:当前USB总线处于复位态; 0:当前USB总线处于非复位态。 2 bUMS_SUSPEND RO USB 挂起状态位: 1:USB总线处于挂起态,有一段时间没 有USB活动; 0:USB总线处于非挂起态。 1 bUMS_ATTACH RO USB 主机模式下端口的 USB 设备连接状 态位: 1:端口已经连接USB设备; 0:端口没有USB设备连接。 0 bUMS_SPLIT_CAN RO USB 主机模式下,SPLIT包发送允许位: 1:允许发送SPLIT包; 0:禁止发送。 USB中断标志寄存器(USBx_INT_FG)(x=0/1) 位 名称 访问 描述 复位值 [7:5] 保留 RO 保留。 00b

4 UIF_FIFO_OV RW1

USB FIFO溢出中断标志位,写1清零: 1:FIFO溢出触发; 0:无事件。

3 UIF_HST_SOF RW1

USB 主机模式下 SOF 定时中断标志位, 写1 清零: 1:SOF传输完成触发; 0:无事件。

2 UIF_SUSPEND RW1

USB 总线挂起或唤醒事件中断标志位, 写1 清零: 1:USB挂起事件或唤醒事件触发; 0:无事件。

1 UIF_TRANSFER RW1

USB 传输完成中断标志位,写1清零: 1:一个USB传输完成触发; 0:无事件。

0 UIF_DETECT RW1

USB 主机模式下 USB 设备连接或断开事 件中断标志位,写1清零: 1:检测到USB设备连接或断开触发; 0:无事件。

0 UIF_BUS_RST RW1

USB 设备模式下 USB 总线复位事件中断 标志位,写1 清零: 1:USB总线复位事件触发; 0:无事件。

CH567数据手册 相关资料下载网址:www.wch.cn USB中断状态寄存器(USBx_INT_ST)(x=0/1) 位 名称 访问 描述 复位值 7 bUIS_IS_NAK RO USB 设备模式下,NAK响应状态位: 1:当前USB传输过程中回应NAK; 0:无NAK响应。 6 bUIS_TOG_OK RO 当前 USB 传输 DATA0/1 同步标志匹配状 态位: 1:同步; 0:不同步。 [5:4] MASK_UIS_TOKEN RO 设备模式下,当前 USB 传输事务的令牌 PID 标识。 xxb [3:0] MASK_UIS_ENDP RO 设备模式下,当前 USB 传输事务的端点 号。 xxxxb [3:0] MASK_UIS_H_RES RO 主机模式下,当前 USB 传输事务的应答 PID 标识,0000表示设备无应答或超时; 其它值表示应答PID。 xxxxb MASK_UIS_TOKEN用于 USB 设备模式下标识当前 USB 传输事务的令牌PID:00 表示 OUT 包;01 表 示 SOF包;10表示 IN包;11表示SETUP包。 MASK_UIS_H_RES 仅在主机模式下有效。在主机模式下,若主机发送 OUT/SETUP 令牌包时,则该 PID 是握手包ACK/NAK/STALL/NYET,或者是设备无应答/超时。若主机发送IN令牌包,则该PID是数 据包的PID(DATA0/DATA1/DATA2/MDATA)或者握手包PID。 USB接收长度寄存器(USBx_RX_LEN)(x=0/1) 位 名称 访问 描述 复位值 [15:0] USB_RX_LEN RO 当前 USB 端点接收到的数据计数,其中 低11位有效,高5位固定为0。 xxxxh 11.2.2 设备寄存器描述 在USB设备模式下,CH567每个USB设备控制器提供了端点0、1、2、3、4共5 组双向端点,除 端点 0之外的所有端点的最大数据包长度都是512字节,端点0 的最大数据包长度为64字节。 端点0是默认端点,支持控制传输,发送和接收共用一个64字节数据缓冲区。 端点1、端点2、端点3各自包括一个发送端点IN和一个接收端点OUT,发送和接收各有一个独 立的 512字节或者双512字节数据缓冲区,支持批量传输、中断传输和实时/同步传输。 端点4包括一个发送端点IN 和一个接收端点OUT,发送和接收各有一个独立的512字节数据缓 冲区,支持批量传输、中断传输和实时/同步传输。 端点0/1/2/3都可以设置UEPn_DMAx寄存器配置各自的DMA地址。通过寄存器UEP4_1_MODx和 UEP2_3_MODx设置端点接收发送数据缓存区模式。 每组端点都具有收发控制寄存器UEPn_TX_CTRLx、UEPn_RX_CTRLx和发送长度寄存器UEPn_T_LENx (n=0/1/2/3/4) ,用于配置该端点的同步触发位、对OUT事务和IN事务的响应以及发送数据的长度 作为USB设备所必要的USB总线上拉电阻可以由软件随时设置是否启用,当USB控制寄存器 USBx_CTRL中的bUC_DEV_EN置1时,芯片根据bUC_SPEED_TYPE的速度设置, 在内部为USB总线的DP/DM 引脚连接上拉电阻,并启用USB设备功能。 当检测到USB总线复位、USB总线挂起或唤醒事件,或者当USB成功处理完数据发送或者数据接 收后,USB协议处理器都将设置相应的中断标志,如果中断使能打开,还会产生相应的中断请求。应 用程序可以直接查询或在USB 中断服务程序中查询并分析中断标志寄存器USBx_INT_FG,根据位 UIF_BUS_RST和UIF_SUSPEND进行相应的处理;并且,如果UIF_TRANSFER有效,那么还需要继续分

CH567数据手册 相关资料下载网址:www.wch.cn 析 USB中断状态寄存器USBx_INT_ST,根据当前端点号MASK_UIS_ENDP和当前事务令牌PID标识 MASK_UIS_TOKEN进行相应的处理。如果事先设定了各个端点的OUT事务的同步触发位bUEP_R_TOG, 那么可以通过bUIS_TOG_OK判断当前所接收到的数据包的同步触发位是否与该端点的同步触发位匹 配,如果数据同步,则数据有效;如果数据不同步,则数据应该被丢弃。每次处理完USB发送或者接 收中断后,都应该正确修改相应端点的同步触发位,用于下次所发送的数据包或者下次所接收的数据 包是否同步检测;另外,设置bUEP_AUTO_TOG可以实现在发送成功或者接收成功后自动翻转相应的同 步触发位。 各个端点准备发送的数据在各自的缓冲区中,准备发送的数据长度是独立设定在UEPn_T_LENx 中,一包发送长度不能超过512字节;各个端点接收到的数据在各自的缓冲区中,但是接收到的数据 长度都在USB接收长度寄存器USBx_RX_LEN中,可以在USB接收中断时根据当前端点号区分,每个端 点可接收的最大包长度需要提前写入到UEPn_MAX_LENx 寄存器中。 表 11-2 USB设备寄存器列表 名称 偏移地址 描述 复位值 UEP4_1_MODx 10h 端点 1、4模式控制寄存器 8h00 UEP2_3_MODx 11h 端点 2、3模式控制寄存器 8h00 UEP0_DMAx 14h 端点 0缓冲区的起始地址 16hxxxx UEP1_DMAx 18h 端点 1缓冲区的起始地址 16hxxxx UEP2_DMAx 1Ch 端点 2缓冲区的起始地址 16hxxxx UEP3_DMA 20h 端点 3缓冲区的起始地址 16hxxxx UEP0_MAX_LENx 24h 端点 0最大长度包寄存器 16hxxxx UEP1_MAX_LENx 28h 端点 1最大长度包寄存器 16hxxxx UEP2_MAX_LENx 2Ch 端点 2最大长度包寄存器 16hxxxx UEP3_MAX_LENx 30h 端点 3最大长度包寄存器 16hxxxx UEP4_MAX_LENx 34h 端点 4最大长度包寄存器 16hxxxx UEP0_T_LENx 38h 端点 0发送长度寄存器 16hxxxx UEP0_TX_CTRLx 3Ah 端点 0发送控制寄存器 8h00 UEP0_RX_CTRLx 3Bh 端点 0接收控制寄存器 8h00 UEP1_T_LENx 3Ch 端点 1发送长度寄存器 16hxxxx UEP1_TX_CTRLx 3Eh 端点 1发送控制寄存器 8h00 UEP1_RX_CTRLx 3Fh 端点 1接收控制寄存器 8h00 UEP2_T_LENx 40h 端点 2发送长度寄存器 16hxxxx UEP2_TX_CTRLx 42h 端点 2发送控制寄存器 8h00 UEP2_RX_CTRLx 43h 端点 2接收控制寄存器 8h00 UEP3_T_LENx 44h 端点 3发送长度寄存器 16hxxxx UEP3_TX_CTRLx 46h 端点 3发送控制寄存器 8h00 UEP3_RX_CTRLx 47h 端点 3接收控制寄存器 8h00 UEP4_T_LENx 48h 端点 4发送长度寄存器 16hxxxx UEP4_TX_CTRLx 4Ah 端点 4发送控制寄存器 8h00 UEP4_RX_CTRLx 4Bh 端点 4接收控制寄存器 8h00 USB端点1、4模式控制寄存器(UEP4_1_MODx)(x=0/1) 位 名称 访问 描述 复位值 7 bUEP1_RX_EN RW 1:使能端点1接收(OUT); 0:禁止端点1接收。 0 6 bUEP1_TX_EN RW 1:使能端点1发送(IN); 0:禁止端点1发送。 0 5 保留 RO 保留。 0

CH567数据手册 相关资料下载网址:www.wch.cn 4 bUEP1_BUF_MOD RW 端点1数据缓冲区模式控制位。 0 3 bUEP4_RX_EN RW 1:使能端点4接收(OUT); 0:禁止端点4接收。 0 2 bUEP4_TX_EN RW 1:使能端点4发送(IN); 0:禁止端点4发送。 0 [1:0] 保留 RO 保留。 0 bUEP4_RX_EN和bUEP4_TX_EN组合配置USB端点0和4 的数据缓冲区模式,具体参考下表: 表 11-3 端点0和4缓冲区模式 bUEP4_RX_EN bUEP4_TX_EN 描述:以UEP0_DMA为起始地址由低向高排列 0 0 端点0单 64字节收发共用缓冲区(IN和OUT) ,端点4收发禁止。 1 0 端点0单64字节收发共用缓冲区; 端点4单512字节接收缓冲区 (OUT)。 0 1 端点0单64字节收发共用缓冲区; 端点4单512字节发送缓冲区 (IN)。 1 1 端点0单64字节收发共用缓冲区; 端点4单512字节接收缓冲区 (OUT); 端点4单 512字节接收缓冲区(IN) 。总共1088字节排列如下: UEP0_DMA+0地址:端点0收发共用缓冲区64字节起始地址; UEP0_DMA+64地址:端点4 接收缓冲区512字节起始地址; UEP1_DMA+64+512地址:端点4发送缓冲区512字节起始地址。 USB端点2、3模式控制寄存器(UEP2_3_MODx)(x=0/1) 位 名称 访问 描述 复位值 7 bUEP3_RX_EN RW 1:使能端点3接收(OUT); 0:禁止端点3接收。 0 6 bUEP3_TX_EN RW 1:使能端点3发送(IN); 0:禁止端点3发送。 0 5 保留 RO 保留。 0 4 bUEP3_BUF_MOD RW 端点3数据缓冲区模式控制位。 0 3 bUEP2_RX_EN RW 1:使能端点2接收(OUT); 0:禁止端点2接收。 0 2 bUEP2_TX_EN RW 1:使能端点2发送(IN); 0:禁止端点2发送。 0 1 保留 RO 保留。 0 0 bUEP2_BUF_MOD RW 端点2数据缓冲区模式控制位。 0 由bUEPn_RX_EN和 bUEPn_TX_EN以及bUEPn_BUF_MOD(n=1/2/3)组合分别配置USB端点1、2、3 的数据缓冲区模式,具体参考下表。其中,在双512字节缓冲区模式下,USB数据传输时将根据 bUEP_*_TOG=0选择前512字节缓冲区,根据bUEP_*_TOG=1选择后512字节缓冲区,设置 bUEP_AUTO_TOG=1可实现自动切换。 表11-4 端点n缓冲区模式(n=1/2/3) bUEPn_RX_EN bUEPn_TX_EN bUEPn_BUF_MOD 描述:以UEPn_DMA为起始地址由低向高排列 0 0 x 端点被禁用,未用到UEPn_DMA缓冲区。 1 0 0 单512字节接收缓冲区(OUT)。 1 0 1 双512字节接收缓冲区(OUT) ,通过bUEP_R_TOG选 0 1 0 单512字节发送缓冲区(IN)。 0 1 1 双512字节发送缓冲区 (IN), 通过bUEP_T_TOG选择。 1 1 0 单512字节接收缓冲区(OUT) ,单512字节发送缓冲 区(IN)。 1 1 1 双512字节接收缓冲区(OUT) ,通过bUEP_R_TOG选

CH567数据手册 相关资料下载网址:www.wch.cn 双512字节发送缓冲区 (IN), 通过bUEP_T_TOG选择。 全部2K字节排列如下: UEPn_DMA+0地址:bUEP_R_TOG=0时端点接收地址; UEPn_DMA+512地址:bUEP_R_TOG=1时端点接收地址; UEPn_DMA+1024地址:bUEP_T_TOG=0时端点发送地址; UEPn_DMA+1536地址:bUEP_T_TOG=1时端点发送地址。 USB端点n缓冲区起始地址(UEPn_DMAx)(n=1/2/3)(x=0/1) 位 名称 访问 描述 复位值 [15:0] UEPn_DMA RW 端点 n 缓冲区起始地址,最低2 位固定 位0(地址4字节对齐) ,高1 位固定为 xxxxh 端点n最大长度包寄存器(UEPn_MAX_LENx)(n=1/2/3)(x=0/1) 位 名称 访问 描述 复位值 [15:0] UEPn_MAX_LEN RW 端点n接收数据的最大包长度。 xxxxh 注:这个最大包长度决定了端点可接收数据最大长度,超出此长度的数据会被丢弃,DMA不会送 入自定义区域。 端点n发送长度寄存器(UEPn_T_LENx)(x=0/1) 位 名称 访问 描述 复位值 [15:0] UEPn_T_LEN RW 设置USB端点n准备发送的数据字节数, 低10位有效,高6 位固定为0,最大长 度512。 xxxxh 端点n发送控制寄存器(UEPn_TX_CTRLx)(x=0/1) 位 名称 访问 描述 复位值 [7:6] 保留 RO 保留 0 5 bUEP_AUTO_TOG RW 同步触发位自动翻转使能控制位: 1: 数据发送成功后自动翻转相应的同步 触发位; 0:不自动翻转,可以手动切换。 只支持端点1/2/3,且实时/同步传输只 能手动切换。 [4:3] MASK_UEP_T_TOG RW USB 端点n的发送器(处理IN事务)准 备的同步触发位: 00:发送DATA0; 01:发送DATA1; 10:发送DATA2; 11:发送MDATA。 2 bUEP_T_RES_NO RW 1:期望无响应,用于实现非端点0 的实 时 / 同步传输。此时忽略 MASK_UEP_T_RES; 0:期望响应。 [1:0] MASK_UEP_T_RES RW 端点n的发送器对IN事务的响应控制: 00:数据就绪并期望ACK; 10:应答NAK或忙; 11:应答STALL或错误。

CH567数据手册 相关资料下载网址:www.wch.cn 端点n接收控制寄存器(UEPn_RX_CTRLx)(x=0/1) 位 名称 访问 描述 复位值 [7:6] 保留 RO 保留 0 5 bUEP_AUTO_TOG RW 同步触发位自动翻转使能控制位: 1: 数据接收成功后自动翻转相应的同步 触发位; 0:不自动翻转,可以手动切换。 只支持端点1/2/3,且实时/同步传输只 能手动切换。 [4:3] MASK_UEP_R_TOG RW USB 端点 n 的接收器(处理 OUT 事务) 期望的同步触发位: 00:期望DATA0; 01:期望DATA1; 10:期望DATA2; 11:期望MDATA。 对于实时/同步传输无效。 2 bUEP_R_RES_NO RW 1:期望无响应,用于实现非端点0 的实 时 / 同步传输。此时忽略 MASK_UEP_R_RES; 0:期望响应。 [1:0] MASK_UEP_R_RES RW 端点n的接收器对OUT事务的响应控制: 00:应答ACK; 10:应答NAK或忙; 11:应答STALL或错误; 01:应答NYET。 对于实时/同步传输无效。

11.2.3 USB 主机寄存器

在USB主机模式下,CH567每个主机控制器提供了一组双向主机端点,包括一个发送端点OUT和 一个接收端点IN,数据包的最大长度是512字节,支持控制传输、中断传输、批量传输和实时/同步 传输。 主机端点发起的每一个USB事务,在处理结束后总是自动设置中断标志UIF_TRANSFER。应用程 序可以直接查询或在USB中断服务程序中查询并分析中断标志寄存器USB_INT_FG,根据各中断标志 分别进行相应的处理;并且,如果UIF_TRANSFER有效,那么还需要继续分析USB 中断状态寄存器 USBx_INT_ST,根据当前USB传输事务的应答PID标识MASK_UIS_H_RES进行相应的处理。 如果事先设定了主机接收端点的IN事务的同步触发位bUH_R_TOG,那么可以通过bUIS_TOG_OK 判断当前所接收到的数据包的同步触发位是否与主机接收端点的同步触发位匹配,如果数据同步,则 数据有效;如果数据不同步,则数据应该被丢弃。每次处理完USB发送或者接收中断后,都应该正确 修改相应主机端点的同步触发位,用于同步下次所发送的数据包和检测下次所接收的数据包是否同 步;另外,通过设置bUEP_AUTO_TOG可以实现在发送成功或接收成功后自动翻转相应的同步触发位。 USB主机令牌设置寄存器UH_EP_PID用于设置被操作的目标设备的端点号和本次USB传输事务的 令牌 PID包标识。SETUP令牌和OUT令牌所对应的数据由主机发送端点提供,准备发送的数据在 UH_TX_DMAx 缓冲区中,准备发送的数据长度设置在UH_TX_LENx中;IN令牌所对应的数据由目标设备 返回给主机接收端点,接收到的数据存放在UH_RX_DMAx缓冲区中,而接收到的数据长度存放在 USBx_RX_LEN中,主机端点可接收的最大包长度需要提前写入到UH_RX_MAX_LENx寄存器中。 表 11-5 USB主机相关寄存器列表

CH567数据手册 相关资料下载网址:www.wch.cn 名称 偏移地址 描述 复位值 UHOST_CTRLx 01h USB 主机控制寄存器 8h00 UH_EP_MODx 11h USB 主机端点模式控制寄存器 8h00 UH_RX_DMAx 1Ch USB 主机接收缓冲区起始地址 16hxxxx UH_TX_DMAx 20h USB 主机发送缓冲区起始地址 16hxxxx UH_RX_MAX_LENx 2Ch USB 主机接收最大长度包寄存器 16hxxxx UH_SETUPx 3Eh USB 主机辅助设置寄存器 8h00 UH_EP_PIDx 40h USB 主机令牌设置寄存器 8h00 UH_RX_CTRLx 43h USB 主机接收端点控制寄存器 8h00 UH_TX_LENx 44h USB 主机发送长度寄存器 16hxxxx UH_TX_CTRLx 46h USB 主机发送端点控制寄存器 8h00 UH_SPLIT_DATAx 48h USB 主机发送SPLIT包的数据 16hxxxx USB主机控制寄存器(UHOST_CTRLx)(x=0/1) 位 名称 访问 描述 复位值 [7:3] 保留 RO 保留。 0 2 bUH_TX_BUS_RESUME RW 主机模式下,表示主机唤醒设备。 0 1 bUH_TX_BUS_SUSPEND RW USB 主机发送挂起信号。 0 0 bUH_TX_BUS_RESET RW USB 主机发送总线复位信号。 0 注:挂起和复位的时间由bUH_TX_BUS_SUSPEND和bUH_TX_BUS_RESET的高电平持续时间决定。如 果主机唤醒设备,则以 bUH_TX_BUS_RESUME 边沿方式决定,所以唤醒只需将 bUH_TX_BUS_RESUME 拉 高再拉低即可。 USB主机端点模式控制寄存器(UH_EP_MODx)(x=0/1) 位 名称 访问 描述 复位值 7 保留 RO 保留 0 6 bUH_EP_TX_EN RW 主机发送端点发送 (SETUP/OUT) 使能位: 1:使能端点发送; 0:禁止端点发送。 5 保留 RO 保留。 0 4 bUH_EP_TBUF_MOD RW 主机发送端点发送数据缓冲区模式控制 位。 0 3 bUH_EP_RX_EN RW 主机接收端点接收(IN)使能位: 1:使能端点接收; 0:禁止端点接收。 [2:1] 保留 RO 保留。 00b 0 bUH_EP_RBUF_MOD RW USB 主机接收端点接收数据缓冲区模式 控制位。 0 由bUH_EP_TX_EN和bUH_EP_TBUF_MOD组合控制USB主机发送端点数据缓冲区模式,参考下表。 表11-6 主机发送缓冲区模式 bUH_EP_TX_EN bUH_EP_TBUF_MOD 描述:以UH_TX_DMA为起始地址 0 x 端点被禁用,未用到UH_TX_DMA缓冲区。 1 0 单 512字节发送缓冲区(SETUP/OUT)。 1 1 双 512字节发送缓冲区,通过bUH_T_TOG选择: 当 bUH_T_TOG=0时选择前512 字节缓冲区; 当 bUH_T_TOG=1时选择后512 字节缓冲区。 由bUH_EP_RX_EN和bUH_EP_RBUF_MOD组合控制USB主机接收端点数据缓冲区模式,参考下表。

CH567数据手册 相关资料下载网址:www.wch.cn 表11-7 主机接收缓冲区模式 bUH_EP_RX_EN bUH_EP_RBUF_MOD 结构描述:以UH_TX_DMA为起始地址 0 x 端点被禁用,未用到UH_RX_DMA缓冲区。 1 0 单512字节接收缓冲区(IN)。 1 1 双512字节接收缓冲区,通过bUH_R_TOG选择: 当bUH_R_TOG=0时选择前512字节缓冲区; 当bUH_R_TOG=1时选择后512字节缓冲区。 USB主机接收缓冲区起始地址(UH_RX_DMAx)(x=0/1) 位 名称 访问 描述 复位值 [15:0] UH_RX_DMA RW 主机端点数据接收缓冲区起始地址,最 低 2 位固定为 0(4 字节对齐) ,最高1 位固定为0。 xxxxh USB主机发送缓冲区起始地址(UH_TX_DMAx)(x=0/1) 位 名称 访问 描述 复位值 [15:0] UH_TX_DMA RW 主机端点数据发送缓冲区起始地址,最 低 2 位固定为 0(4 字节对齐) ,最高1 位固定为0。 xxxxh USB主机接收最大长度包寄存器(UH_RX_MAX_LENx)(x=0/1) 位 名称 访问 描述 复位值 [15:0] UH_RX_MAX_LEN RW 主机端点接收数据的最大包长度。 xxxxh 注:这个最大包大小决定了端点可接收数据最大长度,超出此长度的数据会被丢弃,DMA不会送 入自定义区域。 USB主机辅助设置寄存器(UH_SETUPx)(x=0/1) 位 名称 访问 描述 复位值 7 保留 RO 保留。 0 6 bUH_SOF_EN WO 自动产生SOF包使能控制位: 1:主机自动发生SOF包; 0:不产生SOF包。 [5:0] 保留 RO 保留。 00 USB主机令牌设置寄存器(UH_EP_PIDx)(x=0/1) 位 名称 访问 描述 复位值 [7:4] MASK_UH_TOKEN RW 设置本次 USB 传输事务的令牌 PID 包标 识。 0000b [3:0] MASK_UH_ENDP RW 设置本次被操作的目标设备的端点号。 0000b USB主机接收端点控制寄存器(UH_RX_CTRLx)(x=0/1) 位 名称 访问 描述 复位值 7 保留 RO 保留。 0b 6 bUH_R_DATA_NO RW 1:不期待数据包,用于主机模式下的操 作高速HUB; 0:期望数据包(IN)。 5 bUH_R_AUTO_TOG RW 同步触发位自动翻转使能控制位: 0

CH567数据手册 相关资料下载网址:www.wch.cn 1: 数据接收成功后自动翻转相应的期待 同步触发位; 0:不自动翻转,可以手动切换。 [4:3] MASK_UH_R_TOG RW 主机接收器(处理IN事务)期望的同步 触发位, 00:期望DATA0; 01:期望DATA1; 10:期望DATA2; 11:期望MDATA。 2 bUH_R_RES_NO RW 1:无应答,用于实现非端点 0 的实时/ 0:接收数据成功后发送应答。 [1:0] MASK_UH_R_RES RW 主机接收器对IN事务的响应控制位: 00:应答ACK; 对于实时/同步传输无效。 00b USB主机发送长度寄存器(UH_TX_LENx)(x=0/1) 位 名称 访问 描述 复位值 [15:0] UH_TX_LEN_H RW 设置 USB 主机发送端点准备发送的数据 字节数,仅低11位有效,高5 位固定为 xxxxh USB主机发送端点控制寄存器(UH_TX_CTRLx)(x=0/1) 位 名称 访问 描述 复位值 7 保留 RO 保留。 0b 6 bUH_T_DATA_NO RW 1:不发送数据包(PING/SPLIT); 0:发送数据包(OUT/SETUP)。 0 5 bUH_T_AUTO_TOG RW 同步触发位自动翻转使能控制位: 1: 数据发送成功后自动翻转相应的同步 触发位; 0:不自动翻转,可以手动切换。 [4:3] MASK_UH_T_TOG RW USB 主机发送器(处理SETUP/OUT事务) 准备的同步触发位 00表示发送DATA0; 01表示发送DATA1; 10表示发送DATA2; 11表示发送MDATA。 00b 2 bUH_T_RES_NO RW 1:无应答,用于实现非端点 0 的实时/ 0:发送数据成功后期待应答。 [1:0] MASK_UH_T_RES RW USB 主机发送器对 SETUP/OUT 事务的响 应控制位 00:期望应答ACK; 10:期望应答NAK或忙; 11:期望应答STALL或错误; 01:期望应答NYET 。 对于实时/同步传输无效。 00b USB主机发送SPLIT包的数据(UH_SPLIT_DATAx)(x=0/1)

CH567数据手册 相关资料下载网址:www.wch.cn 位 名称 访问 描述 复位值 [15:0] UH_SPLIT_DATA RW 主机端点发送 SPLIT 包的数据内容,低 12位有效,高4位固定为0 0xxxh

11.3 USB 设备模式配置

11.3.1 基本初始化配置 1.设置USBx_CTRL寄存器,bUC_HOST_MODE位为0,配置USB设备模式; 2.设置USBx_CTRL寄存器,清除bUC_RESET_SIE 和 bUC_CLR_ALL位为0,设置bUC_INT_BUSY和 bUC_DMA_EN位为1,配置UC_SPEED_TYPE选择 USB设备的速度,如果设置为高速设备,但当前主机是 全速主机,那么控制器会自动降速切换到全速,实际的通讯速度可以查询USBx_SPEED_TYPE寄存器。 3.清除设备地址寄存器USBx_DEV_AD和中断标志寄存器USBx_INT_FG;可选操作,使能需要的中 断,写USBx_INT_EN寄存器; 4.配置设备端点数据收发缓存区模式寄存器UEP4_1_MODx/ UEP2_3_MODx,以及收发控制寄存器 UEPn_TX_CTRLx/ UEPn_RX_CTRLx; 5.设置端点最大包接收长度UEPn_MAX_LENx 寄存器和端点数据收发起始地址UEPn_DMAx; 6.设置USBx_CTRL寄存器,bUC_DEV_PU_EN位为1,启用USB设备功能。

11.4 USB 主机模式配置

11.4.1 基本初始化配置 1.设置USBx_CTRL寄存器,bUC_HOST_MODE位为1,配置USB主机模式; 2.设置USBx_CTRL寄存器,清除bUC_RESET_SIE 和 bUC_CLR_ALL位为0,设置bUC_INT_BUSY和 bUC_DMA_EN位为1,配置UC_SPEED_TYPE选择 USB设备的速度,如果设置为高速主机,但当前连接设 备是全速,那么控制器会自动降速切换到全速,实际的通讯速度可以查询USBx_SPEED_TYPE寄存器。 3.清除设备地址寄存器USBx_DEV_AD和中断标志寄存器USBx_INT_FG;可选操作,使能需要的中 断,写USBx_INT_EN寄存; 4.配置主机端点数据收发缓存区模式寄存器UH_EP_MODx,以及收发控制寄存器UH_RX_CTRLx / UH_TX_CTRLx; 5.设置主机端点最大包接收长度UH_RX_MAX_LENx寄存器和主机端点数据收发起始地址寄存器 6.设置UH_SETUPx 寄存器,bUH_SOF_EN位为 1,开启端口自动发送SOF包。

CH567数据手册 相关资料下载网址:www.wch.cn 第 12 章 SD 控制器及 AES/SM4 模块

12.1 SD 控制器及 AES/SM4 模块简介

CH567芯片提供4 个独立的SD控制器:SD0、SD1、SD2 和SD3。它们与一般的控制器相比,提供 了额外的加密/解密算法模块支持,可以满足市场的数据安全性需求。 主要特性如下: 1) 支持SD物理层1.0、2.0规范,支持SD3.0规范的UHS-I SDR50模式(向前兼容); 2) 符合eMMC卡 4.4和 4.5.1规范,兼容5.0规范,兼容HS200模式; 3) 4 个控制器均支持eMMC卡的单线、四线模式,其中SD0、SD2支持eMMC卡单线、四线、八 线模式; 4) 支持SD卡、SDIO卡、eMMC卡等符合SD协议的设备; 5) 支持SD接口数据进行AES和SM4算法加解密; 6) 4 个控制器独立工作,支持DMA和中断。

12.2 SD 寄存器描述

CH567内置4个独立的SD控制器,每个控制器都有相似的控制单元。 SD0相关寄存器物理基地址为:0x0040 A000 SD1相关寄存器物理基地址为:0x0040 A040 SD2相关寄存器物理基地址为:0x0040 A080 SD3相关寄存器物理基地址为:0x0040 A0C0 表 12-1 SD寄存器列表 名称 偏移地址 描述 复位值 SD_CLK_CFG 3Ch 时钟配置寄存器 16h0214 SDx_ARGUMENT 00h 命令参数寄存器 32h00000000 SDx_CMD_SET 04h 命令设置寄存器 16h0000 SDx_RESPONSE0 08h 应答参数寄存器0 32h00000000 SDx_RESPONSE1 0Ch 应答参数寄存器1 32h00000000 SDx_RESPONSE2 10h 应答参数寄存器2 32h00000000 SDx_RESPONSE3 14h 应答参数寄存器3 32h00000000 SDx_WRITE_CONT 14h 继续写启动寄存器 32h00000000 SDx_CTRL 18h 控制寄存器 8h15 SDx_TOCNT 1Ch 超时计数寄存器 8h0C SDx_STATUS 20h 状态寄存器 32h00000000 SDx_INT_FG 24h 中断标志寄存器 16h0000 SDx_INT_EN 28h 中断使能寄存器 16h0000 SDx_DMA 2Ch DMA 起始地址寄存器 16hxxxx SDx_BLOCK_CFG 30h 传输块配置寄存器 32h00000000 SDx_TRAN_MODE 34h, 传输模式寄存器 8h00 时钟配置寄存器(SD_CLK_CFG) 位 名称 访问 描述 复位值 [16:10] Reserved RO 保留。 00h 9 bSDCLK_Mode WO 时钟频率模式选择位: 1:高速模式,25M-100MHz; 0:低速模式,400KHz。

CH567数据手册 相关资料下载网址:www.wch.cn 8 bSDCLK_OE WO SD物理时钟信号线输出控制位: 1:打开,输出通讯时钟; 0:关闭。 [7:5] Reserved RO 保留。 0 [4:0] MASK_SD_CLK_PRE WO SD控制器时钟(SDCLK)分频因子: 当bSDCLK_Mode=1,则 SDCLK = 480M/MASK_CLK_PRE; 当bSDCLK_Mode =0,则 SDCLK = 480M/MASK_CLK_PRE/64。 写1 等效关闭SDC模块采样时钟。 14h 注:时钟配置寄存器(SD_CLK_CFG)配置时钟,由4个SD卡控制器共用。 命令参数寄存器(SDx_ARGUMENT)(x=0/1/2/3) 位 名称 访问 描述 复位值 [31:0] SD_ARGUMENT RW SD/eMMC的 32位命令参数寄存器。 0 命令设置寄存器(SDx_CMD_SET) (x=0/1/2/3) 位 名称 访问 描述 复位值 [15:12] Reserved RO 保留。 0 11 bCHK_RESP_IDX RW 校验应答的命令索引: 1:需要; 0:不需要。 10 bCHK_RESP_CRC RW 校验应答的CRC: 1:需要; 0:不需要。 [9:8] MASK_RESP_TYPE RW 期望应答类型: 00b:无应答; 01b:应答长度为136位; 10b:应答长度为48位; 11b:应答长度为48位, 且为R1b类型应 [7:6] Reserved RO 保留。 0 [5:0] MASK_CMD_IDX RW 当前发送命令的索引号。 0 应答参数寄存器(SDx_RESPONSE) (x=0/1/2/3) 位 名称 访问 描述 复位值 [31:0] SDx_RESPONSE0 RO 应答参数寄存器0 0 [63:32] SDx_RESPONSE1 RO 应答参数寄存器1 0 [95:64] SDx_RESPONSE2 RO 应答参数寄存器2 0 [127:96] SDx_RESPONSE3 R0 应答参数寄存器3 0 [127:96] SDx_WRITE_CONT WO 复用SD_RESPONSE3寄存器, 用于在多块 写过程中,启动写操作。 0 注:应答长度为 136 位时,有效数据为 128 位,应答长度为 48 位时,有效数据长度为 32 位, SDx_RESPONSEx寄存器存放的是应答的有效数据参数。 SDx_RESPONSE3寄存器存在复用,寄存器复用为:在使用CMD25命令向卡连续写入多块数据时, 在块完成中断时,当不需要更改DMA 地址时,写这个寄存器的动作,启动向 SD 写数据操作。如果需 要更改DMA地址,则写DMA地址寄存器,就会启动写SD,就不用再用写寄存器的方式启动。

CH567数据手册 相关资料下载网址:www.wch.cn 控制寄存器(SDx_CTRL)(x=0/1/2/3) 位 名称 访问 描述 复位值 [7:6] Reserved RO 保留。 0 5 bSC_NEG_SAMPLE RW Cmd和Data信号线采样模式选择位: 1:下降沿采样; 0:上升沿采样。 4 bSC_RST_DAT_LGC RW 1:复位内部数据收发逻辑,需要软件清 0:正常工作; 3 bSC_DMA_ENABLE RW SD控制器的DMA和 DMA中断控制位: 1:使能DMA功能和DMA中断; 0:关闭DMA。 2 bSC_ALL_CLR RW 1:复位SD控制器逻辑,需要软件清零; 0:正常工作。 1 [1:0] DAT_LINE_WIDTH RW 收发数据逻辑采样的数据线宽度(通讯 数据线宽度) : 00:收发器仅使用dat[0],单数据线; 01:收发器使用dat[3:0],4 数据线; 10:收发器使用dat[7:0], 8数据线, 此值仅0# 2#控制器支持,用于eMMC卡 的8 线模式。 01b 超时控制寄存器(SDx_TOCNT) (x=0/1/2/3) 位 名称 访问 描述 复位值 [7:4] Reserved RO 保留。 0 [3:0] MASK_TOCNT RW 应答/数据超时配置: 0:不使能内部超时机制; 非0:设置超时时间,有效数值0 – 12。 计算方法:SD卡时钟周期 * 4194304 * MASK_TOCNT 。 如:如果此时SDCLK周期为10ns,则写 入12,则超时时间为10ns * (4194304) * (12) = 503ms。 Ch 注:1.上述数据超时包含下列 4 种情况: 1) R1b应答之后的DAT[0] busy超时; 2)写数据块时,CRC status之后的DAT[0] busy超时; 3)写数据块时,等待CRC status超时; 4)读数据块时,等待起始位超时。 2.命令的应答同样支持超时机制,如果应答超时,则由中断寄存器中的SIF_RE_TMOUT 中断 给出。命令超时采用协议给出的超时最大值:64 Tsdclk。 状态指示寄存器(SDx_STATUS)(x=0/1/2/3) 位 名称 访问 描述 复位值 [32:18] Reserved RO 保留。 0 17 bST_DAT0_HI RO 1:当前DAT0线为高电平 0:低电平。 0 16 bST_CMD_HI RO 1:当前CMD线为高电平; 0:低电平。 0

CH567数据手册 相关资料下载网址:www.wch.cn [15:0] MASK_BLOCK_NUM RO 指示当前多块操作中,已经成功传输的 块数。 0 中断标志寄存器(SDx_INT_FG)(x=0/1/2/3) 位 名称 访问 描述 复位值 [15:10] 保留 RO 保留。 0 9 bSIF_SDIO_INT RW1 SDIO卡中断标志位,写1清零: 1:SDIO卡产生卡中断; 0:无事件。 8 bSIF_FIFO_OF RW1 FIFO溢出中断标志位,写1 清零: 1:FIFO溢出触发; 0:无事件。 7 bSIF_BLOCK_GAP RW1 单块传输完成标志位,写1 清零: 1:单块收发完成触发; 0:无事件。 6 bSIF_TRANS_SC RW1 请求块数传输完成标志位,写1清零: 1:请求块数都传输完成触发; 0:无事件。 5 bSIF_TRANS_ER RW1 传输CRC错误标志位,写1 清零: 1:CRC错误触发; 0:无事件。 4 bSIF_DATA_TMO RW1 数据超时标志位,写1 清零: 1:数据超时触发; 0:无事件。 3 bSIF_CMD_DONE RW1 命令完成标志位,写1 清零: 1:发送命令,并且收到应答完毕; 0:无事件。 2 bSIF_RE_IDX_ER RW 应答索引号校验错误标志位, 写1 清零: 1:应答索引号校验错误触发; 0:无事件。 1 bSIF_RE_CRC_WR RW 应答CRC校验错误标志位,写1清零: 1:应答CRC校验错误触发; 0:无事件。 0 bSIF_RE_TMOUT RW 接收应答超时标志位,写1 清零: 1:数据超时触发; 0:无事件。 中断使能寄存器(SDx_INT_EN)(x=0/1/2/3) 位 名称 访问 描述 复位值 [15:10] Reserved RO 保留 0 9 bSIE_SDIO_INT RW SDIO卡中断: 1:使能相应中断; 0:禁止相应中断。 8 bSIE_FIFO_OF RW FIFO溢出中断: 1:使能相应中断; 0:禁止相应中断。 7 bSIE_BLOCK_GAP RW 单块完成中断: 1:使能相应中断; 0

CH567数据手册 相关资料下载网址:www.wch.cn 0:禁止相应中断。 6 bSIE_TRANS_SC RW 请求块传输完成中断: 1:使能相应中断; 0:禁止相应中断。 5 bSIE_TRANS_ER RW 块传输CRC错误中断: 1:使能相应中断; 0:禁止相应中断。 4 bSIE_DATA_TMO RW 数据超时中断: 1:使能相应中断; 0:禁止相应中断。 3 bSIE_CMD_DONE RW 命令完成中断: 1:使能相应中断; 0:禁止相应中断。 2 bSIE_RE_IDX_ER RW 应答索引校验错误中断: 1:使能相应中断; 0:禁止相应中断。 1 bSIE_RE_CRC_WR RW 应答CRC校验错误中断: 1:使能相应中断; 0:禁止相应中断。 0 bSIE_RE_TMOUT RW 命令应答超时中断: 1:使能相应中断; 0:禁止相应中断。 数据块DMA起始地址寄存器(SDx_DMA)(x=0/1/2/3) 位 名称 访问 描述 复位值 [15:0] SD_DMA RW 读写数据缓存区起始地址,低 3 位固定 为0(8 字节对齐)。 0000h 注:此寄存器在从SD中读数据时,保存着读到的数据在SRAM中的起始地址。在写向SD卡写数 据时,保存着将要写的数据在SRAM中的起始地址。 如果执行连续的多块读写SD 操作,那么在单块传输完成后(bSIF_BLOCK_GAP),用户根据需要可 以写 SDx_DMA寄存器来更改DMA地址。 在进行连续多块写时,单块传输完成后,需要写SDx_WRITE_CONT或写SDx_DMA寄存器的方式启 动继续写操作。多块读不需要。 传输块配置寄存器(SDx_BLOCK_CFG)(x=0/1/2/3) 位 名称 访问 描述 复位值 [31:28] Reserved RO 保留。 0 [27:16] BLOCK_SIZE RW 单块传输大小 (1-2048字节) 。 0 [15:0] BLOCK_NUM RW 本次DMA要传输的块计数(1~65535块), 内部自动清零,块数不为零则启动接收 或发送。 传输模式寄存器(SDx_TRAN_MODE)(x=0/1/2/3) 位 名称 访问 描述 复位值 [7:3] Reserved RO 保留。 0 2 bTM_EMMC_BOOT RW 设置eMMC卡传输模式: 1:引导模式; 0:正常模式。

CH567数据手册 相关资料下载网址:www.wch.cn 说明:仅用于eMMC卡。 0 bTM_WR_SD RW DMA 传输的方向: 1:控制器到SD; 0:SD到控制器。

12.3 SD控制应用

12.3.1 SD 命令发送操作:

  1. 设置32位的SDx_ARGUMENT参数寄存器; 2. 设置16位的SDx_CMD_SET寄存器; 3. 等待命令发送状态,查询SDx_INT_FG寄存器。若发送命令成功,会产生命令发送成功标志, 否则,会产生CRC错误,或超时,或应答索引错误标志。 12.3.2 读 SD 卡多块数据操作: 1. 设置SDx_DMA寄存器,设置SD0x_TRAN_MODE寄存器DMA传输方向由SD到控制器,设置 SD_BLOCK_CFG(每块接收字节数寄存器,以及本次DMA 将要接收的块数),此时控制器便准备好开始 接收 SD卡返回的数据块。 2. 设置32位的SDx_ARGUMENT参数寄存器和SDx_CMD_SET寄存器,发出CMD18(读多块命令) 。 3. 等待命令发送完成。 4. 控制器接收N 块成功后,会产生传输成功中断(bSIF_TRANS_SC=1)。若中间出现传输错误, 则产生相应错误中断,此时读取状态寄存器(SDx_STATUS),了解本次成功传输块数。 12.3.3 写 SD 卡多块数据操作: 1. 设置32位的SDx_ARGUMENT参数寄存器和SDx_CMD_SET寄存器,发出CMD25(写多块命令) 。 2. 等待命令发送完成。 3. 设置SDx_DMA寄存器,设置SDx_TRAN_MODE寄存器DMA传输方向由控制器到SD,设置 SDx_BLOCK_CFG(每块发送字节数寄存器,以及本次DMA将要发送的块数),此时控制器便开始向SD 卡发送数据块。 4. 控制器发送N 块成功后,会产生传输成功中断(bSIF_TRANS_SC=1)。若中间出现传输错误, 则产生传输错误中断,此时读取状态寄存器(SDx_STATUS),了解本次成功传输块数。

12.4 AES/SM4 模块功能描述

CH567内置了分组密码算法模块,支持AES和 SM4两种分组密码算法以及电子密码本(ECB)和计 数器(CTR)模式。总共有如下8 种组合: SM4 算法128bit密钥 的ECB 模式和CTR模式; AES算法128bit密钥 的ECB模式和CTR模式; AES算法192bit密钥 的ECB模式和CTR模式; AES算法256bit密钥 的ECB模式和CTR模式。

12.4.1 AES/SM4 算法

AES(Advanced Encryption Standard)算法是一种区块加密法,采用对称分组密码体制,是对称 密钥加密中最流行的算法之一。SM4分组密码算法一般是用于无线局域网和可信计算机的专用分组密

CH567数据手册 相关资料下载网址:www.wch.cn 码算法,同时也可用于其它环境下的数据加密保护。 在数据加解密过程中,需要载入密钥。对于AES算法,根据设置密钥长度为128/192/256比特, 分别将用户密钥扩展为11×128/13×128/15×128-bit的扩展密钥。而SM4算法,将128-bit的用户 密钥扩展成为32×32-bit的扩展密钥。这些扩展密钥被保存在内部寄存器中,以方便在加解密时使

12.4.2 ECB 与 CTR 模式

AES/SM4支持两种模式,电子密码本 (ECB) 模式和计数器 (CTR) 模式,其中CTR模式的安全性 能要高于ECB模式。二者的区别如图13-1所示。在ECB 模式下,明文 (plain text) 与密文 (cipher text) 是一一对应的,加密之后的明文直接作为密文;在CTR模式下,需要预先载入128-bit的计数 值,将计数值加密,加密之后的计数值与明文异或作为密文。值得注意的是,CTR解密模式下,也是 只对计数值进行加密,而非解密。 (a) ECB 模式下的加密 (b) ECB模式下的解密 (c) CTR 模式下的加密 (d) CTR模式下的解密 图12-1 ECB与CTR模式加解密示意图

12.5 AES/SM4 模块寄存器描述

AES/SM4模块相关寄存器物理基地址为:0x0040 c400 表 12-2 AES/SM4模块寄存器列表 名称 偏移地址 描述 复位值 AES_SM4_CTRL 0x00 AES/SM4控制寄存器 32h20 AES_SM4_INT_FG 0x04 AES/SM4中断标志寄存器 32h0

CH567数据手册 相关资料下载网址:www.wch.cn AES_SM4_KEY7 0x08 密钥寄存器7 32hxxxxxxxx AES_SM4_KEY6 0x0C 密钥寄存器6 32hxxxxxxxx AES_SM4_KEY5 0x10 密钥寄存器5 32hxxxxxxxx AES_SM4_KEY4 0x14 密钥寄存器4 32hxxxxxxxx AES_SM4_KEY3 0x18 密钥寄存器3 32hxxxxxxxx AES_SM4_KEY2 0x1C 密钥寄存器2 32hxxxxxxxx AES_SM4_KEY1 0x20 密钥寄存器1 32hxxxxxxxx AES_SM4_KEY0 0x24 密钥寄存器0 32hxxxxxxxx AES_SM4_IV3 0x28 计数值寄存器3 32hxxxxxxxx AES_SM4_IV2 0x2C 计数值寄存器2 32hxxxxxxxx AES_SM4_IV1 0x30 计数值寄存器1 32hxxxxxxxx AES_SM4_IV0 0x34 计数值寄存器0 32hxxxxxxxx AES/SM4控制寄存器(AES_SM4_CTRL) 位 名称 访问 描述 复位值 [31:17] Reserved RO 保留。 0 16 bKEYE_ACT_IE RW 密钥扩展完成中断使能: 1:使能相应中断; 0:禁止相应中断。 [15:12] Reserved RO 保留。 0 [11:10] MASK_Key_LEN RW 密钥长度设置: 00:128-bit; 01:192-bit; 10:256-bit; 11:保留。 9 bBCIPHER_MOD RW 分组密码模式选择位: 1:CTR模式; 0:ECB模式。 8 bALGRM_MOD RW 算法模式选择位: 1:AES; 0:SM4。 [7:6] Reserved RO 保留。 0 [5:4] MASK_ED_CLK_PRE RW 加解密模块时钟分频因子, 计算:EDclk=480M/ED_CLK_PRE。 最小值2,写1等效关闭ECDC模块运算 时钟。 10b 3 bEDMOD_SELT RW 1:解密模式; 0:加密模式。 0 2 bRDDAT_ED_EN RW 使能写SD数据进行加解密控制位: 1:加解密; 0:无动作。 1 bWRDAT_ED_EN RW 使能读SD数据进行加解密控制位: 1:加解密; 0:无动作。 0 bKEYE_EN RW 密钥扩展功能使能控制位,高电平脉冲 启动。 0 注:bKEYE_EN位使用时,需要将其置高再置低。

CH567数据手册 相关资料下载网址:www.wch.cn AES/SM4中断标志寄存器(AES_SM4_INT_FG) 位 名称 访问 描述 复位值 [31:17] Reserved RO 保留。 0 16 bKEYE_ACT_IF RW1 密钥扩展完成中断标志位,写1清零: 1:密钥扩展完成触发; 0:无事件。 [15:0] Reserved RO 保留。 0 用户密钥寄存器组(AES_SM4_KEYn) (n=0-7) 位 名称 访问 描述 复位值 [31:0] AES_SM4_KEY7 RW 用户密钥223-256位。 x [31:0] AES_SM4_KEY6 RW 用户密钥192-223位。 x [31:0] AES_SM4_KEY5 RW 用户密钥160-191位。 x [31:0] AES_SM4_KEY4 RW 用户密钥128-159位。 x [31:0] AES_SM4_KEY3 RW 用户密钥96-127位。 x [31:0] AES_SM4_KEY2 RW 用户密钥64-95位。 x [31:0] AES_SM4_KEY1 RW 用户密钥32-63位。 x [31:0] AES_SM4_KEY0 RW 用户密钥0-31位。 x 计数值寄存器组(AES_SM4_IVn) (n=0-3) 位 名称 访问 描述 复位值 [31:0] AES_SM4_IV3 RW 计数值96-127位。 x [31:0] AES_SM4_IV2 RW 计数值64-95位。 x [31:0] AES_SM4_IV1 RW 计数值32-63位。 x [31:0] AES_SM4_IV0 RW 计数值0-31位。 x 12.6 数据存储加解密应用 12.6.1 数据加密功能配置 1. 设置AES/SM4控制寄存器AES_SM4_CTRL:bCLR_ALL_IF位置1,清除中断,选择AES或者SM4 算法,选择ECB或者CTR模式,设置密钥长度。注意,SM4 算法只支持128-bit 密钥长度; 2. 设置用户密钥寄存器组,填充密钥。如果使用ETC模式,还需设置计数值寄存器组值; 3. 设置控制寄存器AES_SM4_CTRL的bKEYE_EN,先置1 再置0,启动密钥扩展; 4.查询中断标志寄存器 AES_SM4_INT_FG,等待密钥扩展完成中断。可选的,开启控制寄存器密 钥扩展完成中断使能位bKEYE_ACT_IE,等待中断触发; 5.清除中断。设置控制寄存器bEDMOD_SELT位为0,选择加密模式,设置bRDDAT_ED_EN位为1, 启动从 SRAM 到 SD 传输数据加密功能,或者,设置bWRDAT_ED_EN 位为 1,启动从 SD 到 SRAM 传输数 据加密功能。 12.6.2 数据解密功能配置 1. 设置AES/SM4控制寄存器AES_SM4_CTRL:bCLR_ALL_IF位置1,清除中断,选择AES或者SM4 算法,选择ECB或者CTR模式,设置密钥长度。注意,SM4 算法只支持128-bit 密钥长度; 2. 设置用户密钥寄存器组,填充密钥。如果使用CTR模式,还需设置计数值寄存器组值; 3. 设置控制寄存器AES_SM4_CTRL的bKEYE_EN,先置1 再置0,启动密钥扩展; 4.查询中断标志寄存器 AES_SM4_INT_FG,等待密钥扩展完成中断。可选的,开启控制寄存器密

CH567数据手册 相关资料下载网址:www.wch.cn 钥扩展完成中断使能位bKEYE_ACT_IE,等待中断触发; 5.清除中断。设置控制寄存器bEDMOD_SELT位为1,选择解密模式,设置bRDDAT_ED_EN位为1, 启动从 SRAM 到 SD 传输数据解密功能,或者,设置bWRDAT_ED_EN 位为 1,启动从 SD 到 SRAM 传输数 据解密功能。

CH567数据手册 相关资料下载网址:www.wch.cn 第 13 章 外部总线接口(PARA) 13.1 外部总线接口简介 CH567 芯片带有一个外部总线控制器,该接口支持 8 位总线宽度,地址空间范围为 0x00800000 至 00807FFF,包括读信号引脚(PRD#)、写信号引脚(PWR#)、15 位地址引脚(PA0-PA14)和 8 位数据引 脚(PB0-PB7)。当未采用总线接口时,其上述引脚可以作为普通 I/O 口使用。该接口支持静态存储器 映射器件,包括RAM、ROM、Flash和一些外部I/O器件,可动态修改读写信号脉宽以及地址和数据的 建立和保持时间。 外部总线接口特性: (1)、支持8 位总线宽度; (2)、支持最多15 位地址总线宽度; (3)、支持静态存储器映射器件,包括RAM、Flash和一些外部I/O器件; (4)、支持动态修改读写信号脉宽、地址和数据的建立和保持时间等; 13.2 寄存器描述 外部总线接口相关寄存器物理起始地址为:0x0040 1000 表9-1外部总线接口相关寄存器列表 名称 偏移地址 描述 复位值 R8_XBUS_CONFIG 0x10 外部总线配置寄存器 8h00 外部总线配置寄存器(R8_XBUS_CONFIG) 位 名称 访问 描述 复位值

7 RB_XBUS_SETUP RW

外部总线数据建立时间: 1:3 个时钟周期; 0:2 个时钟周期。

6 RB_XBUS_HOLD RW

外部总线数据保持时间: 1:3 个时钟周期; 0:2 个时钟周期。 [5:4] RB_XBUS_WIDTH RW 外部总线RD/WR有效时间: 00:3个时钟周期; 01:5个时钟周期; 10:9个时钟周期; 11:16个时钟周期。 [3:2] RB_XBUS_ADDR_OE RW 外部总线地址输出使能: 00:无总线地址输出; 01:地址线PA[5:0]; 10:地址线PA[9:0]; 11:地址线PA[14:0]。

1 Resered RO 保留。 0

0 RB_XBUS_ENABLE RW

外部总线使能位: 1:使能; 0:禁止。

CH567数据手册 相关资料下载网址:www.wch.cn 13.3 外部总线接口应用 13.3.1 外部总线接口 外部总线接口包括 1 个读信号引脚 PRD#(PB8)、1 个写信号引脚 PWR#(PB9)、15 个地址引脚 A0-A14(PA0-PA14)和8 个数据引脚D0-D7(PB0-PB7)。该接口支持8位数据总线宽度。 8 位宽存储器接口: WR RD CS D[7:0] A[15:0] PA[14:0] PB[7:0] PB8 PB9 PBX 图9-1 8 位宽总线接口连接8 位的存储器芯片 13.3.2 典型总线时序 下图所示为典型的外部总线接口读/写访问时序,Fsys 为总线时钟频率,RD 为读信号引脚,WR 为写信号引脚。 例如设置 RB_XBUS_WIDTH = 01b,RB_XBUS_HOLD = 0b,RB_XBUS_SETUP = 0b,则时序图如下所 Fsys WR/RD ADDR DATA 地址有效 数据有效 建立时间 保持时间读写信号脉宽时间 图9-2 外部线接口读/写访问时序图 上图中RB_XBUS_SETUP位是数据的建立时间,当设置为0时,外部总线建立时间为2 个时钟周期 (Tsys);当设置为 1 时,外部总线建立时间为 3 个时钟周期(Tsys);RB_XBUS_HOLD 位是数据的保持 时间,当设置为0 时,数保持时间为2 个时钟周期(Tsys);当设置为1时,数据保持时间为3个时钟 周期(Tsys);RB_XBUS_WIDTH是总线数据读写有效脉宽,可选3 个时钟、5 个时钟、9 个时钟、16 个 时钟。 13.3.3 外部总线配置 主要配置步骤如下:

CH567数据手册 相关资料下载网址:www.wch.cn (1)、配置外部总线配置寄存器(R8_XBUS_CONFIG),设置RB_XBUS_ENABLE位为1 使能外部总线接 口,同时根据需要设置地址位控制域RB_XBUS_ADDR_OE,选择需要的寻址范围; (2)、配置外部总线配置寄存器(R8_XBUS_CONFIG),设置RB_XBUS_WIDTH位控制域,选择总线读 写时钟脉宽;设置RB_XBUS_SETUP位和RB_XBUS_HOLD位,选择总线建立时间以及总线保持时间; (3)、配置外部总线接口相应引脚方向。 主要配置程序如下: /* 配置外部总线接口相关寄存器,开启并口总线功能,15根地址线,总线读写时钟脉宽5 个时钟, 总线建立时间及保持时间各2 个时钟*/ R8_XBUS_CONFIG = 0x1d; /* 配置外部总线接口相应引脚 */ R32_PA_DIR |= 0x7FFF; // 可以仅使用部分地址引脚 R32_PB_DIR |= ( PWR | PRD);

CH567数据手册 相关资料下载网址:www.wch.cn 第 14 章 中断 14.1 中断控制器 CH567芯片支持多个中断源,总共有16个外设中断源。包括UART、SPI、TMR、USB、GPIO等。 表14-1 中断向量表 默认优先顺序 中断号 优先等级 名称 说明 高优先权 低优先权 0 2 级可设置 SOFT 软件中断 1 2 级可设置 TMR0 定时器0 中断 2 2 级可设置 GPIO GPIO端口中断 3 2 级可设置 SPI0 SPI0中断 4 2 级可设置 USB0 USB0中断 5 2 级可设置 TMR1 定时器1 中断 6 2 级可设置 TMR2 定时器2 中断 7 2 级可设置 UART0 串口1中断 8 2 级可设置 USB1 USB1中断 9 2 级可设置 SDC SD控制器中断 10 2 级可设置 ECDC 加解密控制器中断 11 2 级可设置 LED LED 控制器中断 12 2 级可设置 SPI1 SPI1中断 13 2 级可设置 UART1 串口1中断 14 2 级可设置 UART2 串口2中断 15 2 级可设置 UART3 串口3中断 14.2 中断使用说明 1) 使用CH567芯片的中断功能,需要在软件代码中添加如下函数来开启系统中断控制。 void Interrupt_init(void); 2) 开启相应外设模块的中断使能寄存器相应中断控制位,就可以在相应触发条件下中断触发。 3) 中断函数写法参考如下示例,以 TMR0 为例,中断号为1: __attribute__( ( interrupt ( "id=1" ) ) ) void TIME0_Deal() static UINT16 j=0; if(R8_TMR0_INT_FLAG & RB_TMR_IF_CYC_END) j++; if(j>300){ printf("*\\n"); j = 0; R8_TMR0_INT_FLAG |= RB_TMR_IF_CYC_END; //清标志

CH567数据手册 相关资料下载网址:www.wch.cn 第 15 章 参数 15.1 绝对最大值 临界或者超过绝对最大值将可能导致芯片工作不正常甚至损坏。 表15-1 绝对最大值参数表 名称 参数说明 最小值 最大值 单位 TA 工作时的环境温度 V33REG=3.3V V33USB=3.3V V33IO1/2/3=3.3V -40 85 ℃ TS 储存时的环境温度 -55 125 ℃ V33REG 系统电源电压(V33REG接电源,GND接地) -0.4 4.2 V V33USB USB0电源电压(V33USB接电源,GND接地) -0.4 4.2 V V33IO1 外设组1电源电压(V33IO1接电源,GND接地) -0.4 4.2 V V33IO2 外设组2电源电压(V33IO2接电源,GND接地) -0.4 4.2 V V33IO3 外设组3电源电压(V33IO3接电源,GND接地) -0.4 4.2 V VIO0 V33USB电源域的输入或者输出引脚上的电压 -0.4 V33USB+0.4 V VIO1 V33IO1电源域的输入或者输出引脚上的电压 -0.4 V33IO1+0.4 V VIO2 V33IO2电源域的输入或者输出引脚上的电压 -0.4 V33IO2+0.4 V VIO3 V33IO3电源域的输入或者输出引脚上的电压 -0.4 V33IO3+0.4 V 15.2 电气参数 测试条件:TA=25℃,V33REG=3.3V、V33USB=3.3V、V33IO1/2/3=3.3V,Fsys=96MHz。 表15-2 电气参数表 名称 参数说明 最小值 典型值 最大值 单 位 V33REG 系统电源电压 V33REG 2.7 3.3 3.6 V V33USB USB0电源电压 V33USB 3.0 3.3 3.6 V V33IO1 外设组1电源电压 V33IO1 1.6 3.3 3.6 V V33IO2 外设组2电源电压 V33IO2 1.6 3.3 3.6 V V33IO3 外设组3电源电压 V33IO3 3.0 3.3 3.6 V ICC 工作时的总电源电流 20 55 150 mA ISLP 低功耗状态的电源电流 I/O 引脚输出无负载或者输入带下拉 240 270 350 uA VIL 低电平输入电压(V33IO=3.3V) -0.4 - 0.7 V VIH 高电平输入电压(V33IO=3.3V) 2.0 - V33IO+0.4 V VIL18 低电平输入电压(V33IO1/2=1.8V) -0.4 - 0.5 V VIH18 高电平输入电压(V33IO1/2=1.8V) 1.2 - V33IO+0.4 V VOL 低电平输出电压(6mA吸入电流) - - 0.4 V VOH 高电平输出电压(5mA输出电流) V33IO-0.4 - - V IUP 内置上拉电阻的输入端的输入电流 25 45 80 uA IDN 内置下拉电阻的输入端的输入电流 -25 -45 -80 uA Vpot VCORE内核电源上电复位的电压门限 0.6 0.7 0.8 V

CH567数据手册 相关资料下载网址:www.wch.cn 15.3 功能模块静态电流 测试条件:TA=25℃,V33REG=3.3V、V33USB=3.3V、V33IO1/2/3=3.3V。 表15-3 功能模块动态电流表 频率 功能模块 30M 60M 96M 120M 单位 USB0/USB1 0.2 0.4 0.65 0.79 mA USB0-Phy 10 mA USB1-Phy 15 mA SDC-96MHz 12.45 13.53 14.84 15.65 mA SDC-48MHz 6.28 7.39 8.64 9.49 mA SDC-24MHz 4.16 5.22 6.5 7.32 mA ECDC-240MHz 15.64 16.88 17.72 19.3 mA ECDC-160MHz 10.99 12.25 13.79 14.69 mA TMR+UART+SPI+PWM 0.17 0.33 0.51 0.7 mA PLL 7 mA Core+BUS+DMA 24 27 31 34 mA 15.4 时序参数 测试条件:TA=25℃,V33REG=3.3V、V33USB=3.3V、V33IO1/2/3=3.3V,Fsys =96MHz。 表15-4 时序参数表 名称 参数说明 最小值 典型值 最大值 单位 Trst 外部复位输入RST#有效信号宽度 50 2*Tsys - ns Tpro 上电复位后的复位延时 22 32 50 mS Tsro 外部/软件复位输入后的复位延时+加载时间 8 8.8 10 mS TWAK 从低功耗状态退出的唤醒时间 0.2 1 5 mS

CH567数据手册 相关资料下载网址:www.wch.cn 第 16 章 封装 芯片封装 封装形式 塑体宽度 引脚间距 封装说明 订货型号 LQFP-48 7*7mm 0.5mm 19.7mil 标准LQFP48脚贴片 CH567L 说明: 尺寸标注的单位是 mm(毫米) 引脚中心间距是标称值,没有误差,除此之外的尺寸误差不大于±0.5mm。

CH567数据手册 相关资料下载网址:www.wch.cn 第 17 章 修改记录 版本 日期 说明 V1.0 2017.05.10 初版发行 V1.1 2018.10.29 修改了部分错误描述