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

  • 发资料

  • 发帖

  • 提问

  • 发视频

创作活动
CH563L

CH563L

  • 厂商:

    WCH(南京沁恒)

  • 封装:

    LQFP-128_14X14MM

  • 描述:

    CH563L

  • 数据手册
  • 价格&库存
CH563L 数据手册
CH563 使用手册 版本:V1.11 http://wch.cn 如何阅读本说明书 关于缩写: 本说明书中在对寄存器的描述中使用了下列缩写: 缩写词 RF RO WO RZ WZ RW RW1 WA RWA h b o 描述 读取值为定值,不受复位影响 只读 只写(读取值为 0 或无效) 只读,读取完之后自动清 0 写清 0 可读可写 读/写 1 清 0 只写(安全模式下),读取值为 0 或无效 可读写(安全模式下) 表示 16 进制数 表示 2 进制数 表示 8 进制数 关于地址: USB相关寄存器物理起始地址为: 0x0040 4000 以太网相关寄存器物理起始地址为:0x0040 6000 本说明书描述中除非特殊说明,否则地址均指偏移地址。 关于术语: 本说明书用到的与 USB 相关的首字母缩写词、简写以及定义: 术语 定义 EHCI USB 增强主机控制器接口规范 OHCI 开放主机控制器接口规范 UHCI 通用主机控制器接口规范 LS 低速 FS 全速 HS 高速 HC 主机控制器 HCD 主机控制器驱动 AP 应用程序 SRP OTG 会话请求协议 HNP OTG 主机协商协议 UTMI USB2.0 收发器微接口 ACK 数据包确认应答 NAK 不确认应答 STALL 停止工作,或不支持的控制命令 Asynchronous List 异步列表 Periodic Frame List 周期性数据帧列表 CRC 循环冗余校验 SOF 数据帧开始(Start of Frame) EOF 数据帧结尾(End of Frame) QH qTD siTD 队列头(Queue Head) 队列单元传输描述符 SPLIT 事务处理实时传输描述符 本说明书用到的与以太网相关的首字母缩写词、简写以及定义: 术语 AHB CRC DMA FCS Fragment Frame MAC MII Packet PHY Rx Tx WoL TCP/IP 定义 先进的高性能总线 循环冗余校验 直接存储器访问 帧校验序列 一个以太网帧或其中的一部分,一个以太网帧可以是一 个或多个片段(fragment) 一个以太网帧由目标地址、源地址、长度/类型区、有效 载荷以及帧检验序列组成 媒体访问控制器 媒体独立接口 通过以太网传输的帧:一个包由导言、起始帧定界符和 以太网帧组成 以太网物理层 接收 发送 LAN 上唤醒 传输控制协议/网际协议 CH563 中文手册 4 第 1 章 概述 CH563 系列单片机是 32 位 RISC 精简指令集 CPU,指令集兼容 ARMv5TE,支持 16 位 Thumb 指令和 增强 DSP 指令。默认系统主频为 100MHZ,最高可达 130MHZ。高度集成的外设以及高性能,使其可以 广泛的应用于各种嵌入式应用。 CH563 的外设组件包含最高 224K 的 FLASH 闪存、64K 的 SRAM、28K 的 DataFlash、百兆以太网、 高速/全速 USB 主机/从机接口、2 个 SPI 接口、2 个 UART 接口、3 通道 10 位 ADC、4 个通用定时器、 8 位被动并行接口、8/16/32 位 Intel 时序的总线接口、在系统编程 ISP 接口和多达 74 个通用 I/O 管 脚。 1.1 功能特性 ● 内核: 32 位 RISC 指令集 CPU,兼容 ARM V5TE 指令集,支持 16 位 Thumb 指令和增强 DSP 指令,默认 系统主频为 100MHZ。 ● FLASH 和 RAM: CH563 片内 FLASH 最高为 224K,用于保存程序代码,支持写保护。FLASH 闪存拥有 10 万次擦 写、20 年保存能力,支持 ICP/ISP 升级。 片内 SRAM 共 64K,用于数据缓冲。 ● DataFlash: 片内 DataFlash 共 28K,用于保存非易失性数据。 ● 以太网: 内置 MAC 和基于 DSP 的 10/100Base-TX 快速 Ethernet 收发器(PHY),支持 10/100Mbps 双绞线 网络通讯,兼容 IEEE 802.3,802.3u 和 FDDI-TP-PMD,支持 Wake-On-LAN 功能,收发各独立 的 2K 字节 FIFO,支持 DMA。 每颗芯片都内置 IEEE 分配的唯一 MAC 地址。 ● USB: 内置高速 USB 收发器(PHY)和 USB 控制器,支持 USB 2.0,兼容 EHCI,支持主/从模式,支持 高速/全速/低速传输,独立的 2K+64 字节 FIFO,支持 DMA。 ● SPI: 2 组 SPI 控制器 SPI0、SPI1,速度可调,最高可达系统频率 SCLK 的一半约 50MHZ,支持输入 输出单工复用。SPI0 支持 Master/Slave 主从模式,32 级 FIFO,支持 DMA;SPI1 只支持主机 模式,16 级 FIFO。 ● UART: 2 组兼容 16C550 的异步串口 UART,速度可调,最高达系统主频 SCLK 的八分之一约 16Mbps, 一组支持全部 Modem 信号,16 级 FIFO;另一组只支持 CTS 和 RTS,但支持 9 位串口模式下总 线地址自动比较和 SIR 之 IrDA 编解码,32 级 FIFO。 ● ADC: CH563 最多支持 3 通道 10 位 A/D 转换器,采样率可调,最高达每秒 1M 次,8 级 FIFO,支持设 定参考值在到达后触发中断,支持两通道自动轮测,可用软件对信号进行算法解码,支持 DMA。 ● TIMER: 4 组 28 位定时器,支持输入信号宽度采样/信号捕捉(高/低/翻转) ,支持 PWM 输出,8 级 FIFO, 其中 3 组支持 DMA。 ● 被动并口: 提供 1 个 Intel 时序的 8 位被动并口,方便与外部系统进行数据通信。 ● 总线接口: 提供 1 个 Intel 时序的总线接口,支持 8 位、16 位、32 位数据读写,读写宽度可调。 ● 低功耗睡眠: 支持低功耗睡眠方式,支持部分 GPIO 等外部唤醒。 5 CH563 中文手册 ● 芯片 ID 号: 每个芯片具有 64bit 唯一的 ID 识别号,便于通讯识别或者数据加密。 ● GPIO: LQFP128 封装提供多达 74 个 GPIO 引脚,部分引脚支持上拉电阻、下拉电阻、施密斯输入、两 种驱动能力,部分引脚支持电平或者边沿中断。 ● 电源: CPU 操作电压范围:1.65---1.95V(1.8V±10%); IO 操作电压范围:3.0---3.6V(3.3V±10%),部分 I/O 口可承受 5V 电压。 1.2 结构框图 以下为 CH563 芯片简化内部结构框图。 GPIO Port A ICE FLASH 224K GPIO Port B DFlash 28K SRAM 64K ISP Interface GPIO Port D BUS Matrix 8 bit Slave Parallel Dbus 8/16/32 bit Parallel 10 bit ADC SPI0 System UART0 A H B Ibus SPI1 32 位 CPU Fmax = 130MHZ A H B USB HS/FS PHY UART1 2K+64 FIFO TIM0 TIM1 DMA Controller Ethernet MAC 10/100 PHY TIM2 TX: 2K FIFO RX: 2K FIFO TIM3 图 1-1 CH563 简化结构框图 6 CH563 中文手册 1.3 芯片封装 芯片型号 CH563L CH563Q 芯片封装 名称 LQFP128 LQFP64M 描述 LQFP 封装;128 脚;本体 14x14mm LQFP 封装;64 脚; 本体 10x10mm CH563 中文手册 7 第 2 章 引脚信息 2.1 引脚排列 图 2-1 LQFP64 封装引脚排列 8 CH563 中文手册 图 2-2 LQFP128 封装引脚排列 2.2 引脚描述 管脚号 I/O 电平 主功能/ 其它功能 LQFP64 类型 LQFP128 管脚名称 1 - VCC18 P VCC18 2 - GND P GND 3 - RSVD1 功能描述 1.8V 内核电源: 内部电路的电源 地: 公共接地端,0V 参考点 保留引脚,禁止连接 9 CH563 中文手册 4 - RSVD0 保留引脚,必须接 GND 5 64 VCC18 P VCC18 6 1 RSETE I RSETE 7 2 VCC33E P VCC33E 8 - RSVD2 9 3 GND P GND 10 4 RXP ETH RXP 地: 公共接地端,0V 参考点 以太网 RXP 信号 11 5 RXN ETH RXN 以太网 RXN 信号 12 6 VCC18E P VCC18E 13 - VCC18E P VCC18E 14 7 TXP ETH TXP 1.8V 电源: 以太网部分电源 1.8V 电源: 以太网部分电源 以太网 TXP 信号 15 8 TXN ETH TXN 以太网 TXN 信号 16 9 GND P GND 17 - GND P GND 18 - VCC18 P VCC18 19 10 XI I XI 地: 公共接地端,0V 参考点 地: 公共接地端,0V 参考点 1.8V 内核电源: 内部电路的电源 晶体振荡输入端 20 11 XO I/O XO 晶体振荡反向输出端 21 12 VCC33U P VCC33U 22 13 GND P GND 23 14 RSETU I RSETU 3.3V 电源: USB 部分电源 地: 公共接地端,0V 参考点 对地接 12K 电阻,用于 USB-PHY 24 15 DN USB DN(UD-) USB 总线的 D-数据线 25 16 DP USB DP(UD+) USB 总线的 D+数据线 26 17 VCC33U P VCC33U 27 18 GND P GND 3.3V 电源: USB 部分电源 地: 公共接地端,0V 参考点 1.8V 内核电源: 内部电路的电源 对地接电阻,用于 ETH-PHY 电阻值范围为 12K 到 18K,12K 时性能最优,18K 时功耗最低,默认可接 15K 3.3V 电源: 以太网部分电源 保留引脚,禁止连接 10 CH563 中文手册 28 19 VCC18 P VCC18 29 20 GND P GND 30 - VCC18 P VCC18 31 - PD16 I/O PD16/D16 32 - PD17 I/O PD17/D17 33 - PD18 I/O PD18/D18 34 - PD19 I/O PD19/D19 35 - PD20 I/O PD20/D20 36 - PD21 I/O PD21/D21 37 - PD22 I/O PD22/D22 38 - PD23 I/O PD23/D23 39 21 VCC33 P 40 - PD24 I/O PD24/D24 41 - PD25 I/O PD25/D25 42 - PD26 I/O PD26/D26 43 - PD27 I/O PD27/D27 44 - PD28 I/O PD28/D28 45 - PD29 I/O PD29/D29 46 - PD30 I/O PD30/D30 47 - PD31 I/O PD31/D31 48 22 PB0 I/O PB0/CTS0X /PWM0 49 23 PB1 I/O PB1/DSR0X /CAT0 50 24 PB2 I/O PB2/RI0X /PWM1 VCC33 1.8V 内核电源: 内部电路的电源 地: 公共接地端,0V 参考点 1.8V 内核电源: 内部电路的电源 PD16:通用双向数字 I/O 引脚 D16: 外部存储器数据线 16 PD17:通用双向数字 I/O 引脚 D17: 外部存储器数据线 17 PD18:通用双向数字 I/O 引脚 D18: 外部存储器数据线 18 PD19:通用双向数字 I/O 引脚 D19: 外部存储器数据线 19 PD20:通用双向数字 I/O 引脚 D20: 外部存储器数据线 20 PD21:通用双向数字 I/O 引脚 D21: 外部存储器数据线 21 PD22:通用双向数字 I/O 引脚 D22: 外部存储器数据线 22 PD23:通用双向数字 I/O 引脚 D23: 外部存储器数据线 23 3.3V 端口电源: I/O 口电源 PD24:通用双向数字 I/O 引脚 D24: 外部存储器数据线 24 PD25:通用双向数字 I/O 引脚 D25: 外部存储器数据线 25 PD26:通用双向数字 I/O 引脚 D26: 外部存储器数据线 26 PD27:通用双向数字 I/O 引脚 D27: 外部存储器数据线 27 PD28:通用双向数字 I/O 引脚 D28: 外部存储器数据线 28 PD29:通用双向数字 I/O 引脚 D29: 外部存储器数据线 29 PD30:通用双向数字 I/O 引脚 D30: 外部存储器数据线 30 PD31:通用双向数字 I/O 引脚 D31: 外部存储器数据线 31 PB0: 通用双向数字 I/O 引脚 CTS0X:UART0 的 MODEM 信号,清除发送 PWM0:脉宽调制输出 0 引脚 PB0: 通用双向数字 I/O 引脚 DSR0X:UART0 的 MODEM 信号,数据装置就绪 CAT0:定时器 0 捕获输入引脚 PB2: 通用双向数字 I/O 引脚 RI0X:UART0 的 MODEM 信号,振铃指示 PWM1:脉宽调制输出 1 引脚 11 CH563 中文手册 51 25 PB3 I/O PB3/DCD0X /CAT1 52 26 PB4 I/O PB4/DTR0X /PWM2 53 27 PB5 I/O PB5/RTS0X /CAT2 54 28 VCC18 P VCC18 55 44 GND P GND 56 29 VCC33 P VCC33 57 30 PB6 I/O PB6/PWM3 / CAT3 PB7 I/O PB7 58 31 PB3:通用双向数字 I/O 引脚 DCD0X:UART0 的 MODEM 信号,载波检测 CAT1:定时器 1 捕获输入引脚 PB4:通用双向数字 I/O 引脚 DTR0X:UART0 的 MODEM 信号,数据终端就绪 PWM2:脉宽调制输出 2 引脚 PB5:通用双向数字 I/O 引脚 RTS0X:UART0 的 MODEM 信号,请求发送 CAT2:定时器 2 捕获输入引脚 1.8V 内核电源: 内部电路的电源 地: 公共接地端,0V 参考点 3.3V 端口电源: I/O 口电源 PB6:通用双向数字 I/O 引脚 PWM3:脉宽调制输出 3 CAT3:定时器 3 捕获输入引脚 PB7:通用双向数字 I/O 引脚 59 32 PB16 I/O PB16/ADCS 60 33 PB17 I/O PB17/SCK1 61 34 PB18 I/O PB18/SDO 62 35 PB19 I/O PB19/SDI /SDX1 63 36 RST# I RST# 64 37 GND P GND 65 - AVRB P AVRB 66 38 AVRT P AVRT 67 - AIN2 I AIN2 PB16:通用双向数字 I/O 引脚 ADCS: 在 ADC 通道自动切换模式指示当前 0/1 通道状态;在非自动切换模式输出采样脉冲 PB17:通用双向数字 I/O 引脚 SCK1:SPI1 串行时钟输出引脚 PB18:通用双向数字 I/O 引脚 SDO:SPI1 串行数据输出引脚 PB19:通用双向数字 I/O 引脚 SDI: SPI1 串行数据输入引脚 SDX1:SPI1 单工模式下串行数据输入输出引脚 外部复位输入,内置上拉电阻 该管脚的低电平将器件复位,并使 I/O 口和外围 功能恢复默认状态,处理器从地址 0 开始执行 地: 公共接地端,0V 参考点 ADC 参考电源负极,标称电压与 GND 相同,但应 当互相隔离以减少噪声干扰 ADC 参考电源正极,标称电压与 VCC33 相同,但 应当互相隔离以减少噪声干扰 A/D 转换输入通道 2 引脚 68 - AIN1 I AIN1 A/D 转换输入通道 1 引脚 69 39 AIN0 I AIN0 A/D 转换输入通道 0 引脚 70 40 VCC33A P VCC33A ADC 模拟 3.3V 电源 标称电压和 VCC33 相同,但应当互相隔离以减少 噪声干扰 12 CH563 中文手册 71 41 GND P GND 72 42 VCC33 P VCC33 73 - DBG I DBG 74 - PD8 I/O PD8/D8 75 - PD9 I/O PD9/D9 76 - PD10 I/O PD10/D10 77 - PD11 I/O PD11/D11 78 - PD12 I/O PD12/D12 79 - PD13 I/O PD13/D13 80 - PD14 I/O PD14/D14 81 - PD15 I/O PD15/D15 82 43 VCC18 P VCC18 83 45 VCC33 P VCC33 84 - PA0 I/O PA0/A0 85 - PA1 I/O PA1/A1 86 - PA2 I/O PA2/A2 87 - PA3 I/O PA3/A3 88 - PA4 I/O PA4/TWP0 /A4 89 - PA5 I/O PA5/TWP1 /A5 90 - PA6 I/O PA6/TACK /A6 91 46 PA7 I/O PA7/DTR0/ TNOW0/TDO /A7 92 - VCC33 P VCC33 地: 公共接地端,0V 参考点 3.3V 电源: ADC 部分电源 DEBUG 模式选择输入引脚 高电平有效,内置下拉电阻 PD8:通用双向数字 I/O 引脚 D8: 外部存储器数据线 8 PD9:通用双向数字 I/O 引脚 D9: 外部存储器数据线 9 PD10:通用双向数字 I/O 引脚 D10: 外部存储器数据线 10 PD11:通用双向数字 I/O 引脚 D11: 外部存储器数据线 11 PD12:通用双向数字 I/O 引脚 D12: 外部存储器数据线 12 PD13:通用双向数字 I/O 引脚 D13: 外部存储器数据线 13 PD14:通用双向数字 I/O 引脚 D14: 外部存储器数据线 14 PD15:通用双向数字 I/O 引脚 D15: 外部存储器数据线 15 1.8V 内核电源: 内部电路的电源 3.3V 端口电源: I/O 口电源 PA0:通用双向数字 I/O 引脚 A0: 外部存储器地址线 0 PA1:通用双向数字 I/O 引脚 A1: 外部存储器地址线 1 PA2:通用双向数字 I/O 引脚 A2: 外部存储器地址线 2 PA3:通用双向数字 I/O 引脚 A3: 外部存储器地址线 3 PA4:通用双向数字 I/O 引脚 TWP0:DEBUG 模式断点控制引脚,应该接低电平 A4: 外部存储器地址线 4 PA5:通用双向数字 I/O 引脚 TWP1:DEBUG 模式断点控制引脚,应该接低电平 A5: 外部存储器地址线 5 PA6:通用双向数字 I/O 引脚 TACK:DEBUG 模式应答输出 A6: 外部存储器地址线 6 PA7:通用双向数字 I/O 引脚 DTR0:UART0 的 MODEM 信号,数据终端就绪 TNOW0:UART0 的单工 RS485 收发使能引脚 A7: 外部存储器地址线 7 3.3V 端口电源: I/O 口电源 13 CH563 中文手册 93 47 PA12 I/O PA12/CTS0 /A12 94 - PA13 I/O PA13/DSR0 /ELED#/TDI /A13 95 - PA14 I/O PA14/RI0 /TCK/A14 96 - PA15 I/O PA15/DCD0 /TMS/A15 97 49 PA8 I/O FT PA8/RTS0 /UID/A8 98 - PA9 I/O FT PA9/SLVI# /TRST#/A9 99 - PA10 I/O FT PA10/SLVA /A10 100 50 PA11 I/O FT PA11/SLVCS# /A11 101 - VCC33 P 102 - PA16 I/O FT PA16/CTS1 /A16 103 51 PA17 I/O FT PA17/RTS1 /TNOW1/A17 104 52 PA18 I/O FT PA18/ELINK# /A18 105 53 PA19 I/O FT PA19/VBUS /A19 106 - PA20 I/O FT PA20/PRD# 107 - PA21 I/O FT PA21/PWR# 108 54 VCC18 P VCC18 PA12:通用双向数字 I/O 引脚 CTS0:UART0 的 MODEM 信号,清除发送 A12: 外部存储器地址线 12 PA13:通用双向数字 I/O 引脚 DSR0:UART0 的 MODEM 信号,数据装置就绪 ELED#:以太网收发指示灯驱动引脚 A13: 外部存储器地址线 13 PA14:通用双向数字 I/O 引脚 RI0: UART0 的 MODEM 信号,振铃指示 A14: 外部存储器地址线 14 PA15:通用双向数字 I/O 引脚 DCD0:UART0 的 MODEM 信号,载波检测 A15: 外部存储器地址线 15 PA8:PA 口通用 I/O RTS0:UART0 的 MODEM 信号,请求发送 UID:USB 接口 ID 信号线输入引脚 A8: 外部存储器地址线 8 PA9:通用双向数字 I/O 引脚 SLVI#:被动并口中断输出引脚 A9: 外部存储器地址线 9 PA10:通用双向数字 I/O 引脚 SLVA:被动并口命令/数据选择输入引脚 A10: 外部存储器地址线 10 PA11:通用双向数字 I/O 引脚 SLVCS#:被动并口片选输入引脚 A11: 外部存储器地址线 11 3.3V 端口电源: I/O 口电源 PA16:通用双向数字 I/O 引脚 CTS1:UART1 的 MODEM 信号,清除发送 A16: 外部存储器地址线 16 PA17:通用双向数字 I/O 引脚 RTS1:UART1 的 MODEM 信号,请求发送 TNOW1:UART1 的单工 RS485 收发使能引脚 A17: 外部存储器地址线 17 PA18:通用双向数字 I/O 引脚 ELINK#:以太网通讯连接指示灯驱动引脚 A18: 外部存储器地址线 18 PA19:通用双向数字 I/O 引脚 VBUS:USB 总线电源检测输入引脚 A19: 外部存储器地址线 19 PA20:通用双向数字 I/O 引脚 PRD#:被动并口读信号输入引脚 外部存储器读信号输出引脚 PA21:通用双向数字 I/O 引脚 PWR#:被动并口写信号输入引脚 外部存储器写信号输出引脚 1.8V 内核电源: 内部电路的电源 14 CH563 中文手册 109 48 GND P GND 110 55 PB8 I/O FT PB8/RXD0 111 56 PB9 I/O FT PB9/TXD0 112 57 PB10 I/O FT PB10/RXD1 /RXTX1 113 58 PB11 I/O FT PB11/TXD1 114 59 PB12 I/O FT PB12/SCS 115 60 PB13 I/O FT PB13/SCK0 116 61 PB14 I/O FT PB14/MOSI 117 62 PB15 I/O FT PB15/MISO /SDX0 118 - PD0 I/O FT PD0/D0 /SLV_D0 119 - PD1 I/O FT PD1/D1 /SLV_D1 120 - PD2 I/O FT PD2/D2 /SLV_D2 121 - PD3 I/O FT PD3/D3 /SLV_D3 122 63 VCC33 P 123 - PD4 I/O FT PD4/D4 /SLV_D4 124 - PD5 I/O FT PD5/D5 /SLV_D5 125 - PD6 I/O FT PD6/D6 /SLV_D6 126 - PD7 I/O FT PD7/D7 /SLV_D7 127 - NC I VCC33 NC 地: 公共接地端,0V 参考点 PB8: 通用双向数字 I/O 引脚 RXD0:UART0 接收器输入引脚 PB9: 通用双向数字 I/O 引脚 TXD0:UART0 发送器输出引脚 PB10:通用双向数字 I/O 引脚 RXD1:UART1 接收器输入引脚 RXTX1:UART1 单工收发输入输出引脚 PB11:通用双向数字 I/O 引脚 TXD1:UART1 发送器输出引脚 PB12:通用双向数字 I/O 引脚 SCS: SPI0 从机片选输入引脚 PB13:通用双向数字 I/O 引脚 SCK0:SPI0 串行时钟引脚,主机输出/从机输入 PB14:通用双向数字 I/O 引脚 MOSI:SPI0 串行数据引脚,主机输出/从机输入 PB15:通用双向数字 I/O 引脚 MISO:SPI0 串行数据引脚,主机输入/从机输出 SDX0:SPI0 单工模式下串行数据输入输出引脚 PD0:通用双向数字 I/O 引脚 D0: 外部存储器数据线 0 SLV_D0:8 位被动并口数据线 0 PD1:通用双向数字 I/O 引脚 D1: 外部存储器数据线 1 SLV_D1:8 位被动并口数据线 1 PD2:通用双向数字 I/O 引脚 D2: 外部存储器数据线 2 SLV_D2:8 位被动并口数据线 2 PD3:通用双向数字 I/O 引脚 D3: 外部存储器数据线 3 SLV_D3:8 位被动并口数据线 3 3.3V 端口电源: I/O 口电源 PD4:通用双向数字 I/O 引脚 D4: 外部存储器数据线 4 SLV_D4:8 位被动并口数据线 4 PD5:通用双向数字 I/O 引脚 D5: 外部存储器数据线 5 SLV_D5:8 位被动并口数据线 5 PD6:通用双向数字 I/O 引脚 D6: 外部存储器数据线 6 SLV_D6:8 位被动并口数据线 6 PD7:通用双向数字 I/O 引脚 D7: 外部存储器数据线 7 SLV_D7:8 位被动并口数据线 7 保留引脚 15 CH563 中文手册 128 - NC I NC 保留引脚 注: (1)、I:输入;O:输出;P:电源;ETH:以太网信号;USB:USB 信号;HiZ:高阻; (2)、FT:兼容 5V; (3)、其中部分功能仅在部分封装中支持,具体请参看引脚描述表。 CH563 中文手册 16 第 3 章 存储器映射 3.1 存储器映射图 CH563 包含有一个 4GB 的地址空间,各存储器映射主要包含几个不同区域,见下图所示。 图 3-1 存储器映射图 3.2 存储器映射表 各存储器映射区域地址范围如下表所示: 地址范围 用途 0x0000 0000-0x000F FFFF 片上非易失性存储器 0x0010 0000-0x003F FFFF 保留 0x0040 0000-0X0040 FFFF 各种外设 0x0041 0000-0X007F FFFF 保留 0x0080 8000-0X0081 FFFF 片上 SRAM,通常用于存储数据 0x0082 0000-0X00BF FFFF 保留 0x00C0 0000-0X00CF FFFF 外部系统总线 0x00D0 0000-0XFFFF FFFF 保留 描述 Flash 存储器(1MB) 多个外设模块 96K/64K/32K 1MB - 17 CH563 中文手册 3.3 外设地址分配 CH563 主要包含 12 个外设,每个外设占用一定的地址空间,下表为各个外设的地址分配表。 外设编号 1 2 3 4 5 6 7 8 9 10 11 12 外设名称 SYS USB ETH TIMER0 TIMER1 TIMER2 TIMER3 ADC SPI0 SPI1 UART0 UART1 外设基址 0x0040 1000 0x0040 4000 0x0040 6000 0x0040 8000 0x0040 8400 0x0040 8800 0x0040 8C00 0x0040 A000 0x0040 C000 0x0040 C800 0x0040 D000 0x0040 D800 18 CH563 中文手册 第 4 章 电源和复位控制 4.1 电源控制 CH563 需要外部提供 2 组工作电压,CPU 工作电压为 1.8V,IO 操作电压为 3.3V。由图 2-1 和图 2-2 的封装引脚排列可以看出,外部提供了多组电源和地。另外,为提高转换的精确度,ADC 使用了 一个独立的外部的电源(AVRT 和 AVRB)供电,过滤和屏蔽来自印刷电路板上的毛刺干扰。 在系统或电源复位后,CH563 处于运行状态。当 CPU 不需要继续运行时,或某些功能模块不需要 使用时,可以关闭这些模块的时钟或电源,以降低功耗。具体见第 5 章时钟控制关于寄存器部分的讲 解。 4.2 复位控制 CH563 支持 4 种复位形式,分别为电源上电复位,外部手工复位,内部软件复位和看门狗复位。 其中前 3 种复位会导致重新加载配置信息,并重新加载程序代码到 RAM 缓冲区中,加载时间约为 3mS。 寄存器 R8_GLOB_RESET_KEEP 和位 RB_GLOB_BOOT_APP,只在上电复位时被复位,而不受其它 3 种 复位影响。 4.2.1 电源上电复位 当电源电压低于上电复位门限 Vpot 时,CH563 发生复位。下图为 CH563 上电复位图。 Vpot Vcc Tout TIME-OUT INTERNAL RESET 4.2.2 外部手工复位 外部手工复位由外加于 RST#引脚的低电平产生。当复位低电平持续时间大于最小复位脉冲宽度 (Trst)时即触发 CH563 芯片进行复位。 19 CH563 中文手册 Vcc RST# Vrst Tout TIME-OUT INTERNAL RESET 4.2.3 内部软件复位 CH563 提供了内部软件复位功能,以便在某些特定情况下,不需要外部干预进行软件复位。设置 全局复位配置寄存器(R8_GLOB_RST_CFG)的位 RB_GLOB_FORCE_RST 为 1,即可实现软件复位。该位会 自动清 0。 4.2.4 看门狗复位 23 看门狗定时器溢出时将产生内部复位脉冲,控制 CH563 进行复位。看门狗周期约为 2 =8388608 个主时钟周期,对于 100MHz 主频约为 84mS。清零 R8_WDOG_CLEAR 可以复位看门狗定时器。 4.2.5 复位特性 符号 参数 最小值 典型值 最大值 单位 Vpot 上电复位门限电压 1.0 1.5 1.6 V Vrst RST#门限电压 1.3 1.5 - V Trst 外部复位输入 RST#有效信号宽度 20 - - ns Tout 外部复位输入后的复位延时+加载时间 4+3 8+3 10+3 mS 20 CH563 中文手册 第 5 章 时钟控制 5.1 时钟框图 CH563 内部各功能模块时钟结构如下图所示: USB PHY CLK 分频 器 OSC_OUT OSC_IN 分频 器 倍频 器 PLL (最 大 300M) ETH PHY CLK 分频 器 AHB CLK CPU CLK 外设时钟使能 USB CLK 外设时钟使能 ETH MAC CLK 外设时钟使能 TIMx CLK 外设时钟使能 分频器 SPIx CLK 外设时钟使能 分频器 UARTx CLK 外设时钟使能 分频器 ADC CLK 外设时钟使能 AUX CLK 外设时钟使能 图 5-1 时钟结构框图 21 CH563 中文手册 外部时钟输入 CH563 后,先经过分频器进行分频(R8_PLL_PRE_DIV)得到参考频率,再经过倍频器 进行倍频(R8_PLL_LOOP_DIV)得到 PLL 时钟。PLL 时钟经过 RB_PLL_ETH_DIV 分频后,作为以太网时钟, 该时钟必须为 25MHZ。PLL 时钟经过 RB_PLL_SYS_DIV 分频后,作为 CPU 主时钟,建议主时钟频率范围 为:30MHZ-130MHZ。各部分时钟都有对应的寄存器或位,进行单独的打开或关闭。为降低芯片功耗, 可以关闭不使用的功能模块。 5.2 寄存器描述 时钟及CPU控制相关寄存器物理起始地址为:0x0040 0000 时钟及 CPU 控制相关寄存器列表(地址范围:0x00---0x1E) 表 5-1 时钟及 CPU 控制相关寄存器列表 名称 偏移地址 描述 R8_SAFE_ACCESS_SIG R8_SAFE_ACCESS_ID R8_WDOG_CLEAR R8_GLOB_MEM_CFG R8_GLOB_LOCK_PORT R8_GLOB_RST_CFG R8_GLOB_RESET_KEEP R8_PLL_EXT_CFG R8_PLL_OUT_DIV R8_PLL_PRE_DIV R8_PLL_LOOP_DIV R8_SLP_CLK_OFF0 R8_SLP_CLK_OFF1 R8_SLP_WAKE_CTRL R8_SLP_CTRL_PLL R8_MISC_CTRL_ETH R8_MISC_CTRL_USB 0x00 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B 0x0C 0X0D 0X0E 0X0F 0x1C 0x1D 复位值 安全访问标记寄存器 安全访问 ID 寄存器 看门狗清 0 寄存器 全局配置寄存器 全局端口锁定配置寄存器 全局复位配置寄存器 复位保持寄存器 PLL 配置寄存器 PLL 输出时钟分频寄存器 PLL 预分频寄存器 PLL 回环分频寄存器 时钟控制寄存器 0 时钟控制寄存器 1 休眠控制寄存器 PLL 休眠控制寄存器 以太网控制寄存器 USB 控制寄存器 8h00 8h01 8h00 8h80 8h00 8h40 8h00 8h40 8h40 8h00 8h00 8h00 8h00 8h00 8h00 8h00 8h00 安全访问标记寄存器(R8_SAFE_ACCESS_SIG): 名称 位 访问 R8_SAFE_ACCESS_SIG [7:0] WO 描述 安全访问标记寄存器,部分寄存器(访 问属性为 RWA)为保护寄存器,必须进 入安全访问模式才能进行读写操作。 对该寄存器先写入 0x57,再写入 0xA8 即可进入安全访问模式,并且限时约 110 个主时钟周期,超过则自动保护 复位值 8h0 安全访问 ID 寄存器(R8_SAFE_ACCESS_ID): 名称 位 访问 描述 R8_SAFE_ACCESS_ID [7:0] RF 安全访问 ID 寄存器 复位值 8h01 看门狗清 0 寄存器(R8_WDOG_CLEAR): 名称 位 访问 R8_WDOG_CLEAR [7:0] WO 复位值 8h00 全局配置寄存器(R8_GLOB_MEM_CFG): 描述 看门狗清 0 寄存器 22 CH563 中文手册 名称 位 访问 RB_GLOB_CFG_FLAG [7:6] RO Reserved 5 - RB_GLOB_BOOT_APP 4 RO Reserved [3:2] - RB_GLOB_MEM_CFG [1:0] RWA 描述 全局配置标志位 写操作时,该域必须写入 2b10 保留 引导程序标志位 0:引导程序状态(或无引导程序) 1:用户应用程序状态 保留 内存配置域 0X:64K 代码空间,64K 数据空间 10:96K 代码空间,32K 数据空间 11:32K 代码空间,96K 数据空间 注:FLASH 闪存超出上述代码空间的 部分代码将降速到 12.5%主频运行 全局端口锁定配置寄存器(R8_GLOB_LOCK_PORT): 名称 位 访问 Reserved Reserved [7:6] [5:4] RB_GLOB_LOCK_PD 3 Reserved 2 RB_GLOB_LOCK_PB 1 RB_GLOB_LOCK_PA 0 - - 描述 写操作时,该域必须写入 2b00 保留 GPIO PD 端口锁定位 0:未锁定 1:锁定,R32/R8_PB_*全部写保护 保留 GPIO PB 端口锁定位 0:未锁定 1:锁定,R32/R8_PB_*全部写保护 GPIO PA 端口锁定位 0:未锁定 1:锁定,R32/R8_PA_*全部写保护 全局复位配置寄存器(R8_GLOB_RST_CFG): 名称 位 访问 描述 Reserved [7:6] 写操作时,该域必须写入 2b01 当前调试禁止/使能状态位 RB_GLOB_DEBUG_EN 5 RO 0:当前禁止调试 1:当前使能调试 Reserved [4:2] 保留 看门狗禁止/使能位 RB_GLOB_WDOG_EN 1 RWA 0:禁止看门狗 1:使能看门狗 软复位位 WA/ RB_GLOB_FORCE_RST 0 0:无动作 WZ 1:强制软件复位芯片 复位保持寄存器(R8_GLOB_RESET_KEEP): 名称 位 访问 R8_GLOB_RESET_KEEP [7:0] RW 描述 复位保持寄存器 该寄存器值不受手工复位、软件复位 复位值 2h2 1h0 1h1 - 2h2 复位值 2h3 1h0 1h0 1h0 复位值 2h0 1h0 1h0 1h0 复位值 8h0 23 CH563 中文手册 或者看门狗复位影响 PLL 配置寄存器(R8_PLL_EXT_CFG): 名称 Reserved Reserved 位 [7:6] [5:4] 访问 - RB_PLL_ETH_OSC 3 RWA RB_PLL_XT_FREQ 2 RWA Reserved [1:0] - 描述 写操作时,该域必须写入 2b01 保留 以太网时钟源选择位 0:PLL 产生 1:外部晶振产生(保留,禁用) PLL 外部晶振频率位 0:12MHz 1:30 MHz 保留 PLL 输出时钟分频寄存器(R8_PLL_OUT_DIV): 名称 位 访问 描述 Reserved [7:6] 写操作时,该域必须写入 2b10 系统时钟分频系数 RB_PLL_SYS_DIV [5:4] RWA 有效值为 0-3,0 代表 4 以太网时钟分频系数 RB_PLL_ETH_DIV [3:0] RWA 有效值为 1-16 PLL 预分频寄存器(R8_PLL_PRE_DIV): 名称 位 访问 Reserved [7:3] R8_PLL_PRE_DIV [2:0] RWA 复位值 2h0 1h0 1h1 - 复位值 2h0 2h0 4ha 描述 复位值 3h3 描述 复位值 6h19 描述 UART1 时钟控制位 0:UART1 时钟开启 1:UART1 时钟关闭 UART0 时钟控制位 0:UART0 时钟开启 1:UART0 时钟关闭 SPI1 时钟控制位 0:SPI1 时钟开启 1:SPI1 时钟关闭 SPI0 时钟控制位 0:SPI0 时钟开启 1:SPI0 时钟关闭 TIM3 时钟控制位 复位值 保留 预分频系数 PLL 倍频寄存器(R8_PLL_LOOP_DIV): 名称 Reserved R8_PLL_LOOP_DIV 位 [7:6] [5:0] 访问 RWA 时钟控制寄存器 0(R8_SLP_CLK_OFF0): 名称 位 访问 RB_SLP_CLK_UART1 7 RWA RB_SLP_CLK_UART0 6 RWA RB_SLP_CLK_SPI1 5 RWA RB_SLP_CLK_SPI0 4 RWA RB_SLP_CLK_TMR3 3 RWA 保留 PLL 倍频系数 1h0 1h0 1h0 1h0 1h0 24 CH563 中文手册 RB_SLP_CLK_TMR2 2 RWA RB_SLP_CLK_TMR1 1 RWA RB_SLP_CLK_TMR0 0 RWA 时钟控制寄存器 1(R8_SLP_CLK_OFF1): 名称 位 访问 RB_SLP_CLK_ETH 7 RWA RB_SLP_CLK_USB 6 RWA RB_SLP_CLK_GPIO 5 RWA RB_SLP_CLK_ADC 4 RWA Reserved [3:0] - 休眠控制寄存器(R8_SLP_WAKE_CTRL): 名称 位 访问 RB_SLP_ETH_PWR_DN 7 RWA RB_SLP_WOL_WAKE 6 RWA RB_SLP_AP_WAK_USB 5 RWA RB_SLP_USB_WAKE 4 RWA 0:TIM3 时钟开启 1:TIM3 时钟关闭 TIM2 时钟控制位 0:TIM2 时钟开启 1:TIM2 时钟关闭 TIM1 时钟控制位 0:TIM1 时钟开启 1:TIM1 时钟关闭 TIM0 时钟控制位 0:TIM0 时钟开启 1:TIM0 时钟关闭 1h0 1h0 1h0 描述 以太网时钟控制位 0:以太网时钟开启 1:以太网时钟关闭 USB 时钟控制位 0:USB 时钟开启 1:USB 时钟关闭 GPIO 时钟控制位 0:GPIO 时钟开启 1:GPIO 时钟关闭,以下寄存器写保护: 主动并口模块所有寄存器/外部总线, 直跳中断入口 R32_INT_VEC_*, GPIO 中断模式 R32/R8_INT_MODE_*, GPIO 中断极性 R32/R8_INT_POLAR_*, 端口上拉/下拉 R32/R8_P*_PU/PD, 端口驱动/施密特 R32/R8_P*_DRV/SMT ADC 时钟控制位 0:ADC 时钟开启 1:ADC 时钟关闭 保留 复位值 描述 以太网模块电源控制位 0:以太网模块上电 1:以太网模块下电 以太网 WOL 唤醒使能/禁止位 0:禁止 1:使能 应用程序唤醒 USB 请求位 0:无动作 1:强制唤醒 USB USB 唤醒使能/禁止位 0:禁止 1:使能 复位值 1h0 1h0 1h0 1h0 - 1h1 1h0 1h0 1h0 25 CH563 中文手册 RB_SLP_PD_WAKE 3 RWA Reserved 2 - RB_SLP_PB_WAKE 1 RWA RB_SLP_PA_WAKE 0 RWA GPIO PD 端口唤醒使能/禁止位 0:禁止 1:使能 保留 GPIO PB 端口唤醒使能/禁止位 0:禁止 1:使能 GPIO PA 端口唤醒使能/禁止位 0:禁止 1:使能 PLL 休眠控制寄存器(R8_SLP_CTRL_PLL): 名称 位 访问 R8_SLP_CTRL_PLL [7:0] WA RB_SLP_PLL_STATUS 7 RO RB_SLP_CPU_STATUS 6 RO Reserved [5:1] - RB_SLP_WOL_STATUS 0 RO 以太网控制寄存器(R8_MISC_CTRL_ETH): 名称 位 访问 RB_MISC_ETH_RST 7 RW Reserved RB_MISC_ETH_LED [6:3] 2 - 描述 PLL 休眠控制域 该寄存器写入 0x6A,将使能 CPU 进入 待机状态,此时 PLL 仍然在工作,CPU 可以被已使能的各种中断快速唤醒; 该寄存器写入 0x95,将使能 PLL 进入 全局休眠状态(包括 CPU),仅支持部分 GPIO 或者 USB 或者 ETH-WOL 唤醒 当前 PLL 休眠状态 0:PLL 未休眠 1:PLL 处于休眠状态 当前 CPU 待机状态 0:CPU 未休眠 1:CPU 处于休眠状态 保留 当前以太网 WOL 远程唤醒信号状态 0:以太网模块未请求唤醒(WOL=0) 1:以太网模块请求唤醒(WOL=1) 描述 以太网控制器复位位 0:无动作 1:以太网控制器复位 在初始化以太网控制器前,必须先执 行以太网复位动作。 主要步骤为: (1)、该位置 1,复位以太网模块; (2)、置 RB_SLP_ETH_PWR_DN 为 0,给 以太网模块供电; (3)、延时几十毫秒; (4)、该位清 0,结束以太网模块复位; (5)、延时几十毫秒; (6)、以太网初始化及其他操作; 保留 以太网控制器连接指示灯使能/禁止 1h0 1h0 1h0 复位值 8h0 1h0 1h0 1h0 复位值 1h0 1h0 26 CH563 中文手册 RB_MISC_ETH_TX 1 RB_MISC_ETH_RX 0 位 0:禁止 1:使能 ELINK#引脚输出连接状态 以太网控制器发送指示灯使能/禁止 位 0:禁止 1:使能 ELED#引脚输出发送状态 以太网控制器接收指示灯使能/禁止 位 0:禁止 1:使能 ELED#引脚输出接收状态 1h0 1h0 USB 控制寄存器(R8_MISC_CTRL_USB): 名称 Reserved 位 [7:4] 访问 - RB_MISC_USB_ID_ST 3 RW Reserved 2 - RB_MISC_USB_ID_EN 1 RW RB_MISC_USB_VBUS 0 RW 描述 保留 USB ID 设置位 0:当前 USB 控制器工作在主机模式 1:当前 USB 控制器工作在设备模式 通过设置该位来进行 USB 主机、设备 切换 保留 USB UID 引脚使能位 0:禁止 UID 引脚,由内部软件设置 RB_MISC_USB_ID_ST 代替 1:使能 UID 引脚 USB VBUS 引脚使能位 0:禁止 VBUS 引脚,强制为有效状态 1:使能 VBUS 引脚 复位值 - 1h1 1h0 1h0 5.3 全局休眠后的唤醒 全局休眠状态是最低功耗状态,此时 PLL 停止工作,CH563 内部时钟暂停,CPU 不再工作,也不 响应任何中断,但是如果唤醒后 CPU 开始工作,发现唤醒事件同时也属于中断事件(例如某 GPIO 唤 醒和 GPIO 中断),那么会当作中断处理。 为降低功耗,在进入全局休眠状态前,休眠期间不会用到的物理 Phy 模块(例如 ADC/USB/ETH) 应该提前关闭。另外,各个 GPIO 引脚不能处于悬浮状态,要么是输出状态,要么是输入状态但是外 部提供高电平或者低电平,如果是输入状态且外部没有提供高或低电平,那么应该启用该引脚的内部 下拉电阻。不推荐使用内部上拉电阻的原因是,对于支持 5V 电压输入的 FT 引脚,启用上拉电阻后仍 然会有少量静态电流,除非由外部电路提供上拉电阻拉到 VCC 电压。 在全局休眠状态下,CH563 仅支持部分 GPIO 或者 USB 或者 WOL 唤醒,参考 R8_SLP_WAKE_CTRL, 分别由 RB_SLP_PA_WAKE、RB_SLP_PB_WAKE、RB_SLP_PD_WAKE、RB_SLP_USB_WAKE、RB_SLP_WOL_WAKE 控制,其中前 3 组为 GPIO 唤醒控制。 GPIO 唤醒事件源与 GPIO 中断事件源相同(除了不需要 R32_INT_MODE_Px),当 R32_INT_POLAR_Px 对应的位为 0 时,GPIO 引脚出现低电平时唤醒,当 R32_INT_POLAR_Px 对应的位为 1 时,GPIO 引脚出 现高电平时唤醒。以设置允许 PA[8]低电平唤醒 CH563 为例,应该设置 R32_INT_POLAR_PA[8]=0,设 置 R32_INT_ENABLE_PA[8]=1,设置 RB_SLP_PA_WAKE=1,然后设置其它相关寄存器进入休眠状态。如 果希望 PA[8]同时作为中断事件,那么还需要设置 RB_IE_IRQ_GLOB 或 RB_IE_FIQ_GLOB,否则清 0。 27 CH563 中文手册 第 6 章 通用和复用功能 I/O 6.1 GPIO 简介 CH563 最多拥有 74 个输入输出引脚,部分引脚具有复用功能。每个 GPIO 端口有一个 32 位方向 配置寄存器( R32_Px_DIR ),一个 32 位数据输入寄存器( R32_Px_IN ),一个 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 )。 CH563 所有 I/O 口分为 PA、PB 和 PD 3 个端口,每个端口分别为: Port A(PA):22 位输入输出端口; Port B(PB):20 位输入输出端口; Port D(PD):32 位输入输出端口; 每个 I/O 端口位可以自由编程,但是 I/O 端口寄存器必须按 8 位、16 位或者 32 位字访问。如果 引脚没有被配置成复用功能,则可以做为通用 I/O 口使用。 6.2 GPIO 寄存器描述 GPIO相关寄存器物理起始地址为:0x0040 0080 GPIO 相关寄存器列表(地址范围:0x00---0x5C) 表 6-1 GPIO 相关寄存器列表 名称 偏移地址 描述 R32_PA_DIR R32_PA_PIN R32_PA_OUT R32_PA_CLR R32_PA_PU R32_PA_PD 0x00 0x04 0x08 0x0C 0x10 0x14 R32_PA_DRV R32_PA_SMT 0x18 0x1C R32_PB_DIR R32_PB_PIN R32_PB_OUT R32_PB_CLR R32_PB_PU R32_PB_PD 0x20 0x24 0x28 0x2C 0x30 0x34 R32_PB_DRV R32_PB_SMT 0x38 0x3C R32_PD_DIR R32_PD_PIN R32_PD_OUT R32_PD_PU R32_PD_PD R32_PD_DRV 0x40 0x44 0x48 0x50 0x54 0x58 PA 端口方向设置寄存器 PA 端口数据输入寄存器 PA 端口数据输出寄存器 PA 端口输出清 0 寄存器 PA 端口上拉配置寄存器 PA 端口开漏输出和输入下拉配 置寄存器 PA 端口驱动能力配置寄存器 PA 端口施密特触发器使能配置 寄存器 PB 端口方向设置寄存器 PB 端口数据输入寄存器 PB 端口数据输出寄存器 PB 端口输出清 0 寄存器 PB 端口上拉配置寄存器 PB 端口开漏输出和输入下拉配 置寄存器 PB 端口驱动能力配置寄存器 PB 端口施密特触发器使能配置 寄存器 PD 端口方向设置寄存器 PD 端口数据输入寄存器 PD 端口数据输出寄存器 PD 端口上拉配置寄存器 PD 端口下拉配置寄存器 PD 端口驱动能力配置寄存器 复位值 32h0000 32hxxxx 32h0000 32h0000 32h0000 32h0000 0000 xxxx 0000 0000 0000 0000 32h0000 0000 32h0000 0000 32h0000 32hxxxx 32h0000 32h0000 32h0000 32h0000 0000 xxxx 0000 0000 0000 0000 32h0000 0000 32h0000 0000 32h0000 32hxxxx 32h0000 32h0000 32h0000 32h0000 0000 xxxx 0000 0000 0000 0000 28 CH563 中文手册 R32_PD_SMT 0x5C PD 端口施密特触发器使能配置 寄存器 32h0000 0000 GPIO中断相关寄存器物理起始地址为:0x0040 0050 GPIO 中断相关寄存器列表(地址范围:0x00---0x2F) 表 6-2 GPIO 中断相关寄存器列表 名称 R32_INT_STATUS_PA R32_INT_ENABLE_PA R32_INT_MODE_PA R32_INT_POLAR_PA R32_INT_STATUS_PB R32_INT_ENABLE_PB R32_INT_MODE_PB R32_INT_POLAR_PB R32_INT_STATUS_PD R32_INT_ENABLE_PD R32_INT_MODE_PD R32_INT_POLAR_PD 偏移地址 0x00 0x04 0x08 0x0C 0x10 0x14 0x18 0x1C 0x20 0x24 0x28 0x2C 描述 PA 端口中断状态寄存器 PA 端口中断使能寄存器 PA 端口中断模式寄存器 PA 端口中断极性寄存器 PB 端口中断状态寄存器 PB 端口中断使能寄存器 PB 端口中断模式寄存器 PB 端口中断极性寄存器 PD 端口中断状态寄存器 PD 端口中断使能寄存器 PD 端口中断模式寄存器 PD 端口中断极性寄存器 PA 端口方向设置寄存器(R32_PA_DIR): 名称 位 访问 Reserved [31:22] PA[21:0] [21:0] RW PA 端口输入数据寄存器(R32_PA_PIN): 名称 位 访问 Reserved [31:22] - PA[21:0] [21:0] RO PA 端口输出数据寄存器 (R32_PA_OUT): 名称 位 访问 Reserved [31:22] - PA[21:0] [21:0] RW PA 端口输出清 0 寄存器(R32_PA_CLR): 名称 位 访问 复位值 32h0000 0000 32h0000 0000 32h0000 0000 32h0000 0000 32h0000 0000 32h0000 0000 32h0000 0000 32h0000 0000 32h0000 0000 32h0000 0000 32h0000 0000 32h0000 0000 描述 保留 引脚当前输入输出方向控制域 0:该引脚方向为输入模式 1:该引脚方向为输出模式 复位值 - 描述 保留 引脚当前电平状态域 0:该引脚输入低电平 1:该引脚输入高电平 仅在方向寄存器(R32_PA_DIR)对应位 为 0 时,该位值有效 复位值 - 描述 保留 引脚输出高低电平控制域 0:该引脚输出低电平 1:该引脚输出高电平 仅在方向寄存器(R32_PA_DIR)对应位 为 1 时,才有效 复位值 - 描述 复位值 22h0 22hx 22h0 29 CH563 中文手册 Reserved [31:22] - PA[21:0] [21:0] RZ 保留 保持/清除数据输出寄存器 (R32_PA_OUT)对应位的值 0:该引脚输出不改变 1:该引脚输出低电平 PA 端口上拉配置寄存器(R32_PA_PU): 名称 位 访问 Reserved [31:22] - PA[21:0] [21:0] RW 描述 保留 引脚上拉功能启用/关闭控制域 0:关闭该引脚上拉功能 1:启用该引脚上拉功能 22h0 复位值 22h0 PA 端口开漏输出和输入下拉配置寄存器(R32_PA_PD): 名称 Reserved 位 [31:22] 访问 - PA[21:0] [21:0] RW 描述 保留 方向寄存器(R32_PA_DIR)对应位配置 为 1(即输出模式)时: 0:关闭该引脚开漏输出功能 1:启用该引脚开漏输出功能 方向寄存器(R32_PA_DIR)对应位配置 为 0(即输入模式)时: 0:关闭该引脚下拉功能 1:启用该引脚下拉功能,如果上拉配 置寄存器(R32_PA_PU)对应位配置也 为 1 则启用输入状态弱保持功能 复位值 - 22h0 PA 端口驱动能力配置寄存器 (R32_PA_DRV): 名称 Reserved 位 [31:22] 访问 - PA[21:12] [21:12] RW Reserved [11:0] - 描述 保留 引脚输出驱动能力控制域 0:驱动电流最大为 4mA 1:驱动电流最大为 16mA 保留 PA 端口施密特触发器使能配置寄存器(R32_PA_SMT): 名称 位 访问 描述 Reserved [31:22] 保留 引脚施密特触发器功能启用/关闭控 制域 0:关闭该引脚施密特触发器输入功 PA[21:8] [21:8] RW 能,关闭该引脚低斜率输出功能 1:启用该引脚施密特触发器输入功 能,启用该引脚低斜率输出功能 Reserved [7:0] 保留 PB 端口方向设置寄存器(R32_PB_DIR): 名称 位 访问 描述 复位值 10h0 - 复位值 - 14h0 - 复位值 30 CH563 中文手册 Reserved [31:20] - PB[19:0] [19:0] RW 保留 引脚当前输入输出方向控制域 0:该引脚方向为输入模式 1:该引脚方向为输出模式 20h0 PB 端口输入数据寄存器(R32_PB_PIN): 名称 Reserved 位 [31:20] 访问 - PB[19:0] [19:0] RO 描述 保留 引脚当前电平状态域 0:该引脚输入低电平 1:该引脚输入高电平 仅在方向寄存器(R32_PB_DIR)对应位 为 0 时,该位值有效 复位值 - 描述 保留 引脚输出高低电平控制域 0:该引脚输出低电平 1:该引脚输出高电平 仅在方向寄存器(R32_PB_DIR)对应位 为 1 时,才有效 复位值 - 描述 复位值 20hx PB 端口输出数据寄存器 (R32_PB_OUT): 名称 Reserved 位 [31:20] 访问 - PB[19:0] [21:0] RW PB 端口输出清 0 寄存器(R32_PB_CLR): 名称 位 访问 Reserved [31:20] - PB[19:0] [19:0] RZ PB 端口上拉配置寄存器(R32_PB_PU): 名称 位 访问 Reserved [31:20] PB[19:0] [19:0] RW 保留 保持/清除数据输出寄存器 (R32_PB_OUT)对应位的值 0:该引脚输出不改变 1:该引脚输出低电平 描述 保留 引脚上拉功能启用/关闭控制域 0:关闭该引脚上拉功能 1:启用该引脚上拉功能 PB 端口开漏输出和输入下拉配置寄存器(R32_PB_PD): 名称 位 访问 描述 Reserved [31:20] 保留 方向寄存器(R32_PB_DIR)对应位配置 为 1(即输出模式)时: 0:关闭该引脚开漏输出功能 PB[19:0] [19:0] RW 1:启用该引脚开漏输出功能 方向寄存器(R32_PB_DIR)对应位配置 为 0(即输入模式)时: 0:关闭该引脚下拉功能 22h0 20h0 复位值 20h0 复位值 - 20h0 31 CH563 中文手册 1:启用该引脚下拉功能,如果上拉配 置寄存器(R32_PB_PU)对应位配置也 为 1 则启用输入状态弱保持功能 PB 端口驱动能力配置寄存器 (R32_PB_DRV): 名称 位 访问 Reserved [31:16] - PB[15:8] [15:8] RW Reserved [7:0] - 描述 保留 引脚输出驱动能力控制域 0:驱动电流最大为 4mA 1:驱动电流最大为 16mA 保留 复位值 8h0 - PB 端口施密特触发器使能配置寄存器(R32_PB_SMT): 名称 Reserved 位 [31:20] 访问 - PB[19:0] [19:0] RW 描述 保留 引脚施密特触发器功能启用/关闭控 制域 0:关闭该引脚施密特触发器输入功 能,关闭该引脚低斜率输出功能 1:启用该引脚施密特触发器输入功 能,启用该引脚低斜率输出功能 复位值 - 描述 引脚当前输入输出方向控制域 0:该引脚方向为输入模式 1:该引脚方向为输出模式 复位值 20h0 PD 端口方向设置寄存器(R32_PD_DIR): 名称 位 访问 PD[31:0] [31:0] RW PD 端口输入数据寄存器(R32_PD_PIN): 名称 位 访问 PD[31:0] [31:0] RO PD 端口输出数据寄存器 (R32_PD_OUT): 名称 位 访问 PD[31:0] [31:0] RW PD 端口上拉配置寄存器(R32_PD_PU): 名称 位 访问 Reserved [31:25] - 32h0 描述 复位值 引脚当前电平状态域 0:该引脚输入低电平 1:该引脚输入高电平 仅在方向寄存器(R32_PD_DIR)对应位 为 0 时,该位值有效 32hx 描述 引脚输出高低电平控制域 0:该引脚输出低电平 1:该引脚输出高电平 仅在方向寄存器(R32_PD_DIR)对应位 为 1 时,才有效 复位值 描述 保留 复位值 - 32h0 32 CH563 中文手册 PD[24] [24] RW Reserved [23:17] - PD[16] [16] RW Reserved [15:9] - PD[8] [8] RW PD[7:0] [7:0] RW 引脚上拉功能启用/关闭控制域 0:关闭 PD[31:24]引脚上拉功能 1:启用 PD[31:24]引脚上拉功能 保留 引脚上拉功能启用/关闭控制域 0:关闭 PD[23:16]引脚上拉功能 1:启用 PD[23:16]引脚上拉功能 保留 引脚上拉功能启用/关闭控制域 0:关闭 PD[15:8]引脚上拉功能 1:启用 PD[15:8]引脚上拉功能 引脚上拉功能启用/关闭控制域 0:关闭该引脚上拉功能 1:启用该引脚上拉功能 1h0 1h0 1h0 8h0 PD 端口下拉配置寄存器(R32_PD_PD): 名称 Reserved 位 [31:25] 访问 - PD[24] [24] RW Reserved [23:17] - PD[16] [16] RW Reserved [15:9] - PD[8] [8] RW PD[7:0] [7:0] RW 描述 保留 引脚下拉功能启用/关闭控制域 0:关闭 PD[31:24]引脚下拉功能 1:启用 PD[31:24]引脚下拉功能,如 果上拉配置寄存器(R32_PD_PU)对应 位配置也为 1 则启用输入状态弱保持 功能 保留 引脚下拉功能启用/关闭控制域 0:关闭 PD[23:16]引脚下拉功能 1:启用 PD[23:16]引脚下拉功能,如 果上拉配置寄存器(R32_PD_PU)对应 位配置也为 1 则启用输入状态弱保持 功能 保留 引脚下拉功能启用/关闭控制域 0:关闭 PD[15:8]引脚下拉功能 1:启用 PD[15:8]引脚下拉功能,如 果上拉配置寄存器(R32_PD_PU)对应 位配置也为 1 则启用输入状态弱保持 功能 引脚下拉功能启用/关闭控制域 0:关闭该引脚下拉功能 1:启用该引脚下拉功能,如果上拉配 置寄存器(R32_PD_PU)对应位配置也 为 1 则启用输入状态弱保持功能 PD 端口驱动能力配置寄存器 (R32_PD_DRV): 名称 位 访问 描述 Reserved [31:8] 保留 PD[7:0] [7:0] RW 引脚输出驱动能力控制域 复位值 - 1h0 - 1h0 - 1h0 8h0 复位值 8h0 33 CH563 中文手册 0:驱动电流最大为 4mA 1:驱动电流最大为 16mA PD 端口施密特触发器使能配置寄存器(R32_PB_SMT): 名称 位 访问 Reserved [31:8] - PD[7:0] [7:0] RW 描述 保留 引脚施密特触发器功能启用/关闭控 制域 0:关闭该引脚施密特触发器输入功 能,关闭该引脚低斜率输出功能 1:启用该引脚施密特触发器输入功 能,启用该引脚低斜率输出功能 复位值 - 8h0 PA 端口中断状态寄存器(R32_INT_STATUS_PA): 名称 Reserved 位 [31:22] 访问 - PA[21:8] [21:8] RW Reserved [7:0] - 描述 保留 PA 端口中断状态域 0:该引脚无中断产生 1:该引脚有中断产生 保留 复位值 14h0 - PA 端口中断使能寄存器(R32_INT_ENABLE_PA): 名称 Reserved 位 [31:22] 访问 - PA[21:8] [21:8] RW Reserved [7:0] - 描述 保留 PA 端口中断使能/禁止控制域 0:禁止该引脚产生中断 1:使能该引脚产生中断 保留 复位值 14h0 - PA 端口中断模式寄存器(R32_INT_MODE_PA): 名称 Reserved 位 [31:22] 访问 - PA[21:8] [21:8] RW Reserved [7:0] - 描述 保留 PA 端口中断模式控制域 0:电平中断 1:边沿中断 保留 PA 端口中断极性寄存器(R32_INT_POLAR_PA): 名称 位 访问 描述 Reserved [31:22] 保留 PA 端口中断极性控制域 PA[21:8] [21:8] RW 0:低电平/下降沿产生中断 1:高电平/上降沿产生中断 Reserved [7:0] 保留 PB 端口中断状态寄存器(R32_INT_STATUS_PB): 名称 位 访问 描述 复位值 14h0 - 复位值 14h0 - 复位值 34 CH563 中文手册 Reserved [31:20] - PB[19:0] [19:0] RW 保留 PB 端口中断状态域 0:该引脚无中断产生 1:该引脚有中断产生 20h0 PB 端口中断使能寄存器(R32_INT_ENABLE_PB): 名称 Reserved 位 [31:20] 访问 - PB[19:0] [19:0] RW 描述 保留 PB 端口中断使能/禁止控制域 0:禁止该引脚产生中断 1:使能该引脚产生中断 复位值 20h0 PB 端口中断模式寄存器(R32_INT_MODE_PB): 名称 Reserved 位 [31:20] 访问 - PB[19:0] [19:0] RW 描述 保留 PB 端口中断模式控制域 0:电平中断 1:边沿中断 PB 端口中断极性寄存器(R32_INT_POLAR_PB): 名称 位 访问 描述 Reserved [31:20] 保留 PB 端口中断极性控制域 PB[19:0] [19:0] RW 0:低电平/下降沿产生中断 1:高电平/上降沿产生中断 PD 端口中断状态寄存器(R32_INT_STATUS_PD): 名称 位 访问 描述 PD 端口中断状态域 PD[31:24] [31:24] RW 0:该引脚无中断产生 1:该引脚有中断产生 Reserved [23:16] 保留 PD 端口中断状态域 PD[7:0] [7:0] RW 0:该引脚无中断产生 1:该引脚有中断产生 PD 端口中断使能寄存器(R32_INT_ENABLE_PD): 名称 位 访问 描述 PD 端口中断使能/禁止控制域 PD[31:24] [31:24] RW 0:禁止该引脚产生中断 1:使能该引脚产生中断 Reserved [23:16] 保留 PD 端口中断使能/禁止控制域 PD[7:0] [7:0] RW 0:禁止该引脚产生中断 1:使能该引脚产生中断 PD 端口中断模式寄存器(R32_INT_MODE_PD): 复位值 20h0 复位值 20h0 复位值 8h0 20h0 复位值 8h0 20h0 35 CH563 中文手册 名称 位 访问 PD[31:24] [31:24] RW Reserved [23:16] - PD[7:0] [7:0] RW 描述 PD 端口中断模式控制域 0:电平中断 1:边沿中断 保留 PD 端口中断模式控制域 0:电平中断 1:边沿中断 复位值 8h0 20h0 PD 端口中断极性寄存器(R32_INT_POLAR_PD): 名称 位 访问 PD[31:24] [31:24] RW Reserved [23:16] - PD[7:0] [7:0] RW 描述 PD 端口中断极性控制域 0:低电平/下降沿产生中断 1:高电平/上降沿产生中断 保留 PD 端口中断极性控制域 0:低电平/下降沿产生中断 1:高电平/上降沿产生中断 复位值 8h0 20h0 6.3 GPIO 复用功能 CH563 部分 I/O 引脚具有复用功能,上电后默认所有 I/O 引脚均为通用 I/O 功能,使能不同功能 模块后,相应引脚被配置成各自功能模块对应的功能引脚。以下各表为各个功能模块所使用的 I/O 引 脚。 表 6-2 串行外设接口(SPI0) 引脚 GPIO 功能描述 SCS PB12 SPI0 从机片选输入引脚 SCK0 PB13 SPI0 串行时钟引脚,主机输出/从机输入 MOSI PB14 SPI0 串行数据引脚,主机输出/从机输入 MISO PB15 SPI0 串行数据引脚,主机输入/从机输出 引脚 SCK1 SDO SDI 表 6-3 串行外设接口(SPI1) GPIO 功能描述 PB17 SPI1 串行时钟输出引脚 PB18 SPI1 串行数据输出引脚 PB19 SPI1 串行数据输入引脚 引脚 RXD0 TXD0 DTR RTS CTS DSR RI DCD 表 6-4 GPIO PB8 PB9 PA7 PA8 PA12 PA13 PA14 PA15 通用异步收发器(UART0) 功能描述 UART0 接收器输入引脚 UART0 发送器输出引脚 UART0 的 MODEM 信号,数据终端就绪 UART0 的 MODEM 信号,请求发送 UART0 的 MODEM 信号,清除发送 UART0 的 MODEM 信号,数据装置就绪 UART0 的 MODEM 信号,振铃指示 UART0 的 MODEM 信号,载波检测 36 CH563 中文手册 引脚 RXD1 TXD1 表 6-5 通用异步收发器(UART1) GPIO 功能描述 PB10 UART1 接收器输入引脚 PB11 UART1 发送器输出引脚 引脚 SLVI# SLVA SLVCS# PRD# PWR# D0 D1 D2 D3 D4 D5 D6 D7 表 6-6 被动并口(Slave Parallel Interface) GPIO 功能描述 PA9 被动并口中断输出引脚 PA10 被动并口命令/数据选择输入引脚 PA11 被动并口片选输入引脚 PA20 被动并口读信号输入引脚 PA21 被动并口写信号输入引脚 PD0 被动并口数据引脚 PD1 被动并口数据引脚 PD2 被动并口数据引脚 PD3 被动并口数据引脚 PD4 被动并口数据引脚 PD5 被动并口数据引脚 PD6 被动并口数据引脚 PD7 被动并口数据引脚 引脚 PRD# PWR# A0 | A19 D0 | D31 表 6-7 外部总线接口(Parallel Interface) GPIO 功能描述 PA20 主动并口读信号输出引脚 PA21 主动并口写信号输出引脚 外部存储器 20 位地址输出引脚 PA0 | PA19 外部存储器 32 位数据双向引脚 PD0 | PD31 引脚 SCS SCK MOSI MISO RST GPIO PB12 PB13 PB14 PB15 RST# 表 6-8 ISP 下载(ISP) 功能描述 ISP 下载片选输入引脚 ISP 下载时钟输入引脚 ISP 下载数据输入引脚 ISP 下载数据输出引脚 ISP 下载复位输入引脚 37 CH563 中文手册 第 7 章 串行外设接口 SPI 7.1 SPI 简介 SPI 是一种全双工串行接口,可处理多个连接到指定总线上的主机和从机。在数据过程中,总线 上只能有一个主机和一个从机通信。在数据传输中,主机总是会发送一帧 8 位数据,而从机也总会向 主机发送一帧字节数据。通常 SPI 接口由 4 个引脚组成:SPI 片选引脚(SCS)、SPI 时钟引脚(SCK)、 SPI 串行数据引脚(主机输入/从机输出引脚 MIOSO)和 SPI 串行数据引脚(主机输出/从机输入引脚 MOSI)。 CH563 芯片拥有 2 个 SPI 接口,其各自特性分别如下所示: SPI0 特性: (1)、支持主机模式和设备模式; (2)、兼容串行外设接口(SPI)规范; (3)、支持模式 0 和模式 3 数据传输方式; (4)、8 位数据传输方式; (5)、时钟频率最高可达 50MHz; (6)、32 级 FIFO; (7)、设备模式支持首字节为命令模式和数据流模式; (8)、支持 DMA 数据传输; SPI1 特性: (1)、只支持主机模式; (2)、支持模式 0 和模式 3 数据传输方式; (3)、8 位数据传输方式; (4)、时钟频率最高可达 50MHz; (5)、16 级 FIFO; 7.2 SPI 寄存器描述 SPI0 相关寄存器物理起始地址为:0x0040 C000 SPI0 相关寄存器列表(地址范围:0x00---0x1C) 表 7-1 SPI0 相关寄存器列表 名称 R32_SPI0_CONTROL R8_SPI0_CTRL_MOD R8_SPI0_CTRL_DMA R8_SPI0_INTER_EN R8_SPI0_CLOCK_DIV R8_SPI0_SLAVE_PRE R32_SPI0_STATUS R8_SPI0_BUFFER R8_SPI0_RUN_FLAG R8_SPI0_INT_FLAG R8_SPI0_FIFO_COUNT R16_SPI0_TOTAL_CNT R32_SPI0_FIFO R8_SPI0_FIFO R8_SPI0_FIFO_COUNT1 偏移地址 0x00 0x00 0x01 0x02 0x03 0x04 0x04 0x05 0x06 0x07 0x0C 0x10 0x10 0x13 描述 SPI0 控制寄存器 SPI0 模式配置寄存器 SPI0 DMA 控制寄存器 SPI0 中断使能寄存器 SPI0 主机模式时钟分频寄存器 SPI0 设备模式预置数据寄存器 SPI0 状态寄存器 SPI0 数据缓冲区 SPI0 工作标志寄存器 SPI0 中断标志寄存器 SPI0 发送/接收 FIFO 计数寄存器 SPI0 发送/接收数据长度寄存器 SPI0 FIFO 寄存器 SPI0 FIFO 寄存器 SPI0 发送/接收 FIFO 计数寄存器 复位值 32h1000 0002 8h02 8h00 8h00 8h10 32h0000 0000 8h00 8h00 8h00 8h00 16h0000 32h0000 0000 8h00 8h00 38 CH563 中文手册 R16_SPI0_DMA_NOW R16_SPI0_DMA_BEG R16_SPI0_DMA_END 0x14 0x18 0x1C SPI0 DMA 缓冲区当前地址 SPI0 DMA 缓冲区开始地址 SPI0 DMA 缓冲区结束地址 16h0000 16h0000 16h0000 SPI1 相关寄存器物理起始地址为:0X0040 C800 SPI1 相关寄存器列表(地址范围:0x00---0x13) 表 7-2 SPI1 相关寄存器列表 名称 偏移地址 描述 复位值 0x00 0x00 0x01 0x02 0x03 0x04 0x04 0x05 0x06 0x07 0x0C 0x10 0x10 0x13 SPI1 控制寄存器 SPI1 模式配置寄存器 SPI1 DMA 控制寄存器 SPI1 中断使能寄存器 SPI1 主机模式时钟分频寄存器 SPI1 状态寄存器 SPI1 数据缓冲区 SPI1 工作标志寄存器 SPI1 中断标志寄存器 SPI1 发送/接收 FIFO 计数寄存器 SPI1 发送/接收数据长度寄存器 SPI1 FIFO 寄存器 SPI1 FIFO 寄存器 SPI1 发送/接收 FIFO 计数寄存器 32h1000 0002 8h02 8h00 8h00 8h02 32h0000 0000 8h00 8h00 8h00 8h00 16h0000 32h0000 0000 8h00 8h00 R32_SPI1_CONTROL R8_SPI1_CTRL_MOD R8_SPI1_CTRL_DMA R8_SPI1_INTER_EN R8_SPI1_CLOCK_DIV R32_SPI1_STATUS R8_SPI1_BUFFER R8_SPI1_RUN_FLAG R8_SPI1_INT_FLAG R8_SPI1_FIFO_COUNT R16_SPI1_TOTAL_CNT R32_SPI1_FIFO R8_SPI1_FIFO R8_SPI1_FIFO_COUNT1 SPI 模式配置寄存器(R8_SPIx_CTRL_MOD): 名称 位 访问 RB_SPI_MISO_OE 7 RW RB_SPI_MOSI_OE 6 RW RB_SPI_SCK_OE 5 RW RB_SPI_FIFO_DIR 4 RW RB_SPI_SLV_CMD_MOD 3 RW 描述 MISO 引脚输出使能/禁止位,仅 SPI0 0:MISO 引脚输出禁止 1:MISO 引脚输出使能 2 线或 3 线 SPI 模式配置位,仅 SPI1 0:3 线 SPI 模式(SCK1、SDO、SDI) 1:2 线 SPI 模式(SCK1、SDX1) MOSI/SDO 引脚输出使能/禁止位 0:MOSI 引脚/SDO 引脚输出禁止 1:MOSI 引脚/SDO 引脚输出使能 SCK 引脚输出使能/禁止位 0:SCK 引脚输出禁止 1:SCK 引脚输出使能 FIFO 方向设置位 0:输出模式(主机模式写数据) 1:输入模式(主机模式读数据) 设备模式首字节配置位,仅 SPI0 0:数据流模式 1:首字节命令模式 在首字节命令模式下,当接收到 SPI 片选有效后的首字节数据后,将视为 命令码,且中断标志寄存器中的 RB_SPI_IF_FST_BYTE 位将置 1, 该位仅在设备模式下有效 复位值 1h0 1h0 1h0 1h0 1h0 39 CH563 中文手册 RB_SPI_MST_SCK_MOD 3 RW RB_SPI_2WIRE_MOD 2 RW RB_SPI_ALL_CLEAR 1 RW RB_SPI_MODE_SLAVE 0 RW 主机时钟模式配置位 0:模式 0(空闲时 SCK 为低电平) 1:模式 3(空闲时 SCK 为高电平) 该位仅在主机模式下有效 2 线或 3 线 SPI 模式配置位,仅 SPI0 0:3 线 SPI 模式(SCK0、MOSI、MISO) 1:2 线 SPI 模式(SCK0、SDX0) FIFO 寄存器及计数寄存器清 0 位 0:不清除 1:强制清除 SPI 主从模式选择位,仅 SPI0 0:主机模式 1:设备模式 注:SPI1 不支持设备模式 1h0 1h0 1h0 1h0 SPI DMA 控制寄存器(R8_SPIx_CTRL_DMA): 名称 位 [7:3] 访问 - 描述 复位值 - 保留 DMA 地址循环模式使能/禁止位 0:禁止 DMA 地址循环模式功能 1:使能 DMA 地址循环模式功能 1h0 如果使能 DMA 地址循环模式功能,当 RB_SPI_DMA_LOOP 2 RW DMA 地址增加到设置的末尾地址时, 自动循环指向设置的首地址 注:SPI1 不支持 DMA 块操作使能/禁止位 0:禁止 DMA 块操作功能 1:使能 DMA 块操作功能 1h0 RB_SPI_DMA_BURST 1 RW 如果使能 DMA 块操作功能,则该 DMA 更少占用系统总线 注:SPI1 不支持 DMA 功能使能/禁止位 0:禁止 DMA 功能 1h0 RB_SPI_DMA_ENABLE 0 RW 1:使能 DMA 功能 注:SPI1 不支持 如果使能 DMA 地址循环模式功能,当 DMA 地址增加到设置的末尾地址时,自动循环指向设置的首 地址,而不需要重新设置 DMA 起始地址寄存器(R16_TIM_DMA_BEG)和 DMA 结束地址寄存器 (R16_TIM_DMA_END)。 Reserved SPI 中断使能寄存器(R8_SPIx_INTER_EN): 名称 位 访问 RB_SPI_IE_FST_BYTE 7 RW Reserved 6 - 描述 第一个字节接收中断使能/禁止位 0:禁止接收到第一个字节产生中断 1:使能接收到第一个字节产生中断 开启此功能需要设置 SPI 为设备模 式,同时需要将 RB_SPI_SLV_CMD_MOD 位置 1 注:SPI1 不支持 保留 复位值 1h0 - 40 CH563 中文手册 RB_SPI_IE_DMA_ERR 5 RW RB_SPI_IE_FIFO_OV 4 RW RB_SPI_IE_DMA_END 3 RW RB_SPI_IE_FIFO_HF 2 RW RB_SPI_IE_BYTE_END 1 RW RB_SPI_IE_CNT_END 0 RW DMA 传输错误中断使能/禁止位 0:禁止产生 DMA 传输错误中断 1:使能产生 DMA 传输错误中断 注:SPI1 不支持 FIFO 溢出中断使能/禁止位 0:禁止产生 FIFO 溢出中断 1:使能产生 FIFO 溢出中断 DMA 结束中断使能/禁止位 0:禁止产生 DMA 结束中断 1:使能产生 DMA 结束中断 注:SPI1 不支持 FIFO 过半中断使能/禁止位 0:禁止产生 FIFO 过半中断 1:使能产生 FIFO 过半中断 SPI 单字节传输完成中断使能/禁止 位 0:禁止产生 SPI 单字节传输完成中 断 1:使能产生 SPI 单字节传输完成中 断 SPI 全部字节传输完成中断使能/禁 止位 0:禁止产生 SPI 全部字节传输完成 中断 1:使能产生 SPI 全部字节传输完成 中断 1h0 1h0 1h0 1h0 1h0 1h0 SPI 主机模式时钟分频寄存器(R8_SPIx_CLOCK_DIV): 名称 SPIx_CLOCK_DIV 位 访问 [7:0] RW 描述 主机模式分频系数,最小值为 2 SPI 时钟频率=主频/分频系数 SPI 设备模式预置数据寄存器(R8_SPIx_SLAVE_PRE): 名称 位 访问 描述 设备模式下预置的返回数据 SPIx_SLAVE_PRESET [7:0] RW 用于接收首字节数据后的返回数据 注:SPI1 不支持 SPI 数据缓冲区(R8_SPIx_BUFFER): 名称 位 访问 SPIx_BUFFER [7:0] RW SPI 工作标志寄存器(R8_SPIx_RUN_FLAG): 名称 位 访问 RB_SPI_SLV_SELECT 7 RO RB_SPI_SLV_CS_LOAD 6 RO 复位值 8h02 复位值 8h02 描述 SPI 数据发送和接收缓冲区 复位值 8h0 描述 SPI 设备模式选择状态位 注:SPI1 不支持 SPI 设备模式片选后首次加载状态位 注:SPI1 不支持 复位值 1h0 1h0 41 CH563 中文手册 RB_SPI_FIFO_READY 5 RO RB_SPI_SLV_CMD_ACT 4 RO [3:0] - Reserved SPI 中断标志寄存器(R8_SPIx_INT_FLAG): 名称 位 访问 RB_SPI_IF_FST_BYTE 7 RW1 RB_SPI_FREE 6 RO RB_SPI_IF_DMA_ERR 5 RW1 RB_SPI_IF_FIFO_OV 4 RW1 RB_SPI_IF_DMA_END 3 RW1 RB_SPI_IF_FIFO_HF 2 RW1 RB_SPI_IF_BYTE_END 1 RW1 RB_SPI_IF_CNT_END 0 RW1 FIFO 准备完成标志位 0:FIFO 未准备好 1:FIFO 准备完成 SPI 设备模式下命令接收完成标志 位,即交换完首字节数据 注:SPI1 不支持 保留 描述 设备模式下首字节接收中断标志位 0:未接收到首字节 1:接收到首字节 注:SPI1 不支持 SPI 空闲状态位 0:当前 SPI 处于非空闲状态 1:当前 SPI 处于空闲状态 DMA 传输错误中断标志位 0:DMA 传输过程中未产生错误 1:DMA 传输过程中产生错误 注:SPI1 不支持 FIFO 溢出中断标志位 0:FIFO 未溢出 1:FIFO 发生溢出 DMA 结束中断标志位 0:DMA 传输未结束 1:DMA 传输结束 注:SPI1 不支持 FIFO 过半中断标志位 0:数据未达到 FIFO 缓冲区一半 1:数据达到 FIFO 缓冲区一半 SPI 单字节传输完成中断标志位 0:SPI 单字节传输未完成 1:SPI 单字节传输完成 SPI 全部字节传输完成中断标志位 0:SPI 全部字节传输未完成 1:SPI 全部字节传输完成 SPI 发送/接收 FIFO 计数寄存器(R8_SPIx_FIFO_COUNT): 名称 位 访问 描述 SPIx_FIFO_COUNT [7:0] RO SPI 发送或接收字节数 SPI 发送/接收数据总长度寄存器(R16_SPIx_TOTAL_CNT): 名称 位 访问 描述 Reserved [15:12] 保留 SPI 数据发送字节数 SPIx_TOTAL_CNT [11:0] RW 在使用 DMA 时一次最多可以发送 4095 个字节 1h0 1h0 - 复位值 1h0 1h0 1h0 1h0 1h0 1h0 1h0 1h0 复位值 8h0 复位值 12h0 42 CH563 中文手册 SPI FIFO 寄存器(R8_SPIx_FIFO): 名称 位 SPIx_FIFO [7:0] 访问 RO/W O 描述 复位值 SPI FIFO 寄存器 FIFO 大小为 32 个字节 SPI 发送/接收 FIFO 计数寄存器(R8_SPIx_FIFO_COUNT1): 名称 位 访问 8h0 描述 复位值 R8_SPIx_FIFO_COUNT1 [7:0] SPI FIFO 计数 8h0 寄存器 R8_SPIx_BUFFER 和寄存器 R8_SPIx_FIFO 均为 SPI 数据相关寄存器,主要区别在于:后者 读取完一个字节数据之后,因为是从 FIFO 读取,所以长度寄存器(R16_SPI_TOTAL_CNT)的值自动减 1, 而前者读取完一个字节,长度寄存器值不变。 SPI DMA 缓冲区当前地址(R16_SPIx_DMA_NOW): 名称 R16_SPIx_DMA_NOW 位 访问 [15:0] RO/W O 描述 DMA 缓冲区当前地址 通过查询此值可以判断 DMA 运行情况 注:SPI1 不支持 SPI0 DMA 缓冲区开始地址(R16_SPI0_DMA_BEG): 名称 位 访问 描述 DMA 缓冲区开始地址 指向 SPI 接收或者发送数据缓冲区开 R16_SPI0_DMA_BEG [15:0] RW 始地址 注:SPI1 不支持 复位值 16h0 复位值 16h0 SPI0 DMA 缓冲区结束地址(R16_SPI0_DMA_END): 名称 R16_SPI0_DMA_END 位 访问 [15:0] RW 描述 DMA 缓冲区结束地址 指向 SPI 接收或者发送数据缓冲区结 束地址 注:SPI1 不支持 复位值 16h0 7.3 SPI 传输格式 SPI 仅支持模式 0 和模式 3 两种传输格式, 可以通过设置 SPI 模式配置寄存器(R8_SPIx_CTRL_MOD) 的 RB_SPI_MST_SCK_MOD 位来进行选择。 数据传输格式如下图所示: 模式 0:RB_SPI_MST_SCK_MOD = 0 模式0时序图 Cycle 1 2 3 4 5 6 7 MSB 6 5 4 3 2 1 LSB 6 5 4 3 2 1 LSB 8 CLK MOSI MISO MSB MSB* 43 CH563 中文手册 图 7-1 SPI 模式 0 传输格式 模式 3: RB_SPI_MST_SCK_MOD = 1 模式3时序图 Cycle 1 2 3 4 5 6 7 MSB 6 5 4 3 2 1 MSB 6 5 4 3 2 1 8 CLK MOSI MISO LSB* LSB LSB 图 7-2 SPI 模式 3 传输格式 7.4 SPI 配置 7.4.1 SPI 主机模式配置 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_MST_SCK_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,并设置 PB 口方向寄存器(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 中的值即为接收到的数据。 7.4.2 SPI 从机模式配置 SPI 从机模式下,SCK 引脚用于接收连接的 SPI 主机的串行时钟。 配置步骤: (1)、设置 SPI 模式配置寄存器(R8_SPIx_CTRL_MOD)的 RB_SPI_MODE_SLAVE 位为 1,配置 SPI 为 从机模式; CH563 中文手册 44 (2)、根据需要设置 SPI 模式配置寄存器(R8_SPIx_CTRL_MOD)的 RB_SPI_SLV_CMD_MOD 位; (3)、设置 SPI 模式配置寄存器(R8_SPIx_CTRL_MOD)的 RB_SPI_FIFO_DIR 位,配置 FIFO 方向,若 为 1 则当前 FIFO 方向为数据输入,若为 0 则当前 FIFO 方向为数据输出; (4)、设置 SPI 模式配置寄存器(R8_SPIx_CTRL_MOD)的 RB_SPI_MOSI_OE 位和 RB_SPI_SCK_OE 位为 0,RB_SPI_MISO_OE 位为 1,并设置 PB 口方向寄存器(R32_PB_DIR)中 MOSI 引脚、SCK 引脚和 SCS 引 脚对应的位为 0,MISO 引脚对应的位为 1,将 MOSI 引脚、SCK 引脚和 SCS 引脚方向配置为输入,MISO 引脚方向配置为输出;注:在 SPI 设备模式下 MISO 引脚的 I/O 引脚方向,除了能够由 MISO 引脚方向 配置为输出之外,还支持 SPI 片选有效期间自动配置为输出,但其输出数据由 RB_SPI_MISO_OE 选择, 当 RB_SPI_MISO_OE 为 1 时输出 SPI 数据,当 RB_SPI_MISO_OE 为 0 时输出 GPIO 寄存器的数据。 (5)、可选的,设置 SPI 设备模式预置数据寄存器(R8_SPI0_SLAVE_PRE),用于被片选后首次自动 加载到缓冲区中用于对外输出。当 8 个时钟过去之后(即首个数据字节在主从双方之间交换完毕), CH563 得到外部 SPI 主机发来的首字节数据(命令码) ,外部 SPI 主机交换得到 R8_SPI0_SLAVE_PRE 中的预置数据(状态值) 。该寄存器的位 7 将 SPI 片选有效后的 SCK 低电平期间自动加载到 MISO 引脚 上,对于 SPI 模式 0(CLK 默认为低电平) ,如果 CH563 预置了 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,等待数据发送完毕;如果发 送多个字节,则可以一次性最多写入 32 个数据到 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) 得到对方给的当前数据启动传输。 7.5 DMA 功能 CH563 芯片的 SPI0 具有 DMA 功能,SPI1 不具备此功能。通过使能 DMA 功能,可以在减少软件干 预的基础上更便捷的实现 SPI 数据的接收和发送。 7.5.1 SPI 主机模式 DMA 发送数据配置 (1)、按照 7.4.1 节,将 SPI0 配置为主机模式; (2)、如果需要产生 DMA 完成中断,则将 SPI 中断使能寄存器(R8_SPIx_INTER_EN)的 RB_SPI_IE_DMA_END 位置 1; (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 进行数据发送。 CH563 中文手册 45 7.5.2 SPI 主机模式 DMA 接收数据配置 (1)、按照 7.4.1 节,将 SPI0 配置为主机模式; (2)、设置 SPI 模式配置寄存器(R8_SPIx_CTRL_MOD)的 RB_SPI_FIFO_DIR 位为 1,配置 FIFO 方向 为输入; (3)、如果需要产生 DMA 中断将寄存器 R8_SPI_INTER_EN 的 RB_SPI_IE_DMA_END 位置 1,使能产 生 DMA 结束中断; (4)、初始化 R16_SPI_DMA_BEG 寄存器为 SPI 数据接收缓冲区开始地址; (5)、初始化 R16_SPI_DMA_END 寄存器为 SPI 数据接收缓冲区结束地址; (6)、清 SPI 中断状态寄存器(R8_SPIx_INT_FLAG); (7)、初始化 R16_SPI_TOTAL_CNT 寄存器为需要接收的数据个数,如果 DMA 已使能则启动传输; (8)、如果需要使能 DMA 地址循环模式功能,则需要设置 SPI 的 DMA 控制寄存器 (R8_SPIx_CTRL_DMA)的 RB_SPI_DMA_LOOP 位为 1; (9)、设置 SPI 的 DMA 控制寄存器(R8_SPIx_CTRL_DMA)的 RB_SPI_DMA_ENABLE 位为 1,使能 DMA 进行数据接收。如果 DMA 使能在前,在设置完 R16_SPI_TOTAL_CNT 后即自动开始传输。 46 CH563 中文手册 第 8 章 通用异步收发器 UART 8.1 UART 简介 CH563 芯片拥有 2 个全双工的异步串口,UART0 和 UART1。支持全双工和半双工串口通讯,提供 发送状态引脚用于切换 RS485。UART0 支持 MODEM 调制解调器信号 CTS、DSR、RI、DCD、DTR、RTS。 UART 特性: (1)、兼容 16C550 异步串口并且有所增强; (2)、支持 5、6、7 或者 8 个数据位以及 1 或者 2 个停止位; (3)、支持奇、偶、无校验、空白 0、标志 1 等校验方式; (4)、可编程通讯波特率,支持 115200bps 以及最高达 12Mbps 的通讯波特率; (5)、串口 0 内置 16 个字节的 FIFO 先进先出缓冲器,支持 4 个 FIFO 触发级; (6)、串口 1 内置 32 个字节的 FIFO 先进先出缓冲器,支持 4 个 FIFO 触发级; (7)、支持 MODEM 调制解调器信号 CTS、DSR、RI、DCD、DTR、RTS,可转成 RS232 电平; (8)、支持硬件流控制信号 CTS 和 RTS 自动握手和自动传输速率控制,兼容 TL16C550C; (9)、支持串口帧错误检测、支持 Break 线路间隔检测; (10)、支持全双工和半双工串口通讯,提供发送状态引脚用于切换 RS485; (11)、内置 SIR 红外线编解码器,支持 2400bps 到 115200bps 波特率的 IrDA 红外通讯; 8.2 UART 寄存器描述 UART0相关寄存器物理起始地址为:0x0040 D000 UART0 相关寄存器列表(地址范围:0x00---0x07) 表 8-1 UART0 相关寄存器列表 名称 R8_UART0_RBR R8_UART0_THR R8_UART0_IER R8_UART0_IIR R8_UART0_FCR 偏移地址 0x00 0x00 0x01 0x02 0x02 R8_UART0_LCR 0x03 R8_UART0_MCR 0x04 R8_UART0_LSR 0x05 R8_UART0_MSR 0x06 R8_UART0_DIV 0x07 R8_UART0_DLL 0x00 R8_UART0_DLM 0x01 描述 接收缓冲寄存器 发送保持寄存器 中断使能寄存器 中断识别寄存器 先进先出缓冲区 FIFO 控制寄存 器,用于使能和复位 FIFO 线路控制寄存器,用于控制串口 通讯的格式 调制解调器 MODEM 控制寄存器, 用于控制 MODEM 输出 线路状态寄存器,用于查询方式 分析串口状态 调制解调器 MODEM 状态寄存器, 用于查询 MODEM 状态 预分频除数寄存器 波特率除数锁存器,DLL 是低字 节 波特率除数锁存器,DLM 是高字 节 复位值 8hxx 8hxx 8h00 8h01 8h00 8h00 8h00 8h60 8hxx 最高位 0,其 他位保持 保持 8h80 47 CH563 中文手册 UART1相关寄存器物理起始地址为:0x0040 D800 UART1 相关寄存器列表(地址范围:0x00---0x07) 表 8-2 UART1 相关寄存器列表 名称 R8_UART1_RBR R8_UART1_THR R8_UART1_IER R8_UART1_IIR R8_UART1_FCR 偏移地址 0x00 0x00 0x01 0x02 0x02 R8_UART1_LCR 0x03 R8_UART1_MCR 0x04 R8_UART1_LSR 0x05 R8_UART1_MSR 0x06 R8_UART1_ADR R8_UART1_DIV 0x07 0x07 R8_UART1_DLL 0x00 R8_UART1_DLM 0x01 描述 接收缓冲寄存器 发送保持寄存器 中断使能寄存器 中断识别寄存器 先进先出缓冲区 FIFO 控制寄存 器,用于使能和复位 FIFO 线路控制寄存器,用于控制串口 通讯的格式 调制解调器 MODEM 控制寄存器, 用于控制 MODEM 输出 线路状态寄存器,用于查询方式 分析串口状态 调制解调器 MODEM 状态寄存器, 用于查询 MODEM 状态 串口 1 总线地址预置寄存器 预分频除数寄存器 波特率除数锁存器,DLL 是低字 节 波特率除数锁存器,DLM 是高字 节 复位值 8hxx 8hxx 8h00 8h01 8h00 8h00 8h00 8h60 8hxx 8h00 最高位 0,其 他位保持 保持 8h80 接收缓冲寄存器(R8_UARTx_RBR): 名称 UARTx_RBR 位 访问 [7:0] RO 发送缓冲寄存器(R8_UARTx_THR): 名称 位 UARTx_THR [7:0] 中断使能寄存器(R8_UARTx_IER): 名称 位 RB_IER_RESET 7 访问 WO 访问 RW 描述 接收缓冲寄存器 如果 LSR 的 DATA_RDY 位为 1,则可以 从该寄存器读取接收到的数据; 如果 FIFO_EN 为 1,则从串口移位寄 存器 RSR 接收到的数据首先被存放于 接收 FIFO 中,然后通过该寄存器读 出 复位值 描述 发送保持寄存器 包括发送 FIFO,用于写入准备发送的 数据;如果 FIFO_EN 为 1,则写入的 数据首先被存放于发送 FIFO 中,然 后通过发送移位寄存器 TSR 逐个输出 复位值 描述 串口软件复位使能位 0:不进行软件复位 复位值 8hxx 8hxx 1h0 48 CH563 中文手册 RB_IER_TXD_EN 6 RW RB_IER_MOUT_EN 5 RW RB_IER_MODEM_IO 4 RW RB_IER_IRDA_MOD 4 RW RB_IER_MODEM_CHG 3 RW RB_IER_LINE_STAT 2 RW RB_IER_THR_EMPTY 1 RW RB_IER_RECV_RDY 0 RW 中断识别寄存器(R8_UARTx_IIR): 名称 位 访问 RB_IIR_FIFO_ID 7 RO RB_IIR_FIFO_EN 6 RO Reserved [5:4] - RB_IIR_INT_MASK [3:1] RO 1:软件复位该串口 该位能够自动清 0,无需软件清 0 TXD 输出使能/禁止位 0:禁止 TXD 输出到引脚 1:使能 TXD 输出到引脚 RTS、DTR 输出使能/禁止位 0:禁止 RTS、DTR 输出到引脚 1:使能 RTS、DTR 输出到引脚 对于串口 0:串口调制解调器 MODEM 信号引脚选择位 0:MODEM 信号引脚选择 PA 端口 1:MODEM 信号引脚选择 PB 端口 对于串口 1:IrDA 功能使能/禁止位 0:禁止 IRDA 红外编解码模式 1:使能 IRDA 红外编解码模式 在启用 IRDA 模式后,RXD 和 TXD 引脚 可以直接连接 ZHX1810、HSD3000、 TFBS4711、TFDU4100 等红外线收发器 的 RXD 和 TXD 引脚 调制解调器输入状态变化中断使能/ 禁止位 0:禁止产生调制解调器输入状态变 化中断 1:使能产生调制解调器输入状态变 化中断 接收线路状态中断使能/禁止位 0:禁止产生接收线路状态中断 1:使能产生接收线路状态中断 发送保持寄存器空中断使能/禁止位 0:禁止产生发送保持寄存器空中断 1:使能产生发送保持寄存器空中断 接收到数据中断使能/禁止位 0:禁止产生接收到数据中断 1:使能产生接收到数据中断 描述 串口 FIFO 启用状态位 0:FIFO 未启用 1:FIFO 已启用 串口 FIFO 启用状态位 0:FIFO 未启用 1:FIFO 已启用 中断标志域 如果 RB_IIR_NO_INT 位为 0,则表示 有中断产生,需要读取该域判断中断 源 具体请参看下表 1h0 1h0 1h0 1h0 1h0 1h0 1h0 1h0 复位值 1h0 1h0 - 3h0 49 CH563 中文手册 RB_IIR_NO_INT 0 RO 中断状态标志位 0:有中断产生 1:无中断产生 1h1 中断识别寄存器(R8_UARTx_IIR)的 RB_IIR_NO_INT 位以及 RB_IIR_INT_MASK 域的每一个位所表示 的含义如下表所示: 表 8-3 IIR 寄存器位含义 IIR 寄存器位 IID3 IID2 IID1 NOINT 0 0 0 1 优先 级 中断类型 无 没有中断产生 1 1 1 0 0 总线地址匹配 0 1 1 0 1 接收线路状态 0 1 1 1 0 0 0 0 2 2 接收数据可用 接收数据超时 0 0 1 0 3 THR 寄存器空 0 0 0 0 4 MODEM 输入变化 中断源 清中断 方法 没有中断 接收到 1 个数据是串口总线地址,且 该地址与预置值相匹配或是广播地 读 IIR 或 址 禁用 注:该中断只适用 UART1 OV_ERR、PAR_ERR、FRAM_ERR、 读 LSR BREAK_IN 接收到的字节数达到 FIFO 的触发点 读 RBR 超过 4 个数据的时间未收到下一数据 读 RBR 发送保持寄存器空,IE_THRE 从 0 变 读 IIR 1 可以重新使能中断 或写 THR △CTS、△DSR、△RI、△DCD 读 MSR FIFO 控制寄存器(R8_UARTx_FCR ): 名称 位 访问 RB_FCR_FIFO_TRIG [7:6] WO Reserved [5:3] - RB_FCR_TX_FIFO_CLR 2 WO RB_FCR_RX_FIFO_CLR 1 WO 描述 接收 FIFO 的中断和硬件流控制的触 发点设置域 串口 0: 00:1 字节 01:4 字节 10:8 字节 11:14 字节 串口 1: 00:2 字节 01:8 字节 10:16 字节 11:28 字节 该域用来设置接收 FIFO 的中断和硬 件流控制的触发点,对于串口 0,00 对应 1 个字节,即接收满 1 个字节产 生接收数据可用的中断,并在使能硬 件流控制时自动无效 RTS 引脚 发送 FIFO 数据清空使能位 0:不清空发送 FIFO 中的数据 1: 清空发送 FIFO 中的数据(不含 TSR) 该位能够自动清 0,无需软件清 0 接收 FIFO 数据清空使能位 0:不清空接收 FIFO 中的数据 复位值 2h0 1h0 1h0 50 CH563 中文手册 RB_FCR_FIFO_EN 0 1: 清空接收 FIFO 中的数据(不含 RSR) 该位能够自动清 0,无需软件清 0 该 FIFO 使能/禁止位 0:禁用 FIFO 1:启用 FIFO WO 禁用 FIFO 后为 16C450 兼容模式,相 当于 FIFO 只有一个字节 (RECV_TG1=0、RECV_TG0=0、 FIFO_EN=1),建议启用 FIFO 1h0 线路控制寄存器(R8_UARTx_LCR ): 名称 位 访问 RB_LCR_DLAB 7 RW RB_LCR_BREAK_EN 6 RW RB_LCR_PAR_MOD [5:4] RW RB_LCR_PAR_EN 3 RW RB_LCR_STOP_BIT 2 RW RB_LCR_WORD_SZ [1:0] RW 描述 除数锁存器存取使能位 0:允许存取 RBR/THR/IER/ADR 寄存 器 1:允许存取 DLL 和 DLM 以及 DIV 寄 存器 强制产生 BREAK 线路间隔使能/禁止 位 0:不产生 BREAK 线路间隔 1:强制产生 BREAK 线路间隔 奇偶校验位格式设置域 00:奇校验 01:偶校验 10:标志位(MARK,置 1) 11:空白位(SPACE,清 0) 该域仅当 RB_LCR_PAR_EN 位为 1 时有 效 奇偶校验位使能/禁止位 0:无奇偶校验位 1:允许发送时产生和接收时校验奇 偶校验位 停止位格式设置位 0:一个停止位 1:两个停止位 字长设置域 00:5 个数据位 01:6 个数据位 10:7 个数据位 11:8 个数据位 复位值 1h0 1h0 2h0 1h0 1h0 2h0 调制解调器 MODEM 控制寄存器(R8_UARTx_MCR ): 名称 位 访问 描述 复位值 半双工收发模式使能/禁止位 0:禁止半双工收发模式 RB_MCR_HALF 7 RW 1h0 1:进入半双工收发模式,发送优先, 不发送时为接收 RB_MCR_TNOW 6 RW 串口 0 的 DTR 引脚或串口 1 的 RTS 引 1h0 51 CH563 中文手册 RB_MCR_AU_FLOW_EN 5 RW RB_MCR_LOOP 4 RW RB_MCR_OUT2 3 RW RB_MCR_OUT1 2 RW RB_MCR_RTS 1 RW RB_MCR_DTR 0 RW 脚输出正在发送状态位 0:无效 1:串口 0 的 DTR 引脚或串口 1 的 RTS 引脚输出正在发送状态 TNOW,可以用 于控制 RS485 收发切换 允许 CTS 和 RTS 硬件自动流控制位 0:无效 1:允许 CTS 和 RTS 硬件自动流控制 如果 AFE 为 1,那么仅在检测到 CTS 引脚输入有效(低电平有效)时串口 才继续发送下一个数据,否则暂停串 口发送,当 AFE 为 1 时的 CTS 输入状 态变化不会产生 MODEM 状态中断。如 果 AFE 为 1 并且 RTS 为 1,那么当接 收 FIFO 空时,串口会自动有效 RTS 引脚(低电平有效),直到接收的字 节数达到 FIFO 的触发点时,串口才 自动无效 RTS 引脚,并能够在接收 FIFO 空时再次有效 RTS 引脚。使用硬 件自动带率控制,可将己方的 CTS 引 脚接到对方的 RTS 引脚,并将己方的 RTS 引脚送到对方的 CTS 引脚 内部回路的测试模式使能/禁止位 0:禁止内部回路的测试模式 1:使能内部回路的测试模式 在内部回路的测试模式下,串口所有 对外输出引脚均为无效状态,TXD 内 部返回到 RXD(即 TSR 的输出内部返 回到 RSR 的输入) ,RTS 内部返回到 CTS,DTR 内部返回到 DSR,OUT1 内部 返回到 RI,OUT2 内部返回到 DCD 注:该位仅对 UART0 有效 串口的中断请求输出使能/禁止位 0:禁止串口的中断请求输出 1:使能串口的中断请求输出 MODEM 控制位用户自定义使能/禁止 位 0:禁止用户自定义 MODEM 控制位 1:允许用户自定义 MODEM 控制位 没有连接实际输出引脚 注:该位仅对 UART0 有效 RTS 引脚输出有效使能/禁止位 0:禁止 RTS 引脚输出有效 1:使能 RTS 引脚输出有效(低电平 有效) DTR 引脚输出有效使能/禁止位 0:禁止 DTR 引脚输出有效 1:使能 DTR 引脚输出有效(低电平 有效) 1h0 1h0 1h0 1h0 1h0 1h0 52 CH563 中文手册 注:该位仅对 UART0 有效 线路状态寄存器(R8_UARTx_LSR ): 名称 位 访问 RB_LSR_ERR_RX_FIFO 7 RO RB_LSR_TX_ALL_EMP 6 RO RB_LSR_TX_FIFO_EMP 5 RO RB_LSR_BREAK_ERR 4 RZ RB_LSR_FRAME_ERR 3 RZ RB_LSR_PAR_ERR 2 RZ RB_LSR_OVER_ERR 1 RZ RB_LSR_DATA_RDY 0 RO 描述 接收 FIFO 错误标志位 0:接收 FIFO 未存在错误 1:接收 FIFO 中存在至少一个 PAR_ERR、FRAM_ERR 或 BREAK_IN 错误 发送保持寄存器 THR 和发送移位寄存 器 TSR 全空标志位 0:两者非全空 1:两者全空 发送保持寄存器 THR 空标志位 0:发送保持寄存器非空 1:发送保持寄存器空 BREAK 线路间隔检测标志位 0:未检测到 BREAK 线路间隔 1:检测到 BREAK 线路间隔 数据帧错误标志位 0:数据帧正确 1:表示正在从接收 FIFO 中读取的数 据的帧错误,缺少有效的停止位 奇偶校验错误标志位 0:奇偶校验正确 1:表示正在从接收 FIFO 中读取的数 据的奇偶校验错 接收 FIFO 缓冲区溢出标志位 0;未溢出 1:已溢出 接收 FIFO 中有接收到的数据标志位 0:无数据 1:有数据 读取 FIFO 中所有数据后,该位自动 清0 调制解调器 MODEM 状态寄存器(R8_UARTx_MSR): 名称 位 访问 描述 DCD 引脚状态位 该位是 DCD 引脚的位反, 为 1 表示 DCD RB_MSR_DCD 7 RO 引脚有效(低电平有效) 注:该位仅对 UART0 有效 RI 引脚状态位 该位是 RI 引脚的位反,为 1 表示 RI RB_MSR_RI 6 RO 引脚有效(低电平有效) 注:该位仅对 UART0 有效 DSR 引脚状态位 RB_MSR_DSR 5 RO 该位是 DSR 引脚的位反, 为 1 表示 DSR 复位值 1h0 1h1 1h1 1h0 1h0 1h0 1h0 1h0 复位值 1hx 1hx 1hx 53 CH563 中文手册 RB_MSR_CTS 4 RO RB_MSR_DCD_CHG 3 RZ RB_MSR_RI_CHG 2 RZ RB_MSR_DSR_CHG 1 RZ RB_MSR_CTS_CHG 0 RZ 引脚有效(低电平有效) 。 注:该位仅对 UART0 有效 CTS 引脚状态位 该位是 CTS 引脚的位反, 为 1 表示 CTS 引脚有效(低电平有效) DCD 引脚输入状态变化标志位 0:无变化 1:发生变化 注:该位仅对 UART0 有效 RI 引脚输入状态变化标志位 0:无变化 1:发生变化 注:该位仅对 UART0 有效 DSR 引脚输入状态变化标志位 0:无变化 1:发生变化 注:该位仅对 UART0 有效 CTS 引脚输入状态变化标志位 0:无变化 1:发生变化 1hx 1hx 1hx 1hx 1hx 预分频除数寄存器(R8_UARTx_DIV): 名称 UARTx_DIV 位 访问 [7:0] RW 描述 用于将系统主时钟倍频后再进行预 分频,产生串口的内部基准时钟, 该除数 = 系统主时钟 * 2 / 串口内 部基准时钟,最大值 127 如果系统主时钟为 100MHz,除数为 108,那么串口内部基准时钟为 1.852MHz,与常用的基准时钟 1.8432 相差 0.47% 串口 1 总线地址预置寄存器(R8_UART1_ADR): 名称 位 访问 描述 总线地址预置寄存器 预置本机地址用于在接收到地址时 自动比较,并在地址匹配时或者在接 收到广播地址 0FFH 时产生中断,同 时允许接收后续数据。在地址没有匹 配之前不接收任何数据,开始发送数 据后或者重写 R8_UART1_ADR 寄存器 R8_UART1_ADR [7:0] RW 后停止接收任何数据,直到下次地址 再次匹配或者接收到广播地址时再 允许接收。R8_UART1_ADR 为 0FFH 时 或者 RB_LCR_PAR_EN 为 0 时则禁用总 线地址自动比较功能。R8_UART1_ADR 不为 0FFH 并且 RB_LCR_PAR_EN 为 1 时启用总线地址自动比较功能,同时 应该配置下述参数:选择 8 个数据位 复位值 8h00 复位值 8h00 54 CH563 中文手册 方式,RB_LCR_PAR_MOD1 应该为 1, RB_LCR_PAR_MOD0 为 1 时用于地址字 节 MARK 模式(即数据字节的位 9 为 0) ,RB_LCR_PAR_MOD0 为 0 时用于地 址字节 SPACE 模式(即数据字节的位 9 为 1) 。 波特率除数锁存器(R8_UARTx_DLL/R8_UARTx_DLM): 名称 UARTx_DLL UARTx_DLM 位 [7:0] 访问 描述 复位值 RW DLL 是低字节,DLM 是高字节,两者 组成的 16 位除数用于由 16 位计数器 构成的串口波特率产生器 该除数 = 串口内部基准时钟 / 16 / 所需通讯波特率 如果串口内部基准时钟为 1.8432MHz,所需波特率为 9600bps, 则除数=1843200/16/9600=12 8h00 8.3 UART 应用 CH563 芯片的 UART 输出引脚都是 3.3V LVCMOS 电平,兼容 5V TTL 电平,RXD 和 TXD 以及 PA 端口 的 MODEM 引脚能够承受 5V 耐压。 异步串口方式下引脚包括:数据传输引脚和 MODEM 联络信号引脚。 数据传输引脚包括:TXD 引脚和 RXD 引脚,默认都是高电平;MODEM 联络信号引脚包括:CTS 引脚、 DSR 引脚、RI 引脚、DCD 引脚、DTR 引脚、RTS 引脚,默认都是高电平。所有这些 MODEM 联络信号都 可以作为通用 I/O 引脚,由应用程序控制并定义其用途。 UART 内置了独立的收发缓冲区及 FIFO,支持单工、半双工或者全双工异步串行通讯。串行数据 包括 1 个低电平起始位,5、6、7 或 8 个数据位,0 个或者 1 个附加校验位或者标志位,1 个或者 2 个高电平停止位,支持奇校验/偶校验/标志校验/空白校验。支持常用通讯波特率:1200、2400、4800、 9600、19.2K、38.4K、57.6K、115.2K、230.4K、460.8K、921.6K、1.8432M、2.7648M、7.8125M 等。串口发送信号的波特率误差小于 0.2%,串口接收信号的允许波特率误差不大于 2%。 55 CH563 中文手册 第 9 章 外部总线接口(PARA) 9.1 外部总线接口简介 CH563 芯片带有一个外部总线控制器,该接口支持 8 位、16 位和 32 位总线宽度,地址空间范围 为 0x00C00000 至 0x00CFFFFF,包括读信号引脚(PRD#)、写信号引脚(PWR#)、20 位地址引脚(A0-A19) 和 32 位数据引脚(D0-D31)。当未采用总线接口时,其上述引脚可以作为普通 I/O 口使用。该接口支 持静态存储器映射器件,包括 RAM、ROM、Flash 和一些外部 I/O 器件,可动态修改读写信号脉宽以及 地址和数据的建立和保持时间。 外部总线接口特性: (1)、支持 8 位、16 位以及 32 位总线宽度; (2)、支持最多 20 位地址总线宽度; (3)、支持静态存储器映射器件,包括 RAM、Flash 和一些外部 I/O 器件; (4)、支持动态修改读写信号脉宽、地址和数据的建立和保持时间等; 9.2 外部总线接口寄存器描述 外部总线接口相关寄存器物理起始地址为:0x0040 0000 外部总线接口相关寄存器列表(地址范围:0x10---0x13) 表 9-1 外部总线接口相关寄存器列表 名称 偏移地址 R8_XBUS_CONFIG R8_XBUS_CYCLE R8_XBUS_SETUP_HOLD 0x10 0x12 0x13 描述 复位值 外部总线配置寄存器 外部总线读写总周期寄存器 外部总线保持时间设置寄存器 8h00 8h04 8h04 外部总线配置寄存器(R8_XBUS_CONFIG): 名称 Reserved RB_XBUS_ADDR_OE 位 [7:4] [3:2] 访问 RWA RB_XBUS_EN_32BIT 1 RW RB_XBUS_ENABLE 0 RWA 描述 保留 外部总线地址位输出控制域 00:无总线地址输出 01:PA[5:0]输出部分地址 10:PA[11:0]输出部分地址 11:PA[19:0]输出全部地址 注意: 需要使用全部地址线 PA[19:0] 时,由于 PA18、PA19 为复用引脚, 引脚方向不能设置成输出模式,否则 不能正常使用。 外部总线数据位控制域 0:8 位数据总线 1:16 位或 32 位数据总线 外部总线使能/禁止位 0:禁止外部总线 1:使能外部总线 外部总线读写总周期寄存器(R8_XBUS_CYCLE): 名称 位 访问 Reserved [7:5] 保留 描述 复位值 2h0 1h0 1h0 复位值 - 56 CH563 中文手册 RB_XBUS_CYCLE [4:0] RW 外部总线的读写总周期-1 含建立时间,含读写信号脉宽,对于 输出信号(例如地址) ,额外有 1 个 时钟周期的输出信号保持时间 5h4 外部总线保持时间设置寄存器(R8_XBUS_SETUP_HOLD): 名称 RB_XBUS_SETUP Reserved RB_XBUS_HOLD 位 7 访问 RW [6:5] [4:0] RW 描述 外部总线的地址和数据的建立时间 0:1 个时钟周期 1:2 个时钟周期 保留 外部总线的读写信号结束点时钟数 应该小于或等于 RB_XBUS_CYCLE,比 RB_XBUS_CYCLE 少出的时钟数用于加 大输出信号保持时间(额外有 1 个) 复位值 1h0 5h4 9.3 外部总线接口应用 9.3.1 外部总线接口 外部总线接口包括 1 根读信号引脚 PRD#(PA20)、1 根写信号引脚 PWR#(PA21)、20 根地址引脚 A0-A19(PA0-PA19)和 32 根数据引脚 D0-D31(PD0-PD31)。该接口支持 8 位、16 位和 32 位总线宽度, 可根据所连接的外部总线设备进行配置。如果外部总线设备为 32 位宽,则地址线 A1 和 A0 无效;如 果外部总线设备为 16 位宽,则地址线 A0 无效。 32 位宽总线接口: PA21 PA20 PA19 WR RD CS PD[31:24] D[7:0] A[m:0] WR RD CS PD[23:16] D[7:0] A[m:0] WR RD CS PD[15:8] D[7:0] A[m:0] PA[18:2] 图 9-1 (a) 32 位宽总线接口连接 8 位的存储器芯片 WR RD CS PD[7:0] D[7:0] A[m:0] 57 CH563 中文手册 PA21 PA20 PA19 WR RD CS PD[31:16] D[15:0] A[m:0] WR RD CS PD[15:0] D[15:0] A[m:0] PA[18:2] 图 9-2 (b) 32 位宽总线接口连接 16 位的存储器芯片 PA21 PA20 PA19 WR RD CS PD[31:0] D[31:0] A[m:0] PA[18:2] 图 9-3 (c) 32 位宽总线接口连接 32 位的存储器芯片 16 位宽存储器接口: PA21 PA20 PA19 WR RD CS PD[15:8] D[7:0] A[m:0] WR RD CS PD[7:0] D[7:0] A[m:0] PA[18:1] 图 9-4 (a) 16 位宽总线接口连接 8 位的存储器芯片 58 CH563 中文手册 PA21 PA20 PA19 WR RD CS PD[15:0] D[15:0] A[m:0] PA[18:1] 图 9-5 (b) 16 位总线接口连接 16 位的存储器芯片 8 位宽存储器接口: PA21 PA20 PA19 WR RD CS PD[7:0] D[7:0] A[m:0] PA[18:0] 图 9-6 (a) 8 位宽总线接口连接 8 位的存储器芯片 9.3.2 典型总线时序 下图所示为典型的外部总线接口读/写访问时序,CLK 为总线时钟频率,RD 为读信号引脚,WR 为 写信号引脚。 例如设置 RB_XBUS_CYCLE = 0x08,RB_XBUS_HOLD = 0x08,RB_XBUS_SETUP = 0,则时序图如下 所示: Pclk WR/RD ADDR 地址有效 DATA 数据有效 建立时间 读写信号脉宽时间 额外保持时间 图 9-7 外部线接口读/写访问时序图 1 例如设置 RB_XBUS_CYCLE = 0x08,RB_XBUS_HOLD = 0x06,RB_XBUS_SETUP = 0,则时序图如下 59 CH563 中文手册 所示: Pclk WR/RD ADDR 地址有效 DATA 数据有效 建立时间 读写信号脉宽时间 额外保持时间 图 9-8 外部线接口读/写访问时序图 2 上图中 RB_XBUS_SETUP 位可以设置为 0 或者设置为 1,当设置为 0 时,外部总线建立时间为 1 个 时钟周期(CLK);当设置为 1 时,外部总线建立时间为 2 个时钟周期(CLK)。 9.3.3 外部总线配置 外部总线接口相关寄存器为写保护寄存器,需要先对其解锁然后再进行操作。 主要配置步骤如下: (1)、配置外部总线配置寄存器(R8_XBUS_CONFIG),设置 RB_XBUS_ENABLE 位为 1 使能外部总线接 口,同时根据需要设置地址位控制域 RB_XBUS_ADDR_OE,以及数据位控制位 RB_XBUS_EN_32BIT; (2)、配置外部总线时钟控制寄存器(R8_XBUS_CYCLE),设置总线读写时钟脉宽;配置外部总线时 钟建立保持寄存器(R8_XBUS_SETUP_HOLD),设置总线建立时间以及总线保持时间; (3)、配置外部总线接口相应引脚方向。 主要配置程序如下: /* 配置外部总线接口相关寄存器 */ R8_SAFE_ACCESS_SIG = 0x57; // 解锁步骤 1 R8_SAFE_ACCESS_SIG = 0xA8; // 解锁步骤 2 R8_XBUS_CONFIG = RB_XBUS_ENABLE | RB_XBUS_ADDR_OE; R8_XBUS_CYCLE = 0x??; // 设置总线读写时钟脉宽 R8_XBUS_SETUP_HOLD = 0x??; // 设置总线建立时间及保持时间 R8_SAFE_ACCESS_SIG = 0x00; // 保护,禁止读写 /* 配置外部总线接口相应引脚 */ R32_PA_DIR |= ( PWR | PRD | 0xFFFFF ); // 可以仅使用部分地址引脚 60 CH563 中文手册 第 10 章 被动并口 10.1 被动并口简介 CH563 芯片具有一个 8 位的被动并口。该被动并口包括中断输出引脚(SLVI#)、命令数据选择输 入引脚(SLVA)、片选输入引脚(SLVCS#)、读信号输入引脚(PRD#)、写信号输入引脚(PWR#)和 8 位输入 输出数据引脚。 被动并口特性: (1)、8 位数据接口; (2)、独立的数据输入输出寄存器; (3)、多种中断状态及中断控制; (4)、支持命令输入及数据输入; (5)、支持状态输出及数据输出; 当命令数据选择引脚(SLVA)为 1 时,输入的数据被认为是命令输入; 当命令数据选择引脚(SLVA)为 0 时,输入的数据被认为是数据输入; 当命令数据选择引脚(SLVA)为 1 时,输出的数据被认为是状态输出; 当命令数据选择引脚(SLVA)为 0 时,输出的数据被认为是数据输出。 10.2 被动并口寄存器描述 被动并口相关寄存器物理起始地址为:0x0040 0000 被动并口相关寄存器列表(地址范围:0x14---0x43) 表 10-1 被动并口相关寄存器列表 名称 R8_SLV_CONFIG R8_SLV_DOUT R8_SLV_STATUS R8_INT_FLAG_SLV R8_INT_SLV_DIN 偏移地址 0x14 0x16 0x17 0x42 0x43 配置寄存器(R8_SLV_CONFIG): 名称 位 Reserved [7:4] RB_SLV_IE_RD 3 访问 RWA RB_SLV_IE_WR 2 RWA RB_SLV_IE_CMD 1 RWA RB_SLV_ENABLE 0 RWA 数据输出寄存器(R8_SLV_DOUT): 名称 位 访问 描述 被动并口配置寄存器 被动并口数据输出寄存器 被动并口状态输出寄存器 被动并口中断标志位 被动并口数据输入寄存器 描述 保留 数据读取中断使能/禁止位 0:禁止 1:使能 数据写入中断使能/禁止位 0:禁止 1:使能 命令写入中断使能/禁止位 0:禁止 1:使能 被动并口使能/禁止位 0:禁止 1:使能 描述 复位值 8h00 8h00 8h00 8h00 8h00 复位值 1h0 1h0 1h0 1h0 复位值 61 CH563 中文手册 SLV_DOUT [7:0] 保留 状态输出寄存器(R8_SLV_STATUS): 名称 位 访问 SLV_STATUS [7:0] 保留 被动并口输出数据,命令数据选择引 脚(SLVA)为 0 时,输出此寄存器值 8h0 描述 复位值 被动并口输出状态,命令数据选择引 脚(SLVA)为 1 时,输出此寄存器值 8h0 描述 被动并口数据取走中断标志位 0:数据未取走 1:数据已取走 被动并口数据输入中断标志位 0:未有数据输入 1:已有数据输入 同步后的被动并口命令输入标志位 0:数据输入时 SLVA 引脚为 0,数据 1:数据输入时 SLVA 引脚为 1,命令 原始的被动并口命令输入标志位 保留 复位值 1h0 描述 被动并口数据输入 被动并口接收到数据后存放于此寄 存器 复位值 8h0 中断标志寄存器(R8_INT_FLAG_SLV): 名称 RB_IF_SLV_RD 位 7 访问 RW1 RB_IF_SLV_WR 6 RW1 RB_IF_SLV_CMD 5 RO RB_IF_SLV_CMD0 Reserved 4 [3:0] RO - 1h0 1h0 1h0 - 数据输入寄存器(R8_INT_SLV_DIN): 名称 INT_SLV_DIN 位 [7:0] 访问 RO 10.3 被动并口应用 CH563 芯片的 8 位被动并口在使用前,必须先对其进行初始化。 主要配置步骤如下: (1)、配置被动并口配置寄存器(R8_SLV_CONFIG),设置 RB_SLV_ENABLE 位为 1 使能被动并口,同 时根据需要设置数据读取、数据输入和命令输入等中断使能。由于此寄存器为写保护寄存器,需要先 对其解锁然后再进行操作; (2)、配置被动并口相应引脚方向。 主要配置程序如下: /* 配置被动并口配置寄存器 */ R8_SAFE_ACCESS_SIG = 0x57; // 解锁步骤 1 R8_SAFE_ACCESS_SIG = 0xA8; // 解锁步骤 2 R8_SLV_CONFIG = ( RB_SLV_ENABLE | RB_SLV_IE_CMD | RB_SLV_IE_WR | RB_SLV_IE_RD ); R8_SAFE_ACCESS_SIG = 0x00; // 保护,禁止读写 /* 配置被动并口相应引脚 */ R32_PA_DIR &= ~( PIN_PARA_A0 | PIN_PARA_PCS | PIN_PARA_RD | PIN_PARA_WR ); 被动并口接收数据或命令步骤: (1)、等待中断标志寄存器(R8_INT_FLAG_SLV)中的 RB_IF_SLV_WR 位置 1,该位置 1 表示被动并 CH563 中文手册 62 口上有数据或命令写入; (2)、判断 RB_IF_SLV_CMD 是否为 1,如果该位为 1 表示接收到命令;如果该位为 0,表示接收到 数据; (3)、从数据输入寄存器(R8_INT_SLV_DIN)读取被动并口上写入的数据或命令; (4)、清中断标志寄存器(R8_INT_FLAG_SLV) 中的 RB_IF_SLV_WR 位,该位写 1 清 0。 被动并口发送状态步骤: (1)、将需要发送的状态数据写入被动并口状态输出寄存器(R8_SLV_STATUS),可以提前预置; (2)、等待被动并口中断状态寄存器(R8_INT_FLAG_SLV) 中的 RB_IF_SLV_RD 位置 1,该位置 1 表 示状态或数据已被取走; (3)、清中断标志寄存器(R8_INT_FLAG_SLV) 中的 RB_IF_SLV_RD 位,该位写 1 清 0。 被动并口发送数据步骤: (1)、将需要发送的数据写入数据输出寄存器(R8_SLV_DOUT); (2)、等待被动并口中断状态寄存器(R8_INT_FLAG_SLV) 中的 RB_IF_SLV_RD 位置 1,该位置 1 表 示状态或数据已被取走; (3)、清中断标志寄存器(R8_INT_FLAG_SLV) 中的 RB_IF_SLV_RD 位,该位写 1 清 0。 63 CH563 中文手册 第 11 章 通用定时器 TIMx 11.1 TIMx 简介 CH563 芯片带有 4 个 28 位定时器,TIM0、TIM1、TIM2 和 TIM3,最长定时时间为 2^28 个时钟周 期。所有定时器均支持 PWM 功能,支持中断功能,同时定时器 0,1,2 支持捕获以及 PWM 的 DMA 功能。 特性: (1)、4 个 28 位定时器,每个定时器定时时间最大为 2^28 个时钟周期; (2)、每个定时器都支持 PWM 功能; (3)、定时器 0,1,2 支持捕获功能; (4)、每个定时器都支持定时器中断,TIM0、TIM1 和 TIM2 支持 DMA 中断; (5)、定时器 0,1,2 支持 PWM 以及捕获的 DMA 功能,捕获功能可设置为电平变化捕获功能和高 或低电平保持时间捕获功能; (6)、PWM 功能支持动态的调整 PWM 占空比设置; (7)、定时器 3 支持外部输入时钟的计数器功能。 11.2 TIMx 寄存器描述 TIM0相关寄存器物理起始地址为:0x0040 8000 TIM0 相关寄存器列表(地址范围:0x00---0x1D) 表 11-1 TIM0 相关寄存器列表 名称 偏移地址 描述 R8_TMR0_CTRL_MOD R8_TMR0_CTRL_DMA R8_TMR0_INTER_EN R8_TMR0_INT_FLAG R8_TMR0_FIFO_COUNT R32_TMR0_COUNT R32_TMR0_CNT_END R32_TMR0_FIFO R16_TMR0_DMA_NOW R16_TMR0_DMA_BEG R16_TMR0_DMA_END 0x00 0x01 0x02 0x06 0x07 0x08 0x0C 0x10 0x14 0x18 0x1C 复位值 模式设置寄存器 DMA 控制寄存器 中断使能寄存器 中断标志寄存器 计数状态寄存器 当前计数值寄存器 计数终值寄存器 FIFO 寄存器 DMA 当前缓冲区地址 DMA 开始缓冲区地址 DMA 结束缓冲区地址 8h00 8h00 8h00 8h00 8h00 32h0000 0000 32h0000 0000 32h0000 0000 16h0000 16h0000 16h0000 TIM1相关寄存器物理起始地址为:0x0040 8400 TIM1 相关寄存器列表(地址范围:0x00---0x1D) 表 11-2 TIM1 相关寄存器列表 名称 偏移地址 描述 R8_TMR1_CTRL_MOD 0x00 模式设置寄存器 R8_TMR1_CTRL_DMA 0x01 DMA 控制寄存器 R8_TMR1_INTER_EN 0x02 中断使能寄存器 R8_TMR1_INT_FLAG 0x06 中断标志寄存器 R8_TMR1_FIFO_COUNT 0x07 计数状态寄存器 R32_TMR1_COUNT 0x08 当前计数值寄存器 R32_TMR1_CNT_END 0x0C 计数终值寄存器 R32_TMR1_FIFO 0x10 FIFO 寄存器 R16_TMR1_DMA_NOW 0x14 DMA 当前缓冲区地址 复位值 8h00 8h00 8h00 8h00 8h00 32h0000 0000 32h0000 0000 32h0000 0000 16h0000 64 CH563 中文手册 R16_TMR1_DMA_BEG R16_TMR1_DMA_END 0x18 0x1C DMA 开始缓冲区地址 DMA 结束缓冲区地址 16h0000 16h0000 TIM2相关寄存器物理起始地址为:0x0040 8800 TIM2 相关寄存器列表(地址范围:0x00---0x1D) 表 11-3 TIM2 相关寄存器列表 名称 R8_TMR2_CTRL_MOD R8_TMR2_CTRL_DMA R8_TMR2_INTER_EN R8_TMR2_INT_FLAG R8_TMR2_FIFO_COUNT R32_TMR2_COUNT R32_TMR2_CNT_END R32_TMR2_FIFO R16_TMR2_DMA_NOW R16_TMR2_DMA_BEG R16_TMR2_DMA_END 偏移地址 0x00 0x01 0x02 0x06 0x07 0x08 0x0C 0x10 0x14 0x18 0x1C 描述 模式设置寄存器 DMA 控制寄存器 中断使能寄存器 中断标志寄存器 计数状态寄存器 当前计数值寄存器 计数终值寄存器 FIFO 寄存器 DMA 当前缓冲区地址 DMA 开始缓冲区地址 DMA 结束缓冲区地址 复位值 8h00 8h00 8h00 8h00 8h00 32h0000 0000 32h0000 0000 32h0000 0000 16h0000 16h0000 16h0000 TIM3相关寄存器物理起始地址为:0x0040 8C00 TIM3 相关寄存器列表(地址范围:0x00---0x10) 表 11-4 TIM3 相关寄存器列表 名称 R8_TMR3_CTRL_MOD R8_TMR3_INTER_EN R8_TMR3_INT_FLAG R8_TMR3_FIFO_COUNT R32_TMR3_COUNT R32_TMR3_CNT_END R32_TMR3_FIFO 偏移地址 0x00 0x02 0x06 0x07 0x08 0x0C 0x10 模式设置寄存器(R8_TMRx_CTRL_MOD ): 名称 位 访问 RB_TMR_CATCH_EDGE [7:6] RW RB_TMR_PWM_REPEAT [7:6] RW RB_TMR3_MODE_COUNT 5 RW RB_TMR_MODE_NRZI 5 RW 描述 模式设置寄存器 中断使能寄存器 中断标志寄存器 计数状态寄存器 当前计数值寄存器 计数终值寄存器 FIFO 寄存器 复位值 8h00 8h00 8h00 8h00 32h0000 0000 32h0000 0000 32h0000 0000 描述 捕获模式边沿触发方式设置域 00:禁止触发 01:捕获任何边沿变化之间的时间 10:捕获下降沿到下降沿之间时间 11:捕获上升沿到上升沿之间时间 PWM 重复模式设置域 00:重复 1 次 01:重复 4 次 10:重复 8 次 11:重复 16 次 TIM3 外部时钟计数器模式设置位 0:定时、PWM 以及捕获模式 1:外部时钟计数器模式 TIM0、TIM1 串行编解码模式 0:定时、PWM 以及捕获模式 复位值 2h0 2h0 1h0 1h0 65 CH563 中文手册 RB_TMR_CAT_WIDTH 4 RW RB_TMR_OUT_POLAR 4 RW RB_TMR_OUT_EN 3 RW RB_TMR_COUNT_EN 2 RW RB_TMR_ALL_CLEAR 1 RW RB_TMR_MODE_IN 0 RW DMA 控制寄存器(R8_TMRx_CTRL_DMA ): 名称 位 访问 Reserved [7:3] - RB_TMR_DMA_LOOP 2 RW RB_TMR_DMA_BURST 1 RW RB_TMR_DMA_ENABLE 0 RW 中断使能寄存器(R8_TMRx_INTER_EN ): 名称 位 访问 RB_TMR3_FORCE_EN 7 RW 1:保留 捕获模式下最小捕获脉宽设置位 0:16 个时钟周期,小于则忽略 1:8 个时钟周期,小于则忽略 PWM 模式下默认输出极性设置位 0:默认低电平,高电平有效 1:默认高电平,低电平有效 定时器输出使能/禁止位 0:定时器输出禁止 1:定时器输出使能 定时器计数使能/禁止位 0:定时器计数禁止 1:定时器计数使能 计数器的 FIFO 和 COUNT 寄存器清 0 位 0:无动作 1:清除 定时器输出模式设置位 0:定时器/PWM 模式 1:捕获模式 1h0 1h0 1h0 1h0 1h0 1h0 描述 复位值 DMA 地址循环模式使能/禁止位 0:禁止 DMA 地址循环模式功能 1:使能 DMA 地址循环模式功能 如果使能 DMA 地址循环模式功能,当 DMA 地址增加到设置的末尾地址时, 自动循环指向设置的首地址 注:TIM3 不支持 DMA 块操作使能/禁止位 0:禁止 DMA 块操作功能 1:使能 DMA 块操作功能 如果使能 DMA 块操作功能,则该 DMA 更少占用系统总线 注:TIM3 不支持 DMA 功能使能/禁止位 0:禁止 DMA 功能 1:使能 DMA 功能 注:TIM3 不支持 - 描述 TIM0、TIM1 和 TIM2 强制同时使能位 0:无效 1:TIM0、TIM1 和 TIM2 同时使能 该位独立于 RB_TMR_COUNT_EN 位 1h0 1h0 1h0 复位值 1h0 66 CH563 中文手册 Reserved 6 - RB_TMR_IE_DMA_ERR 5 RW RB_TMR_IE_FIFO_OV 4 RW RB_TMR_IE_DMA_END 3 RW RB_TMR_IE_FIFO_HF 2 RW RB_TMR_IE_DATA_ACT 1 RW RB_TMR_IE_CYC_END 0 RW 中断标志寄存器(R8_TMRx_INT_FLAG): 名称 位 访问 Reserved [7:6] RB_TMR_IF_DMA_ERR 5 RW RB_TMR_IF_FIFO_OV 4 RW RB_TMR_IF_DMA_END 3 RW RB_TMR_IF_FIFO_HF 2 RW RB_TMR_IF_DATA_ACT 1 RW DMA 错误响应中断使能/禁止位 0:禁止 1:使能 FIFO 溢出中断使能/禁止位 0:禁止 1:使能 DMA 结束中断使能/禁止位 0:禁止 1:使能 FIFO 过半中断使能/禁止位 0:禁止 1:使能 捕获模式下电平变化中断使能/禁止 位 0:禁止 1:使能 PWM 模式下 PWM 结束中断使能/禁止位 0:禁止 1:使能 捕获模式下捕获超时中断使能/禁止 位 0:禁止 1:使能 PWM 模式下 PWM 时钟周期结束使能/ 禁止位 0:禁止 1:使能 描述 DMA 响应错误标志位 0:无错误发生 1:DMA 发生错误 FIFO 溢出标志位 0:未溢出 1:已溢出 DMA 完成标志位 0:未完成 1:已完成 FIFO 过半标志位 0:FIFO 计数未过半 1:FIFO 计数已过半 捕获模式下捕获到边沿变化标志位 0:未捕获到边沿变化 1:捕获到边沿变化 PWM 模式下 PWM 输出完成标志位 0:未完成 1h0 1h0 1h0 1h0 1h0 1h0 复位值 1h0 1h0 1h0 1h0 1h0 67 CH563 中文手册 RB_TMR_IF_CYC_END 0 RW 1:已完成 捕获模式下超时标志位 0:未超时 1:已超时 PWM 模式下 PWM 时钟周期结束标志位 0:未结束 1:已结束 计数状态寄存器(R8_TMRx_FIFO_COUNT): 名称 位 访问 TMRx_FIFO_COUNT [7:0] RO 当前计数值寄存器(R32_TMRx_COUNT): 名称 位 访问 Reserved TMRx_COUNT [31:28] [27:0] RO 描述 FIFO 计数 1h0 复位值 8h0 描述 计数器当前计数值 复位值 28h0 计数终值寄存器(R32_TMRx_CNT_END): 名称 Reserved 位 [31:28] 访问 - TMRx_CNT_END [27:0] RW FIFO 寄存器(R32_TMRx_FIFO): 名称 位 Reserved [31:28] TMRx_FIFO [27:0] 访问 RO/ WO DMA 当前缓冲区地址(R16_TMRx_DMA_NOW): 名称 位 访问 TMRx_DMA_NOW [15:0] RW DMA 开始缓冲区地址(R16_TMRx_DMA_BEG): 名称 位 访问 TMRx_DMA_BEG [15:0] RW 描述 复位值 保留 定时器模式下定时时钟数; PWM 模式下 PWM 周期总时钟数; 捕获模式下捕获超时时钟数; 28h0 注:R32_TMRx_COUNT 是从 0 起计数, 所以最大值为 R32_TMRx_CNT_END 减 1 描述 保留 FIFO 数据寄存器 复位值 28h0 描述 DMA 数据缓冲区当前地址 可以作为已转换次数的计算, 计算方法为: COUNT = ( TMR_DMA_NOW TMR_DMA_BEG ) / 4 复位值 描述 DMA 数据缓冲区开始地址 即 PWM 进行数据发送或者捕获模式 下,开始捕获到的数据从此缓冲区 地址开始,该地址必须 4 字节对齐 复位值 16h0 16h0 68 CH563 中文手册 DMA 结束缓冲区地址(R16_TMRx_DMA_END): 名称 位 访问 TMRx_DMA_END [15:0] RW 描述 DMA 数据缓冲区结束地址 即 PWM 进行数据发送或者捕获模式 下,开始捕获到的数据至此缓冲区 地址结束,该地址必须 4 字节对齐 复位值 16h0 11.3 TIMx 功能 11.3.1 定时、计数功能 CH563 的 4 个定时器,每一个支持最长定时时间为 2^28 个时钟周期。如果系统时钟周期为 100M, 则最长定时时间为:10ns*2^28 ≈ 2.68s。如果系统时钟低于 100M,则定时时间更长。 4 个定时器都有独立的中断,每一个中断支持 FIQ 中断和 IRQ 中断。 定时功能寄存器初始化如下: (1)、设置寄存器 R32_TMR_CNT_END 为需要定时的时间值; 具体计算方法为:Time = Pclk * R32_TMR_CNT_END (2)、设置寄存器 R8_TMR_CTRL_MOD 中的 RB_TMR_MODE_IN 位为为 0,RB_TMR_ALL_CLEAR 位为 0; (3)、将寄存器 R8_TMR_CTRL_MOD 的 RB_TMR_COUNT_EN 位置 1,启动定时器功能; (4)、定时时间结束时,寄存器 R8_INT_FLAG_0 的 RB_IF_TMR 位将置 1。 11.3.2 PWM 功能 CH563 芯片的 4 个定时器,均具有 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_TMR_CNT_END,最小值为 1,该寄存器的值必须大于等于 R32_TMR_FIFO 寄存器的值; (2)、设置数据寄存器 R32_TMR_FIFO,最小值为 0,对应占空比 0%,最大值同 R32_TMR_CNT_END, 对应占空比 100%,支持连续动态数据(DMA) ,可以模仿出特殊波形; (3)、将模式设置寄存器(R8_TMRx_CTRL_MOD)中的 RB_TMR_MODE_IN 位清 0,启用 PWM 模式;同时 将 RB_TMR_ALL_CLEAR 位清 0 强制清除 FIFO 和 COUNT;如果需要设置重复次数,则根据需要设置 RB_TMR_PWM_REPEAT 域。如果当前定时器是 TIM0 或 TIM1,则需要将 RB_TMR_MODE_NRZI 位清 0,如果 当前定时器是 TIM3,则需要将 RB_TMR3_MODE_COUNT 位清 0; (4)、将模式设置寄存器(R8_TMRx_CTRL_MOD)中的 RB_TMR_COUNT_EN 位和 RB_TMR_OUT_EN 位置 1, 开启 PWM 功能; (5)、将 PWM 对应的的 I/O 引脚设置为输出; (6)、如果需要启用中断则设置相应的中断使能寄存器位; (7)、PWM 完成后,如果开启中断则产生相对应的定时器中断,同时通过读取 TMR_INT_FLAG 寄存 器了解 PWM 是否完成以及 PWM 过程中是否产生错误; 例如:设置 RB_TMR_OUT_POLAR 位为 0,R32_TMR_FIFO 为 6,R32_TMR_CNT_END 为 18,则产生 PWM 的基本时序图如下所示,其占空比为: PWM 占空比 = R32_TMR_FIFO/R32_TMR_CNT_END = 1/3 69 CH563 中文手册 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 PCLK R32_TMR_FIFO 6pclk R32_TMR_CNT_END 18 pclk RB_TMR_OUT_POLAR = 0 OUTPUT RB_TMR_OUT_POLAR = 1 图 11-1 PWM 输出时序图 如果 RB_TMR_PWM_REPEAT 域设置为 00 则表示上述过程重复 1 次,01 表示重复 4 次,10 表示重复 8 次,11 表示重复 16 次。重复之后再取 FIFO 中的下一个数据继续。 11.3.3 捕获功能 CH563 芯片的 4 个定时器都具备捕获功能,TIM0、TIM1、TIM2 捕获功能支持 DMA 方式存储。捕获 最短时间周期可以选择 8 个时钟周期或 16 个时钟周期,捕获模式可以选择任何边沿触发开始至任何 边沿触发结束、上升沿触发开始至上升沿触发结束或下降沿触发开始至下降沿触发结束三种模式。以 下为捕获触发模式说明表: 表 11-1 捕获触发模式说明表 捕获模式选择位 (RB_TMR_CATCH_EDGE) 触发方式 图示 00 禁止捕获 无 01 边沿触发 10 下降沿至下降沿 11 上升沿至上升沿 边沿触发模式下有 2 种触发状态,可以捕获高电平宽度或低电平宽度。数据寄存器 (R32_TMR_FIFO)的有效数据最高位(位 27)为 1 表示捕获电平为高电平,反之则捕获低电平。如 果连续多组数据的位 27 都是 1(或 0) ,说明该高(或低)电平的宽度超过超时值,需多组累计。 下降沿至下降沿、或者上升沿至上升沿触发模式下,可以捕获一个输入变化周期。数据寄存器 (R32_TMR_FIFO)的有效数据最高位(位 27)为 0 表示正常采样到一个周期,为 1 则表示输入变化 周期超过超时值 R32_TMR_CNT_END,需加上后一组数据累计为单个输入变化周期。 捕获周期最短可以选择 8 个时钟周期或 16 个时钟周期,再短则忽略。具体说明如下图所示: 70 CH563 中文手册 RB_TMR_CAT_WIDTH = 1 采 样 频 率 为 Pclk 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 PCLK 输入脉冲 RB _TMR_CATCH_EDG E = 10 Pclk 01 13 Pclk 10 11 图 11-2 捕获周期为 8 个时钟周期 如上图所示,每个时钟周期内采样一次, 当 RB_TMR_CATCH_EDGE = 2b01 时,设置为边沿触发采样,采样到的时间宽度为 10Pclk; 当 RB_TMR_CATCH_EDGE = 2b10 时,设置为下降沿至下降沿采样,采样到的时间宽度为 13Pclk; 当 RB_TMR_CATCH_EDGE = 2b11 时,设置为上升沿至上升沿采样,采样到的时间宽度为 0(由于输入脉 冲的两个上升沿时间为 6 个时钟周期,低于当前设置的最小捕获脉冲宽度)。 RB_TMR_CAT_WIDTH = 0 采 样 频 率 为 Pclk 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 PCLK 输入脉冲 RB _TMR_CATCH_EDG E = 18 Pclk 01 10 20 Pclk 11 图 11-3 捕获周期为 16 个时钟周期 如上图所示,每个时钟周期内采样一次, CH563 中文手册 71 当 RB_TMR_CATCH_EDGE = 2b01 时,设置为边沿触发采样,采样到的时间宽度为 18Pclk; 当 RB_TMR_CATCH_EDGE = 2b10 时,设置为下降沿至下降沿采样,采样到的时间宽度为 0; 当 RB_TMR_CATCH_EDGE = 2b11 时,设置为上升沿至上升沿采样,采样到的时间宽度为 20Pclk。 捕获模式操作步骤: (1)、设置寄存器 R32_TMR_CNT_END 用于设定捕获超时时间,默认最大超时时间为 2^28 个时钟周 期,建议设置合理的超时,避免输入长时间无变化时长时间无数据,如果在最大超时时间内没有检测 到电平变化,则 R32_TMR_FIFO 寄存器的位 27 置 1; (2)、将捕获对应的 I/O 引脚方向设置为输入; (3)、将模式设置寄存器(R8_TMRx_CTRL_MOD)的 RB_TMR_MODE_IN 位置 1,同时 RB_TMR_ALL_CLEAR 位清 0,用于清除 FIFO 和 COUNT。如果当前定时器是 TIM3,则将 RB_TMR3_MODE_COUNT 位清 0,如果 当前定时器是 TIM0 或 TIM1,则将 RB_TMR_MODE_NRZI 位清 0。根据捕获精度需要,可以将 RB_TMR_CAT_WIDTH 置 1 或清 0,同时设置 RB_TMR_CATCH_EDGE 位选择捕获模式; (4)、如果需要启用中断,则将寄存器 R8_INT_EN_IRQ_0 中的 RB_IE_IRQ_TMR 位置 1,启动定时 器中断; (5)、如果需要采用 DMA 方式保存捕获的数据,则需要将寄存器 R16_TMR_DMA_BEG 设置为存储捕 获数据缓冲区的首地址,将寄存器 R16_TMR1_DMA_END 设置为存储捕获数据缓冲区的结束地址; (6)、将寄存器 R8_TMR_CTRL_MOD 的 RB_TMR_COUNT_EN 位置 1,启动捕获功能; (7)、捕获完成后,寄存器 R8_INT_FLAG_0 中的 RB_IF_TMR 位将置 1,同时寄存器 R8_TMR_INT_FLAG 会产生相应的中断状态。默认捕获的数据存放在寄存器 R32_TMR_FIFO 中,如果采用 DMA 数据传输, 则捕获到的数据自动存放在 DMA 设置的数据缓冲区中。 72 CH563 中文手册 第 12 章 模数转换器 ADC 12.1 ADC 简介 CH563 芯片具有 1 个 10 位逐次逼近型模拟数字转换器。该模拟数字转换器具有 3 个通道,每个 通道转换均具有 DMA 功能。 ADC 特性: (1)、10 位分辨率; (2)、ADC 输入电压范围:0
CH563L 价格&库存

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

免费人工找货