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

  • 发资料

  • 发帖

  • 提问

  • 发视频

创作活动
SWM320VET7-50

SWM320VET7-50

  • 厂商:

    SYNWIT(华芯微特)

  • 封装:

    LQFP100_14X14MM

  • 描述:

    32位ARM CortexTM-M4内核 2.2~3.6V 最高工作频率125MHz 512KB flash 128KB SRAM

  • 数据手册
  • 价格&库存
SWM320VET7-50 数据手册
SWM320 系列 ARM®CortexTM-M4 32 位微处理器 SWM320 系列 MCU 数据手册 华芯微特科技有限公司 Synwit Technology Co., Ltd. 1 Version 1.02 SWM320 系列 目 1 2 3 4 5 6 7 8 9 录 概述........................................................................................................................................... 6 特性........................................................................................................................................... 6 选型指南................................................................................................................................... 8 功能方框图............................................................................................................................... 9 管脚配置................................................................................................................................. 10 5.1 LQFP64 ....................................................................................................................... 10 5.2 LQFP100 ..................................................................................................................... 11 5.3 管脚描述..................................................................................................................... 12 功能描述................................................................................................................................. 20 6.1 存储器映射................................................................................................................. 20 6.2 中断控制器................................................................................................................. 22 6.3 系统定时器................................................................................................................. 26 6.4 系统控制器................................................................................................................. 27 6.5 系统管理(SYSCON) ............................................................................................. 29 6.6 引脚功能配置(PORTCON) .................................................................................. 45 6.7 通用 I/O(GPIO) ..................................................................................................... 86 6.8 加强型定时器(TIMER) ........................................................................................ 90 6.9 看门狗定时器(WDT)............................................................................................ 96 6.10 UART 接口控制器(UART) .................................................................................. 99 6.11 I2C 总线控制器........................................................................................................ 109 6.12 串行外设接口(SPI)控制器 ............................................................................. 118 6.13 脉冲宽度调制(PWM)发生器 ......................................................................... 126 6.14 模拟数字转换器(ADC) .................................................................................. 149 6.15 直接内存存取(DMA)控制器.......................................................................... 161 6.16 局域网控制器(CAN) ...................................................................................... 166 6.17 实时时钟(RTC) ............................................................................................... 185 6.18 CRC 计算单元(CRC) .......................................................................................... 190 6.19 SRAM 控制器(SRAMC) .................................................................................... 193 6.20 NORFLASH 控制器(NORFLC) ......................................................................... 196 6.21 LCD 控制器(LCDC) ........................................................................................... 201 6.22 SDIO 接口(SDIO) ............................................................................................... 208 6.23 SDRAM 控制器(SDRAMC) ............................................................................... 225 6.24 ISP 及 FLASH 操作 ................................................................................................. 231 典型应用电路....................................................................................................................... 234 电气特性............................................................................................................................... 234 8.1 绝对最大额定值....................................................................................................... 234 8.2 DC 电气特性 ............................................................................................................ 235 8.3 AC 电气特性 ............................................................................................................ 235 8.4 模拟器件特性........................................................................................................... 236 封装信息............................................................................................................................... 238 9.1 LQFP64 ..................................................................................................................... 238 2 Version 1.02 SWM320 系列 9.2 LQFP100 ................................................................................................................... 239 图目录 图 图 图 图 图 图 图 图 图 图 图 图 图 图 图 图 图 图 图 图 图 图 图 图 图 图 图 图 图 图 图 图 图 图 图 图 图 图 图 4-1 功能方框图 .................................................................................................................. 9 5-1 SWM320RET7 封装管脚配置 .................................................................................. 10 5-2 SWM320VET7 封装管脚配置 .................................................................................. 11 6-1 时钟连接图 ................................................................................................................ 30 6-2 引脚配置结构图 ....................................................................................................... 47 6-3 定时器工作示意图 .................................................................................................... 91 6-4 计数器工作示意图 .................................................................................................... 92 6-5 级联模式工作示意图 ................................................................................................ 92 6-6 单次捕捉高电平脉冲 ................................................................................................ 93 6-7 单次捕捉低电平脉冲 ................................................................................................ 93 6-8 WDT 配置为 reset 模式波形图 ................................................................................. 97 6-9 WDT 配置为中断模式波形图 .................................................................................. 97 6-10 UART 结构图 ........................................................................................................... 99 6-11 AUTOBAUDBITS 配置图 ..................................................................................... 101 6-12 Break 信号不够长示意图 ...................................................................................... 102 6-13 Break 信号恰好够长示意图 .................................................................................. 103 6-14 Break 信号足够长示意图 ...................................................................................... 103 6-15 I2C 通信示意图 ...................................................................................................... 109 6-16 主机发送/从机接收流程 ...................................................................................... 112 6-17 主机接收/从机发送流程 ...................................................................................... 113 6-17 SPI 控制器结构示意图.......................................................................................... 118 6-18 CPOL=0,CPHA=0 输出波形 .............................................................................. 119 6-19 CPOL=0,CPHA=1 输出波形 .............................................................................. 119 6-20 CPOL=1,CPHA=0 输出波形 .............................................................................. 119 6-21 CPOL=1,CPHA=1 输出波形 .............................................................................. 120 6-22 SSI 模式单次输出波形.......................................................................................... 120 6-23 SSI 模式连续输出波形.......................................................................................... 120 6-24 独立模式下初始电平配置示意图......................................................................... 126 6-25 互补模式下初始电平设置示意图........................................................................ 127 6-26 PWM 独立模式起始输出低电平示意图 .............................................................. 128 6-27 PWM 独立模式起始输出高电平示意图 .............................................................. 128 6-28 未开启死区的互补模式 ....................................................................................... 129 6-29 开启死区的互补模式 ............................................................................................ 129 6-30 中心对称模式 ........................................................................................................ 129 6-31 中心对称互补模式 ............................................................................................... 130 6-32 PWM 触发 ADC 采样示意图 ............................................................................... 131 6-33 PWM 独立模式下高电平结束中断示意图 .......................................................... 131 6-34 PWM 独立模式下新周期起始中断示意图 .......................................................... 132 6-35 PWM 中心对称模式下新周期起始中断示意图 .................................................. 132 3 Version 1.02 SWM320 系列 图 6-36 PWM 中心对称互补模式下新周期起始中断示意图 .......................................... 133 图 6-37 输出屏蔽功能示意图 ............................................................................................ 133 图 6-39 触发 ADC 采样示意图 .......................................................................................... 150 图 6-40 SAR ADC 多通道连续采样示意图....................................................................... 151 图 6-41 DMA 模块结构示意图 .......................................................................................... 161 图 6-42 DMA 访问外设握手时序示意图 .......................................................................... 162 图 6-43 CRC 结构框图 ....................................................................................................... 190 图 6-44 SRAMC 模块结构示意图 ..................................................................................... 193 图 6-45 SRAMC 读操作时序图 ......................................................................................... 194 图 6-46 SRAMC 写操作时序图 ......................................................................................... 195 图 6-47 NORFLC 模块结构示意图 .................................................................................... 196 图 6-48 NORFLC 读操作时序图........................................................................................ 197 图 6-49 NORFLC 写操作时序图........................................................................................ 198 图 6-50 LCDC 模块结构示意图 ......................................................................................... 202 图 6-51 LCDC 模块 MPU 接口时序图 ............................................................................... 203 图 6-52 LCDC 模块 SYNC 接口时序图 ............................................................................. 203 图 6-53 SDIO 模块结构框图 .............................................................................................. 209 图 6-54 SDIO 使用 DMA 传输示意图 ............................................................................... 211 图 6-55 SDIO 不使用 DMA 传输示意图 ........................................................................... 212 图 6-56 SDIO 同步中止传输示意图 .................................................................................. 214 图 6-57 SDIO 写周期时序图 .............................................................................................. 214 图 6-58 SDIO 读周期时序图 .............................................................................................. 215 图 6-59 SDIO 暂停/继续时序图 ......................................................................................... 215 图 6-60 SDRAMC 模块结构框图....................................................................................... 225 图 6-61 SDRAMC 写访问周期示意图............................................................................... 226 图 6-62 SDRAMC 读访问周期示意图............................................................................... 227 图 7-1 典型应用电路图 ..................................................................................................... 234 图 9-1 LQFP64 封装............................................................................................................ 238 图 9-2 LQFP100 封装.......................................................................................................... 239 表格目录 表格 表格 表格 表格 表格 表格 表格 表格 表格 表格 3-1 SWM320 系列 MCU 选型表 ................................................................................... 8 6-1 存储器映射 ............................................................................................................ 20 6-2 中断编号及对应外设 ........................................................................................... 22 6-3 SRAMC 模块数据接口 ....................................................................................... 193 6-4 SRAMC 模块传输宽度 ....................................................................................... 194 6-5 NORFLC 模块数据接口...................................................................................... 197 6-6 LCDC 模块数据接口 ........................................................................................... 203 6-7 SDIO 模块数据接口 ............................................................................................ 210 6-8 SDIO 命令格式 .................................................................................................... 210 6-9 SDRAMC 模块数据接口..................................................................................... 226 4 Version 1.02 SWM320 系列 表格 表格 表格 表格 8-1 绝对最大额定值 .................................................................................................. 234 8-2 DC 电气特性( Vdd-Vss = 3.3V, Tw =25℃) ........................................................ 235 8-3 内部振荡器特征值 ............................................................................................. 235 8-4 SAR ADC 特征值 ................................................................................................ 236 5 Version 1.02 SWM320 系列 1 概述 TM R Cortex -M4 的 32 位微控制器。具有高性能、低功耗、 SWM320 是一款基于 ARM○ 代码密度大等突出特点,适用于工业控制、白色家电、电机驱动等诸多应用领域。 TM R Cortex -M4 控制器, SWM320 内嵌 ARM○ 片上包含精度为 1%以内的 20MHz/40MHz 时钟,可通过 PLL 倍频到 120MHz 时钟,提供多种内置 FLASH/SRAM 大小可供选择,支 持 ISP(在系统编程)操作及 IAP(在应用编程)。 外设串行总线包括 1 个 CAN 接口,多个 UART 接口、SPI 通信接口(支持主/从选择) 及 I2C 接口(支持主/从选择) 。此外还包括 1 个 32 位看门狗定时器,6 组 32 位通用定时器, 1 组 32 位专用脉冲宽度测量定时器,12 通道 16 位的 PWM 发生器, 2 个 8 通道 12 位、1MSPS 的逐次逼近型 ADC 模块, 1 个 SDIO 接口模块, TFT-LCD 液晶驱动模块以及 RTC 实时时钟、 SRAMC、SDRAMC、NORFLC 接口控制模块,同时提供欠压检测及低电压复位功能。 2 特性        内核  32 位 ARM® Cortex™-M4 内核  24 位系统定时器  工作频率最高 120MHz  硬件单周期乘法  集成嵌套向量中断控制器(NVIC),提供最多 240 个、8 级可配置优先级的中断  通过 SWD 接口烧录 内置 LDO  供电电压范围为 2.0V 至 3.6V 片上 SRAM 存储器  128KB 片上 FLASH 存储器  128KB/256KB/512KB  支持用户定制 ISP(在系统编程)更新用户程序 串行接口  UART 模块,具有独立 8 字节 FIFO,最高支持主时钟 16 分频  SPI 模块,具有 8 字节独立 FIFO,支持 SPI、SSI 协议,支持 Master/slave 模式  I2C 模块,支持 7 位、10 位地址方式,支持 Master/slave 模式  CAN 模块,支持协议 2.0A(11Bit 标识符)和 2.0B(29Bit 标识符) PWM 控制模块  12 通道 16 位 PWM 产生器  可设置高电平结束或周期开始两种条件触发中断  具有普通、互补、中心对称等多种输出模式  支持死区控制  ADC 采样触发 定时器模块  6 路 32 位通用定时器  具备独立中断 6 Version 1.02 SWM320 系列           可做计数器使用  支持输入单脉冲捕获功能  32 位看门狗定时器,溢出后可配置触发中断或复位芯片 RTC 模块  可自由设置日期(年、月、周、日)和时间(时、分、秒)  可自由设置闹钟(周、时、分、秒)  自动识别当前设置年份是否为闰年  支持 RTC 中断从 Sleep 模式下唤醒芯片 DMA 模块  支持存储器到存储器、存储器到外设、外设到外设之间的数据搬运 SRAMC 模块  支持 8 位数据位宽和 16 位数据位宽的外部 SRAM 存储颗粒  最大支持 24 位地址线 SDRAMC 模块  支持 16Bit 位宽的 SDRAM  支持兼容 PC133 标准的 SDRAM 颗粒  支持 2MB 到 64MB 的外部 SDRAM 颗粒 NORFLC 模块  支持并行 NOR FLASH 接口  支持 8 位数据位宽和 16 位数据位宽的外部 NOR FLASH 存储颗粒  最大支持 24 位地址线 SDIO 接口模块  支持标准 SDIO 接口协议 TFT-LCD 驱动模块  支持 MPU/SYNC 两种接口的外部 LCD 扩展  支持最高分辨率 1024*768,实际分辨率可以配置  输出数据宽度 16Bit  支持横屏和竖屏模式 GPIO  最多可达 100 个 GPIO  可配置 2 种 IO 模式  上拉输入  下拉输入  灵活的中断配置  触发类型设置(边沿检测、电平检测)  触发电平设置(高电平、低电平、双电平) 模拟外设  最多 2 个 12 位 8 通道高精度 SAR ADC  采样率高达 3M SPS  内建参考电压  支持 single、scan 两种模式  独立的结果寄存器  提供独立 FIFO 7 Version 1.02 SWM320 系列         可由软件、PWM、TIMER 触发  支持 DMA 欠压检测(BOD)  支持欠压检测  支持欠压中断和复位选择 时钟源  20MHz/40MHz 精度可达 1%的片内时钟源  32KHz 精度可达 5‰的片内时钟源  2~32MHz 片外晶振 温度传感器 环境  工作温度:-40℃~105℃  保存温度:-40℃~150℃  湿度等级:MSL3 封装  LQFP64  LQFP100 其他  可定制 ISP 程序 应用范围  仪器仪表  工业控制  电机驱动  白色家电  可穿戴设备 3 选型指南 表格 3-1 SWM320 系列 MCU 选型表 Part Number Flash SRAM IO Time PWM WDT RTC DMA UART I2C SPI CAN ADC r EX-M LCDC SDIO EM SWM32RET7-50 512 128 50 7 12 1 1 8 4 2 2 1 11(2) 0 0 0 SWM32VET7-50 512 128 84 7 12 1 1 8 4 2 2 1 12(2) 1 1 1 8 Version 1.02 SWM320 系列 4 功能方框图 XTALL OUT XTALH XTALL IN WDT_RST_n PIN RESETn PLL CLK/RST GEN POR SWDIO RCHF BOR Serial wire RCLF CORTEX-M4 IDSbus bus bus m0 m1 DMA ROM SRAM ahb2rom m2 s0 m3 m4 EFLASH ahb2ram SYS_CON ahb2flash TEST_CTRL s2 s4 s3 m6 s7 busmatrix s5 s8 s9 NORFLAS HC RAMC SDRAM s1 m7 s10 s11 m5 SDIO CRC s6 LCD AHB TO APB RTC WDT I2Cx2 Timerx4 SPIx2 PWMx12 APB SWCLK UARTx4 ADC_CTL ADC CANx1 TEMP_CTL TEMP sensor IOCONFIG GPIO 图 4-1 功能方框图 9 Version 1.02 M7/FUNA VSSIO C3/FUNA XI XO RST_N M2/FUNB M3/FUNA M4/FUNB M5/FUNA M6/FUNB ADC1_CH3/C4/FUNB ADC1_CH2/C5/FUNA ADC1_CH1/C6/FUNB ADC1_CH0/C7/FUNA C2/FUNB 17 32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 A10/ADC0_CH6/FUNB A9/ADC0_CH7/FUNA N3/FUNA N4/FUNB N5/FUNA N6/FUNB N7/FUNA A5/FUNA A4/FUNB 62 60 59 49 50 51 52 53 54 55 56 57 58 61 A2/FUNB A1/SWIO/FUNA A0/SWCLK/FUNB B0/FUNB/ISP A3/FUNA A12/ADC0_CH4 A11/ADC0_CH5/FUNA 63 64 SWM320 系列 5 管脚配置 5.1 LQFP64 AVDD0 CAP0 B12/WEKUP VDD33_RTC 1 48 P13/FUNA 2 47 3 46 4 45 VDD33 VSS33 CAP2 5 44 6 43 7 42 N9/FUNA N10/FUNB CAP1 AVSS1 AVDD1 8 41 9 40 10 39 P12/FUNB P11/FUNA P10/FUNB P9/FUNA P8/FUNB P7/FUNA P6/FUNB P5/FUNA P4/FUNB 11 38 P3/FUNA 12 37 ADC1_CH6/N2/FUNB 13 36 ADC1_CH5/N1/FUNA ADC1_CH4/N0/FUNB 14 35 15 34 VDDIO 16 33 P2/FUNB P1/FUNA P0/FUNB M0/FUNB M1/FUNA 图 5-1 SWM320RET7 封装管脚配置 10 Version 1.02 SWM320 系列 ADC0_CH3 ADC0_REFP CAP0 B12/WAKEUPIO RTC_VDD N14/LCD_D14/FUNB N13/LCD_D13/FUNA N12/LCD_D12/FUNB N11/LCD_D11/FUNA VDD33 VSS33 CAP2 N9/LCD_D9/FUNA 76 77 78 79 80 81 82 83 85 84 86 N16/LCD_RD/FUNB N17/LCD_CSN/FUNA N18/LCD_RS N19/LCD_WNR C1/FUNA VSSIO A5/FUNA A4/FUNB A3/FUNA A2/FUNB A1/SWDIO/FUNA A0/SWCLK/FUNB B0/FUNB/ISP P23/ADDR23/FUNA/HB 87 88 89 90 N7/LCD_D7/FUNA N8/LCD_D8/FUNB N15/LCD_D15 91 92 93 94 96 95 97 98 99 100 A12/ADC0_CH4 A11/ADC0_CH5/FUNA A10/ADC0_CH6/FUNB A9/ADC0_CH7/FUNA N3/LCD_D3/FUNA N4/LCD_D4/FUNB N5/LCD_D5/FUNA N6/LCD_D6/FUNB 5.2 LQFP100 1 75 2 74 3 73 4 72 P22/ADDR22/FUNB/LB P21/ADDR21/MB1/FUNA P20/ADDR20/MB0/FUNB P19/ADDR19/FUNA P18/ADDR18/FUNB P17/ADDR17/UDQ/FUNA P16/ADDR16/LDQ/FUNB P15/ADDR15/MRASN/FUNA 5 71 6 70 7 69 8 68 9 67 P14/ADDR14/MCASN/FUNB 10 66 11 65 P13/ADDR13/MCLK/FUNA P12/ADDR12/SD_DET/FUNB 12 64 P11/ADDR11/SD_CLK/FUNA 13 63 N10/LCD_D10/FUNB 14 62 CAP1 15 61 P10/ADDR10/SD_CMD/FUNB P9/ADDR9/SD_DATA0/FUNA P8/ADDR8/SD_DATA1/FUNB 50 49 48 47 46 P7/ADDR7/SD_DATA2/FUNA M14/DATA1/FUNB M15/DATA0/FUNA M16/OEN/FUNB M17/WEN/FUNA M18/NORFLASH_CEN/FUNB M19/MCSN0/FUNA M20/SRAM_CSN/FUNB M21/MCKE/FUNA VDDIO C3/FUNA XHIN XHOUT RESET M2/DATA13/FUNB M3/DATA12/FUNA M4/DATA11/FUNB M5/DATA10/FUNA M6/DATA9/FUNB M7/DATA8/FUNA M8/DATA7/FUNB M9/DATA6/FUNA M10/DATA5/FUNB 45 P0/ADDR0/FUNB M0/DATA15/FUNB M1/DATA14/FUNA 44 51 43 C2/FUNB 25 42 C7/ADC1_CH0/FUNA 52 41 P1/ADDR1/FUNA 53 24 40 54 23 M12/DATA3/FUNB M13/DATA2/FUNA 22 C6/ADC1_CH1/FUNB M11/DATA4/FUNA C5/ADC1_CH2/FUNA 39 P4/ADDR4/SD_DATA5/FUNB P3/ADDR3/SD_DATA6/FUNA P2/ADDR2/SD_DATA7/FUNB 38 C4/ADC1_CH3/FUNB 55 37 56 21 36 57 20 34 19 35 N1/ADC1_CH5/LCD_D1/FUNA N0/ADC1_CH4/LCD_D0/FUNB 32 P5/ADDR5/SD_DATA4/FUNA 33 58 31 18 29 P6/ADDR6/SD_DATA3/FUNB N2/ADC1_CH6/LCD_D2/FUNB 30 59 28 60 17 26 16 27 AVSS1 AVDD1 图 5-2 SWM320VET7 封装管脚配置 11 Version 1.02 SWM320 系列 5.3 管脚描述 可复用功能 类型 描述 320VET7 管脚名称 320RET7 管脚号 / 1 ADC0_CH3 —— I ADC0_CH3:ADC0 通道 3 输入引脚; / 2 ADC0_REFP —— I ADC0_REFP:ADC0 参考引脚; AVDD0 —— I AVDD0:ADC0 供电引脚; —— S CAP0:ADC0 电容滤波脚,对地 IUF; 1 2 3 CAP0 3 4 B12 WAKE UP B12:数字 GPIO 功能引脚; I/O WAKE UP:深睡眠唤醒引脚; 4 5 VDD33_RTC / 6 N14 —— LCD_D14 VDD33_RTC:RTC 电源功能引脚; S N14:数字 GPIO 功能引脚; I/O LCD_D14:LCD 数据输出脚 FUNB FUNB:FUNCTION_B 对应功能引脚 / 7 N13 LCD_D13 N13:数字 GPIO 功能引脚; I/O LCD_D13:LCD 数据输出脚 FUNA FUNA:FUNCTION_A 对应功能引脚 / 8 N12 LCD_D12 N12:数字 GPIO 功能引脚; I/O LCD_D12:LCD 数据输出脚 FUNB FUNB:FUNCTION_B 对应功能引脚 / 9 N11 LCD_D11 N11:数字 GPIO 功能引脚; I/O LCD_D11:LCD 数据输出脚 FUNA FUNA:FUNCTION_A 对应功能引脚 5 10 VDD33 —— S VDD33:芯片主电源功能引脚; 6 11 VSS33 —— S VSS33:芯片 IO 地功能引脚; 7 12 CAP2 —— S CAP2:电容滤波脚,对地 IUF; 8 13 N9 LCD_D9 N9:数字 GPIO 功能引脚; I/O LCD_D9:LCD 数据输出脚 FUNA FUNA:FUNCTION_A 对应功能引脚 9 14 N10 LCD_D10 N10:数字 GPIO 功能引脚 I/O LCD_D10:LCD 数据输出脚 FUNB FUNB:FUNCTION_B 对应功能引脚 10 15 CAP1 —— S CAP1:ADC1 电容滤波脚,对地 IUF 11 16 AVSS1 —— S AVSS1:ADC1 模拟地引脚 12 17 AVDD1 —— S AVDD1:ADC1 模拟供电引脚; 13 18 N2 ADC1_CH6 N2:数字 GPIO 功能引脚 I/O LCD_D2 ADC1_CH6:ADC1 通道 6 输入引脚 FUNB LCD_D2:LCD 数据输出脚 FUNB:FUNCTION_B 对应功能引脚 12 Version 1.02 SWM320 系列 14 19 N1 ADC1_CH5 N1:数字 GPIO 功能引脚 I/O LCD_D1 ADC1_CH5:ADC1 通道 5 输入引脚 FUNA LCD_D1:LCD 数据输出脚 FUNA:FUNCTION_A 对应功能引脚 15 20 N0 ADC1_CH4 N0:数字 GPIO 功能引脚 I/O LCD_D0 ADC1_CH4:ADC1 通道 4 输入引脚 FUNB LCD_D0:LCD 数据输出脚 FUNB:FUNCTION_B 对应功能引脚 16 / VDDIO 17 21 C4 VDDIO ADC1_CH3 VDDIO:芯片 IO 电源功能引脚 S C4:数字 GPIO 功能引脚 I/O ADC1_CH3:ADC1 通道 3 输入引脚 FUNB FUNB:FUNCTION_B 对应功能引脚 18 22 C5 ADC1_CH2 C5:数字 GPIO 功能引脚 I/O ADC1_CH2:ADC1 通道 2 输入引脚 FUNA FUNA:FUNCTION_A 对应功能引脚 19 23 C6 ADC1_CH1 C6:数字 GPIO 功能引脚; I/O ADC1_CH1:ADC1 通道 1 输入引脚; FUNB FUNB:FUNCTION_B 对应功能引脚 20 24 C7 ADC1_CH0 C7:数字 GPIO 功能引脚 I/O ADC1_CH0:ADC1 通道 0 输入引脚 FUNA FUNA:FUNCTION_A 对应功能引脚 21 25 C2 FUNB C2:数字 GPIO 功能引脚; I/O FUNB:FUNCTION_B 对应功能引脚 22 26 C3 FUNA C3:数字 GPIO 功能引脚 I/O FUNA:FUNCTION_A 对应功能引脚 23 27 XHIN —— I/O XHIN:外部高频晶振输入; 24 28 XHOUT —— I/O XHOUT:外部高频晶振输出; 25 29 RESET —— I/O RESET:系统复位引脚; 26 30 M2 DATA13 I/O M2:数字 GPIO 功能引脚; DATA13:NORFLASH/SDRAM/RAM 数据输出引 FUNB 脚; FUNB:FUNCTION_B 对应功能引脚 27 31 M3 DATA12 M3:数字 GPIO 功能引脚 I/O DATA12:NORFLASH/SDRAM/RAM 数据输出引 FUNA 脚 FUNA:FUNCTION_A 对应功能引脚 28 32 M4 DATA11 M4:数字 GPIO 功能引脚; I/O DATA11:NORFLASH/SDRAM/RAM 数据输出引 FUNB 脚; FUNB:FUNCTION_B 对应功能引脚 29 33 M5 DATA10 M5:数字 GPIO 功能引脚 I/O DATA10:NORFLASH/SDRAM/RAM 数据输出引 FUNA 13 Version 1.02 SWM320 系列 脚 FUNA:FUNCTION_A 对应功能引脚 30 34 M6 DATA9 M6:数字 GPIO 功能引脚; I/O DATA9:NORFLASH/SDRAM/RAM 数据输出引 FUNB 脚; FUNB:FUNCTION_B 对应功能引脚 31 35 M7 DATA8 M7:数字 GPIO 功能引脚 I/O DATA8:NORFLASH/SDRAM/RAM 数据输出引 FUNA 脚 FUNA:FUNCTION_A 对应功能引脚 32 / VSSIO VSSIO S VSSIO:芯片 IO 地功能引脚 / 36 M8 DATA7 I/O M8:数字 GPIO 功能引脚; DATA7:NORFLASH/SDRAM/RAM 数据输出引 FUNB 脚; FUNB:FUNCTION_B 对应功能引脚 / 37 M9 DATA6 M9:数字 GPIO 功能引脚 I/O DATA6:NORFLASH/SDRAM/RAM 数据输出引 FUNA 脚 FUNA:FUNCTION_A 对应功能引脚 / 38 M10 DATA5 M10:数字 GPIO 功能引脚; I/O DATA5:NORFLASH/SDRAM/RAM 数据输出引 FUNB 脚; FUNB:FUNCTION_B 对应功能引脚 / 39 M11 DATA4 M11:数字 GPIO 功能引脚 I/O DATA4:NORFLASH/SDRAM/RAM 数据输出引 FUNA 脚 FUNA:FUNCTION_A 对应功能引脚 / 40 M12 DATA3 M12:数字 GPIO 功能引脚; I/O DATA3:NORFLASH/SDRAM/RAM 数据输出引 FUNB 脚; FUNB:FUNCTION_B 对应功能引脚 / 41 M13 DATA2 M13:数字 GPIO 功能引脚 I/O DATA2:NORFLASH/SDRAM/RAM 数据输出引 FUNA 脚 FUNA:FUNCTION_A 对应功能引脚 / 42 M14 DATA1 M14:数字 GPIO 功能引脚 I/O DATA1:NORFLASH/SDRAM/RAM 数据输出引 FUNB 脚 FUNB:FUNCTION_B 对应功能引脚 / 43 M15 DATA0 M15:数字 GPIO 功能引脚 I/O DATA0:NORFLASH/SDRAM/RAM 数据输出引 FUNA 脚 14 Version 1.02 SWM320 系列 FUNA:FUNCTION_A 对应功能引脚 / 44 M16 OEN M16:数字 GPIO 功能引脚 I/O OEN:NORFLASH/SDRAM/RAM 输出使能引脚 FUNB FUNB:FUNCTION_B 对应功能引脚 / 45 M17 WEN M17:数字 GPIO 功能引脚 I/O WEN:NORFLASH/SDRAM/RAM 写使能引脚 FUNA FUNA:FUNCTION_A 对应功能引脚 / 46 M18 NORFLASH_ M18:数字 GPIO 功能引脚; I/O CEN NORFLASH_CEN:外部 NORFLASH 功能选通引 FUNB 脚; FUNB:FUNCTION_B 对应功能引脚 / 47 M19 MCSN0 M19:数字 GPIO 功能引脚; I/O MCSN0: SDRAM 片选功能引脚 FUNA FUNA:FUNCTION_A 对应功能引脚 / 48 M20 SRAM_CSN M20:数字 GPIO 功能引脚; I/O SRAM_CSN:外部 SRAM 功能选通引脚; FUNB FUNB:FUNCTION_B 对应功能引脚 / 49 M21 MCKE M21:数字 GPIO 功能引脚; I/O MCKE:SDRAM 时钟使能功能引脚 FUNA FUNA:FUNCTION_A 对应功能引脚 / 50 VDDIO VDDIO S 33 51 M1 DATA14 I/O VDDIO:芯片 IO 电源功能引脚; M1:数字 GPIO 功能引脚; DATA14:NORFLASH/SDRAM/RAM 数据输出引 FUNA 脚; FUNA:FUNCTION_A 对应功能引脚 34 52 M0 DATA15 M0:数字 GPIO 功能引脚; I/O DATA15:NORFLASH/SDRAM/RAM 数据输出引 FUNB 脚; FUNB:FUNCTION_B 对应功能引脚 35 53 P0 ADDR0 P0:数字 GPIO 功能引脚; I/O ADDR0:NORFLASH/SDRAM/RAM 地址引脚; FUNB FUNB:FUNCTION_B 对应功能引脚 36 54 P1 ADDR1 P1:数字 GPIO 功能引脚; I/O ADDR1:NORFLASH/SDRAM/RAM 地址引脚; FUNA FUNA:FUNCTION_A 对应功能引脚 37 55 P2 ADDR2 P2:数字 GPIO 功能引脚; I/O SD_DATA7 ADDR2:NORFLASH/SDRAM/RAM 地址引脚; FUNB SD_DATA7:SD 卡数据功能引脚 FUNB:FUNCTION_B 对应功能引脚 38 56 P3 ADDR3 P3:数字 GPIO 功能引脚; I/O SD_DATA6 ADDR3:NORFLASH/SDRAM/RAM 地址引脚; FUNA SD_DATA6:SD 卡数据功能引脚 15 Version 1.02 SWM320 系列 FUNA:FUNCTION_A 对应功能引脚 39 57 P4 ADDR4 P4:数字 GPIO 功能引脚; I/O SD_DATA5 ADDR4:NORFLASH/SDRAM/RAM 地址引脚; FUNB SD_DATA5:SD 卡数据功能引脚 FUNB:FUNCTION_B 对应功能引脚 40 58 P5 ADDR5 P5:数字 GPIO 功能引脚; I/O SD_DATA4 ADDR5:NORFLASH/SDRAM/RAM 地址引脚; FUNA SD_DATA4:SD 卡数据功能引脚 FUNA:FUNCTION_A 对应功能引脚 41 59 P6 ADDR6 P6:数字 GPIO 功能引脚; I/O SD_DATA3 ADDR6:NORFLASH/SDRAM/RAM 地址引脚; FUNB SD_DATA3:SD 卡数据功能引脚 FUNB:FUNCTION_B 对应功能引脚 42 60 P7 ADDR7 P7:数字 GPIO 功能引脚; I/O SD_DATA2 ADDR7:NORFLASH/SDRAM/RAM 地址引脚; FUNA SD_DATA2:SD 卡数据功能引脚 FUNA:FUNCTION_A 对应功能引脚 43 61 P8 ADDR8 P8:数字 GPIO 功能引脚; I/O SD_DATA1 ADDR8:NORFLASH/SDRAM/RAM 地址引脚; FUNB SD_DATA1:SD 卡数据功能引脚 FUNB:FUNCTION_B 对应功能引脚 44 62 P9 ADDR9 P9:数字 GPIO 功能引脚; I/O SD_DATA0 ADDR9:NORFLASH/SDRAM/RAM 地址引脚; FUNA SD_DATA0:SD 卡数据功能引脚 FUNA:FUNCTION_A 对应功能引脚 45 63 P10 ADDR10 P10:数字 GPIO 功能引脚; I/O SD_CMD ADDR10:NORFLASH/SDRAM/RAM 地址引脚; FUNB SD_CMD:SD 卡命令功能引脚 FUNB:FUNCTION_B 对应功能引脚 46 47 64 65 P11 P12 ADDR11 P11:数字 GPIO 功能引脚; I/O SD_CLK SD_CLK:SD 卡时钟功能引脚 FUNA FUNA:FUNCTION_A 对应功能引脚 ADDR12 P12:数字 GPIO 功能引脚; I/O SD_DETECT ADDR12:NORFLASH/SDRAM/RAM 地址引脚; FUNB SD_DETECT:SD 卡检测功能引脚 FUNB:FUNCTION_B 对应功能引脚 48 66 P13 ADDR13/ P13:数字 GPIO 功能引脚; I/O MCLK ADDR13:NORFLASH/RAM 地址引脚; FUNA MCLK:SDRAM 系统时钟输入引脚 FUNA:FUNCTION_A 对应功能引脚 / 67 P14 ADDR14/ P14:数字 GPIO 功能引脚; I/O ADDR14:NORFLASH/RAM 地址引脚; MCASN 16 Version 1.02 SWM320 系列 MCASN:SDRAM 列有效功能选择 FUNB FUNB:FUNCTION_B 对应功能引脚 / 68 P15 ADDR15 P15:数字 GPIO 功能引脚; I/O MRASN ADDR15:NORFLASH/RAM 地址引脚; FUNA MRASN:SDRAM 行有效功能选择 FUNA:FUNCTION_A 对应功能引脚 / 69 P16 ADDR16 P16:数字 GPIO 功能引脚; I/O LDQ ADDR16:NORFLASH/RAM 地址引脚; FUNB LDQ:SDRAM 低字节使能引脚 FUNB:FUNCTION_B 对应功能引脚 / 70 P17 ADDR17 P17:数字 GPIO 功能引脚; I/O UDQ ADDR17:NORFLASH/RAM 地址引脚; FUNA UDQ:SDRAM 高字节使能引脚; FUNA:FUNCTION_A 对应功能引脚 / 71 P18 ADDR18 P18:数字 GPIO 功能引脚; I/O ADDR18:NORFLASH/RAM 地址引脚; FUNB FUNB:FUNCTION_B 对应功能引脚 / 72 P19 ADDR19 P19:数字 GPIO 功能引脚; I/O ADDR19:NORFLASH/RAM 地址引脚; FUNA FUNA:FUNCTION_A 对应功能引脚 / 73 P20 ADDR20/ P20:数字 GPIO 功能引脚; I/O MB0 ADDR20:NORFLASH/RAM 地址引脚; FUNB MB0:SDRAM 选择 Bank 功能引脚; FUNB:FUNCTION_B 对应功能引脚 / 74 P21 ADDR21/ P21:数字 GPIO 功能引脚; I/O MB1 ADDR21:NORFLASH/RAM 地址引脚; FUNA MB1:SDRAM 选择 Bank 功能引脚; FUNA:FUNCTION_A 对应功能引脚 / 75 P22 ADDR22 P22:数字 GPIO 功能引脚; I/O FUNB ADDR22:NORFLASH/SRAM 地址引脚; LB FUNB:FUNCTION_B 对应功能引脚 LB:SRAM 对应 LB 功能引脚 / 76 P23 ADDR22 P22:数字 GPIO 功能引脚; I/O FUNA ADDR23:NORFLASH/SRAM 地址引脚; HB FUNB:FUNCTION_B 对应功能引脚 HB:SRAM 对应 HB 功能引脚 49 77 B0 ISP B0:数字 GPIO 功能引脚; I/O ISP:ISP 触发引脚,上电拉高 5ms 进入 ISP 模式 FUNB FUNB:FUNCTION_B 对应功能引脚 50 78 A0 FUNB A0:数字 GPIO 功能引脚; I/O FUNB:FUNCTION_B 对应功能引脚 51 79 A1 FUNA A1:数字 GPIO 功能引脚; I/O 17 Version 1.02 SWM320 系列 FUNA:FUNCTION_A 对应功能引脚 52 80 A2 FUNB A2:数字 GPIO 功能引脚; I/O FUNB:FUNCTION_B 对应功能引脚 53 81 A3 FUNA A3:数字 GPIO 功能引脚; I/O FUNA:FUNCTION_A 对应功能引脚 54 82 A4 FUNB A4:数字 GPIO 功能引脚; I/O FUNB:FUNCTION_B 对应功能引脚 55 83 A5 FUNA A5:数字 GPIO 功能引脚 I/O FUNA:FUNCTION_A 对应功能引脚 / 84 VSSIO VSSIO S / 85 C1 FUNA I/O VSSIO:芯片 IO 地功能引脚 C1:数字 GPIO 功能引脚 FUNA:FUNCTION_A 对应功能引脚 / 86 N19 LCD_WNR N19:数字 GPIO 功能引脚 I/O LCD_WNR:LCD 写数据功能引脚 / 87 N18 LCD_RS N18:数字 GPIO 功能引脚 I/O LCD_RS:LCD 指令/数据功能引脚 / 88 N17 LCD_CSN N17:数字 GPIO 功能引脚 I/O LCD_CSN:LCD 片选功能引脚 FUNA FUNA:FUNCTION_A 对应功能引脚 / 89 N16 LCD_RD N16:数字 GPIO 功能引脚 I/O LCD_RD:LCD 读数据功能引脚 FUNB FUNB:FUNCTION_B 对应功能引脚 / 90 N15 LCD_D15 N15:数字 GPIO 功能引脚 I/O LCD_DOUT15:LCD 数据输出脚 FUNA FUNA:FUNCTION_A 对应功能引脚 / 91 N8 LCD_D8 N8:数字 GPIO 功能引脚 I/O LCD_DOUT8:LCD 数据输出脚 FUNB FUNB:FUNCTION_B 对应功能引脚 56 92 N7 LCD_D7 N7:数字 GPIO 功能引脚 I/O LCD_DOUT7:LCD 数据输出脚 FUNA FUNA:FUNCTION_A 对应功能引脚 57 93 N6 LCD_D6 N6:数字 GPIO 功能引脚 I/O LCD_DOUT6:LCD 数据输出脚 FUNB FUNB:FUNCTION_B 对应功能引脚 58 94 N5 LCD_D5 N5:数字 GPIO 功能引脚 I/O LCD_DOUT5:LCD 数据输出脚 FUNA FUNA:FUNCTION_A 对应功能引脚 59 95 N4 LCD_D4 N4:数字 GPIO 功能引脚 I/O LCD_DOUT4:LCD 数据输出脚 FUNB FUNB:FUNCTION_B 对应功能引脚 60 96 N3 LCD_D3 N3:数字 GPIO 功能引脚 I/O LCD_DOUT3:LCD 数据输出脚 FUNA 18 Version 1.02 SWM320 系列 FUNA:FUNCTION_A 对应功能引脚 61 97 A9 ADC0_CH7 A9:数字 GPIO 功能引脚 I/O ADC0_CH7:ADC0 通道 7 输入引脚; FUNA FUNA:FUNCTION_A 对应功能引脚 62 98 A10 ADC0_CH6 A10:数字 GPIO 功能引脚 I/O ADC0_CH6:ADC0 通道 6 输入引脚; FUNB FUNB:FUNCTION_B 对应功能引脚 63 99 A11 ADC0_CH5 A11:数字 GPIO 功能引脚 I/O ADC0_CH5:ADC0 通道 5 输入引脚 FUNA FUNA:FUNCTION_A 对应功能引脚 64 100 A12 ADC0_CH4 A12:数字 GPIO 功能引脚; I/O ADC0_CH4:ADC0 通道 4 输入引脚 FUNB FUNB:FUNCTION_B 对应功能引脚 注 1: A12/B12/N18/N19 无 FUNx 配置功能 注 2: FUNA 与 FUNB 对应功能列表 FUNA 功能 0_0000:UART0_TXD 0_0001:UART1_TXD 0_0010:UART2_TXD 0_0011:UART3_TXD 0_0100:保留 0_0101:I2C0_SDA 0_0110:I2C1_SDA 0_0111:PWMA1_OUT 0_1000:PWMA3_OUT 0_1001:PWMA5_OUT 0_1010:PWMB1_OUT 0_1011:PWMB3_OUT 0_1100:PWMB5_OUT 0_1101:TIMER_PULSE_IN 0_1110:TIMER _IN1 0_1111:TIMER _IN3 1_0000:CAN_TX 1_0001:SPI0_SCK 1_0010:SPI0_MISO 1_0011:SPI1_SCK 1_0100:SPI1_MISO 1_0101:UART0_RTS 1_0110:UART1_RTS 1_0111:UART2_RTS 1_1000:UART3_RTS FUNB 功能 0_0000:UART0_RXD 0_0001:UART1_RXD 0_0010:UART2_RXD 0_0011:UART3_RXD 0_0100:保留 0_0101:I2C0_SCL 0_0110:I2C1_SCL 0_0111:PWMA0_OUT 0_1000:PWMA2_OUT 0_1001:PWMA4_OUT 0_1010:PWMB0_OUT 0_1011:PWMB2_OUT 0_1100:PWMB4_OUT 0_1101:PWM_BREAK 0_1110:TIMER_IN0 0_1111:TIMER _IN2 1_0000:CAN_RX 1_0001:SPI0_SSN 1_0010:SPI0_MOSI 1_0011:SPI1_SSN 1_0100:SPI1_MOSI 1_0101:UART0_CTS 1_0110:UART1_CTS 1_0111:UART2_CTS 1_1000:UART3_CTS 19 Version 1.02 SWM320 系列 6 功能描述 6.1 存储器映射 本系列控制器为 32 位通用控制器,提供了 4G 字节寻址空间,如下表所示。数据使用 小端格式(Little-Endian) ,各模块具体寄存器排布及操作说明在后章节有详细描述。 表格 6-1 存储器映射 起始 结束 描述 存储器 0x00000000 — FLASH(256KB/512KB) 0x20000000 — SRAM(64KB/128KB) AHB 总线外设 0x40000000 0x40000FFF SYSCON 0x40001000 0x40001FFF DMA 0x40002000 0x40002FFF LCD 0x40003000 0x40003FFF CRC 0x40004000 0x40004FFF SDIO 0x60000000 0x67FFFFFF NORFLC 0x68000000 0x6FFFFFFF RAMC 0x70000000 0x7FFFFFFF SDRAMC APB 总线外设 0x40010000 0x40010FFF IO_CONFIG 0x40011000 0x40011FFF GPIOA 0x40012000 0x40012FFF GPIOB 0x40013000 0x40013FFF GPIOC 0x40015000 0x40015FFF GPIOM 0x40016000 0x40016FFF GPION 0x40017000 0x40017FFF TIMER 0x40018000 0x40018FFF GPIOP 0x40019000 0x40019FFF WDT 0x4001A000 0x4001AFFF PWM 0x4001B000 0x4001BFFF RTC 0x4001C000 0x4001CFFF ADC0 0x4001D000 0x4001DFFF ADC1 0x4001F000 0x4001FFFF EFLASH 20 Version 1.02 SWM320 系列 起始 结束 描述 0x40020000 0x40020FFF UART0 0x40021000 0x40021FFF UART1 0x40022000 0x40022FFF UART2 0x40023000 0x40023FFF UART3 0x40028000 0x40028FFF I2C0 0x40029000 0x40029FFF I2C1 0x4002C000 0x4002CFFF SPI0 0x4002D000 0x4002DFFF SPI1 0x40030000 0x40030FFF CAN 21 Version 1.02 SWM320 系列 6.2 中断控制器 6.2.1 概述 CortexTM-M4 提供了“嵌套向量中断控制器(NVIC) ”用以管理中断事件。其具有如下 特性:  支持嵌套及向量中断  硬件完成现场的保存和恢复  动态改变优先级  确定的中断时间 更多细节请参阅“CortexTM-M4 技术参考手册”及“ARM® CoreSight 技术参考手册”。 6.2.2 中断向量表 本系列 MCU 提供了 60 个中断,其排列如下表所示。 表格 6-2 中断编号及对应外设 中断(IRQ 编号) 描述 0 GPIOA0 1 GPIOA1 2 GPIOA2 3 GPIOA3 4 GPIOA4 5 GPIOA5 6 GPIOA6 7 GPIOA7 8 GPIOB0 9 GPIOB1 10 GPIOB2 11 GPIOB3 12 GPIOB4 13 GPIOB5 14 GPIOB6 15 GPIOB7 16 GPIOC0 17 GPIOC1 18 GPIOC2 19 GPIOC3 20 GPIOC4 22 Version 1.02 SWM320 系列 中断(IRQ 编号) 描述 21 GPIOC5 22 GPIOC6 23 GPIOC7 24 GPIOM0 25 GPIOM1 26 GPIOM2 27 GPIOM3 28 GPIOM4 29 GPIOM5 30 GPIOM6 31 GPIOM7 32 DMA 33 LCD 34 NORFC 35 CAN 36 TIMER_PULSE 37 WDT 38 PWM 39 UART0 40 UART1 41 UART2 42 UART3 43 保留 44 I2C0 45 I2C1 46 SPI0 47 ADC0 48 RTC 49 ANACTRL 50 SDIO 51 GPIOA 52 GPIOB 53 GPIOC 54 GPIOM 55 GPION 56 GPIOP 57 ADC1 58 FPU 59 SPI1 60 TIMER0 23 Version 1.02 SWM320 系列 中断(IRQ 编号) 描述 61 TIMER1 62 TIMER2 63 TIMER3 64 TIMER4 65 TIMER5 6.2.3 寄存器映射 NVIC BASE:0xE000E000 名称 偏移量 位宽 类型 复位值 描述 NVIC_ISER0 0x100 32 R/W 0x00 中断 0-31 使能寄存器 NVIC_ISER1 0x104 32 R/W 0x00 中断 32-63 使能寄存器 … … … … … … NVIC_ISER7 0x11C 32 R/W 0x00 中断 224-239 使能寄存 器 NVIC_ICER0 0x180 32 R/W 0x00 中断 0-31 清除使能寄存 器 NVIC_ICER1 0x184 32 R/W 0x00 中断 32-63 清除使能寄 存器 … … … … … … NVIC_ICER7 0x19C 32 R/W 0x00 中断 224-239 清除使能 寄存器 NVIC_ISPR0 0x200 32 R/W 0x00 中断 0-31 设置挂起寄存 器 NVIC_ISPR1 0x204 32 R/W 0x00 中断 32-63 设置挂起寄 存器 … … … … … … NVIC_ISPR7 0x21C 32 R/W 0x00 中断 224-239 设置挂起 寄存器 NVIC_ICPR0 0x280 32 R/W 0x00 中断 0-31 清除挂起寄存 器 NVIC_ICPR1 0x284 32 R/W 0x00 中断 32-63 清除挂起寄 存器 … … … … … … NVIC_ICPR7 0x29C 32 R/W 0x00 中断 224-239 清除挂起 寄存器 NVIC_IPR0 0x400 3 R/W 0x00 IRQ0 优先级控制 NVIC_IPR1 0x401 3 R/W 0x00 IRQ1 优先级控制 … … … … … … NVIC_IPR239 0x4EF 3 R/W 0x00 IRQ239 优先级控制 24 Version 1.02 SWM320 系列 6.2.4 寄存器描述 NVIC_ISER(0~7) ADDR:0xE000E100+4x 位域 名称 类型 复位值 描述 31:0 SETENAx R/W 0x00 中断使能。 向对应位写 1 使能相应中断号中断,写 0 无效 读返回目前使能状态 复位值 描述 0x00 中断清除。 向对应位写 1 清除相应中断号中断使能位,写 0 无效 读返回目前使能状态 复位值 描述 0x00 中断挂起。 向对应位写 1 挂起相应中断号中断,写 0 无效 读返回目前挂起状态 复位值 描述 0x00 中断挂起清除。 向对应位写 1 清除相应中断号中断挂起标志, 写 0 无效 读返回目前挂起状态 NVIC_ ICER(0~7) ADDR:0xE000E180+4x 位域 31:0 名称 CLRENAx 类型 R/W NVIC_ ISPR(0~7) ADDR:0xE000E200+4x 位域 31:0 名称 SETPENDx 类型 R/W NVIC_ ICPRx(0~7) ADDR:0xE000E280+4x 位域 31:0 名称 SETPENDx 类型 R/W NVIC_ IPRx(0~239) ADDR:0xE000E400+4x 位域 名称 类型 复位值 描述 31:29 IPR4x_3 R/W 0x00 IRQ4x+3 优先级,共 8 级,7 为最低 28:24 REVERSED —— 0x00 保留 23:21 IPR4x_2 R/W 0x00 IRQ4x+2 优先级,共 8 级,7 为最低 20:16 REVERSED —— 0x00 保留 15:13 IPR4x_1 R/W 0x00 IRQ4x+1 优先级,共 8 级,7 为最低 12:8 REVERSED —— 0x00 保留 7:5 IPR4x_0 R/W 0x00 IRQ4x+0 优先级,共 8 级,7 为最低 25 Version 1.02 SWM320 系列 位域 名称 类型 复位值 4:0 REVERSED —— 0x00 描述 保留 6.3 系统定时器 6.3.1 概述 CortexTM-M4 核内部提供了一个 24 位系统定时器。该定时器使能后装载当前值寄存器 (SYST_CVR)内数值并向下递减至 0,并在下个时钟重新加载重载寄存器(SYST_RVR) 内数值。计数器再次递减至 0 时,计数器状态寄存器(SYST_CSR)中的标志位 COUNTERFLAG 置位,读该位可清零。 复位后,SYST_CVR 寄存器与 SYST_RVR 寄存器值均未知,因此使用前需初始化,向 SYST_CVR 写入任意值,清零同时复位状态寄存器,保证装载值为 SYST_RVR 寄存器中数 值。 当 SYST_RVR 寄存器值为 0 时,重新装载后计时器保持为 0,并停止重新装载。 细节请参阅“CortexTM-M4 技术参考手册”及“ARM® CoreSight 技术参考手册” 。 6.3.2 寄存器映射 SYSTIC BASE:0xE000E010 名称 偏移量 位宽 类型 复位值 描述 SYST_CSR 0x10 32 R/W 0x04 状态寄存器 SYST_RVR 0x14 32 R/W — 重载寄存器 SYST_CVR 0x18 32 R/W — 当前值寄存器 6.3.3 寄存器描述 SYST_CSR ADDR:0xE000E010 位域 名称 类型 复位值 描述 31:17 REVERSED — — 保留位 16 COUNTERF LAG R 0 计数器递减到 0 且该过程中本寄存器未被读取, 本位返回 1 15:2 REVERSED — — 保留位 1 TINKINT R/W 0 1:中断触发使能 0:中断触发禁能 0 ENABLE R/W 0 1:定时器使能 0:定时器禁能 26 Version 1.02 SWM320 系列 SYST_RVR ADDR:0xE000E014 位域 名称 类型 复位值 描述 31:24 REVERSED — — 保留位 23:0 RELOAD R/W — 计数器达到 0 时加载本寄存器值,写 0 终止继续 加载 SYST_CVR ADDR:0xE000E018 位域 名称 类型 复位值 描述 31:24 REVERSED — — 保留位 23:0 CURRENT R/W — 读操作返回当前计数器值,写操作清 0 该寄存器, 同时清除 COUNTERFLAG 位 6.4 系统控制器 6.4.1 概述 CrotexTM-M4 系统控制器主要负责内核管理,包括 CPUID,内核核资源中断优先级设置 及内核电源管理。 更多细节请参阅“CortexTM-M4 技术参考手册”及“ARM®CoreSight 技术参考手册”。 6.4.2 寄存器映射 SYSCTRL BASE:0xE000ED00 名称 偏移量 位宽 类型 复位值 描述 CPUID 0xD00 32 R 0x410CC200 CPUID 寄存器 ICSR 0xD04 32 R/W 0x00000000 中断控制状态寄存器 AIRCR 0xD0C 32 R/W 0xFA050000 中断与复位控制寄存器 SCR 0xD10 32 R/W 0x00000000 系统控制寄存器 SHPR2 0xD1C 32 R/W 0x00000000 系统优先级控制寄存器 2 SHPR3 0xD20 32 R/W 0x00000000 系统优先级控制寄存器 3 6.4.3 寄存器描述 CPUID ADDR:0xE000ED00 位域 名称 类型 复位值 31:24 IMPLEMENTER R 0x41 23:20 REVERSED — — 描述 ARM 分配执行码 保留位 27 Version 1.02 SWM320 系列 19:16 PART R 0xC ARMV6-M 15:4 PARTNO R 0xC20 3:0 REVISION R 0x00 读返回 0xC20 读返回 0x00 ICSR ADDR:0xE000ED04 位域 名称 类型 复位值 描述 31:29 REVERSED — — 保留位 28 PENDSVSET R/W 0 挂起 PendSV 中断,1 有效 27 PENDSVCLR WO — 写 1 清 PendSV 中断,仅写有效 26 PENDSTSET R/W 0 挂起 SysTick 中断,1 有效 25 PENDSTCLR — — 写 1 清 SysTick 中断,仅写有效 24 REVERSED — — 保留位 23 ISRPREEMPT RO 0 退出调试 halt 状态时置位,仅适用于调试 22 ISRPENDING RO 0 外部配置中断是否挂起 21 REVERSED — — 保留位 20:12 VECTPENDING R/W 0 优先级最高的挂起异常向量号 11:9 REVERSED — — 保留位 8:0 VECTACTIVE RO 0 0:线程模式 其它:当前执行异常处理向量号 AIRCR ADDR:0xE000ED0C 位域 名称 类型 复位值 描述 31:16 VECTORKEY WO — 写入时须保证 0x05FA 15:3 REVERSED — — 保留位 2 SYSRESETREQ WO 0 写 1 时复位芯片,复位时自动清除 1 VECTCLRACTIVE WO 0 置 1 时清除所有异常活动状态 0 REVERSED — — 保留位 SCR ADDR:0xE000ED10 位域 名称 类型 复位值 描述 31:5 REVERSED — — 保留位 4 SWVONPEND R/W 0 使能后,可将中断挂起过程作为唤醒事件 3 REVERSED — — 保留位 2 SLEEPDEEP R/W 0 深睡眠提醒 1 SLEEPONEXIT R/W 0 置 1 后,内核从异常状态返回后进入睡眠模 式 0 REVERSED — — 保留位 28 Version 1.02 SWM320 系列 SHPR2 ADDR:0xE000ED1C 位域 名称 类型 复位值 描述 31:30 PRI_11 R/W 0 系统处理器优先级 11:SVCall 0 为最高,3 为最低 29:0 REVERSED — — 保留位 SHPR3 ADDR:0xE000ED20 位域 名称 类型 复位值 描述 31:30 PRI_15 R/W 0 系统处理器优先级 15:SysTick 0 为最高,3 为最低 29:24 REVERSED — — 保留位 23:22 PRI_14 R/W 0 系统处理器优先级 14:PendSV 0 为最高,3 为最低 21:0 REVERSED — — 保留位 6.5 系统管理(SYSCON) 6.5.1 特性  时钟控制  工作模式选择  休眠使能  低功耗计数器设置  端口唤醒设置  BOD 掉电级别控制  复位控制及状态 6.5.2 功能 时钟源选择与控制 SWM320 具备 4 个时钟源可供使用:  内部高频振荡器(RCHF) :内部高频振荡器为片内时钟源,无需连接任何外部器件。 频率为 20MHz 或 40MHz,精度为百分之一,可提供较精确的固定频率时钟  内部低频振荡器(RCLF) :内部低频振荡器为片内时钟源,无需连接任何外部器件。 频率为 32KHZ,精度为万分之五,可提供较精确的固定频率时钟 29 Version 1.02 SWM320 系列 外部振荡器(XTAH) :外部振荡器可接 5MHz ~ 20MHz 频率  PLL 时钟:可选择内部高频时钟或者外部高频晶体振荡器作为参考时钟源产生倍频, 从而作为系统主时钟输出(注意:PLL 的输出频率最高为 120MHz) 时钟连接图如下图所示:  cortexm4_hclk clk_sel sram_hclk en en en RCLF (32KHz) scan_chain_mode scan_chain_clk 00 …… hclk dma_hclk sys_clk RCHF (20MHz) 01 XTAL (20MHz) 10 source_clk sys_clk div ahb_hclk G pclk sleep 11 fref_sel fref en PLL (120MHz) G G timer_pclk G spi_pclk G pwm_pclk G adc_ctrl_pclk G uart_pclk …… rtc_clk G i2c_pclk G analog_ctrl_pclk G gpio_pclk G rtc_pclk pwm_clk div G pwm_clk /2 G uart_refclk sdio_clk div G sdio_clk sdram_mclk div G sdram_mclk delay cell sdram_mclk_fast delay cell sdram_mclk_slow inv 图 6-1 时钟连接图 对于主时钟选择,通过 CLKSEL 寄存器 BIT[2:0],选择内部高频时钟或其他时钟: CLKSEL 寄存器 BIT[2] = 1,选择系统时钟源 1,此时 CLKSEL 寄存器 BIT[1]有效:  CLKSEL 寄存器 BIT[1] = 0 时, 选择内部 RCHF 时钟, 时钟源为 20MHz 或 40MHz (通过 HRCCR 寄存器切换)  CLKSEL 寄存器 BIT[1] = 1 时, 选择外部 XTAH 时钟, 时钟源为 5MHz 或 20MHz (换外部时钟前,需将对应引脚切换至时钟功能,且 XTAL_CON 寄存器 BIT[0] = 1)  CLKSEL 寄存器 BIT[2] = 0,选择系统时钟源 0, 此时 CLKSEL 寄存器 BIT[0]有效:  外部振荡器(XTAH) :外部振荡器可接 5MHz ~ 20MHz 频率  CLKSEL 寄存器 BIT[0] = 0 时,选择内部 RCLF 时钟,时钟源为 32KHz  CLKSEL 寄存器 BIT[0] = 1 时,选择 PLL 时钟,时钟源最高为 120MHz  注:执行时钟切换时,需要保证目标时钟使能及通路打开 30 Version 1.02 SWM320 系列 对于 ADC 时钟,当 ADC 模块 CTRL 寄存器 BIT[15] = 0 时,设置 PLL 时钟作为 ADC 转换时钟:  通过 PLLDIV 寄存器的 BIT[14~15] 选择将 VCO 输出频率 16/32/64 分频后作为 ADC 时钟基  经 BIT[9~13]设置 ADC 时钟分频系数,适当分频后作为 ADC 模块的工作时钟 PLL 配置 PLL 的输入参考时钟源可以是内部高频时钟,也可以是外部高频时钟,最大输出时钟可 设置为 120MHz。 计算公式: PLL 输出频率 = VCO / OUT_DIV VCO = 输入时钟源 / REF_DIV * 4 * FB_DIV 具体配置步骤:  通过 PLLCR 寄存器选择 PLL 参考时钟源  通过 PLLDIV 寄存器 REF_DIV 位设置输入参考时钟源分频  通过 PLLDIV 寄存器 FB_DIV 位设置 PLL 反馈分频  通过 PLLDIV 寄存器 OUT_DIV 位设置 PLL 输出分频  通过 PLLCR 寄存器 OFF 位关闭 Powerdown 模式  连续 2 次读取到 PLLLOCK 寄存器为 1 时,设置 PLLCR 寄存器 OUTEN 位使能 PLL 时钟输出 其中,PLL 输入时钟源为 5MHZ 至 20MHZ,VCO 频率典型值为 960MHZ 外设时钟控制  GPIO  TIMER  UART  I2C  SPI  WDT  SAR ADC  PWM  LCDC  CAN  NORFLC  SDIO  SRAMC  SDRAMC  CRC 上电后,以上模块均处于时钟关闭状态,需要通过设置 CLKEN 寄存器进行时钟使能, 否则访问对应模块寄存器操作无效。 休眠与唤醒 SWM320 系列提供深睡眠及浅睡眠两种模式,通过 SLEEP 寄存器进行使能操作:  深睡眠模式下,所有功能全部关断,进入低功耗模式,此状态下功耗最小。唤醒操 31 Version 1.02 SWM320 系列 作只能通过指定 wakeup 引脚下降沿或 RTC 进行唤醒唤醒。休眠过程中,需保证 wakeup 引脚电平为高。唤醒后,程序从起始处开始执行,与上电相同,但数据保 存域中的数值保持不变。  浅睡眠模式下,芯片进入保持状态,在功耗较低的前提下保持执行数据。可以通过 配置任意 I/O 引脚进行唤醒操作,也可以通过 RTC 进行唤醒操作。唤醒后,程序从 睡眠使能语句继续执行 注:浅睡眠模式使能前需保证 RCLF(32KHz)时钟为使能状态。 唤醒方式一:浅睡眠模式下,可指定任意 IO 进行唤醒操作。流程如下:  确认 RCLF(32KHz 时钟)为使能状态  配置 PxWKEN 寄存器指定位,使能相应端口对应位唤醒功能  SLEEP 寄存器 BIT[0] = 1 后,芯片进入睡眠模式  当配置端口对应位产生下降沿时,芯片被唤醒,继续执行程序  唤醒后,端口对应 PxWKSR 寄存器对应位被至 1,可通过对该位写 1 进行清除(该 位对进入休眠无影响) 唤醒方式二:浅睡眠模式下,可使用 RTC 进行唤醒操作。流程如下:  确认 RCLF(32KHz 时钟)为使能状态  配置 RTC 中断时间并使能  配置 SLEEP 寄存器 BIT[0] = 1 后,芯片进入睡眠模式  当 RTC 计数到达配置时间时,芯片被唤醒,继续执行程序 数据保存域设置 在 SYSCON 模块中,提供了 8 个 32 位寄存器,用于存储数据,  确认 RCLF(32KHz 时钟)为使能状态  配置 PxWKEN 寄存器指定位,使能相应端口对应位唤醒功能  SLEEP 寄存器 BIT[0] = 1 后,芯片进入睡眠模式  当配置端口对应位产生下降沿时,芯片被唤醒,继续执行程序  唤醒后,端口对应 PxWKSR 寄存器对应位被至 1,可通过对该位写 1 进行清除(该 位对进入休眠无影响) 6.5.3 寄存器映射 SYSCON BASE:0x40000000 名称 偏移量 类型 复位值 描述 CLKSEL 0x00 R/W 0x00 时钟选择控制寄存器 CLKDIV 0x04 R/W 0x00 时钟分频寄存器 CLKEN 0x08 R/W 0x00 时钟门控寄存器 SLEEP 0x0C R/W 0x00 系统模式控制寄存器 ISOLATION_ST 0x28 R 0x00 RTC 电源域状态寄存器 RTC_WK_CON 0x2C R/W 0x00 RTC 唤醒使能控制寄存器 PAWKEN 0x200 R/W 0x00 PORTA 唤醒使能寄存器 PBWKEN 0x204 R/W 0x00 PORTB 唤醒使能寄存器 PCWKEN 0x208 R/W 0x00 PORTC 唤醒使能寄存器 PAWKSR 0x220 R/W1C 0x00 PORTA 唤醒状态寄存器 32 Version 1.02 SWM320 系列 PBWKSR 0x224 R/W1C 0x00 PORTB 唤醒状态寄存器 PCWKSR 0x228 R/W1C 0x00 PORTC 唤醒状态寄存器 RSTCR 0x304 R/W 0x00 复位控制寄存器 RSTSR 0x308 R/W 0x01 复位状态寄存器 RTCBKP0 0x1E000 R/W 0x00 RTC 电源域备份寄存器 0 RTCBKP1 0x1E004 R/W 0x00 RTC 电源域备份寄存器 1 RTCBKP2 0x1E008 R/W 0x00 RTC 电源域备份寄存器 2 RTCBKP3 0x1E00C R/W 0x00 RTC 电源域备份寄存器 3 RTCBKP4 0x1E010 R/W 0x00 RTC 电源域备份寄存器 4 RTCBKP5 0x1E014 R/W 0x00 RTC 电源域备份寄存器 5 RTCBKP6 0x1E018 R/W 0x00 RTC 电源域备份寄存器 6 LRCCR 0x1E020 R/W 0x00 系统低频控制寄存器 HRCCR 0x31000 R/W 0x00 系统高频控制寄存器 XTALCR 0x31020 R/W 0x00 外部高频晶振控制寄存器 PLLCR 0x31024 R/W 0x00 PLL 控制寄存器 PLLDIV 0x31028 R/W 0x00 PLL 分频寄存器 PLLLOCK 0x31030 R/W 0x00 PLL 状态寄存器 BODIE 0x31034 R/W 0x00 BOD 中断使能寄存器 BODIF 0x31038 R/W 0x00 BOD 中断状态寄存器 ADC1IN7 0x3103C R/W 0x00 ADC1 模块模拟通道 7 模拟功能选 择寄存器 6.5.4 寄存器描述 CLKSEL ADDR:0x40000000 位域 名称 类型 复位值 描述 31:3 REVERSED R 0 2 SYS R/W 0x1 1 HFCK R/W 0 0 LFCK R/W 0x1 保留位 系统源时钟选择寄存器 0:选择时钟源 0 1:选择时钟源 1 时钟源 1 0: RCHF(内部高频时钟,20/40MHz) 1 : XTAH ( 外 部 高 频 晶 振 时 钟 , 5MHz~20MHz) 时钟源 0 0:RCLF(内部低频时钟,32KHz) 1:PLL(内部 PLL 时钟,最高 120MHz) CLKDIV ADDR:0x40000004 位域 名称 类型 复位值 31:6 REVERSED R 0 描述 保留位 33 Version 1.02 SWM320 系列 5:4 SDIO RW 0 3:2 SDRAM RW 0x1 1 PWM RW 0 0 SYS RW 0 SDIO CLK 时钟分频控制寄存器(基于系 统源时钟的分频) 00:1 分频 01:2 分频 10:4 分频 11:8 分频 注:SDIO 时钟频率小于 52MHz,因此需 要根据配置的系统时钟频率来决定该分频 的数值 SDRAM MCLK 时钟分频控制寄存器(基 于系统源时钟的分频) 00:1 分频 01:2 分频 10:4 分频 11:保留 PWM 时钟分频控制寄存器(基于系统源 时钟的分频) 0:1 分频 1:8 分频 系统时钟分频控制寄存器(基于系统源时 钟的分频) 0:1 分频 1:2 分频 CLKEN ADDR:0x40000008 位域 名称 类型 复位值 31 REVERSED R 0 30 ADC1 RW 0 29 SDIO RW 0 28 RAMC RW 0 27 NORFL RW 0 26 SDRAM RW 0 25 CAN RW 0 24 RTCBKP RW 0 23 CRC RW 0 22 ANAC RW 0 描述 保留位 ADC1 时钟使能 1:使能 0:禁能 SDIO 时钟使能 1:使能 0:禁能 RAMC 时钟使能 1:使能 0:禁能 NORFLASH 时钟使能 1:使能 0:禁能 SDRAM 时钟使能 1:使能 0:禁能 CAN 时钟使能 1:使能 0:禁能 RTCBKP 单元时钟使能 1:使能 0:禁能 CRC 时钟使能 1:使能 0:禁能 模拟控制单元时钟使能 34 Version 1.02 SWM320 系列 位域 名称 类型 复位值 21 GPIOP RW 0 20 LCD RW 0 19 I2C2 RW 0 18 I2C1 RW 0 17 I2C0 RW 0 16 SPI RW 0 15 REVERSED R 0 14 UART3 RW 0 13 UART2 RW 0 12 UART1 RW 0 11 UART0 RW 0 10 RTC RW 0 9 PWM RW 0 8 ADC0 RW 0 7 WDT RW 0 6 TIMR RW 0 5 GPION RW 0 4 GPIOM RW 0 3 REVERSED R 0 2 GPIOC RW 0 1 GPIOB RW 0 0 GPIOA RW 0 描述 1:使能 0:禁能 GPIO P 时钟使能 1:使能 0:禁能 LCD 时钟使能 1:使能 0:禁能 I2C2 时钟使能 1:使能 0:禁能 I2C1 时钟使能 1:使能 0:禁能 I2C0 时钟使能 1:使能 0:禁能 SPI 时钟使能 1:使能 0:禁能 保留位 UART3 时钟使能 1:使能 0:禁能 UART2 时钟使能 1:使能 0:禁能 UART1 时钟使能 1:使能 0:禁能 UART0 时钟使能 1:使能 0:禁能 RTC 时钟使能 1:使能 0:禁能 PWM 时钟使能 1:使能 0:禁能 ADC0 时钟使能 1:使能 0:禁能 WDT 时钟使能 1:使能 0:禁能 TIMER 时钟使能 1:使能 0:禁能 GPIO N 时钟使能 1:使能 0:禁能 GPIO M 时钟使能 1:使能 0:禁能 保留位 GPIO C 时钟使能 1:使能 0:禁能 GPIO B 时钟使能 1:使能 0:禁能 GPIO A 时钟使能 1:使能 0:禁能 35 Version 1.02 SWM320 系列 SLEEP ADDR:0x4000000C 位域 名称 类型 复位值 描述 31:2 REVERSED R 0 1 STOP R/W 1’b0 将该位置 1 后,系统将进入 STOP 模式 0 SLEEP R/W 1’b0 将该位置 1 后,系统将进入 SLEEP 模式 保留位 ISOLATION_ST ADDR:0x40000028 位域 名称 类型 复位值 描述 31:1 REVERSED R 0 0 ISOLATION_ST R 0 保留位 RTC 电源域隔离信号状态标志,通过读此 寄存器以确定 RTC 电源域是否处于访问 状态,只有处于访问状态时才可以对 RTC 及 RTC 电源域备份寄存器进行操作 1:RTC 电源域处于隔离状态 0:RTC 电源域处于访问状态 RTC_WK_CON ADDR:0x4000002C 位域 名称 类型 复位值 31:1 REVERSED R 0 0 RTC_WK_EN R/W 0 描述 保留位 0:禁止 RTC 唤醒功能 1:使能 RTC 唤醒功能 PAWKEN ADDR:0x40000200 位域 名称 类型 复位值 31:13 REVERSED R 0 12 PAWKEN12 R/W 0 11 PAWKEN11 R/W 0 10 PAWKEN10 R/W 0 9 PAWKEN9 R/W 0 8 PAWKEN8 R/W 0 7 PAWKEN7 R/W 0 6 PAWKEN6 R/W 0 描述 保留位 Port A12 输入唤醒使能 1:使能 0:禁能 Port A11 输入唤醒使能 1:使能 0:禁能 Port A10 输入唤醒使能 1:使能 0:禁能 Port A9 输入唤醒使能 1:使能 0:禁能 Port A8 输入唤醒使能 1:使能 0:禁能 Port A7 输入唤醒使能 1:使能 0:禁能 Port A6 输入唤醒使能 1:使能 0:禁能 36 Version 1.02 SWM320 系列 5 PAWKEN5 R/W 0 4 PAWKEN4 R/W 0 3 PAWKEN3 R/W 0 2 PAWKEN2 R/W 0 1 PAWKEN1 R/W 0 0 PAWKEN0 R/W 0 Port A5 输入唤醒使能 1:使能 0:禁能 Port A4 输入唤醒使能 1:使能 0:禁能 Port A3 输入唤醒使能 1:使能 0:禁能 Port A2 输入唤醒使能 1:使能 0:禁能 Port A1 输入唤醒使能 1:使能 0:禁能 Port A0 输入唤醒使能 1:使能 0:禁能 PBWKEN ADDR:0x40000204 位域 名称 类型 复位值 31:12 REVERSED R 0 11 PBWKEN11 R/W 0 10 PBWKEN10 R/W 0 9 PBWKEN9 R/W 0 8 PBWKEN8 R/W 0 7 PBWKEN7 R/W 0 6 PBWKEN6 R/W 0 5 PBWKEN5 R/W 0 4 PBWKEN4 R/W 0 3 PBWKEN3 R/W 0 2 PBWKEN2 R/W 0 1 PBWKEN1 R/W 0 0 PBWKEN0 R/W 0 描述 保留位 Port B11 输入唤醒使能 1:使能 0:禁能 Port B10 输入唤醒使能 1:使能 0:禁能 Port B9 输入唤醒使能 1:使能 0:禁能 Port B8 输入唤醒使能 1:使能 0:禁能 Port B7 输入唤醒使能 1:使能 0:禁能 Port B6 输入唤醒使能 1:使能 0:禁能 Port B5 输入唤醒使能 1:使能 0:禁能 Port B4 输入唤醒使能 1:使能 0:禁能 Port B3 输入唤醒使能 1:使能 0:禁能 Port B2 输入唤醒使能 1:使能 0:禁能 Port B1 输入唤醒使能 1:使能 0:禁能 Port B0 输入唤醒使能 1:使能 0:禁能 PCWKEN ADDR:0x40000208 位域 名称 类型 复位值 31:8 REVERSED R 0 描述 保留位 37 Version 1.02 SWM320 系列 7 PCWKEN7 R/W 0 6 PCWKEN6 R/W 0 5 PCWKEN5 R/W 0 4 PCWKEN4 R/W 0 3 PCWKEN3 R/W 0 2 PCWKEN2 R/W 0 1 PCWKEN1 R/W 0 0 PCWKEN0 R/W 0 Port C7 输入唤醒使能 1:使能 0:禁能 Port C6 输入唤醒使能 1:使能 0:禁能 Port C5 输入唤醒使能 1:使能 0:禁能 Port C4 输入唤醒使能 1:使能 0:禁能 Port C3 输入唤醒使能 1:使能 0:禁能 Port C2 输入唤醒使能 1:使能 0:禁能 Port C1 输入唤醒使能 1:使能 0:禁能 Port C0 输入唤醒使能 1:使能 0:禁能 PAWKSR ADDR:0x40000220 位域 名称 类型 复位值 31:13 REVERSED R 0 12 PAWKSR12 R/W1C 0 11 PAWKSR11 R/W1C 0 10 PAWKSR10 R/W1C 0 9 PAWKSR9 R/W1C 0 8 PAWKSR8 R/W1C 0 7 PAWKSR7 R/W1C 0 6 PAWKSR6 R/W1C 0 5 PAWKSR5 R/W1C 0 4 PAWKSR4 R/W1C 0 描述 保留位 Port A12 输入唤醒状态标志位 唤醒后硬件置 1,软件写 1 清除 1:唤醒 0:未唤醒 Port A11 输入唤醒状态标志位 唤醒后硬件置 1,软件写 1 清除 1:唤醒 0:未唤醒 Port A10 输入唤醒状态标志位 唤醒后硬件置 1,软件写 1 清除 1:唤醒 0:未唤醒 Port A9 输入唤醒状态标志位 唤醒后硬件置 1,软件写 1 清除 1:唤醒 0:未唤醒 Port A8 输入唤醒状态标志位 唤醒后硬件置 1,软件写 1 清除 1:唤醒 0:未唤醒 Port A7 输入唤醒状态标志位 唤醒后硬件置 1,软件写 1 清除 1:唤醒 0:未唤醒 Port A6 输入唤醒状态标志位 唤醒后硬件置 1,软件写 1 清除 1:唤醒 0:未唤醒 Port A5 输入唤醒状态标志位 唤醒后硬件置 1,软件写 1 清除 1:唤醒 0:未唤醒 Port A4 输入唤醒状态标志位 唤醒后硬件置 1,软件写 1 清除 38 Version 1.02 SWM320 系列 1:唤醒 3 PAWKSR3 R/W1C 0 2 PAWKSR2 R/W1C 0 1 PAWKSR1 R/W1C 0 0 PAWKSR0 R/W1C 0 0:未唤醒 Port A3 输入唤醒状态标志位 唤醒后硬件置 1,软件写 1 清除 1:唤醒 0:未唤醒 Port A2 输入唤醒状态标志位 唤醒后硬件置 1,软件写 1 清除 1:唤醒 0:未唤醒 Port A1 输入唤醒状态标志位 唤醒后硬件置 1,软件写 1 清除 1:唤醒 0:未唤醒 Port A0 输入唤醒状态标志位 唤醒后硬件置 1,软件写 1 清除 1:唤醒 0:未唤醒 PBWKSR ADDR:0x40000224 位域 名称 类型 复位值 描述 31:12 REVERSED R 0 保留位 11 PBWKSR11 R/W1C 0 10 PBWKSR10 R/W1C 0 9 PBWKSR9 R/W1C 0 8 PBWKSR8 R/W1C 0 7 PBWKSR7 R/W1C 0 6 PBWKSR6 R/W1C 0 5 PBWKSR5 R/W1C 0 4 PBWKSR4 R/W1C 0 3 PBWKSR3 R/W1C 0 2 PBWKSR2 R/W1C 0 Port B11 输入唤醒状态标志位 唤醒后硬件置 1,软件写 1 清除 1:唤醒 0:未唤醒 Port B10 输入唤醒状态标志位 唤醒后硬件置 1,软件写 1 清除 1:唤醒 0:未唤醒 Port B9 输入唤醒状态标志位 唤醒后硬件置 1,软件写 1 清除 1:唤醒 0:未唤醒 Port B8 输入唤醒状态标志位 唤醒后硬件置 1,软件写 1 清除 1:唤醒 0:未唤醒 Port B7 输入唤醒状态标志位 唤醒后硬件置 1,软件写 1 清除 1:唤醒 0:未唤醒 Port B6 输入唤醒状态标志位 唤醒后硬件置 1,软件写 1 清除 1:唤醒 0:未唤醒 Port B5 输入唤醒状态标志位 唤醒后硬件置 1,软件写 1 清除 1:唤醒 0:未唤醒 Port B4 输入唤醒状态标志位 唤醒后硬件置 1,软件写 1 清除 1:唤醒 0:未唤醒 Port B3 输入唤醒状态标志位 唤醒后硬件置 1,软件写 1 清除 1:唤醒 0:未唤醒 Port B2 输入唤醒状态标志位 唤醒后硬件置 1,软件写 1 清除 39 Version 1.02 SWM320 系列 1:唤醒 1 PBWKSR1 R/W1C 0 0 PBWKSR0 R/W1C 0 0:未唤醒 Port B1 输入唤醒状态标志位 唤醒后硬件置 1,软件写 1 清除 1:唤醒 0:未唤醒 Port B0 输入唤醒状态标志位 唤醒后硬件置 1,软件写 1 清除 1:唤醒 0:未唤醒 PCWKSR ADDR:0x40000228 位域 名称 类型 复位值 描述 31:8 REVERSED R 0 保留位 7 PCWKSR7 R/W1C 0 6 PCWKSR6 R/W1C 0 5 PCWKSR5 R/W1C 0 4 PCWKSR4 R/W1C 0 3 PCWKSR3 R/W1C 0 2 PCWKSR2 R/W1C 0 1 PCWKSR1 R/W1C 0 0 PCWKSR0 R/W1C 0 Port C7 输入唤醒状态标志位 唤醒后硬件置 1,软件写 1 清除 1:唤醒 0:未唤醒 Port C6 输入唤醒状态标志位 唤醒后硬件置 1,软件写 1 清除 1:唤醒 0:未唤醒 Port C5 输入唤醒状态标志位 唤醒后硬件置 1,软件写 1 清除 1:唤醒 0:未唤醒 Port C4 输入唤醒状态标志位 唤醒后硬件置 1,软件写 1 清除 1:唤醒 0:未唤醒 Port C3 输入唤醒状态标志位 唤醒后硬件置 1,软件写 1 清除 1:唤醒 0:未唤醒 Port C2 输入唤醒状态标志位 唤醒后硬件置 1,软件写 1 清除 1:唤醒 0:未唤醒 Port C1 输入唤醒状态标志位 唤醒后硬件置 1,软件写 1 清除 1:唤醒 0:未唤醒 Port C0 输入唤醒状态标志位 唤醒后硬件置 1,软件写 1 清除 1:唤醒 0:未唤醒 RSTCR ADDR:0x40000304 位域 名称 类型 复位值 31:11 REVERSED R 0 10 CAN R/W 0 9 LCD R/W 0 描述 保留位 CAN 模块复位控制 1:CAN 进行一次复位,硬件自动清零 0:无效 LCD 模块复位控制 1:LCD 进行一次复位,硬件自动清零 40 Version 1.02 SWM320 系列 0:无效 8 SDIO R/W 0 7 SDRAM R/W 0 6 SRAM R/W 0 5 NORFLASH R/W 0 4 DMA R/W 0 3 CPU R/W 0 2 PWM R/W 0 1 FLASH R/W 0 0 SYS R/W 0 SDIO 模块复位控制 1:SDIO 进行一次复位,硬件自动清零 0:无效 SDRAM 模块复位控制 1:SDRAM 进行一次复位,硬件自动清零 0:无效 SRAM 模块复位控制 1:SRAM 进行一次复位,硬件自动清零 0:无效 NORFLASH 模块复位控制 1:NORFLASH 进行一次复位,硬件自动 清零 0:无效 DMA 模块复位控制 1:DMA 进行一次复位,硬件自动清零 0:无效 CPU 复位控制 1:CPU 进行一次复位,硬件自动清零 0:无效 PWM 模块复位控制 1:PWM 进行一次复位,硬件自动清零 0:无效 FLASH CONTROL 模块复位控制 1:FLASH CONTROL 进行一次复位,硬 件自动清零 0:无效 系统软复位控制(复位芯片全局,除电池 电源域) 1:进行系统复位,硬件自动清零 0:无效 RSTST ADDR:0x40000308 位域 名称 类型 复位值 31:5 REVERSED R 0 4 SOFT R/W 0 3 WDT R/W 0 2 RST R/W 0 描述 保留位 SOFTWARE 复位状态标志寄存器 1:出现过 SOFTWARE 复位 0:未出现过 SOFTWARE 复位 硬件自动置位,写 1 清除 WDT 复位状态标志寄存器 1:出现过 WDT 复位 0:未出现过 WDT 复位 硬件自动置位,写 1 清除 RST 引脚复位状态标志寄存器 1:出现过 RST 引脚复位 0:未出现过 RST 引脚复位 41 Version 1.02 SWM320 系列 硬件自动置位,写 1 清除 1 BOD R/W 0 0 POR R/W 1 BOD 复位状态标志寄存器 1:出现过 BOD 复位 0:未出现过 BOD 复位 硬件自动置位,写 1 清除 POR 复位状态标志寄存器 1:出现过 POR 复位 0:未出现过 POR 复位 硬件自动置位,写 1 清除 RTCBKP0 ADDR:0x4001E000 位域 名称 类型 复位值 31:0 RTCBKP0 R/W 0 描述 RTC 电源域备份寄存器 0 RTCBKP1 ADDR:0x4001E004 位域 名称 类型 复位值 31:0 RTCBKP1 R/W 0 描述 RTC 电源域备份寄存器 1 RTCBKP2 ADDR:0x4001E008 位域 名称 类型 复位值 31:0 RTCBKP2 R/W 0 描述 RTC 电源域备份寄存器 2 RTCBKP3 ADDR:0x4001E00C 位域 名称 类型 复位值 31:0 RTCBKP3 R/W 0 描述 RTC 电源域备份寄存器 3 RTCBKP4 ADDR:0x4001E010 位域 名称 类型 复位值 31:0 RTCBKP4 R/W 0 描述 RTC 电源域备份寄存器 4 RTCBKP5 ADDR:0x4001E014 位域 名称 类型 复位值 31:0 RTCBKP5 R/W 0 描述 RTC 电源域备份寄存器 5 RTCBKP6 ADDR:0x4001E018 42 Version 1.02 SWM320 系列 位域 名称 类型 复位值 31:0 RTCBKP6 R/W 0 描述 RTC 电源域备份寄存器 6 LRCCR ADDR:0x4001E020 位域 名称 类型 复位值 描述 31:1 REVERSED R 0 保留位 0 OFF R/W 0 RCLF 使能控制 1:关闭 0:开启 HRCCR ADDR:0x40031000 位域 名称 类型 复位值 31:2 REVERSED R 0 1 OFF R/W 0 0 DBL R/W 0 描述 保留位 RCHF 使能控制 1:关闭 0:开启 注:开启后需要 1us 左右的稳定时间 RCHF 频率选择控制 0:输出 20MHz 时钟 1:输出 40MHz 时钟 XTAHCR ADDR:0x40031020 位域 名称 类型 复位值 31:1 REVERSED R 0 保留位 R/W 0 高频晶体振荡器使能位 1:开启 0:关闭 0 EN 描述 PLLCR ADDR:0x40031024 位域 名称 类型 复位值 31:3 REVERSED R 0 2 OFF R/W 0x1 1 INSEL R/W 0x1 0 OUTEN R/W 0 描述 保留位 PLL 开关控制 1:关闭 0:开启 PLL 参考时钟源选择 1: 选择内部 RCHF 时钟作为参考时钟 0: 选择外部高频晶体振荡器作为参考时 钟 PLL 时钟输出给系统的使能位(只有当检 43 Version 1.02 SWM320 系列 测到 PLL 的 lockout 有效后才能将此位置 为 1,使用 PLL 时钟) 1:时钟输出 0:时钟关闭 PLLDIV ADDR:0x40031028 位域 名称 类型 复位值 31:26 REVERSED R 0 保留位 25:24 OUT_DIV R/W 0 PLL Post 分频寄存器 23:21 REVERSED R 0 保留位 20:16 REF_DIV R/W 0x4 15 EN_15MHz R/W 0 14 EN_30MHz R/W 0x1 13:9 CLK_DIV R 0x14 8:0 FB_DIV R/W 0x78 描述 PLL Reference 分频寄存器 PLL 模块 ADC 时钟输出 15MHz 分频源开 关控制 1:开启 0:关闭 PLL 模块 ADC 时钟输出 30MHz 分频源开 关控制 1:开启 0:关闭 PLL 给 ADC 时钟分频寄存器 注 1:当 EN_ADC15MHz 和 EN_ADC30MHz 都为 0 时,基于 60MHz 进行分频 注 2:当 EN_ADC15MHz 1 为 1 时,基于 15MHz 进行分频 注 3:当 EN_ADC15MHz 为 0, EN_ADC30MHz 为 1 时,基于 30MHz 进 行分频 PLL FeedBack 分频寄存器 PLLLOCK ADDR:0x40031030 位域 名称 类型 复位值 31:1 REVERSED R 0 保留位 0 PLL LOCK 输出标志信号(只有当 CPU 连 续两次检测到该寄存器为 1 后,才能将 CLK_EN 位置为有效,使用 PLL 时钟) 1:PLL 已锁定 0:PLL 未锁定 0 LOCK R/W 描述 BODIE ADDR:0x40031034 44 Version 1.02 SWM320 系列 位域 名称 类型 复位值 31:2 REVERSED R 0 1 2V2 R/W 0 0 1V9 R/W 0 描述 保留位 系统电压低于 2.2V 触发中断使能 1:使能 0:禁能 系统电压低于 1.9V 等级触发中断使能 1:使能 0:禁能 BODIF ADDR:0x40031038 位域 名称 类型 复位值 描述 31:2 REVERSED R 0 保留位 1 2V2 R/W 0 系统电压低于 2.2V 触发中断状态 1:中断已触发 0:中断未触发 0 1V9 R/W 0 系统电压低于 1.9V 触发中断状态 1:中断已触发 0:中断未触发 ADC1IN7 ADDR: 0x4003103C 位域 名称 类型 复位值 31:5 REVERSED — — 4 IOON R/W 0 3:0 SEL R/W 0 描述 保留 ADC1 模块模拟通道 7 所用 IO 开关控制位 (通过此位选择是否打开 SEL 中功能) 1:IO 打开 0:IO 关闭 ADC1 模块模拟通道 7 功能选择位 0000:所有通道关闭 0001:温度传感器电压 0010:电池电压 其他:保留 6.6 引脚功能配置(PORTCON) 6.6.1 特性  可将 UART/I2C/SPI/PWM/COUNTER/CAN 功能配置至指定 I/O 引脚  支持上拉、下拉功能  配置管脚输入使能 端口控制模块主要包括管脚输入使能,管脚功能配置,I/O 上拉、下拉配置。本系列所 有型号 PORTCON 模块操作均相同,部分型号无对应管脚时,对应寄存器位无效。 45 Version 1.02 SWM320 系列 6.6.2 功能 端口控制模块主要包括管脚输入使能,管脚功能配置,I/O 上拉、下拉配置。SWM320 系列所有型号 PORTCON 模块操作均相同,部分型号无对应管脚时,对应寄存器位无效。 所有 I/O 口默认驱动能力为 12mA 其中 GPIO M、 GPIO N、 GPIO P 可通过 PORTx_DRIVS 寄存器将驱动能力配置为 8mA。 引脚输入使能 本芯片引脚作为输入或 I2C 相关功能使用时,需要打开引脚对应输入使能寄存器 (INEN_x) 。当寄存器对应位设置为 1 时,输入使能打开,引脚方可获取外部状态。 引脚复用配置 对于部分数字模块功能,可以配置到除 A12/B12/N18/N18 外任意 I/O 引脚,以方便板级 布局。 包括如下功能:  UARTn_TX / UARTn_RX  UARTn_CTS / UARTn_RTS  I2Cn_SDA / I2Cn_SCL  SPIn_SSN / SPIn_MOSI / SPIn_MISO / SPIn_SCK  TIMER_IN / TIMER_PULSE_IN  PWMx_OUT / PWM_BREAK  CAN_RX / CAN_TX 端口复用通过 FUNMUXn_x 寄存器进行配置,每个端口对应 2 个或 3 个 FUNMUX 寄 存器,通过将指定编号(见表 B-1、B-2)配置至管脚对应 FUNMUX 寄存器,并在引脚复 用寄存器(PORTx_SEL)将对应管脚选择为复用功能配置,则该引脚被配置为指定数字功 能。一部分引脚可配置为 FUNA 功能,另一部分引脚可配置为 FUNB 功能。 表 B-1 FUNB 功能配置表 编号 功能 编号 功能 0_0000 UART0_RXD 0_1101 PWM_BREAK 0_0001 UART1_RXD 0_1110 TIMER_IN0 0_0010 UART2_RXD 0_1111 TIMER_IN2 0_0011 UART3_RXD 1_0000 CAN_RX 0_0100 保留 1_0001 SPI0_SSN 0_0101 I2C0_SCL 1_0010 SPI0_MOSI 0_0110 I2C1_SCL 1_0011 SPI1_SSN 0_0111 PWMA0_OUT 1_0100 SPI1_MOSI 0_1000 PWMA2_OUT 1_0101 UART0_CTS 0_1001 PWMA4_OUT 1_0110 UART1_CTS 0_1010 PWMB0_OUT 1_0111 UART2_CTS 0_1011 PWMB2_OUT 1_1000 UART3_CTS 46 Version 1.02 SWM320 系列 编号 功能 PWMB4_OUT 0_1100 表 B-2 FUNA 功能配置表 编号 功能 其他 保留 编号 功能 编号 功能 0_0000 UART0_TXD 0_1101 TIMER_PULSE_IN 0_0001 UART1_TXD 0_1110 TIMER_IN1 0_0010 UART2_TXD 0_1111 TIMER_IN3 0_0011 UART3_TXD 1_0000 CAN_TX 0_0100 保留 1_0001 SPI0_ SCK 0_0101 I2C0_SDA 1_0010 SPI0_ MISO 0_0110 I2C1_SDA 1_0011 SPI1_ SCK 0_0111 PWMA1_OUT 1_0100 SPI1_ MISO 0_1000 PWMA3_OUT 1_0101 UART0_RTS 0_1001 PWMA5_OUT 1_0110 UART1_RTS 0_1010 PWMB1_OUT 1_0111 UART2_RTS 0_1011 PWMB3_OUT 1_1000 UART3_RTS 0_1100 PWMB5_OUT 其他 保留 上拉/下拉配置 本芯片部分引脚支持上拉模式,部分引脚支持下拉模式,具体如下:  上拉输入支持端口:PORTA/PORTC/PORTM/PORTP  下拉输入支持端口:PORTB/PORTN 作为输入功能使用时,可以开启内部上拉和下拉功能,通过配置 PULLU_x 及 PULLD_x 实现,将引脚所在寄存器对应位置为 1,即可实现该功能。 VDD PULLUP DATA_IN PIN PULLDOWN 图 6-2 引脚配置结构图 47 Version 1.02 SWM320 系列 引脚复用配置 端口复用通过端口复用寄存器 PORTA_SEL 寄存器、PORTB_SEL 寄存器、PORTC_SEL 寄存器、PORTM_SEL 寄存器、PORTN_SEL 寄存器及 PORTP_SEL 寄存器实现。当指定位 配置为对应值时,引脚功能实现切换。 每个端口可能具备以下功能:  通用输入输出接口:引脚作为通用输入输出功能,输入或输出指定数字电平  外设接口:将对应引脚切换至指定外围功能(该功能为此引脚独有,如 SDIO、 NORFLC、SRAMC、SDRAMC 或 LCDC 功能)  模拟接口:将对应引脚切换至模拟功能,如模数转换器  复用功能配置项:将引脚切换至复用功能项,具体哪个功能取决于该引脚对应的 FUNMUX 寄存器配置。 6.6.3 寄存器映射 PORTG BASE:0x40010000 名称 偏移量 类型 复位值 描述 PORTA_SEL 0x00 R/W 0x0000000A 端口 A 功能配置寄存器 PORTB_SEL 0x04 R/W 0x00000000 端口 B 功能配置寄存器 PORTC_SEL 0x08 R/W 0x00000000 端口 C 功能配置寄存器 PORTM_SEL0 0x20 R/W 0x00000000 端口 M 功能配置寄存器 0 PORTM_SEL1 0x24 R/W 0x00000000 端口 M 功能配置寄存器 1 PORTN_SEL0 0x30 R/W 0x00000000 端口 N 功能配置寄存器 0 PORTN_SEL1 0x34 R/W 0x00000000 端口 N 功能配置寄存器 1 PORTP_SEL0 0x40 R/W 0x00000000 端口 P 功能配置寄存器 0 PORTP_SEL1 0x44 R/W 0x00000000 端口 P 功能配置寄存器 1 PORTn BASE:0x40010000 名称 偏移量 类型 复位值 描述 PORTA_MUX0 0x100 R/W 0x00000000 端口 A 功能配置项寄存器 0 PORTA_MUX1 0x104 R/W 0x00000000 端口 A 功能配置项寄存器 1 PORTB_MUX0 0x110 R/W 0x00000000 端口 B 功能配置项寄存器 0 PORTB_MUX1 0x114 R/W 0x00000000 端口 B 功能配置项寄存器 1 PORTC_MUX0 0x120 R/W 0x00000000 端口 C 功能配置项寄存器 0 PORTC_MUX1 0x124 R/W 0x00000000 端口 C 功能配置项寄存器 1 PORTC_MUX2 0x128 R/W 0x00000000 端口 C 功能配置项寄存器 2 PORTM_MUX0 0x160 R/W 0x00000000 端口 M 功能配置项寄存器 0 PORTM_MUX1 0x164 R/W 0x00000000 端口 M 功能配置项寄存器 1 PORTM_MUX2 0x168 R/W 0x00000000 端口 M 功能配置项寄存器 2 PORTM_MUX3 0x16C R/W 0x00000000 端口 M 功能配置项寄存器 3 PORTN_MUX0 0x170 R/W 0x00000000 端口 N 功能配置项寄存器 0 48 Version 1.02 SWM320 系列 名称 偏移量 类型 复位值 描述 PORTN_MUX1 0x174 R/W 0x00000000 端口 N 功能配置项寄存器 1 PORTN_MUX2 0x178 R/W 0x00000000 端口 N 功能配置项寄存器 2 PORTP_MUX0 0x180 R/W 0x00000000 端口 P 功能配置项寄存器 0 PORTP_MUX1 0x184 R/W 0x00000000 端口 P 功能配置项寄存器 1 PORTP_MUX2 0x188 R/W 0x00000000 端口 P 功能配置项寄存器 2 PORTP_MUX3 0x18C R/W 0x00000000 端口 P 功能配置项寄存器 3 PORTA_PULLU 0x200 R/W 0x00000000 端口 A 上拉使能控制寄存器 PORTC_PULLU 0x210 R/W 0x00000000 端口 C 上拉使能控制寄存器 PORTM_PULLU 0x220 R/W 0x00000000 端口 M 上拉使能控制寄存器 PORTP_PULLU 0x230 R/W 0x00000000 端口 P 上拉使能控制寄存器 PORTB_PULLD 0x300 R/W 0x00000000 端口 B 下拉使能控制寄存器 PORTN_PULLD 0x320 R/W 0x00000000 端口 N 下拉使能控制寄存器 PORTM_DRIVS 0x540 R/W 0x00000000 端口 M 驱动选择控制寄存器 PORTN_DRIVS 0x550 R/W 0x00000000 端口 N 驱动选择控制寄存器 PORTP_DRIVS 0x560 R/W 0x00000000 端口 P 驱动选择控制寄存器 PORTA_INEN 0x600 R/W 0x00000023 端口 A 输入使能控制寄存器 PORTB_INEN 0x610 R/W 0x00001001 端口 B 输入使能控制寄存器 PORTC_INEN 0x620 R/W 0x00000000 端口 C 输入使能控制寄存器 PORTM_INEN 0x640 R/W 0x00000000 端口 M 输入使能控制寄存器 PORTN_INEN 0x650 R/W 0x00000000 端口 N 输入使能控制寄存器 PORTP_INEN 0x660 R/W 0x00000000 端口 P 输入使能控制寄存器 6.6.4 寄存器描述 PORTA_SEL ADDR:0x40010000 位域 名称 类型 复位值 31:26 REVERSED — — 保留 00 Port A12 功能选择 00:GPIO 01:REVERSED 10:REVERSED 11:ADC0 CH4 00 Port A11 功能选择 00:GPIO 01:FUNA 10:REVERSED 11:ADC0 CH5 25:24 23:22 PIN12 PIN11 R/W R/W 描述 49 Version 1.02 SWM320 系列 位域 21:20 19:18 17:16 15:14 13:12 11:10 9:8 名称 PIN10 PIN9 PIN8 PIN7 PIN6 PIN5 PIN4 类型 R/W R/W R/W R/W R/W R/W R/W 复位值 描述 00 Port A10 功能选择 00:GPIO 01:FUNB 10:REVERSED 11:ADC0 CH 6 00 Port A9 功能选择 00:GPIO 01:FUNA 10:REVERSED 11:ADC0 CH 7 00 Port A8 功能选择 00:GPIO 01:FUNB 10:REVERSED 11:REVERSED 0x0 Port A7 功能选择 00:GPIO 01:FUNA 10:REVERSED 11:REVERSED 0x0 Port A6 功能选择 00:GPIO 01:FUNB 10:REVERSED 11:REVERSED 0x0 Port A5 功能选择 00:GPIO 01:FUNA 10:REVERSED 11:REVERSED 0x0 Port A4 功能选择 00:GPIO 01:FUNB 10:REVERSED 11:REVERSED 7:6 PIN3 R/W 0x0 Port A3 功能选择 00:GPIO 01:FUNA 10:REVERSED 11:REVERSED 5:4 PIN2 R/W 0x0 Port A2 功能选择 50 Version 1.02 SWM320 系列 位域 名称 类型 复位值 描述 00:GPIO 01:FUNB 10:REVERSED 11:REVERSED 3:2 1:0 PIN1 PIN0 0x0 Port A1 功能选择 00:GPIO 01:FUNA 10:SWIO 11:REVERSED R/W 0x0 Port A0 功能选择 00:GPIO 01:FUNB 10:SWCLK 11:REVERSED R/W PORTB_SEL ADDR:0x40010004 位域 名称 类型 复位值 31:26 REVERSED — — 保留 00 Port B12 功能选择 00:GPIO 01:REVERSED 10:REVERSED 11:REVERSED 00 Port B11 功能选择 00:GPIO 01:FUNA 10:REVERSED 11:REVERSED 00 Port B10 功能选择 00:GPIO 01:FUNB 10:SD_DATA7 11:REVERSED 00 Port B9 功能选择 00:GPIO 01:FUNA 10:SD_DATA6 11:REVERSED 25:24 23:22 21:20 19:18 PIN12 PIN11 PIN10 PIN9 R/W R/W R/W R/W 描述 51 Version 1.02 SWM320 系列 位域 17:16 15:14 13:12 11:10 9:8 7:6 5:4 3:2 名称 PIN8 PIN7 PIN6 PIN5 PIN4 PIN3 PIN2 PIN1 类型 R/W R/W R/W R/W R/W R/W R/W R/W 复位值 描述 00 Port B8 功能选择 00:GPIO 01:FUCB 10:SD_DATA5 11:REVERSED 00 Port B7 功能选择 00:GPIO 01:FUNA 10:SD_DATA4 11:REVERSED 00 Port B6 功能选择 00:GPIO 01:FUNB 10:SD_DATA3 11:REVERSED 00 Port B5 功能选择 00:GPIO 01:FUNA 10:SD_DATA2 11:REVERSED 00 Port B4 功能选择 00:GPIO 01:FUNB 10:SD_DATA1 11:REVERSED 00 Port B3 功能选择 00:GPIO 01:FUNA 10:SD_DATA0 11:REVERSED 00 Port B2 功能选择 00:GPIO 01:FUNB 10:SD_CMD 11:REVERSED 00 Port B1 功能选择 00:GPIO 01:FUNA 10:SD_CLK 11:REVERSED 52 Version 1.02 SWM320 系列 位域 1:0 名称 PIN0 类型 复位值 R/W 00 描述 Port B0 功能选择 00:GPIO 01:FUNB 10:SD_DETECT 11:REVERSED PORTC_SEL ADDR:0x40010008 位域 名称 类型 复位值 31:16 REVERSED — — 保留 00 Port C7 功能选择 00:GPIO 01:FUNA 10:REVERSED 11:ADC1 模拟通道 0 00 Port C6 功能选择 00:GPIO 01:FUNB 10:REVERSED 11:ADC1_CH1 00 Port C5 功能选择 00:GPIO 01:FUNA 10:REVERSED 11:ADC1_CH2 00 Port C4 功能选择 00:GPIO 01:FUNB 10:REVERSED 11:ADC1_CH3 00 Port C3 功能选择 00:GPIO 01:FUNA 10:REVERSED 11:REVERSED 00 Port C2 功能选择 00:GPIO 01:FUNB 10:REVERSED 11:REVERSED 15:14 13:12 11:10 9:8 7:6 5:4 PIN7 PIN6 PIN5 PIN4 PIN3 PIN2 R/W R/W R/W R/W R/W R/W 描述 53 Version 1.02 SWM320 系列 位域 3:2 1:0 名称 PIN1 PIN0 类型 复位值 描述 00 Port C1 功能选择 00:GPIO 01:FUNA 10:REVERSED 11:REVERSED R/W 00 Port C0 功能选择 00:GPIO 01:FUNB 10:REVERSED 11:REVERSED 类型 复位值 R/W PORTM_SEL0 ADDR:0x40010020 位域 名称 31:30 PIN15 R/W 0 29:28 PIN14 R/W 0 27:26 PIN13 R/W 0 25:24 PIN12 R/W 0 描述 Port M15 功能选择 00:GPIO 01:FUNA 10:NFLASH_D0/ SRAM_ D0/ SDRAM_ D0 11:REVERSED Port M14 功能选择 00:GPIO 01:FUNB 10:NFLASH_D1/ SRAM_ D1/ SDRAM_ D1 11:REVERSED Port M13 功能选择 00:GPIO 01:FUNA 10:NFLASH_D2/ SRAM_ D2/ SDRAM_ D2 11:REVERSED Port M12 功能选择 00:GPIO 01:FUNB 10:NFLASH_D3/ SRAM_ D3/ SDRAM_ D3 11:REVERSED 54 Version 1.02 SWM320 系列 位域 名称 类型 复位值 23:22 PIN11 R/W 0 21:20 PIN10 R/W 0 19:18 PIN9 R/W 0 17:16 PIN8 R/W 0 15:14 PIN7 R/W 0 13:12 PIN6 R/W 0 11:10 PIN5 R/W 0 描述 Port M11 功能选择 00:GPIO 01:FUNA 10:NFLASH_D4/ SRAM_ D4/ SDRAM_ D4 11:REVERSED Port M10 功能选择 00:GPIO 01:FUNB 10:NFLASH_D5/ SRAM_ D5/ SDRAM_ D5 11:REVERSED Port M9 功能选择 00:GPIO 01:FUNA 10:NFLASH_D6/ SRAM_ D6/ SDRAM_ D6 11:保留 Port M8 功能选择 00:GPIO 01:FUNB 10:NFLASH_D7/ SRAM_ D7/ SDRAM_ D7 11:REVERSED Port M7 功能选择 00:GPIO 01:FUNA 10:NFLASH_D8/ SRAM_ D8/ SDRAM_ D8 11:REVERSED Port M6 功能选择 00:GPIO 01:FUNB 10:NFLASH_D9/ SRAM_ D9/ SDRAM_ D9 11:REVERSED Port M5 功能选择 00:GPIO 01:FUNA 10:NFLASH_D10/ SRAM_ D10/ SDRAM_ D10 11:REVERSED 55 Version 1.02 SWM320 系列 位域 名称 类型 复位值 9:8 PIN4 R/W 0 7:6 PIN3 R/W 0 5:4 PIN2 R/W 0 3:2 PIN1 R/W 0 1:0 PIN0 R/W 0 描述 Port M4 功能选择 00:GPIO 01:FUNB 10:NFLASH_D11/ SRAM_ D12/ SDRAM_ D11 11:REVERSED Port M3 功能选择 00:GPIO 01:FUNA 10:NFLASH_D12/ SRAM_ D12/ SDRAM_ D12 11:REVERSED Port M2 功能选择 00:GPIO 01:FUNB 10:NFLASH_D13/ SRAM_ D13/ SDRAM_ D13 11:REVERSED Port M1 功能选择 00:GPIO 01:FUNA 10:NFLASH_D14/ SRAM_ D14/ SDRAM_ D14 11:REVERSED Port M0 功能选择 00:GPIO 01:FUNB 10:NFLASH_D15/ SRAM_ D15/ SDRAM_ D15 11:REVERSED PORTM_SEL1 ADDR:0x40010024 位域 名称 类型 复位值 31:12 REVERSED R 0 保留位 0 Port M21 功能选择 00:GPIO 01:FUNA 10:SDRAM_CKE 11:REVERSED 11:10 PIN21 R/W 描述 56 Version 1.02 SWM320 系列 位域 名称 类型 复位值 9:8 PIN20 R/W 0 7:6 PIN19 R/W 0 5:4 PIN18 R/W 0 3:2 PIN17 R/W 0 1:0 PIN16 R/W 0 类型 复位值 描述 Port M20 功能选择 00:GPIO 01:FUNB 10:SRAM_CSN 11:REVERSED Port M19 功能选择 00:GPIO 01:FUNA 10:SDRAM_CSN 11:REVERSED Port M18 功能选择 00:GPIO 01:FUNB 10:NFLASH_CEN 11:REVERSED Port M17 功能选择 00:GPIO 01:FUNA 10:NFLASH_WEN/ SRAM_WEN/ SDRAM_WEN 11:REVERSED Port M16 功能选择 00:GPIO 01:FUNB 10:NFLASH_OEN/ SRAM_OEN 11:REVERSED PORTN_SEL0 ADDR:0x40010030 位域 名称 31:30 PIN15 R/W 0 29:28 PIN14 R/W 0 描述 Port N15 功能选择 00:GPIO 01:FUNA 10:LCD_D15 11:REVERSED Port N14 功能选择 00:GPIO 01:FUNB 10:LCD_D14 11:保留 57 Version 1.02 SWM320 系列 位域 名称 类型 复位值 27:26 PIN13 R/W 0 25:24 PIN12 R/W 0 23:22 PIN11 R/W 0 21:20 PIN10 R/W 0 19:18 PIN9 R/W 0 17:16 PIN8 R/W 0 15:14 PIN7 R/W 0 13:12 PIN6 R/W 0 11:10 PIN5 R/W 0 描述 Port N13 功能选择 00:GPIO 01:FUNA 10:LCD_D13 11:REVERSED Port N12 功能选择 00:GPIO 01:FUNB 10:LCD_D12 11:REVERSED Port N11 功能选择 00:GPIO 01:FUNA 10:LCD_D11 11:REVERSED Port N10 功能选择 00:GPIO 01:FUNB 10:LCD_D10 11:REVERSED Port N9 功能选择 00:GPIO 01:FUNA 10:LCD_D9 11:REVERSED Port N8 功能选择 00:GPIO 01:FUNB 10:LCD_D8 11:REVERSED Port N7 功能选择 00:GPIO 01:FUNA 10:LCD_D7 11:REVERSED Port N6 功能选择 00:GPIO 01:FUNB 10:LCD_D6 11:REVERSED Port N5 功能选择 00:GPIO 01:FUNA 10:LCD_D5 11:REVERSED 58 Version 1.02 SWM320 系列 位域 名称 类型 复位值 9:8 PIN4 R/W 0 7:6 PIN3 R/W 0 5:4 PIN2 R/W 0 3:2 PIN1 R/W 0 1:0 PIN0 R/W 0 描述 Port N4 功能选择 00:GPIO 01:FUNB 10:LCD_D4 11:REVERSED Port N3 功能选择 00:GPIO 01:FUNA 10:LCD_D3 11:REVERSED Port N2 功能选择 00:GPIO 01:FUNB 10:LCD_D2 11:ADC1_CH6 Port N1 功能选择 00:GPIO 01:FUNA 10:LCD_D1 11:ADC1_CH5 Port N0 功能选择 00:GPIO 01:FUNB 10:LCD_D0 11:ADC1_CH4 PORTN_SEL1 ADDR:0x40010034 位域 名称 类型 复位值 31:8 REVERSED R 0 7:6 PIN19 R/W 0 5:4 PIN18 R/W 0 3:2 PIN17 R/W 0 描述 保留位 Port N19 功能选择 00:GPIO 01:REVERSED 10:LCD_WNR 11:REVERSED Port N18 功能选择 00:GPIO 01:REVERSED 10:LCD_RS 11:REVERSED Port N17 功能选择 00:GPIO 01:FUNA 10:LCD_CSN 11:REVERSED 59 Version 1.02 SWM320 系列 位域 1:0 名称 PIN16 类型 复位值 R/W 0 类型 复位值 描述 Port N16 功能选择 00:GPIO 01:FUNB 10:LCD_RD 11:REVERSED PORTP_SEL0 ADDR:0x40010040 位域 名称 31:30 PIN15 R/W 0 29:28 PIN14 R/W 0 27:26 PIN13 R/W 0 25:24 PIN12 R/W 0 23:22 PIN11 R/W 0 描述 Port P15 功能选择 00:GPIO 01:FUNA 10:NFLASH_A15/ SRAM_A15/ SDRAM_RAS 11:REVERSED Port P14 功能选择 00:GPIO 01:FUNB 10:NFLASH_A14/ SRAM_A14/ SDRAM_CAS 11:REVERSED Port N13 功能选择 00:GPIO 01:FUNA 10:NFLASH_A13/ SRAM_A13/ SDRAM_CLK 11:REVERSED Port P12 功能选择 00:GPIO 01:FUNB 10:NFLASH_A12/ SRAM_A12/ SDRAM_A12 11:SD_DETECT Port P11 功能选择 00:GPIO 01:FUNA 10:NFLASH_A11/ SRAM_A11/ SDRAM_A11 11:SD_CLK 60 Version 1.02 SWM320 系列 位域 名称 类型 复位值 21:20 PIN10 R/W 0 19:18 PIN9 R/W 0 17:16 PIN8 R/W 0 15:14 PIN7 R/W 0 13:12 PIN6 R/W 0 11:10 PIN5 R/W 0 9:8 PIN4 R/W 0 描述 Port P10 功能选择 00:GPIO 01:FUNB 10:NFLASH_A10/ SRAM_A10/ SDRAM_A10 11:SD_CMD Port P9 功能选择 00:GPIO 01:FUNA 10:NFLASH_A9/ SRAM_A9/ SDRAM_A9 11:SD_DATA0 Port P8 功能选择 00:GPIO 01:FUNB 10:NFLASH_A8/ SRAM_A8/ SDRAM_A8 11:SD_DATA1 Port P7 功能选择 00:GPIO 01:FUNA 10:NFLASH_A7/ SRAM_A7/ SDRAM_A7 11:SD_DATA2 Port P6 功能选择 00:GPIO 01:FUNB 10:NFLASH_A6/ SRAM_A6/ SDRAM_A6 11:SD_DATA3 Port P5 功能选择 00:GPIO 01:FUNA 10:NFLASH_A5/ SRAM_A5/ SDRAM_A5 11:SD_DATA4 Port P4 功能选择 00:GPIO 01:FUNB 10:NFLASH_A4/ SRAM_A4/ SDRAM_A4 11:SD_DATA5 61 Version 1.02 SWM320 系列 位域 名称 类型 复位值 7:6 PIN3 R/W 0 5:4 PIN2 R/W 0 3:2 PIN1 R/W 0 1:0 PIN0 R/W 0 描述 Port P3 功能选择 00:GPIO 01:FUNA 10:NFLASH_A3/ SRAM_A3/ SDRAM_A3 11:SD_DATA6 Port P2 功能选择 00:GPIO 01:FUNB 10:NFLASH_A2/ SRAM_A2/ SDRAM_A2 11:SD_DATA7 Port P1 功能选择 00:GPIO 01:FUNA 10:NFLASH_A1/ SRAM_A1/ SDRAM_A1 11:REVERSED Port P0 功能选择 00:GPIO 01:FUNB 10:NFLASH_A0/ SRAM_A0/ SDRAM_A0 11:REVERSED PORTP_SEL1 ADDR:0x40010044 位域 名称 类型 复位值 31:16 REVERSED R 0 保留位 0 Port P23 功能选择 00:GPIO 01:FUNA 10:NFLASH_A23/ SRAM_A23/ SRAM_HB 11:REVERSED 15:14 PIN23 R/W 描述 62 Version 1.02 SWM320 系列 位域 名称 类型 复位值 13:12 PIN22 R/W 0 11:10 PIN21 R/W 0 9:8 PIN20 R/W 0 7:6 PIN19 R/W 0 5:4 PIN18 R/W 0 3:2 PIN17 R/W 0 1:0 PIN16 R/W 0 描述 Port P22 功能选择 00:GPIO 01:FUNB 10:NFLASH_A22/ SRAM_A22/ SRAM_LB 11:REVERSED Port P21 功能选择 00:GPIO 01:FUNA 10:NFLASH_A21/ SRAM_A21/ SDRAM_MB1 11:REVERSED Port P20 功能选择 00:GPIO 01:FUNB 10:NFLASH_A20/ SRAM_A20/ SDRAM_MB0 11:REVERSED Port P19 功能选择 00:GPIO 01:FUNA 10:NFLASH_A19/ SRAM_A19 11:REVERSED Port P18 功能选择 00:GPIO 01:FUNB 10:NFLASH_A18/ SRAM_A18 11:REVERSED Port P17 功能选择 00:GPIO 01:FUNA 10:NFLASH_A17/ SRAM_A17/ SDRAM_UDQ 11:REVERSED Port P16 功能选择 00:GPIO 01:FUNB 10:NFLASH_A16/ SRAM_A16/ SDRAM_LDQ 11:REVERSED 63 Version 1.02 SWM320 系列 PORTA_MUX0 ADDR:0x40010100 位域 名称 类型 复位值 描述 31:30 REVERSED R 0 保留位 29:25 PIN5 R/W 0 Port A5 FUNA 功能配置 24:20 PIN4 R/W 0 Port A4 FUNB 功能配置 19:15 PIN3 R/W 0 Port A3 FUNA 功能配置 14:10 PIN2 R/W 0 Port A2 FUNB 功能配置 9:5 PIN1 R/W 0 Port A1 FUNA 功能配置 4:0 PIN0 R/W 0 Port A0 FUNB 功能配置 PORTA_MUX1 ADDR:0x40010104 位域 名称 类型 复位值 描述 31:30 REVERSED R 0 保留位 29:25 PIN11 R/W 0 Port A11 FUNA 功能配置 24:20 PIN10 R/W 0 Port A10 FUNB 功能配置 19:15 PIN9 R/W 0 Port A9 FUNA 功能配置 14:10 PIN8 R/W 0 Port A8 FUNB 功能配置 9:5 PIN7 R/W 0 Port A7 FUNA 功能配置 4:0 PIN6 R/W 0 Port A6 FUNB 功能配置 PORTB_MUX0 ADDR:0x40010110 位域 名称 类型 复位值 描述 31:30 REVERSED R 0 保留位 29:25 PIN5 R/W 0 Port B5 FUNA 功能配置 64 Version 1.02 SWM320 系列 位域 名称 类型 复位值 描述 24:20 PIN4 R/W 0 Port B4 FUNB 功能配置 19:15 PIN3 R/W 0 Port B3 FUNA 功能配置 14:10 PIN2 R/W 0 Port B2 FUNB 功能配置 9:5 PIN1 R/W 0 Port B1 FUNA 功能配置 4:0 PIN0 R/W 0 Port B0 FUNB 功能配置 PORTB_MUX1 ADDR:0x40010114 位域 名称 类型 复位值 描述 31:30 REVERSED R 0 保留位 29:25 PIN11 R/W 0 Port B11 FUNA 功能配置 24:20 PIN10 R/W 0 Port B10 FUNB 功能配置 19:15 PIN9 R/W 0 Port B9 FUNA 功能配置 14:10 PIN8 R/W 0 Port B8 FUNB 功能配置 9:5 PIN7 R/W 0 Port B7 FUNA 功能配置 4:0 PIN6 R/W 0 Port B6 FUNB 功能配置 PORTC_MUX0 ADDR:0x40010120 位域 名称 类型 复位值 描述 31:30 REVERSED R 0 保留位 29:25 PIN5 R/W 0 Port C5 FUNA 功能配置 24:20 PIN4 R/W 0 Port C4 FUNB 功能配置 19:15 PIN3 R/W 0 Port C3 FUNA 功能配置 14:10 PIN2 R/W 0 Port C2 FUNB 功能配置 65 Version 1.02 SWM320 系列 位域 名称 类型 复位值 描述 9:5 PIN1 R/W 0 Port C1 FUNA 功能配置 4:0 PIN0 R/W 0 Port C0 FUNB 功能配置 PORTC_MUX1 ADDR:0x40010124 位域 名称 类型 复位值 描述 31:10 REVERSED R 0 保留位 9:5 PIN7 R/W 0 Port C7 FUNA 功能配置 4:0 PIN6 R/W 0 Port C6 FUNB 功能配置 PORTM_MUX0 ADDR:0x40010160 位域 名称 类型 复位值 描述 31:30 REVERSED R 0 保留位 29:25 PIN5 R/W 0 Port M5 FUNA 功能配置 24:20 PIN4 R/W 0 Port M4 FUNB 功能配置 19:15 PIN3 R/W 0 Port M3 FUNA 功能配置 14:10 PIN2 R/W 0 Port M2 FUNB 功能配置 9:5 PIN1 R/W 0 Port M1 FUNA 功能配置 4:0 PIN0 R/W 0 Port M0 FUNB 功能配置 PORTM_MUX1 ADDR:0x40010164 位域 名称 类型 复位值 描述 31:30 REVERSED R 0 保留位 29:25 PIN11 R/W 0 Port M11 FUNA 功能配置 24:20 PIN10 R/W 0 Port M10 FUNB 功能配置 66 Version 1.02 SWM320 系列 位域 名称 类型 复位值 描述 19:15 PIN9 R/W 0 Port M9 FUNA 功能配置 14:10 PIN8 R/W 0 Port M8 FUNB 功能配置 9:5 PIN7 R/W 0 Port M7 FUNA 功能配置 4:0 PIN6 R/W 0 Port M6 FUNB 功能配置 PORTM_MUX2 ADDR:0x40010168 位域 名称 类型 复位值 描述 31:30 REVERSED R 0 保留位 29:25 PIN17 R/W 0 Port M17 FUNA 功能配置 24:20 PIN16 R/W 0 Port M16 FUNB 功能配置 19:15 PIN15 R/W 0 Port M15 FUNA 功能配置 14:10 PIN14 R/W 0 Port M14 FUNB 功能配置 9:5 PIN13 R/W 0 Port M13 FUNA 功能配置 4:0 PIN12 R/W 0 Port M12 FUNB 功能配置 PORTM_MUX3 ADDR:0x4001016C 位域 名称 类型 复位值 描述 31:20 REVERSED R 0 保留位 19:15 PIN21 R/W 0 Port M21 FUNA 功能配置 14:10 PIN20 R/W 0 Port M20 FUNB 功能配置 9:5 PIN19 R/W 0 Port M19 FUNA 功能配置 4:0 PIN18 R/W 0 Port M18 FUNB 功能配置 PORTN_MUX0 ADDR:0x40010170 67 Version 1.02 SWM320 系列 位域 名称 类型 复位值 描述 31:30 REVERSED R 0 保留位 29:25 PIN5 R/W 0 Port N5 FUNA 功能配置 24:20 PIN4 R/W 0 Port N4 FUNB 功能配置 19:15 PIN3 R/W 0 Port N3 FUNA 功能配置 14:10 PIN2 R/W 0 Port N2 FUNB 功能配置 9:5 PIN1 R/W 0 Port N1 FUNA 功能配置 4:0 PIN0 R/W 0 Port N0 FUNB 功能配置 PORTN_MUX1 ADDR:0x40010174 位域 名称 类型 复位值 描述 31:30 REVERSED R 0 保留位 29:25 PIN11 R/W 0 Port N11 FUNA 功能配置 24:20 PIN10 R/W 0 Port N10 FUNB 功能配置 19:15 PIN9 R/W 0 Port N9 FUNA 功能配置 14:10 PIN8 R/W 0 Port N8 FUNB 功能配置 9:5 PIN7 R/W 0 Port N7 FUNA 功能配置 4:0 PIN6 R/W 0 Port N6 FUNB 功能配置 PORTN_MUX2 ADDR:0x40010178 位域 名称 类型 复位值 描述 31:30 REVERSED R 0 保留位 29:25 PIN17 R/W 0 Port N17 FUNA 功能配置 24:20 PIN16 R/W 0 Port N16 FUNB 功能配置 68 Version 1.02 SWM320 系列 位域 名称 类型 复位值 描述 19:15 PIN15 R/W 0 Port N15 FUNA 功能配置 14:10 PIN14 R/W 0 Port N14 FUNB 功能配置 9:5 PIN13 R/W 0 Port N13 FUNA 功能配置 4:0 PIN12 R/W 0 Port N12 FUNB 功能配置 PORTP_MUX0 ADDR:0x40010180 位域 名称 类型 复位值 描述 31:30 REVERSED R 0 保留位 29:25 PIN5 R/W 0 Port P5 FUNA 功能配置 24:20 PIN4 R/W 0 Port P4 FUNB 功能配置 19:15 PIN3 R/W 0 Port P3 FUNA 功能配置 14:10 PIN2 R/W 0 Port P2 FUNB 功能配置 9:5 PIN1 R/W 0 Port P1 FUNA 功能配置 4:0 PIN0 R/W 0 Port P0 FUNB 功能配置 PORTP_MUX1 ADDR:0x40010184 位域 名称 类型 复位值 描述 31:30 REVERSED R 0 保留位 29:25 PIN11 R/W 0 Port P11 FUNA 功能配置 24:20 PIN10 R/W 0 Port P10 FUNB 功能配置 19:15 PIN9 R/W 0 Port P9 FUNA 功能配置 14:10 PIN8 R/W 0 Port P8 FUNB 功能配置 9:5 PIN7 R/W 0 Port P7 FUNA 功能配置 69 Version 1.02 SWM320 系列 位域 名称 类型 复位值 4:0 PIN6 R/W 0 描述 Port P6 FUNB 功能配置 PORTP_MUX2 ADDR:0x40010188 位域 名称 类型 复位值 描述 31:30 REVERSED R 0 保留位 29:25 PIN17 R/W 0 Port P17 FUNA 功能配置 24:20 PIN16 R/W 0 Port P16 FUNB 功能配置 19:15 PIN15 R/W 0 Port P15 FUNA 功能配置 14:10 PIN14 R/W 0 Port P14 FUNB 功能配置 9:5 PIN13 R/W 0 Port P13 FUNA 功能配置 4:0 PIN12 R/W 0 Port P12 FUNB 功能配置 PORTP_MUX3 ADDR:0x4001018C 位域 名称 类型 复位值 描述 31:30 REVERSED R 0 保留位 29:25 PIN23 R/W 0 Port P23 FUNA 功能配置 24:20 PIN22 R/W 0 Port P22 FUNB 功能配置 19:15 PIN21 R/W 0 Port P21 FUNA 功能配置 14:10 PIN20 R/W 0 Port P20 FUNB 功能配置 9:5 PIN19 R/W 0 Port P19 FUNA 功能配置 4:0 PIN18 R/W 0 Port P18 FUNB 功能配置 类型 复位值 PORTA _PULLU ADDR:0x40010200 位域 名称 描述 70 Version 1.02 SWM320 系列 位域 名称 类型 复位值 描述 31:13 REVERSED R 0 保留位 12 PIN12 R/W 00 PIN12 上拉电阻使能 0:禁能 1:使能 11 PIN11 R/W 00 PIN11 上拉电阻使能 0:禁能 1:使能 10 PIN10 R/W 00 PIN10 上拉电阻使能 0:禁能 1:使能 9 PIN9 R/W 00 PIN9 上拉电阻使能 0:禁能 1:使能 8 PIN8 R/W 00 PIN8 上拉电阻使能 0:禁能 1:使能 7 PIN7 R/W 00 PIN7 上拉电阻使能 0:禁能 1:使能 6 PIN6 R/W 00 PIN6 上拉电阻使能 0:禁能 1:使能 5 PIN5 R/W 00 PIN5 上拉电阻使能 0:禁能 1:使能 4 PIN4 R/W 00 PIN4 上拉电阻使能 0:禁能 1:使能 3 PIN3 R/W 00 PIN3 上拉电阻使能 0:禁能 1:使能 2 PIN2 R/W 00 PIN2 上拉电阻使能 0:禁能 1:使能 1 PIN1 R/W 00 PIN1 上拉电阻使能 0:禁能 1:使能 0 PIN0 R/W 00 PIN0 上拉电阻使能 0:禁能 1:使能 PORTC_PULLU ADDR:0x40010210 位域 名称 类型 复位值 描述 31:8 REVERSED R 0 保留位 7 PIN7 R/W 00 PIN7 上拉电阻使能 0:禁能 1:使能 6 PIN6 R/W 00 PIN6 上拉电阻使能 0:禁能 1:使能 5 PIN5 R/W 00 PIN5 上拉电阻使能 0:禁能 1:使能 4 PIN4 R/W 00 PIN4 上拉电阻使能 0:禁能 1:使能 71 Version 1.02 SWM320 系列 位域 名称 类型 复位值 描述 3 PIN3 R/W 00 PIN3 上拉电阻使能 0:禁能 1:使能 2 PIN2 R/W 00 PIN2 上拉电阻使能 0:禁能 1:使能 1 PIN1 R/W 00 PIN1 上拉电阻使能 0:禁能 1:使能 0 PIN0 R/W 00 PIN0 上拉电阻使能 0:禁能 1:使能 PORTM_PULLU ADDR:0x40010220 位域 名称 类型 复位值 描述 31:22 REVERSED R 0 保留位 21 PIN21 R/W 00 PIN21 上拉电阻使能 0:禁能 1:使能 20 PIN20 R/W 00 PIN20 上拉电阻使能 0:禁能 1:使能 19 PIN19 R/W 00 PIN19 上拉电阻使能 0:禁能 1:使能 18 PIN18 R/W 00 PIN18 上拉电阻使能 0:禁能 1:使能 17 PIN17 R/W 00 PIN17 上拉电阻使能 0:禁能 1:使能 16 PIN16 R/W 00 PIN16 上拉电阻使能 0:禁能 1:使能 15 PIN15 R/W 00 PIN15 上拉电阻使能 0:禁能 1:使能 14 PIN14 R/W 00 PIN14 上拉电阻使能 0:禁能 1:使能 13 PIN13 R/W 00 PIN13 上拉电阻使能 0:禁能 1:使能 12 PIN12 R/W 00 PIN12 上拉电阻使能 0:禁能 1:使能 11 PIN11 R/W 00 PIN11 上拉电阻使能 0:禁能 1:使能 10 PIN10 R/W 00 PIN10 上拉电阻使能 0:禁能 1:使能 9 PIN9 R/W 00 PIN9 上拉电阻使能 0:禁能 1:使能 8 PIN8 R/W 00 PIN8 上拉电阻使能 0:禁能 1:使能 72 Version 1.02 SWM320 系列 位域 名称 类型 复位值 描述 7 PIN7 R/W 00 PIN7 上拉电阻使能 0:禁能 1:使能 6 PIN6 R/W 00 PIN6 上拉电阻使能 0:禁能 1:使能 5 PIN5 R/W 00 PIN5 上拉电阻使能 0:禁能 1:使能 4 PIN4 R/W 00 PIN4 上拉电阻使能 0:禁能 1:使能 3 PIN3 R/W 00 PIN3 上拉电阻使能 0:禁能 1:使能 2 PIN2 R/W 00 PIN2 上拉电阻使能 0:禁能 1:使能 1 PIN1 R/W 00 PIN1 上拉电阻使能 0:禁能 1:使能 0 PIN0 R/W 00 PIN0 上拉电阻使能 0:禁能 1:使能 PORTP_PULLU ADDR:0x40010230 位域 名称 类型 复位值 描述 31:24 REVERSED R 0 保留位 23 PIN23 R/W 00 PIN23 上拉电阻使能 0:禁能 1:使能 22 PIN22 R/W 00 PIN22 上拉电阻使能 0:禁能 1:使能 21 PIN21 R/W 00 PIN21 上拉电阻使能 0:禁能 1:使能 20 PIN20 R/W 00 PIN20 上拉电阻使能 0:禁能 1:使能 19 PIN19 R/W 00 PIN19 上拉电阻使能 0:禁能 1:使能 18 PIN18 R/W 00 PIN18 上拉电阻使能 0:禁能 1:使能 17 PIN17 R/W 00 PIN17 上拉电阻使能 0:禁能 1:使能 16 PIN16 R/W 00 PIN16 上拉电阻使能 0:禁能 1:使能 15 PIN15 R/W 00 PIN15 上拉电阻使能 0:禁能 1:使能 73 Version 1.02 SWM320 系列 14 PIN14 R/W 00 PIN14 上拉电阻使能 0:禁能 1:使能 13 PIN13 R/W 00 PIN13 上拉电阻使能 0:禁能 1:使能 12 PIN12 R/W 00 PIN12 上拉电阻使能 0:禁能 1:使能 11 PIN11 R/W 00 PIN11 上拉电阻使能 0:禁能 1:使能 10 PIN10 R/W 00 PIN10 上拉电阻使能 0:禁能 1:使能 9 PIN9 R/W 00 PIN9 上拉电阻使能 0:禁能 1:使能 8 PIN8 R/W 00 PIN8 上拉电阻使能 0:禁能 1:使能 7 PIN7 R/W 00 PIN7 上拉电阻使能 0:禁能 1:使能 6 PIN6 R/W 00 PIN6 上拉电阻使能 0:禁能 1:使能 5 PIN5 R/W 00 PIN5 上拉电阻使能 0:禁能 1:使能 4 PIN4 R/W 00 PIN4 上拉电阻使能 0:禁能 1:使能 3 PIN3 R/W 00 PIN3 上拉电阻使能 0:禁能 1:使能 2 PIN2 R/W 00 PIN2 上拉电阻使能 0:禁能 1:使能 1 PIN1 R/W 00 PIN1 上拉电阻使能 0:禁能 1:使能 0 PIN0 R/W 00 PIN0 上拉电阻使能 0:禁能 1:使能 PORTB_PULLD ADDR:0x40010300 位域 名称 类型 复位值 描述 31:16 REVERSED R 0 保留位 13 PIN13 R/W 00 PIN13 下拉电阻使能 0:禁能 1:使能 12 PIN12 R/W 00 PIN12 下拉电阻使能 0:禁能 1:使能 11 PIN11 R/W 00 PIN11 下拉电阻使能 0:禁能 1:使能 74 Version 1.02 SWM320 系列 位域 名称 类型 复位值 描述 10 PIN10 R/W 00 PIN10 下拉电阻使能 0:禁能 1:使能 9 PIN9 R/W 00 PIN9 下拉电阻使能 0:禁能 1:使能 8 PIN8 R/W 00 PIN8 下拉电阻使能 0:禁能 1:使能 7 PIN7 R/W 00 PIN7 下拉电阻使能 0:禁能 1:使能 6 PIN6 R/W 00 PIN6 下拉电阻使能 0:禁能 1:使能 5 PIN5 R/W 00 PIN5 下拉电阻使能 0:禁能 1:使能 4 PIN4 R/W 00 PIN4 下拉电阻使能 0:禁能 1:使能 3 PIN3 R/W 00 PIN3 下拉电阻使能 0:禁能 1:使能 2 PIN2 R/W 00 PIN2 下拉电阻使能 0:禁能 1:使能 1 PIN1 R/W 00 PIN1 下拉电阻使能 0:禁能 1:使能 0 PIN0 R/W 00 PIN0 下拉电阻使能 0:禁能 1:使能 PORTN_PULLD ADDR:0x40010320 位域 名称 类型 复位值 描述 31:20 REVERSED R 0 保留位 19 PIN19 R/W 00 PIN19 下拉电阻使能 0:禁能 1:使能 18 PIN18 R/W 00 PIN18 下拉电阻使能 0:禁能 1:使能 17 PIN17 R/W 00 PIN17 下拉电阻使能 0:禁能 1:使能 16 PIN16 R/W 00 PIN16 下拉电阻使能 0:禁能 1:使能 15 PIN15 R/W 00 PIN15 下拉电阻使能 0:禁能 1:使能 14 PIN14 R/W 00 PIN14 下拉电阻使能 0:禁能 1:使能 13 PIN13 R/W 00 PIN13 下拉电阻使能 0:禁能 1:使能 75 Version 1.02 SWM320 系列 位域 名称 类型 复位值 描述 12 PIN12 R/W 00 PIN12 下拉电阻使能 0:禁能 1:使能 11 PIN11 R/W 00 PIN11 下拉电阻使能 0:禁能 1:使能 10 PIN10 R/W 00 PIN10 下拉电阻使能 0:禁能 1:使能 9 PIN9 R/W 00 PIN9 下拉电阻使能 0:禁能 1:使能 8 PIN8 R/W 00 PIN8 下拉电阻使能 0:禁能 1:使能 7 PIN7 R/W 00 PIN7 下拉电阻使能 0:禁能 1:使能 6 PIN6 R/W 00 PIN6 下拉电阻使能 0:禁能 1:使能 5 PIN5 R/W 00 PIN5 下拉电阻使能 0:禁能 1:使能 4 PIN4 R/W 00 PIN4 下拉电阻使能 0:禁能 1:使能 3 PIN3 R/W 00 PIN3 下拉电阻使能 0:禁能 1:使能 2 PIN2 R/W 00 PIN2 下拉电阻使能 0:禁能 1:使能 1 PIN1 R/W 00 PIN1 下拉电阻使能 0:禁能 1:使能 0 PIN0 R/W 00 PIN0 下拉电阻使能 0:禁能 1:使能 PORTM_DRIVS ADDR:0x40010540 位域 名称 类型 复位值 31:22 REVERSED R 0 21 PIN21 R/W 0x1 20 PIN20 R/W 0x1 19 PIN19 R/W 0x1 18 PIN18 R/W 0x1 17 PIN17 R/W 0x1 16 PIN16 R/W 0x1 描述 保留位 Port M21 驱动选择位 1:12mA 0:8mA Port M20 驱动选择位 1:12mA 0:8mA Port M19 驱动选择位 1:12mA 0:8mA Port M18 驱动选择位 1:12mA 0:8mA Port M17 驱动选择位 1:12mA 0:8mA Port M16 驱动选择位 1:12mA 0:8mA 76 Version 1.02 SWM320 系列 位域 名称 类型 复位值 15 PIN15 R/W 0x1 14 PIN14 R/W 0x1 13 PIN13 R/W 0x1 12 PIN12 R/W 0x1 11 PIN11 R/W 0x1 10 PIN10 R/W 0x1 9 PIN9 R/W 0x1 8 PIN8 R/W 0x1 7 PIN7 R/W 0x1 6 PIN6 R/W 0x1 5 PIN5 R/W 0x1 4 PIN4 R/W 0x1 3 PIN3 R/W 0x1 2 PIN2 R/W 0x1 1 PIN1 R/W 0x1 0 PIN0 R/W 0x1 描述 Port M15 驱动选择位 1:12mA 0:8mA Port M14 驱动选择位 1:12mA 0:8mA Port M13 驱动选择位 1:12mA 0:8mA Port M12 驱动选择位 1:12mA 0:8mA Port M11 驱动选择位 1:12mA 0:8mA Port M10 驱动选择位 1:12mA 0:8mA Port M9 驱动选择位 1:12mA 0:8mA Port M8 驱动选择位 1:12mA 0:8mA Port M7 驱动选择位 1:12mA 0:8mA Port M6 驱动选择位 1:12mA 0:8mA Port M5 驱动选择位 1:12mA 0:8mA Port M4 驱动选择位 1:12mA 0:8mA Port M3 驱动选择位 1:12mA 0:8mA Port M2 驱动选择位 1:12mA 0:8mA Port M1 驱动选择位 1:12mA 0:8mA Port M0 驱动选择位 1:12mA 0:8mA PORTN_DRIVS ADDR:0x40010550 位域 31:20 名称 REVERSED 类型 R 复位值 0 19 PIN19 R/W 0x1 18 PIN18 R/W 0x1 17 PIN17 R/W 0x1 16 PIN16 R/W 0x1 15 PIN15 R/W 0x1 描述 保留位 Port N19 驱动选择位 1:12mA 0:8mA Port N18 驱动选择位 1:12mA 0:8mA Port N17 驱动选择位 1:12mA 0:8mA Port N16 驱动选择位 1:12mA 0:8mA Port N15 驱动选择位 77 Version 1.02 SWM320 系列 位域 名称 类型 复位值 14 PIN14 R/W 0x1 13 PIN13 R/W 0x1 12 PIN12 R/W 0x1 11 PIN11 R/W 0x1 10 PIN10 R/W 0x1 9 PIN9 R/W 0x1 8 PIN8 R/W 0x1 7 PIN7 R/W 0x1 6 PIN6 R/W 0x1 5 PIN5 R/W 0x1 4 PIN4 R/W 0x1 3 PIN3 R/W 0x1 2 1 0 PIN2 PIN1 PIN0 R R R 0x1 0x1 0x1 描述 1:12mA 0:8mA Port N14 驱动选择位 1:12mA 0:8mA Port N13 驱动选择位 1:12mA 0:8mA Port N12 驱动选择位 1:12mA 0:8mA Port N11 驱动选择位 1:12mA 0:8mA Port N10 驱动选择位 1:12mA 0:8mA Port N9 驱动选择位 1:12mA 0:8mA Port N8 驱动选择位 1:12mA 0:8mA Port N7 驱动选择位 1:12mA 0:8mA Port N6 驱动选择位 1:12mA 0:8mA Port N5 驱动选择位 1:12mA 0:8mA Port N4 驱动选择位 1:12mA 0:8mA Port N3 驱动选择位 1:12mA 0:8mA Port N2 驱动选择位,固定 12mA Port N1 驱动选择位,固定 12mA Port N0 驱动选择位,固定 12mA PORTP_DRIVS ADDR:0x40010560 位域 名称 类型 复位值 31:24 REVERSED R 0 23 PIN23 R/W 0x1 22 PIN22 R/W 0x1 21 PIN21 R/W 0x1 20 PIN20 R/W 0x1 19 PIN19 R/W 0x1 18 PIN18 R/W 0x1 17 PIN17 R/W 0x1 描述 保留位 Port P23 驱动选择位 1:12mA 0:8mA Port P22 驱动选择位 1:12mA 0:8mA Port P21 驱动选择位 1:12mA 0:8mA Port P20 驱动选择位 1:12mA 0:8mA Port P19 驱动选择位 1:12mA 0:8mA Port P18 驱动选择位 1:12mA 0:8mA Port P17 驱动选择位 78 Version 1.02 SWM320 系列 位域 名称 类型 复位值 描述 1:12mA 16 PIN16 R/W 0x1 15 PIN15 R/W 0x1 14 PIN14 R/W 0x1 13 PIN13 R/W 0x1 12 PIN12 R/W 0x1 11 PIN11 R/W 0x1 10 PIN10 R/W 0x1 9 PIN9 R/W 0x1 8 PIN8 R/W 0x1 7 6 5 4 3 2 1 0 PIN7 PIN6 PIN5 PIN4 PIN3 PIN2 PIN1 PIN0 R/W R/W R/W R/W R/W R/W R/W 0x1 0x1 0x1 0x1 0x1 0x1 0x1 R/W 0x1 0:8mA Port P16 驱动选择位 1:12mA 0:8mA Port P15 驱动选择位 1:12mA 0:8mA Port P14 驱动选择位 1:12mA 0:8mA Port P13 驱动选择位 1:12mA 0:8mA Port P12 驱动选择位 1:12mA 0:8mA Port P11 驱动选择位 1:12mA 0:8mA Port P10 驱动选择位 1:12mA 0:8mA Port P9 驱动选择位 1:12mA 0:8mA Port P8 驱动选择位 1:12mA 0:8mA Port P7 驱动选择位 1:12mA 0:8mA Port P6 驱动选择位 1:12mA 0:8mA Port P5 驱动选择位 1:12mA 0:8mA Port P4 驱动选择位 1:12mA 0:8mA Port P3 驱动选择位 1:12mA 0:8mA Port P2 驱动选择位 1:12mA 0:8mA Port P1 驱动选择位 1:12mA 0:8mA Port P0 驱动选择位 1:12mA 0:8mA PORTA_INEN ADDR:0x40010600 位域 名称 类型 复位值 描述 31:13 REVERSED R 0 12 PIN12 R/W 0x1 PIN12 输入使能 0:禁能 1:使能 11 PIN11 R/W 00 PIN11 输入使能 0:禁能 1:使能 10 PIN10 R/W 00 PIN10 输入使能 保留位 79 Version 1.02 SWM320 系列 位域 名称 类型 复位值 描述 0:禁能 1:使能 9 PIN9 R/W 00 PIN9 输入使能 0:禁能 1:使能 8 PIN8 R/W 00 PIN8 输入使能 0:禁能 1:使能 7 PIN7 R/W 00 PIN7 输入使能 0:禁能 1:使能 6 PIN6 R/W 00 PIN6 输入使能 0:禁能 1:使能 5 PIN5 R/W 00 PIN5 输入使能 0:禁能 1:使能 4 PIN4 R/W 00 PIN4 输入使能 0:禁能 1:使能 3 PIN3 R/W 00 PIN3 输入使能 0:禁能 1:使能 2 PIN2 R/W 00 PIN2 输入使能 0:禁能 1:使能 1 PIN1 R/W 00 PIN1 输入使能 0:禁能 1:使能 0 PIN0 R/W 00 PIN0 输入使能 0:禁能 1:使能 PORTB_INEN ADDR:0x40010610 位域 名称 类型 复位值 31:13 REVERSED R 0 描述 保留位 12 PIN12 R/W 0x1 PIN12 输入使能(该端口输入使能常开,不可 关闭) 0:禁能 1:使能 11 PIN11 R/W 00 PIN11 输入使能 0:禁能 1:使能 10 PIN10 R/W 00 PIN10 输入使能 0:禁能 1:使能 9 PIN9 R/W 00 PIN9 输入使能 0:禁能 1:使能 8 PIN8 R/W 00 PIN8 输入使能 0:禁能 1:使能 7 PIN7 R/W 00 PIN7 输入使能 0:禁能 1:使能 6 PIN6 R/W 00 PIN6 输入使能 80 Version 1.02 SWM320 系列 位域 名称 类型 复位值 描述 0:禁能 1:使能 5 PIN5 R/W 00 PIN5 输入使能 0:禁能 1:使能 4 PIN4 R/W 00 PIN4 输入使能 0:禁能 1:使能 3 PIN3 R/W 00 PIN3 输入使能 0:禁能 1:使能 2 PIN2 R/W 00 PIN2 输入使能 0:禁能 1:使能 1 PIN1 R/W 00 PIN1 输入使能 0:禁能 1:使能 0 PIN0 R/W 00 PIN0 输入使能 0:禁能 1:使能 PORTC_INEN ADDR:0x40010620 位域 名称 类型 复位值 描述 31:8 REVERSED R 0 保留位 7 PIN7 R/W 00 PIN7 输入使能 0:禁能 1:使能 6 PIN6 R/W 00 PIN6 输入使能 0:禁能 1:使能 5 PIN5 R/W 00 PIN5 输入使能 0:禁能 1:使能 4 PIN4 R/W 00 PIN4 输入使能 0:禁能 1:使能 3 PIN3 R/W 00 PIN3 输入使能 0:禁能 1:使能 2 PIN2 R/W 00 PIN2 输入使能 0:禁能 1:使能 1 PIN1 R/W 00 PIN1 输入使能 0:禁能 1:使能 0 PIN0 R/W 00 PIN0 输入使能 0:禁能 1:使能 PORTM_INEN ADDR:0x40010640 位域 名称 类型 复位值 描述 31:22 REVERSED R 0 保留位 21 PIN21 R/W 0 PIN21 输入使能 81 Version 1.02 SWM320 系列 位域 名称 类型 复位值 描述 0:禁能 1:使能 20 PIN20 R/W 0 PIN20 输入使能 0:禁能 1:使能 19 PIN19 R/W 0 PIN19 输入使能 0:禁能 1:使能 18 PIN18 R/W 0 PIN18 输入使能 0:禁能 1:使能 17 PIN17 R/W 0 PIN17 输入使能 0:禁能 1:使能 16 PIN16 R/W 0 PIN16 输入使能 0:禁能 1:使能 15 PIN15 R/W 0 PIN15 输入使能 0:禁能 1:使能 14 PIN14 R/W 0 PIN14 输入使能 0:禁能 1:使能 13 PIN13 R/W 0 PIN13 输入使能 0:禁能 1:使能 12 PIN12 R/W 0 PIN12 输入使能 0:禁能 1:使能 11 PIN11 R/W 0 PIN11 输入使能 0:禁能 1:使能 10 PIN10 R/W 0 PIN10 输入使能 0:禁能 1:使能 9 PIN9 R/W 00 PIN9 输入使能 0:禁能 1:使能 8 PIN8 R/W 00 PIN8 输入使能 0:禁能 1:使能 7 PIN7 R/W 00 PIN7 输入使能 0:禁能 1:使能 6 PIN6 R/W 00 PIN6 输入使能 0:禁能 1:使能 5 PIN5 R/W 00 PIN5 输入使能 0:禁能 1:使能 4 PIN4 R/W 00 PIN4 输入使能 0:禁能 1:使能 3 PIN3 R/W 00 PIN3 输入使能 0:禁能 1:使能 2 PIN2 R/W 00 PIN2 输入使能 0:禁能 1:使能 1 PIN1 R/W 00 PIN1 输入使能 0:禁能 1:使能 82 Version 1.02 SWM320 系列 位域 名称 类型 复位值 0 PIN0 R/W 00 描述 PIN0 输入使能 0:禁能 1:使能 PORTN_INEN ADDR:0x40010650 位域 名称 类型 复位值 描述 31 :20 REVERSED R 0 保留位 19 PIN19 R/W 0 PIN19 输入使能 0:禁能 1:使能 18 PIN18 R/W 0 PIN18 输入使能 0:禁能 1:使能 17 PIN17 R/W 0 PIN17 输入使能 0:禁能 1:使能 16 PIN16 R/W 0 PIN16 输入使能 0:禁能 1:使能 15 PIN15 R/W 0 PIN15 输入使能 0:禁能 1:使能 14 PIN14 R/W 0 PIN14 输入使能 0:禁能 1:使能 13 PIN13 R/W 0 PIN13 输入使能 0:禁能 1:使能 12 PIN12 R/W 0 PIN12 输入使能 0:禁能 1:使能 11 PIN11 R/W 0 PIN11 输入使能 0:禁能 1:使能 10 PIN10 R/W 0 PIN10 输入使能 0:禁能 1:使能 9 PIN9 R/W 00 PIN9 输入使能 0:禁能 1:使能 8 PIN8 R/W 00 PIN8 输入使能 0:禁能 1:使能 7 PIN7 R/W 00 PIN7 输入使能 0:禁能 1:使能 6 PIN6 R/W 00 PIN6 输入使能 0:禁能 1:使能 5 PIN5 R/W 00 PIN5 输入使能 0:禁能 1:使能 4 PIN4 R/W 00 PIN4 输入使能 0:禁能 1:使能 3 PIN3 R/W 00 PIN3 输入使能 0:禁能 1:使能 83 Version 1.02 SWM320 系列 位域 名称 类型 复位值 描述 2 PIN2 R/W 00 PIN2 输入使能 0:禁能 1:使能 1 PIN1 R/W 00 PIN1 输入使能 0:禁能 1:使能 0 PIN0 R/W 00 PIN0 输入使能 0:禁能 1:使能 PORTP_INEN ADDR:0x40010660 位域 名称 类型 复位值 描述 31:24 REVERSED R 0 保留位 23 PIN23 R/W 0 PIN23 输入使能 0:禁能 1:使能 22 PIN22 R/W 0 PIN22 输入使能 0:禁能 1:使能 21 PIN21 R/W 0 PIN21 输入使能 0:禁能 1:使能 20 PIN20 R/W 0 PIN20 输入使能 0:禁能 1:使能 19 PIN19 R/W 0 PIN19 输入使能 0:禁能 1:使能 18 PIN18 R/W 0 PIN18 输入使能 0:禁能 1:使能 17 PIN17 R/W 0 PIN17 输入使能 0:禁能 1:使能 16 PIN16 R/W 0 PIN16 输入使能 0:禁能 1:使能 15 PIN15 R/W 0 PIN15 输入使能 0:禁能 1:使能 14 PIN14 R/W 0 PIN14 输入使能 0:禁能 1:使能 13 PIN13 R/W 0 PIN13 输入使能 0:禁能 1:使能 12 PIN12 R/W 0 PIN12 输入使能 0:禁能 1:使能 11 PIN11 R/W 0 PIN11 输入使能 0:禁能 1:使能 10 PIN10 R/W 0 PIN10 输入使能 0:禁能 1:使能 9 PIN9 R/W 00 PIN9 输入使能 0:禁能 1:使能 84 Version 1.02 SWM320 系列 位域 名称 类型 复位值 描述 8 PIN8 R/W 00 PIN8 输入使能 0:禁能 1:使能 7 PIN7 R/W 00 PIN7 输入使能 0:禁能 1:使能 6 PIN6 R/W 00 PIN6 输入使能 0:禁能 1:使能 5 PIN5 R/W 00 PIN5 输入使能 0:禁能 1:使能 4 PIN4 R/W 00 PIN4 输入使能 0:禁能 1:使能 3 PIN3 R/W 00 PIN3 输入使能 0:禁能 1:使能 2 PIN2 R/W 00 PIN2 输入使能 0:禁能 1:使能 1 PIN1 R/W 00 PIN1 输入使能 0:禁能 1:使能 0 PIN0 R/W 00 PIN0 输入使能 0:禁能 1:使能 85 Version 1.02 SWM320 系列 6.7 通用 I/O(GPIO) 6.7.1 特性  最高 100 个独立 IO  每个 IO 均可触发中断  中断触发条件可配置,支持电平触发/沿触发  沿触发中断可配置为上升沿/下降沿/双沿触发  每个 IO 均支持上拉/下拉功能 6.7.2 功能 通用输入输出模块主要功能包括数据控制、中断控制功能。使用前需使能对应 GPIO 模 块时钟。 数据控制 除 SWD 引脚与 B0 脚外,所有引脚上电后默认状态均为 GPIO 浮空输入(DIR = 0) 。 SWD 引脚可在加密章节进行修改,B0 默认下拉使能,保证浮空状态不会进入 ISP 模式。 GPIO 方向寄存器(DIRx)用来将每个独立的管脚配置为输入模式或者输出模式:  当数据方向设为 0 时,GPIO 对应引脚配置为输入,通过读取相应数据寄存器 (DATAx)对应位获取指定 GPIO 端口当前状态值。  当数据方向设为 1 时,GPIO 对应引脚配置为输出,通过向对应端口数据寄存器 (DATAx)对应位写入值改变对应位输出,0 输出低电平,1 输出高电平。此时对 数据寄存器(DATAx)对应位进行读取时,返回值为上次写入的输出值。 中断控制 可根据需求将 GPIO 端口对应引脚配置为中断模式,并通过相关寄存器配置中断极性及 触发方式。触发方式分为边沿触发和电平触发两种模式。  对于边沿触发中断,可以设置为上升沿触发,下降沿触发或双沿触发。中断发生后, 标志位具备保持特性,必须通过软件对中断位进行清除  对于电平触发中断,当外部引脚输入为指定电平时,中断发生。当电平翻转后,中 断信号消失,无需软件进行清除。使用电平触发中断,需保证外部信号源保持电平 稳定,以便中断能被端口识别 使用以下寄存器来对产生中断触发方式和极性进行定义:  GPIO 中断触发方式寄存器(INTLVLTRG),用于配置电平触发或沿触发  GPIO 中断触发极性寄存器(INTRISEEN),用于配置电平或沿触发极性  GPIO 中断沿触发配置寄存器寄存器(INTBE),选择为沿触发后,用于配置单沿触 86 Version 1.02 SWM320 系列 发或双沿触发 通过 GPIO 中断使能寄存器(INTEN)可以使能或者禁止相应端口对应位中断,GPIO 原始中断状态(RAWINTSTAUS)不受使能位影响。当产生中断时,可以在 GPIO 原始中断 状态(RAWINTSTAUS)获取中断信号的状态。当中断使能寄存器(INTEN)对应位为 1 时,中断状态(INTSTAUS)寄存器可读取到对应中断信号,且中断信号会进入中断配置模 块及 NVIC 模块,执行中断程序。 通过写 1 到 GPIO 中断清除寄存器(INTCLR)指定位可以清除相应位中断。 6.7.3 寄存器映射 GPIOA GPIOB GPIOC GPIOM GPION GPIOP BASE:0x40011000 BASE:0x40012000 BASE:0x40013000 BASE:0x40015000 BASE:0x40016000 BASE:0x40018000 名称 偏移量 类型 复位值 描述 DATA 0x00 R/W 0x00 GPIO 数据寄存器 DIR 0x04 R/W 0x00 GPIO 方向寄存器 INTLVLTRG 0x08 R/W 0x00 GPIO 中断触发方式 INTBE 0x0c R/W 0x00 GPIO 双边沿触发中断使能 INTRISEEN 0x10 R/W 0x00 GPIO 中断触发极性 INTEN 0x14 R/W 0x00 GPIO 中断使能 INTRAWSTAT 0x18 R/W 0x00 GPIO 中断原始状态 INTSTAT 0x1c R/W 0x00 GPIO 中断状态 INTCLR 0x20 R/W 0x00 GPIO 中断清除 6.7.4 寄存器描述 GPIO 数据寄存器 DATAx ADDR:0x40011000/0x40012000/0x40013000/0x40015000/0x40016000/0x40018000 位域 名称 类型 复位值 描述 31:x REVERSED R 0 保留位(x 为位宽) x-1:0 DATA R/W 0 读 GPIO 的输入数据,写入 GPIO 的输出数据 GPIO 方向寄存器 DIRx ADDR:0x40011004/0x40012004/0x40013004/0x40015004/0x40016004/0x40018004 位域 名称 类型 复位值 31:x REVERSED R 0 描述 保留位(x 为位宽) 87 Version 1.02 SWM320 系列 x-1:0 DIR R/W 0 设置 GPIO 管脚方向: 1:相应位为输出管脚 0:相应位为输入管脚 GPIOx 中断触发条件寄存器 INTLVLTRG ADDR:0x40011008/0x40012008/0x40013008/0x40015008/0x40016008/0x40018008 位域 名称 类型 复位值 31:x REVERSED R 0 保留位(x 为位宽) x-1:0 INTLVLTR G 0 配置中断敏感条件: 1:相应位为电平检测 0:相应位为沿检测 R/W 描述 GPIOx 中断沿触发配置寄存器 INTBE ADDR:0x4001100C/0x4001200C/0x4001300C/0x4001500C/0x4001600C/0x4001800C 位域 名称 类型 复位值 31:x REVERSED R 0 保留位(x 为位宽) 0 1:相应位为双沿触发中断,即上升沿和下降沿 都会触发中断 0:相应位为单沿触发中断,由 GPIOIEV 寄存器 相应位确定是上升沿/下降沿触发 x-1:0 INTBE R/W 描述 GPIOx 中断事件寄存器 INTRISEEN ADDR:0x40011010/0x40012010/0x40013010/0x40015010/0x40016010/0x40018010 位域 名称 类型 复位值 描述 31:x REVERSED R 0 保留位(x 为位宽) x-1:0 INTRISEEN R/W 0 1:相应位为上升沿/高电平触发中断 0:相应位为下降沿/低电平触发中断 GPIOx 中断使能寄存器 INTEN ADDR:0x40011014/0x40012014/0x40013014/0x40015014/0x40016014/0x40018014 位域 名称 类型 复位值 描述 31:x REVERSED R 0 保留位(x 为位宽) x-1:0 INTEN R/W 0 1:相应位为中断使能 0:相应位为中断禁止 GPIOx 原始中断状态寄存器 INTRAWSTAT ADDR:0x40011018/0x40012018/0x40013018/0x40015018/0x40016018/0x40018018 位域 名称 类型 复位值 描述 31:x REVERSED R 0 保留位(x 为位宽) x-1:0 INTRAWST AT R 0 1:表示检测到中断触发条件(不受使能影响) 0:没有检测到中断触发条件(不受使能影响) 88 Version 1.02 SWM320 系列 GPIOx 屏蔽中断状态寄存器 INTSTAT ADDR:0x4001101C/0x4001201C/0x4001301C/0x4001501C/0x4001601C/0x4001801C 位域 名称 类型 复位值 31:x REVERSED R 0 保留位(x 为位宽) 0 中断状态寄存器 1:表示检测到了中断 0:没有检测到中断 INTSTAT.PINx = INTRAWSTAT.PINx INTEN.PINx x-1:0 INTSTAT R 描述 & GPIOx 中断清除寄存器 INTCLR ADDR:0x40011020/0x40012020/0x40013020/0x40015020/0x40016020/0x40018020 位域 名称 类型 复位值 描述 31:16 REVERSED R 0 保留位(x 为位宽) 15:0 INTCLR W1C 0 写 1 清除中断 89 Version 1.02 SWM320 系列 6.8 加强型定时器(TIMER) 6.8.1 特性  6 路 32 位通用定时器  1 路 32 位脉冲宽度测量计数器  可单独配置计时触发条件为内部时钟或者外部输入  检测脉冲极性可配  每路中段可以单独使能  支持级联功能,最高支持 192bit 定时器 6.8.2 功能 SWM320 系列所有型号 TIMER 操作均相同。使用前需使能 TIMER 模块时钟。 每个 TIMER 模块均具备定时器功能(使用片内时钟作为计数基准)和计数器功能(使 用片外时钟作为计数基准) 。 6 路 TIMER 模块支持级联操作,TIMER1 可使用 TIMER0 溢出作为计数源,扩展计数 周期,以此类推,即最高可支持 192bit 位宽定时器。 1 路 32 位脉宽捕捉计数器,针对外部输入信号实现捕捉功能。 定时器 使用 TIMERx 作为定时器时,需要将控制寄存器(CTRLx)模式选择位(CLKSRCx) 配置为 0,此时使用系统时钟作为计数源。通过装载值寄存器(LDVALx)设置计数目标值, 之后使能控制寄存器(CTRLx)使能位(ENx),对应 TIMERx 开始递减计数,计数到 0 时, 重新装载计数值,进行下一周期计数。 在计数过程中,可通过对当前值寄存器(CVALx)进行读取,获取当前计数值。 定时器计数过程中改变装载值寄存器(LDVALx)值,将在下个计数周期(计数到 0 重 新装载)生效,不会改变本周期计数值。 定时器计数过程中,可以通过 HALT 寄存器控制位置 1 暂停指定通道计数,置 0 后继 续计数。 示意图如下图所示。 90 Version 1.02 SWM320 系列 图 6-3 定时器工作示意图 计数器 TIMER0~TIMER3 支持外部计数器模式。使用 TIMERx 作为计数器时,需要将控制寄 存器(CTRLx)模式选择位(CLKSRCx)配置为 1。同时,将对应外部信号输入引脚配置 为 CNT 功能。此时,对应 TIMER 将以配置为 CNT 引脚外部输入的上升沿作为计数目标。 通过装载值寄存器(LDVALx)设置计数目标值,之后使能控制寄存器(CTRLx)使能位(ENx) , 对应 TIMERx 开始递减计数,计数到 0 时,重新装载计数值,进行下一周期计数。 TIMER4 计数器模式为内部 32KHZ 时钟计数,可以作为慢速定时器使用。 作为计数器使用时,进入 TIMER 中断后,需要先将对应 TIMER 停止,然后执行清除 中断操作,然后再次使能 TIMER,开始下一周期计数。 在计数过程中,可通过对当前值寄存器(CVALx)进行读取,获取当前计数值。 定时器计数过程中改变装载值寄存器(LDVALx)值,将在下个计数周期(计数到 0 重 新装载)生效,不会改变本周期计数值。 计数器使用过程中,可以通过 HALT 寄存器控制位置 1 暂停指定通道计数,置 0 后继 续计数。 示意图如下图所示。 注:作为计数器使用时,计数到 0 中断产生后,只有当外部计数信号再次产生数据沿, 执行计数值 RELOAD 操作后,方可执行清除中断。因此当外部计数信号较慢或无后续沿产 生时,建议进入后关闭中断使能,清除中断后再次打开。 91 Version 1.02 SWM320 系列 图 6-4 计数器工作示意图 级联 当 32 位 TIMER 无法满足计数宽度或时间长度时,可以通过级联方式,最高可将计数 宽度扩展至 192 位。使用方式如下:  TIMERn 根据需要设置为定时器或计数器模式(CLKSRCx = 0x00 或 0x10)  TIMERn+1 设置为级联模式(CASCADEx = 0x01)  LDVALn = 目标计数值%32  LDVALn+1 = 目标计数值>>32  使能 TIMERn+1 中断  使能 TIMERn  使能 TIMERn+1 当 TIMERn+1 中断产生时,计数周期完成。示意图如下图所示: 图 6-5 级联模式工作示意图 单脉冲捕捉 SWM320 提供了一个用于捕捉外部脉宽的模块,可记录外部单个脉冲宽度。使用方式 如下:  指定引脚设置为 PULSE_IN 功能,设置方式见 PORTCON 章节  设定脉宽测量控制寄存器(PCTRL)HIGH 位,配置脉冲类型,支持高电平脉冲和 低电平脉冲捕捉  设置中断使能寄存器(IE)PIE 位,使能中断  使能脉宽测量控制寄存器(PCTRL)EN 位,启动捕捉功能  当指定引脚出现所配置的脉冲类型时,脉宽测量当前值寄存器(PCVAL)将记录 脉冲宽度,记录单位为 TIMER 模块使用时钟频率。记录完成后,产生中断,捕捉 模块停止工作 92 Version 1.02 SWM320 系列  进入中断,读取脉宽测量当前值寄存器(PCVAL) ,获取脉冲宽度  如需继续测量,需要重新使能脉宽测量控制寄存器(PCTRL)EN 位 捕捉高电平示意图如下图所示: 图 6-6 单次捕捉高电平脉冲 捕捉低电平示意图如下图所示: 图 6-7 单次捕捉低电平脉冲 中断 6 路 TIMER 均具备独立中断,通过中断使能寄存器 IE 进行各 TIMER 中断使能。通过 中断状态寄存器 IF 进行中断查询及清除。 6.8.3 寄存器映射 TIMER BASE:0x40017000 名称 偏移量 类型 复位值 描述 LDVAL0 0x00 R/W 0xFFFFFFFF Timer0 装载值寄存器 CVAL0 0x04 RO 0xFFFFFFFF Timer0 当前计数值寄存器 CTRL0 0x08 R/W 0x00000000 Timer0 控制寄存器 LDVAL1 0x0C R/W 0xFFFFFFFF Timer1 装载值寄存器 CVAL1 0x10 RO 0xFFFFFFFF Timer1 当前计数值寄存器 93 Version 1.02 SWM320 系列 名称 偏移量 类型 复位值 描述 CTRL1 0x14 R/W 0x00000000 Timer1 控制寄存器 LDVAL2 0x18 R/W 0xFFFFFFFF Timer2 装载值寄存器 CVAL2 0x1C RO 0xFFFFFFFF Timer2 当前计数值寄存器 CTRL2 0x20 R/W 0x00000000 Timer2 控制寄存器 LDVAL3 0x24 R/W 0xFFFFFFFF Timer3 装载值寄存器 CVAL3 0x28 RO 0xFFFFFFFF Timer3 当前计数值寄存器 CTRL3 0x2C R/W 0x00000000 Timer3 控制寄存器 LDVAL4 0x30 R/W 0xFFFFFFFF Timer4 装载值寄存器 CVAL4 0x34 RO 0xFFFFFFFF Timer4 当前计数值寄存器 CTRL4 0x38 R/W 00x00000000 Timer4 控制寄存器 LDVAL5 0x3C R/W 0xFFFFFFFF Timer5 装载值寄存器 CVAL5 0x40 RO 0xFFFFFFFF Timer5 当前计数值寄存器 CTRL5 0x44 R/W 0x00000000 Timer5 控制寄存器 PCTRL 0x60 R/W 0x00000000 脉宽测量控制寄存器 PCVAL 0x64 RO 0x00000000 脉宽测量当前值寄存器 INTEN 0x70 R/W 0x00000000 中断使能寄存器 INTST 0x74 R/W1C 0x00000000 中断状态寄存器 HALT 0x78 R/W 0x00000000 停止计数控制寄存器 6.8.4 寄存器描述 装载值寄存器 LDVALx(x=0,1,2,3,4,5) ADDR:0x40017000+0xC*x(x 为端口值) 位域 名称 类型 复位值 31:0 LDVALx RW 0xFFFFFF 描述 定时器通道 x 的起始值 当前值寄存器 CVALx(x=0,1,2,3,4,5) ADDR:0x40017004+0xC*x(x 为端口值) 位域 名称 类型 复位值 31:0 CVALx RO 0xFFFFFF 描述 定时器通道 x 的计数当前值 控制寄存器 CTRLx(x=0,1,2,3,4,5) ADDR:0x40017008+0xC*x(x 为端口值) 位域 名称 类型 复位值 描述 31:3 REVERSED — — 2 CASCADEx R/W 0 1 CLKSRCx R/W 0 保留 TIMER 级联使能位 1:使能。当 x=0 时,这一位为保留位。当 x>0 时,如果这一位为 1,则通道 x 的计数时钟为 通道 x-1 的进位信号 0:禁能 控制定时器通道 x 的计数时钟 1:选择外部计数时钟触发计数(频率必须低 94 Version 1.02 SWM320 系列 0 ENx R/W 0 于内部时钟) 0:选择内部时钟触发计数 定时器通道 x 使能 0:禁能 1:使能,从设置值开始递减计数 脉宽测量控制寄存器 PCTRL ADDR:0x40017060 位域 名称 类型 复位值 描述 31:3 REVERSED — — 2 CLKSRC R/W 0 1 HIGH R/W 0 0 EN R/W 0 保留 控制脉宽测量计数器的计数时钟 1:选择外部计数时钟触发计数(频率必须低 于内部时钟) 0:选择内部时钟触发计数 控制脉宽测量的极性 1:测量高电平长度 0:测量低电平长度 开始测量脉宽,测量结束后自动清零 1:开始测量 0:停止测量 脉宽测量当前值寄存器 PCVAL ADDR:0x40017064 位域 名称 类型 复位值 31:0 PCVL RO 0 描述 当前脉宽测量计数器的值 中断使能寄存器 IE ADDR:0x40017070 位域 名称 类型 复位值 31:17 REVERSED — — 16 PIE R/W 0 15:6 REVERSED — — 5:0 IEx R/W 0 描述 保留 脉宽测量计数器中断使能 1:使能 0:禁能 保留 控制定时器通道 x 的中断使能。Bit0 对应通 道 0,Bit5 对应通道 5 1:使能 0:禁能 中断状态寄存器 IF ADDR:0x40017074 位域 名称 类型 复位值 31:17 REVERSED — — 16 PIF R/W, W1C 0 描述 保留 脉宽测量计数器的中断状态,写 1 清除 1:中断已发生 0:中断未发生 95 Version 1.02 SWM320 系列 15:6 REVERSED — — 5:0 IFx R, W1C 0 保留 控制定时器通道 x 的中断使能。Bit0 对应通 道 0,Bit5 对应通道 5,写 1 清零 1:中断已发生 0:中断未发生 停止计数控制寄存器 HALT ADDR:0x40017078 位域 名称 类型 复位值 描述 31:6 REVERSED — — 5:0 HALTx R/W 0 保留 控制定时器通道 x 的计数停止。Bit0 对应通 道 0,Bit5 对应通道 5 1:计数停止,此时计数器的计数值停止在当 前值 0:正常计数 6.9 看门狗定时器(WDT) 6.9.1 特性  产生计数器溢出复位信号,复位信号使能可配置  具有 32 位计数位宽,可灵活配置宽范围的溢出周期  具有中断功能 6.9.2 功能 看门狗定时器(WDT)主要用于控制程序流程正确。SWM320 系列所有型号 WDT 操 作均相同。使用前需使能对应 WDT 模块时钟。 看门狗定时器(WDT)主要用于控制程序流程正确,在程序流长时间未按既定流程执 行指定程序的情况下复位芯片。配置方式如下:  配置初值寄存器 LOAD,设置计数值,该值以系统时钟为单位递减  配置控制寄存器 CR 中 RSTEN 位,设置递减至 0 时产生中断或产生复位  将控制寄存器 CR 中 EN 位置 1,使能 WDT 模块  程序执行过程中通过向 FEED 寄存器写入 0x55 喂狗,重启计数  若当 VALUE 寄存器减至 0,依然未执行喂狗操作,则根据 CR 寄存器设置,产生 中断或复位信号 复位模式 控制寄存器 CR 中 RSTEN 位配置为 1 时,使能后波形如图 E-1 所示,其中,T_load 为 LOAD 寄存器配置值。 96 Version 1.02 SWM320 系列 图 6-8 WDT 配置为 reset 模式波形图 中断模式 控制寄存器 CR 中 RSTEN 位配置为 0 时,使能后波形如图 E-2 所示,其中,T_load 为 LOAD 寄存器配置值。中断产生后,通过 IF 寄存器进行清除。 图 6-9 WDT 配置为中断模式波形图 6.9.3 寄存器映射 WDT BASE:0x40019000 名称 偏移量 类型 复位值 描述 LOAD 0x00 R/W 0x00 WDT 初值寄存器 VALUE 0x04 R/W 0x00 WDT 当前计数值寄存器 CR 0x08 R/W 0x00 WDT 控制寄存器 IF 0x0C R/W 0x00 WDT 中断状态寄存器 FEED 0x10 W 0x00 WDT 重启计数器寄存器 6.9.4 寄存器描述 WDT 初值寄存器 LOAD ADDR: 0x40019000 位域 31:0 名称 LOAD 类型 R/W 复位值 描述 0 WDT 计数器的初始值 WDT 启动时,计数器自动装载 LOAD 值,开始递减计数,计到 0 时,将 LOAD 寄存器中的值再次装载到计数器中继 97 Version 1.02 SWM320 系列 续计数 LOAD 值为 0 时,启动 WDT 计数将开 始计数,再次计数到 0 时,产生中断 WDT 启动后设置 LOAD 寄存器无效 WDT 当前值寄存器 VALUE ADDR: 0x40019004 位域 名称 类型 复位值 31:0 VALUE R/W 0 描述 只读,返回计数器的当前计数值 WDT 控制寄存器 CR ADDR: 0x40019008 位域 名称 类型 复位值 描述 31:2 REVERSED — — 保留 1 0 RSTEN EN 0 WDT 复位使能位 1:复位使能 0:复位禁能 R/W 0 WDT 启动位 1:启动 WDT 计数 0:停止计数 R/W WDT 中断状态寄存器 IF ADDR: 0x4001900C 位域 名称 类型 复位值 描述 31:1 REVERSED — — 保留 0 IF R/W0C 0 WDT 中断位,高有效 硬件置位,写 0 清除,写 1 无效 WDT 重启寄存器 FEED ADDR: 0x40019010 位域 名称 类型 复位值 31:8 REVERSED — — 保留 0 看门狗重启计数器寄存器 当向该寄存器写入 8’h55 后会重启看门 狗计数器(喂狗操作) 7:0 FEED W 描述 98 Version 1.02 SWM320 系列 6.10 UART 接口控制器(UART) 6.10.1 特性             支持标准的 UART 协议 支持全双工模式 支持波特率可配置 支持 8 位/9 位数据格式选择 可配置的奇偶校验位 支持 1 位/2 位停止位选择 支持波特率自动调整 深度为 8 字节的发送和接收 FIFO 支持 break 操作自动检测 支持接收超时中断 支持 LIN 模式 支持自动流控功能 6.10.2 功能 不同型号具备 UART 数量可能不同。使用前需使能对应 UART 模块时钟。 UART 模块支持波特率配置, 最高速度可达到模块时钟 16 分频。具备深度为 8 的 FIFO, 同时提供了多种中断供选择。 结构图如下图所示。 APB_BUS UART Interrupt Status&Control Status&Control RX_FIFO FIFO & Line Control and Status Register TX_FIFO RX Shift Register MODEM Control and Status Register TX Shift Register Baud Out Interrupt Control & Status Baud Out Baud Rate Generator RXD TXD UART_CLK 图 6-10 UART 结构图 99 Version 1.02 SWM320 系列 每个模块功能详细描述如下: TX_FIFO 发送口带有一个 8 字节的 FIFO 缓冲区以减少 CPU 中断的频率 RX_FIFO 接收口带有一个 8 字节的 FIFO 缓冲区以减少 CPU 中断的频率 TX_Shift_Register(发送移位寄存器) 该模块用于控制把并行数据串行输出 RX_Shift_Register(接收移位寄存器) 该模块用于控制把串行数据并行输入 Baud Rate Generator(波特率发生器) 通过把输入的时钟分频后得到期望的波特率,详情参考波特率公式 Interrupt Control and Status Register(中断控制和状态寄存器) 用于使能或关闭相应中断,并提供给用户中断状态 数据格式及波特率配置  数据位 可以通过向 CTRL 寄存器的 NINEBIT 位写 1,选择支持 9 位数据模式。该位默认为 0, 即 8 位数据模式  奇偶校验位 向 CTRL 寄存器 PAREN 位写 1 使能奇偶校验,PARMD 位选择奇偶校验模式,分 别有奇校验、偶校验、常 1、 常 0 等四种校验格式,根据需求可以灵活选择配置具体看下 表: 校验类型 CTRL[21] CTRL[20] CTRL[19] 无校验 x x 0 奇校验 0 0 1 偶校验 0 1 1 校验位常为 1 1 0 1 校验位常为 0 1 1 1  停止位 停止位位数默认为 1 位,可通过向 CTRL 寄存器 STOP2b 位写 1 选择停止位位数为 2 位。 使能波特率配置后,对波特率寄存器(BAUD)BIT[13:0]写入特定值,配置波特率。配 置方式如下: 目标波特率 = 系统主时钟 / (16 * (BAUD + 1)) 波特率配置完成后,需将控制及状态寄存器(CTRL)BIT[13]置 1,使波特率配置生效。 100 Version 1.02 SWM320 系列 此外,AUTOBAUDEN 置 1 可以打开波特率自动调节功能。根据所接收到的数据通过 AUTOBAUDBITS 来设置检测的时间长度。如下图所示: 图 6-11 AUTOBAUDBITS 配置图 当 n=00 时,bit0 为高电平,此时向 AUTOBAUDBITS 写 00,设置为 1 位长度; 当 n=01 时,bit0 为低电平,bit1 为高电平,此时向 AUTOBAUDBITS 写 01,设置为 2 位长度; 当 n=10 时,bit0~bit2 为低电平,bit3 为高电平,此时向 AUTOBAUDBITS 写 10,设置 为 4 位长度; 当 n=11 时,bit0~bit6 为低电平,bit7 为高电平,此时向 AUTOBAUDBITS 写 11,设置 为 8 位长度; FIFO 及中断设置 UART 模块包含深度为 9 的接收 fifo 及发送 fifo,同时提供了与 fifo 相配合的状态位中 断,供操作中使用。使用方式如下:  通过 FIFO 寄存器配置中断触发条件,并获取 fifo 内部数据数量  BIT[27:24] TXTHR 位发送 FIFO 阈值设置,当 TXFIFO 中数据量小于等于写 入值时,触发中断,当配置为 0 且使能中断时,UART 使能后即触发发送中断  BIT[19:16]RXTHR 位接收 FIFO 阈值设置,当 RXFIFO 中数据量大于等于写 入值时,触发中断,当配置为 0 且使能中断时,UART 使能后接收到 1 个数据 值即触发接收中断  通过控制及状态寄存器(CTRL)RXIE 位(BIT[4])及 TXIE 位(BIT[2]),使能 fifo 中断  通过查询波特率寄存器(BAUD)BIT[20:19]获取 fifo 状态 数据发送及接收 将控制及状态寄存器(CTRL)EN 位置 1 后,对应 UART 模块使能 对于发送操作:  向 DATA 寄存器写入数据,数据发送至 UART_TX 线  通过读取 CTRL 寄存器 TXIDLE 位状态,获取当前发送状态  可通过读取 BAUD 寄存器 TXD 位,获取当前 TX 线实时状态 对于接收操作  通过判断 DATA 寄存器中 VAILD 位,判断是否接收到有效数据  读取 DATA 寄存器,可获得 UART_RX 线接收的数据 101 Version 1.02 SWM320 系列  可通过读取 BAUD 寄存器 RXD 位,获取当前 RX 线实时状态  可通过设置 CTRL 寄存器 TOTIME 位及 TOIE 位,使能接收超时中断。使能后, 当接收相邻两个数据间隔时长超过设置时长时,将触发中断 LIN Fram 当使用 LIN Fram 时,可通过 LINCTRL 寄存器进行相关设置。 发送操作: 与正常的 UART 发送相比,选用 LIN Fram 发送时,除了上述操作步骤外,还需:  通过 CTRL 寄存器将 GENBRK 位置 1,拉低 TX 线。该位保持为 1 时,TX 将持续 保持低电平,直至该位清除  通过 LINCTRL 寄存器将 LINGENBRKEN 位置 1,使能 Break 信号发送完成中断  通过 LINCTRL 寄存器将 LINGENBRK 位置 1,发送 Break 信号至总线  Break 信号发送完成后,中断产生,LINCTRL 寄存器 LINGENBRKST 位置 1。可 通过读此寄存器判断是否发送完成 注意:发送 BREAK 信号时,向 DATA 寄存器写入数据,数据同样会执行发送操作,但 数据电平不会体现到 TX 线上,除非发送数据期间清除 CTRL 寄存器 GENBRK 位。 接收操作: 与正常的 UART 接收相比,选用 LIN Fram 接收时,除了上述操作步骤外,还需:  通过 LINCTRL 寄存器将 LINBRKEN 位置 1,使能检测到 Break 信号中断  设置 CTRL 寄存器 BRKIE 位及 BRKDET 位,当 RX 线接收到 Break 信号时,将触 发中断  检测到 Break 信号并产生中断后,LINCTRL 寄存器 LINBRKST 位置 1。可通过读 此寄存器判断是否检测到 Break 信号 当 Break 信号不够长时,丢弃 Break,LINBRKST 不置 1,如下图所示: 图 6-12 Break 信号不够长示意图 当 Break 信号恰好够长时,检测到 Break,LINBRKST 置 1,如下图所示: 102 Version 1.02 SWM320 系列 图 6-13 Break 信号恰好够长示意图 当 Break 信号足够长时,等接收线上收到高电平后,检测到 Break,LINBRKST 置 1, 如下图所示: 图 6-14 Break 信号足够长示意图 硬件流控 硬件流控(RTS/CTS)制主要功能为防止串口传输时出现丢失数据的现象,使用流控制 功能时需将通信两端的 RTS 和 CTS 对应相连,通过 RTS 和 CTS 可以控制两个串口设备间 的串行数据流。 RTS 流控制 RTS 为输出信号,通过 FCCTRL 寄存器使能该信号并设置有效极性(高电平/低电平) 以及触发阈值,当 RTS 为有效电平时表示可以接收数据,当接收数据达到所设置的阈值时, RTS 无效。 CTS 流控制 CTS 为输入信号,通过 FCCTRL 寄存器使能该信号并设置有效极性(高电平/低电平), 当 RTS 为有效电平时表示可以发送数据。 103 Version 1.02 SWM320 系列 6.10.3 寄存器映射 BASE: 0x40020000+0x1000*n(n=0~3,n 为端口值) UARTn 名称 偏移量 类型 复位值 描述 DATA 0x00 R/W 0 UART 数据寄存器 CTRL 0x04 R/W 1 UART 控制及状态寄存器 BAUD 0x08 R/W 0x184000 UART 波特率控制寄存器 FIFO 0x0C R/W 0 UART 数据队列寄存器 LINCTRL 0x10 R/W 0 LIN Frame 控制寄存器 FCCTRL 0x14 R/W 0 自动流控控制寄存器 6.10.4 寄存器描述 数据接口寄存器 DATA ADDR:0x40020000+0x1000*n(n 为端口值) 位域 名称 类型 复位值 描述 31:9 REVERSED — — 10 PARERR RO 0 9 VALID RO 0 8:0 DATA R/W 0 保留 当前读回的的数据是否存在校验错误 1:错误 0:正确 数据有效位 当 DATA 字段有有效的接收数据时,该位为 1,为 0 时无效 UART 数据位 读操作,返回缓存中接收到的数据 写操作,将待发送的数据写入缓存中 控制及状态寄存器 CTRL ADDR:0x40020004+0x1000*n(n 为端口值) 位域 名称 类型 复位值 31:24 TOTIME R/W 0 23:22 STOPMD R/W 0 21:20 PARMD R/W 0 描述 接收数据超时中断的触发条件 TimeOut 时长 = TOTIME*10/BAUDRAUD 秒 停止位模式 00:1 位 01:2 位 1x:保留 奇偶校验位模式 00:奇校验 01:偶校验 10:常 1 11:常 0 104 Version 1.02 SWM320 系列 位域 名称 类型 复位值 描述 奇偶校验位使能位 1:使能 0:禁能 数据位模式 1:9 位数据位 0:8 位数据位 该位为 0 表示 UART 正常发送数据, 使用 LIN Fram 发送时需要将该位置为 1,以拉低 UART_TX 管脚 Break 中断使能: 1:使能 0:禁能 Break 检测标志位 1:接收到 Break 0:没有接收到 Break 接收数据超时中断使能 1:使能 0:禁能 19 PAREN R/W 0 18 NINEBIT R/W 0 17 GENBRK R/W 0 16 BRKIE R/W 0 15 BRKDET R/W 1C 0 14 TOIE R/W 0 13 FLEXBAUD EN R/W 0 使用 UART 前,需要将此位配置为 1 12:11 REVERSED — — 保留 10 LOOP R/W 0 9 EN R/W 0 8:7 REVERSED — — 6 TXDONEIE R/W 0 5 RXOV W1C 0 4 RXIE R/W 0 3 RXNE RO 0 回环测试模式使能位(从 TX 线发送出去的数据, 在自身 RX 线上可以收到,从而测试硬件是否正常 工作) 1:使能 0:禁能 UART 模块使能位 1:使能 0:禁能 保留 发送完成中断使能位 1:使能 0:禁能 接收端 FIFO 溢出标志位 1:接收 FIFO 溢出 0:接收 FIFO 没有溢出 接收端 FIFO 中断使能位 1:接收 FIFO 达到预定的数量时产生中断 0:接收 FIFO 达到预定的数量时不产生中断 接收端 FIFO 非空标志位 1:非空 0:空 105 Version 1.02 SWM320 系列 位域 名称 类型 复位值 2 TXIE R/W 0 1 TXF RO 0 0 TXIDLE RO 0 描述 发送端 FIFO 中断使能位 1:当发送 FIFO 内的数据少于预定的数量时产生 中断 0:当发送 FIFO 内的数据少于预定的数量时不产 生中断 发送端 FIFO 满标志位 1:发送 FIFO 内的数据满 0:发送 FIFO 内的数据不满 发送线空闲标志位 1:发送线空闲 0:发送线忙,正在发送数据 波特率寄存器 BAUD ADDR:0x40020008+0x1000*n(n 为端口值) 位域 名称 类型 复位值 31:28 REVERSED — — 保留 27 TXDONEIR Q RO 0 发送完成中断状态位 1:中断已产生 0:中断未产生 26 OVST R,W 1C 0 自动调节波特率失败时该位自动置 1 25:24 AUTOBAU DBITS R/W 0 23 AUTOBAU DEN R/W, AC 0 22 RXIF RO 0 21 TOIF RO 0 20 TXTHRF RO 0 19 RXTHRF RO 0 18 BRKIF RO 0 17 TXIF RO 0 16 RXTOIF RO 0 15 RXD RO 0 描述 自动调节波特率时,检测的时间长度 00:1 位长度 01:2 位长度 10:4 位长度 11:8 位长度 波特率自动调节功能 1:使能 0:禁能 接收端 FIFO 中断状态位 1:中断已产生 0:中断未产生 接收数据超时中断状态位 1:中断已产生 0:中断未产生 当发送 FIFO 达到预定数量时,该位为 1 当接收 FIFO 达到预定数量时,该位为 1 当接收到 BREAK 字符时,如果使能 Break 中断, 则该位置 1,通过 CTRL 寄存器 BRKDET 位清除 发送端 FIFO 中断状态位 1:中断已产生 0:中断未产生 当 RXIF 或 RXTOIRQ 为 1 时,该位为 1 直接读取接收线状态 1:高电平 106 Version 1.02 SWM320 系列 位域 名称 类型 复位值 14 TXD RO 0 13:0 BAUD R/W 0 描述 0:低电平 直接读取发送线状态 1:高电平 0:低电平 UART 工作波特率控制 设置波特率方式为:波特率= F/(16*(BAUD+1)) FIFO 寄存器 ADDR:0x4002000C+0x1000*n(n 为端口值) 位域 名称 类型 复位值 描述 31:28 REVERSED — — 保留 27:24 TXTHR R/W 0 设置发送 FIFO 中断(TXIF)阈值 23:20 REVERSED — — 保留 19:16 RXTHR R/W 0 设置接收 FIFO 中断(RXIF)阈值 15:12 REVERSED — — 保留 11:8 TXLVL R/W 0 发送 FIFO 中实际数据数量 7:4 REVERSED — — 保留 3:0 RXLVL R/W 0 接收 FIFO 中实际数据数量 LINCTRL 寄存器 ADDR:0x40020010+0x1000*n(n 为端口值) 位域 名称 类型 复位值 31:5 REVERSED — — 保留 4 LINGENBR K R/W, AC 0 该位写 1 发送 LIN Break,发送完成自动清零 3 LINGENBR KST 0 LIN Break 发送完成中断状态 1:中断已产生 0:中断未产生 2 LINGENBR KEN 0 发送 LIN Break 完成中断的使能 1:使能 0:禁能 R/W R/W 描述 1 LINBRKST RO 0 检测到 LIN Break 中断状态 1:中断已产生 0:中断未产生 0 LINBRKEN R/W 0 检测到 LIN Break 中断的使能 1:使能 0:禁能 FCCTRL 寄存器 ADDR:0x40020014+0x1000*n(n 为端口值) 位域 名称 类型 复位值 描述 31:9 REVERSED — — 保留 8 RTS RO 0 RTS 的当前状态 107 Version 1.02 SWM320 系列 1:高电平 0:低电平 7 CTS RO 0 CTS 的当前状态 1:高电平 0:低电平 6:4 RTSTH R/W 0 RTS 流控的触发阈值 000:触发阈值为 1Byte 001:触发阈值为 2Byte 010:触发阈值为 4Byte 011:触发阈值为 6Byte 3 RTSPOL R/W 0 RTS 信号的极性 1:高有效,RTS 输出高表示可以接收数据 0:低有效,RTS 输出低表示可以接收数据 0 CTS 信号的极性 1:高有效,CTS 输入为高表示可以发送数据 0:低有效,CTS 输入为低表示可以发送数据 0 RTS 流控使能 1:使能 0:禁能 0 CTS 流控使能 1:使能 0:禁能 2 1 0 CTSPOL RTSEN CTSEN R/W R/W R/W 108 Version 1.02 SWM320 系列 6.11 I2C 总线控制器 6.11.1 特性  支持最高 1MHZ 速率主机模式  支持最高 400KHZ 速率从机模式  支持 7 位或 10 位地址  波特率可配置  支持中断功能 6.11.2 功能 不同型号 I2C 模块数量可能不同。使用前需使能对应 I2C 模块时钟。 基本操作  总线设置 I2C 总线采用串行数据线(SDA)和串行时钟线(SCL)传输数据。I2C 总线的设备端口为开 漏输出,所以必须在接口外接上拉电阻。 数据在主从设备之间通过 SCL 时钟信号在 SDA 数据线上逐字节同步传输。每一个 SCL 时钟脉冲发送一位数据,高位在前。每发送一个字节的数据产生一个应答信号。在时钟线 SCL 高电平期间对数据的每一位进行采样。数据线 SDA 在时钟线 SCL 为低改变,在时钟线 SCL 为高电平时必须保持稳定。  协议介绍 通常情况下,一个标准的通信包含四个部分:开始信号、从机地址、数据传输、停止信 号。如图 6-15 所示: 图 6-15 I2C 通信示意图  起始位发送 当总线空闲时,表示没有主机设备占用总线(SCL 和 SDA 都保持高电平),主机可以 通过发送一个起始信号启动传输。启动信号,通常被称为 S 位。SCL 为高电平时,SDA 由 高电平向低电平跳变。启动信号表示开始新的数据传输。 重新启动是没有先产生一个停止信号的启动信号。主机使用此方法与另一个从机或者在 不释放总线的情况下与相同的从机改变数据传输方向(例如从写入设备到写入设备的转换) 。 109 Version 1.02 SWM320 系列 当命令寄存器的 STA 位被置位,同时 RD 或者 WR 位被置位时,系统核心产生一个启 动信号。根据 SCLK 的当前的不同状态,生成启动信号或重复启动信号。  地址发送 在开始信号后,由主机传输的第一个字节数据是从机地址。包含 7 位的从设备地址和 1 位的 RW 指示位。RW 指示位信号表示与从机的数据传输方向。在系统中的从机不可以具有 相同的地址。只有从机地址和主机发送的地址匹配时才能产生一个应答位(在第九个时钟周 期拉低 SDA)进行响应。对于 10 位从机地址,模块通过产生两个从机地址支持。 发送从机地址为一次写操作,在传输寄存器中保存从机地址并对 WR 位置位,从机地 址将被发送到总线上。  数据发送 一旦成功取得了从机地址,主机就可以通过 R/W 位控制逐字节的发送数据。每传输一 个字节都需要在第九个时钟周期产生一个应答位。 如果从机信号无效,主机可以生成一个停止信号中止数据传输或生成重复启动的信号并 开始一个新的传输周期。如果从机返回一个 NACK 信号,主机就会产生一个停止信号放弃 数据传输,或者产生一个重新启动信号开始一个新的传输周期。 如果主机作为接收设备,没有应答从机,从机就会释放 SDA,主机产生停止信号或者 重新启动信号。 向从机写入数据,需把将要发送的数据存入传输寄存器中并设置 WR 位。从从机中读 取数据,需设置 RD 位。在数据传输过程中系统核心设置 TIP 提示标志,指示传输正在进行。 当传输完成后 TIP 提示标志会自动清除。当中断使能时,中断标志位 IF 被置位,并产生中 断。当中断标志位 IF 被置位后,接收寄存器收到有效数据。当 TIP 提示标志复位后,用户 可以发出新的写入或读取命令。  停止位发送 主机可以通过生成一个停止信号终止通信。停止信号通常被称为 P 位,被定义为 SCL 为高电平时,SDA 由低电平向高电平跳变。 主机发送模式 I2C 模块作为主机,初始化配置操作如下:  配置 PORTCON 模块中端口对应 PORTx_FUMUX 寄存器,将指定引脚配置为 I2C 功能  配置 PORTCON 模块中端口对应 PORTx_SEL 寄存器,将指定引脚切换为功能复用  配置 PORTCON 模块中端口对应 PULLU_x 上拉使能寄存器,使能端口内部上拉电 阻(也可使用外部上拉电阻)  配置 PORTCON 模块中端口对应 INEN_x 输入使能寄存器,使能 I2C 数据线输入功 能 110 Version 1.02 SWM320 系列  置 CTRL 寄存器的 EN 位为 0,关闭 I2C 模块,确保配置寄存器过程中模块未工作  配置 SLACR 寄存器的 SLAVE 位为 0,将 I2C 模块设置为主机模式  配置 CLKDIV 寄存器的 CLKDIV 位,设置 I2C 传输速度,计算公式见寄存器描述  配置 MSTCMD 寄存器的 IF 位为 1,使能 I2C 中断前确保中断标志位为清除状态  配置 CTRL 寄存器的 MSTIE 位为 1,使能 I2C 中断  配置 CTRL 寄存器的 EN 位为 1,打开 I2C 模块 I2C 作为主机向从机发送数据操作流程如下:  主机发送从机器件地址: 将从机的 7 位器件地址写入 MSTDAT 寄存器的 DATA 位, 高 7 位为器件地址,最后一位为 0  置 MSTCMD 寄存器 STA 位和 WR 位为 1,发送起始信号和写命令  发送数据:将需要往从机发送的数据写入 MSTDAT 寄存器 DATA 位,同时置 MSTCMD 寄存器 WR 位为 1。数据发送完成后,MSTCMD 寄存器的 TIP 位变为 0, 可通过查询该位确认发送完成。从机成功接收到数据,后向主机返回 ACK,主机 接收到 ACK 后,MSTCMD 寄存器的 STA 位变为 0  主机按上步骤可重复发送数据,数据发送完成后置 MSTCMD 寄存器 STO 位为 1, 则总线发送 STOP 信号,停止写入数据 流程如图 6-16 所示 111 Version 1.02 SWM320 系列 MT S ACK NAK MCMD.RXACK=0 MCMD.RXACK=1 ACK/ NAK MCMD.RXACK=0 MCMD.RXACK=1 I2C_DAT (Data) ACK NAK I2C_DAT (SLV+W) ACK NAK ACK/ NAK MDAT=ADDR WR = 1 MDAT=ADDR STA,WR = 1,1 Sr MDAT=ADDR STA,WR = 1,1 P STP = 1 P MCMD.ARBLST=1 I2C_DAT (SLV+W) S STP = 1 MDAT=ADDR STA,WR = 1,1 ACK/ NAK MT MR 释放总线 Master to Slave Slave to Master Arbitration Lost MT Master Tramsmitter 图 6-16 主机发送/从机接收流程 主机接收模式 I2C 作为主机接收模式, 需将 I2C 模块设置为 MASTER,初始化过程与主发送模式相同。 I2C 作为主机从从机读取数据操作流程如下(以 EEPROM 流程为例) :  主机发送从机器件地址:把从机的 7 位器件地址给 MSTDAT 寄存器的 DATA 位, 高 7 位为器件地址,最后一位为 0  置 MSTCMD 寄存器 STA 位和 WR 位为 1,发送起始信号和写命令  主机发送读取数据的地址:把读取数据的地址写入 MSTDAT 寄存器 DATA 位,同 时置 MSTCMD 寄存器 WR 位为 1  主机再次发送从机器件地址:将从机的 7 位器件地址写入 MSTDAT 寄存器的 DATA 位,高 7 位为器件地址,最后一位为 1  置 MSTCMD 寄存器 WR 位为 1,启动写命令,DATA 中地址数据发送至总线  读取数据:向从机发送读取命令,置 MSTCMD 寄存器 RD 位为 1。数据传输完成 112 Version 1.02 SWM320 系列 后 MSTCMD 寄存器的 TIP 位变为 0,主机可通过读取 MSTDAT 寄存器的 DATA 位来读取从机数据  主机按上述步骤可重复读取数据,当最后一个数据读取完成时,主机要向从机返回 NACK 和停止信号,通过将 MSTCMD 寄存器 STO、ACK 和 RD 位全部置 1 可完 成该操作 流程如图 6-17 所示。 MR S ACK NAK MCMD.RXACK=0 MCMD.RXACK=1 ACK/ NAK MDAT=ADDR STA,WR = 1,1 MCMD.RXACK=0 MCMD.RXACK=1 I2C_DAT (Data) ACK NAK I2C_DAT (SLV+R) ACK NAK ACK/ NAK MDAT=ADDR WR = 1 Sr MDAT=ADDR STA,WR = 1,1 P STP = 1 P MCMD.ARBLST=1 I2C_DAT (SLV+R) S MT STP = 1 MDAT=ADDR STA,WR = 1,1 ACK/ NAK MR 释放总线 Master to Slave Slave to Master Arbitration Lost MR Master Receiver 图 6-17 主机接收/从机发送流程 从发送模式 I2C 作为从发送模式,需将 I2C 模块设置为 SLAVE,具体软件配置操作如下:  配置 PORTCON 模块中端口对应 PORTx_FUMUX 寄存器,将指定引脚配置为 I2C 功能  配置 PORTCON 模块中端口对应 PORTx_SEL 寄存器,将指定引脚切换为功能复用  配置 PORTCON 模块中端口对应 PULLU_x 上拉使能寄存器,使能端口内部上拉电 阻  配置 PORTCON 模块中端口对应 INEN_x 输入使能寄存器,使能 I2C 数据线输入功 113 Version 1.02 SWM320 系列 能  置 CTRL 寄存器的 EN 位为 0,关闭 I2C 模块,确保配置寄存器过程中模块未工作  配置 SLACR 寄存器的 SLAVE 位为 1,将 I2C 模块设置为从机模式  配置 SLACR 寄存器的 ACK 位 1,设置 I2C 作为从机时接收数据后返回 ACK  配置 SLACR 寄存器的 ADDR7b 位 1,设置 I2C 地址模式为 7 位地址  配置 SLACR 寄存器的 ADDR 位,设置 I2C 的从机地址  配置 SLACR 寄存器的 IE_STADET、IE_TXEND、IE_RXEND 和 IE_STODET 位为 1,使能 I2C 从机的起始信号中断、发送完成中断、接收完成中断和停止信号中断  I2C 中断函数使能  配置 CTRL 寄存器的 EN 位为 1,打开 I2C 模块。 I2C 作为从机向主机发送数据操作流程如下:  等待 I2C 主机读取数据命令,I2C 主机读取数据过程见上述主接收模式描述,当主 机发送完从机地址和读数据地址后,从机 SLAVIF 寄存器 RXEND 位置 1 时,表示 接收完成中断触发,从机需要将第一次发出的数据写入 SLVTX 寄存器中  当从机第一次读取发送完成后,进入到发送完成中断。主机若继续读取数据,则从 机需在发送完成中断中将下次需发送的数据写入 SLVTX 寄存器中,直至所有数据 传输完成 注意:从机在发送完成中断中写入 SLVTX 寄存器的数据将在主机下次读取时发出,从 机发送的第一笔数据需要在收到主机发送的读取地址后写入 SLVTX 寄存器 从接收模式 I2C 作为从接收模式,需将 I2C 模块设置为 SLAVE,配置过程与从发送模式相同 I2C 作为从机接收主机发送数据操作流程如下:  等待 I2C 主机向从机写入数据,I2C 主机读取数据过程见上述主发送模式描述,主 机向从机写入一字节数据后,从机的寄存器 SLVIF 的 RXEND 位置 1 时,表示接 收完成中断触发,从机通过读取 SLVTX 寄存器,接收主机发送的数据  当从机成功接收到主机传输数据后,自动向主机返回 ACK(SLACR 寄存器的 ACK 位为 1 时),主机数据传输完成后发送 STOP 信号,从机检测到后进入停止信号中 断,停止接收数据 114 Version 1.02 SWM320 系列 6.11.3 寄存器映射 BASE: 0x40028000+0x1000*n(n 为端口值) I2C 名称 偏移量 类型 复位值 描述 CLKDIV 0x00 R/W 0xFFFF 分频控制寄存器。 CTRL 0x04 R/W 0 控制寄存器 MSTDAT 0x08 R/W 0 Master 数据寄存器 MSTCMD 0x0C R/W 0 Master 命令寄存器 SLVCR 0x10 R/W 0 Slave 控制寄存器 SLVIF 0x14 R/W1C 0 Slave 状态寄存器 SLVTX 0x18 R/W 0 Slave 发送数据缓存寄存器 SLVRF 0x1C R/W 0 Slave 接收数据缓存寄存器 6.11.4 寄存器描述 分频控制寄存器 CLKDIVx (x=0,1) ADDR: 0x40028000+0x1000*n(n 为端口值) 位域 名称 类型 复位值 描述 31:16 REVERSED — — 保留 0xFFFF 分频控制寄存器 需将内部工作频率设置为 SCL 频率的 5 倍, 此寄存器修改必须在 EN 为 0 的时候才能进行 例如: 主时钟频率为 32MHz,SCL 频率为 100KHz, 则需要设置 CLKDIV = 32*1000/5*100-1 = 0x3F 15:0 CLKDIV R/W 控制寄存器 CTRLx (x=0,1) ADDR: 0x40028004+0x1000*n(n 为端口值) 位域 名称 类型 复位值 描述 31:8 REVERSED — — 保留 0 模块使能 1:使能 0:禁能 7 EN R/W 6 MSTIE R/W 0 中断使能 1:使能中断 0:禁能中断 5:0 REVERSED — — 保留 数据寄存器 MSTDAT x (x=0,1) ADDR: 0x40028008+0x1000*n(n 为端口值) 位域 名称 类型 复位值 描述 115 Version 1.02 SWM320 系列 位域 名称 类型 复位值 描述 31:8 REVERSED — — 保留 RDATA RO 0 从 I2C 总线上接收的最后一个字节 — BIT [7:1] : 发送到 I2C 总线上的下一个数据 BIT [0] : 在数据传输过程中,为数据最低位 在地址传输过程中,为 R/W 指示位 1 表示从 slave 读数据 0 表示向 slave 写数据 7:0 WDATA WO 命令寄存器 MSTCMD x (x=0,1) ADDR: 0x4002800C+0x1000*n(n 为端口值) 位域 名称 类型 复位值 描述 31:8 REVERSED — — 保留 7 6 ACK RO 0 接收到从设备发送的 ACK 位: 0: 收到 ACK 1: 收到 NACK STA WO — 产生 START,自动清零 BUSY RO 0 当检测到 START 之后,这一位变 1 当检测到 STOP 之后,这一位变 0 STO WO — 产生 STOP,自动清零 RO 0 当 I2C 模块失去总线的访问权时硬件置 1 WO — 需从 Slave 读数据时,将该位置 1,自动清零 WO 0 向 Slave 写数据时,向该位写 1,自动清零 接收模式下: 0: 向总线反馈 ACK 1: 向总线反馈 NACK 5 RD 4 WR 3 ACK R/W 0 2 REVERSED — — 1 TIP R/W 0 1:传输正在进行中 0:传输已经结束 0 当该位为 1 时,表示中断等待处理,写 1 清零 有两种情况下此位硬件置位: 1.一个字节传输完成 2.总线访问权丢失 0 IF R/ W1C 保留 Slave 控制寄存器 SLVCRx (x=0,1) ADDR: 0x40028010+0x1000*n(n 为端口值) 位域 名称 类型 复位值 描述 31:30 REVERSED — — 保留 29:20 ADDR R/W 0 从机地址 19 DEBOUNCE R/W 0 去抖动使能 18 SLAVE R/W 0 0: 主机模式 17 ACK R/W 0 0: 应答 NACK 1: 从机模式 1: 应答 ACK 116 Version 1.02 SWM320 系列 位域 名称 类型 复位值 描述 16 ADDR7b R/W 0 0: 10 位地址模式 15:6 REVERSED R/W 0 保留 5 IE_WRREQ R/W 0 接收到写请求中断使能 4 IE_RDREQ R/W 0 接收到读请求中断使能 3 IE_STODET R/W 0 检测到停止中断使能 2 IE_STADET R/W 0 检测到起始中断使能 1 IE_TXEND R/W 0 发送完成中断使能 0 IE_RXEND R/W 0 接收完成中断使能 1: 7 位地址模式 Slave 状态寄存器 SLVIFx (x=0,1) ADDR: 0x40028014 +0x1000*n(n 为端口值) 位域 名称 类型 复位值 描述 31:7 REVERSED — — 保留 6 ACTIVE R/W 0 slave 有效 5 WRREQ RO 0 写请求中断标志 4 RDREQ RO 0 读请求中断标志 3 STODET R/ W1C 0 检测到停止中断标志 写 1 清除 2 STADET R/ W1C 0 检测到起始中断标志 写 1 清除 1 TXEND R/ W1C 0 发送完成中断标志 写 1 清除 0 RXEND R/ W1C 0 接收完成中断标志 写 1 清除 Slave 发送数据缓存寄存器 SLVTXx (x=0,1) ADDR: 0x40028018 +0x1000*n(n 为端口值) 位域 名称 类型 复位值 描述 31:8 REVERSED — — 保留 7:0 SLVTX R/W 0 发送数据缓存寄存器 Slave 接收数据缓存寄存器 SLVRXx (x=0,1) ADDR: 0x4002801C +0x1000*n(n 为端口值) 位域 名称 类型 复位值 描述 31:8 REVERSED — — 保留 7:0 SLVRX R/W 0 接收数据缓存寄存器 117 Version 1.02 SWM320 系列 6.12 串行外设接口(SPI)控制器 6.12.1 特性  全双工串行同步收发  可编程时钟极性和相位  支持 MASTER 模式和 SLAVE 模式  MASTER 模式下最高传输速度支持主时钟 4 分频  数据宽度支持 4BIT 至 16BIT  具备深度为 8 的接收和发送 FIFO 6.12.2 功能 不同型号 SPI 模块数量可能不同。使用前需使能对应 SPI 模块时钟。 SPI 模块支持 SPI 模式及 SSI 模式。SPI 模式下支持 MASTER 模式及 SLAVE 模式。具 备深度为 8 的 FIFO,速率及帧宽度可灵活配置。其结构图如下图所示。 SCK ck_generate MOSI APB BUS apb_reg shift register Control logic MISO txfifo rxfifo 图 6-18 SPI 控制器结构示意图 位速率的产生 SPI 模块包含一个可编程的位速率时钟分频器来生成串行输出时钟。串行位速率通过设 置控制寄存器(CTRL)CLKDIV 位域对输入时钟进行分频来获得。分频值的范围为 4~512 分频值。计算公式如下 Fsclk_out = FHCLK/SCKDIV。 作为主设备时,SPI_CLK 最高支持模块输入时钟 4 分频,即当时钟为 40MHz 时,最高 可支持输出 10MHz 时钟。 作为从设备时,SPI_CLK 最高支持模块输入时钟 6 分频,即当时钟为 40MHz 时,最高 支持输入 6MHz 时钟。 118 Version 1.02 SWM320 系列 帧宽度 使能 SPI 模块前,可通过设置控制寄存器(CTRL)DSS 位域选择数据帧长度,支持 4~ 16 位,从最高有效位(MSB)开始发送。设置该寄存器位时,需保证 SPI 处于关闭状态。 SPI 模式 使能 SPI 模块前,可通过设置控制寄存器(CTRL)中 FFS 位域选择输出模式,当该位 配置为 0 时,选择为 SPI 模式。此时,可通过控制寄存器(CTRL)中 CPOL 和 CPHA 配置 SPI 模块时钟空闲状态极性与数据采样时间点。 当 CPOL=0,CPHA=0 时,时钟空闲状态为低电平,起始采样点为时钟上升沿。输出波 形如下: 图 6-19 CPOL=0,CPHA=0 输出波形 当 CPOL=0,CPHA=1 时,时钟空闲状态为低电平,起始采样点为时钟下降沿。输出波 形如下: 图 6-20 CPOL=0,CPHA=1 输出波形 当 CPOL=1,CPHA=0 时,时钟空闲状态为高电平,起始采样点为时钟下降沿。输出波 形如下: 图 6-21 CPOL=1,CPHA=0 输出波形 119 Version 1.02 SWM320 系列 当 CPOL=1,CPHA=1 时,时钟空闲状态为高电平,起始采样点为时钟上升沿 输出波形如下: 图 6-22 CPOL=1,CPHA=1 输出波形 所有模式下,片选线均为发送一个数据后自动拉高,第二个数据再次拉低,因此当需要 使用连续片选时,需使用 GPIO 模拟片选线。 SSI 模式 可通过设置控制寄存器(CTRL)中 FFS 位域选择输出模式,当该位配置为 1 时,选择 为 SSI 模式。 单次输出波形如下: 图 6-23 SSI 模式单次输出波形 连续输出波形如下 图 6-24 SSI 模式连续输出波形 主设备操作 当 SPI 模块作为主模块工作时,操作流程如下:  通过 CTRL 寄存器 CLKDIV [2:0]位定义串行时钟波特率  设置 CTRL 寄存器 DSS 位来选择数据位数 120 Version 1.02 SWM320 系列  选择 CTRL 寄存器 CPOL 和 CPHA 位, 定义数据传输和串行时钟间的相位关系。主、 从设备的 CPOL 和 CPHA 位必须一致  配置 CTRL 寄存器 FFS 位定义数据帧格式,主、从设备的数据帧格式必须一致。  设置 CTRL 寄存器 MSTR 位为 1  使能 CTRL 寄存器 EN 位 在配置中,MOSI 引脚是数据输出,而 MISO 引脚是数据输入。 注意: 在 NSS 硬件模式下,从设备的 NSS 输入由主设备的 NSS 引脚控制,需选择软件 驱动的 GPIO 引脚控制。 从设备操作 在从模式下,SCK 引脚用于接收从主设备来的串行时钟。而 CTRL 寄存器中 CLKDIV [2:0]的设置不影响数据传输速率。 操作流程: 1. 设置 CTRL 寄存器 DSS 位来定义数据位数选择。 2. 选择 CTRL 寄存器 CPOL 和 CPHA 位,与主设备一致。 3. 配置 CTRL 寄存器 FFS 位定义数据帧格式。 4. 设置 CTRL 寄存器 MSTR 位为 0 在配置中,MOSI 引脚是数据输入,MISO 引脚是数据输出。 FIFO 操作 发送 FIFO:通用发送 FIFO 是一个 16 位宽、8 单元深、先进先出的存储缓冲区。通过 写数据 (DATA)寄存器来将数据写入发送 FIFO,数据在由发送逻辑读出之前一直保存在发 送 FIFO 中。并行数据在进行串行转换并通过 MOSI 管脚分别发送到相关的从机之前先写入 发送 FIFO。 接收 FIFO:通用接收 FIFO 是一个 16 位宽、8 单元深、先进先出的存储缓冲区。从串 行接口接收到的数据在读出之前一直保存在缓冲区中,通过读 DATA 寄存器来访问读 FIFO。 从 MISO 管脚接收到的串行数据在分别并行加载到相关的主机接收 FIFO 之前先进行记录。 可通过中断使能寄存器 IE、中断状态寄存器 IF、状态寄存器 STAT 对 FIFO 状态及中断 进行查询与控制。 121 Version 1.02 SWM320 系列 6.12.3 寄存器映射 SPI BASE: 0x4002C000/0x4002D000 名称 偏移量 类型 复位值 描述 CTRL 0x00 R/W 0x1172 SPI 控制寄存器 DATA 0x04 R/W 0 SPI 数据寄存器 STAT 0x08 R/W 0x6 SPI 状态寄存器 IE 0x0C R/W 0 SPI 中断使能寄存器 IF 0x10 R/W 0 SPI 中断状态寄存器 6.12.4 寄存器描述 控制寄存器 CTRL ADDR: 0x4002C000/0x4002D000 位域 名称 类型 复位值 描述 31:13 REVERSED — — 12 MSTR R/W 1 11:10 FFS R/W 0 9 CPOL R/W 0 8 CPHA R/W 1 保留 主从模式选择 1 = SPI 系统配置为主器件模式 0 = SPI 系统配置为从器件模式 数据帧格式选择 00:SPI 模式 01:SSI 模式 1x:保留 时钟极性选择 0 = 串行时钟空闲状态为低电平,有效电平为 高电平 1 = 串行时钟空闲状态为高电平,有效电平为 低电平 时钟相位选择 0 = 在串行时钟的第一个跳变沿采样数据 1 = 在串行时钟的第二个跳变沿采样数据 122 Version 1.02 SWM320 系列 位域 名称 类型 复位值 7:4 DSS R/W 0x7 3 EN RW 0x0 2:0 CLKDIV RW 0x10 描述 数据位数选择 0000:保留 0001:保留 0010:保留 0011:4bit 数据 0100:5bit 数据 0101:6bit 数据 0110:7bit 数据 0111:8bit 数据 1000:9bit 数据 1001:10bit 数据 1010:11bit 数据 1011:12bit 数据 1100:13bit 数据 1101:14bit 数据 1110:15bit 数据 1111:16bit 数据 SPI 使能位 0:关闭 1:开启 波特率选择 000:主时钟 4 分频 001:主时钟 8 分频 010:主时钟 16 分频 011:主时钟 32 分频 100:主时钟 64 分频 101:主时钟 128 分频 110:主时钟 256 分频 111:主时钟 512 分频 数据寄存器 DATA ADDR: 0x4002C004/0x4002D004 位域 名称 类型 复位值 31:16 REVERSED — — 保留 0x0 SPI 接收/发送数据寄存器 读操作从接收 FIFO 中读出接收到的数据 写操作将数据写入发送 FIFO 中 15:0 DATA RW 描述 状态寄存器 STAT ADDR: 0x4002C008/0x4002D008 位域 名称 类型 复位值 31:12 REVERSED — — 描述 保留 123 Version 1.02 SWM320 系列 位域 11:9 8:6 5 4 3 2 名称 RFLVL TFLVL RFOVF RFF RFNE TFNF 类型 RO RO RW RO RO RO 复位值 描述 0 接收 FIFO 数据深度位标志 000:RFF 为 1 时,表示 FIFO 内有 8 组数据; RFF 为 0 时,表示 FIFO 内没有数据; 001:表示 FIFO 内有 1 组数据; 010:表示 FIFO 内有 2 组数据; 011:表示 FIFO 内有 3 组数据; 100:表示 FIFO 内有 4 组数据; 101:表示 FIFO 内有 5 组数据; 110:表示 FIFO 内有 6 组数据; 111:表示 FIFO 内有 7 组数据; 0 发送 FIFO 数据深度位标志 000:TFNF 为 0 时,表示 FIFO 内有 8 组数据; TFNF 为 1 时,表示 FIFO 内没有数据; 001:表示 FIFO 内有 1 组数据; 010:表示 FIFO 内有 2 组数据; 011:表示 FIFO 内有 3 组数据; 100:表示 FIFO 内有 4 组数据; 101:表示 FIFO 内有 5 组数据; 110:表示 FIFO 内有 6 组数据; 111:表示 FIFO 内有 7 组数据; 0 接收 FIFO 溢出标志,软件清零,写清零 0:没溢出 1:溢出 0 接收 FIFO 满标志 0:非满 1:满 0 接收 FIFO 非空标志 0:空 1:非空 1 发送 FIFO 非满标志 0:满 1:非满 1 TFE RO 1 发送 FIFO 空标志 0:非空 1:空 0 TC RW 0 SPI 传输结束标志 每次数据帧传输结束后,该标志会被置位。 软件清零,写 1 清零。 中断使能寄存器 IE ADDR: 0x4002C00C/0x4002D00C 位域 名称 类型 复位值 描述 124 Version 1.02 SWM320 系列 位域 名称 类型 复位值 31:5 REVERSED — — 保留 0x0 发送 FIFO 半满 1:使能 0:禁能 0x0 发送 FIFO 空中断使能 1:使能 0:禁能 0x0 接收 FIFO 半满 1:使能 0:禁能 4 3 2 TFHF TFE RFHF RW RW RW 描述 1 RFF RW 0x0 接收 FIFO 满中断使能 1:使能 0:禁能 0 RFOVF RW 0x0 接收 FIFO 溢出中断使能 1:使能 0:禁能 中断状态寄存器 IF ADDR: 0x4002C010/0x4002D010 位域 名称 类型 复位值 31:5 REVERSED — — 保留 0x0 发送 FIFO 半满状态 1:中断已产生 0:中断未产生 写 1 清中断状态 0x0 发送 FIFO 空中断状态 1:中断已产生 0:中断未产生 写 1 清中断状态 0x0 接收 FIFO 半满状态 1:中断已产生 0:中断未产生 写 1 清中断状态 0x0 接收 FIFO 满中断状态 1:中断已产生 0:中断未产生 写 1 清中断状态 0x0 接收 FIFO 溢出中断状态 1:中断已产生 0:中断未产生 写 1 清中断状态 4 3 2 1 0 TFHF R/ W1C TFE R/ W1C RFHF R/ W1C RFF R/ W1C RFOVF R/ W1C 描述 125 Version 1.02 SWM320 系列 6.13 脉冲宽度调制(PWM)发生器 6.13.1 特性  6 组 16 位宽 PWM 控制,最多可产生 12 路 PWM 信号  支持互补、中心对称、单步模式  最高支持输入时钟 8 分频  提供高电平起始中断及周期结束中断  支持死区设置  可选择初始输出电平选择  支持刹车功能  支持硬件自动触发 ADC 采样 6.13.2 功能 使用前需使能 PWM 模块时钟。 PWM 模块提供了 12 路(6 组)输出,支持独立、互补、中心对称等模式,支持死区 生成及初始电平配置。 初始电平配置与时钟分频 通过配置 BCTRLx 寄存器,可配置各路 PWM 初始电平。ENABLE 寄存器 EN 位使能 后,对应通道起始输出电平即为该寄存器对应通道配置电平。如下图所示。 Initial State PWM Starts CYCLE PWM_A PWM Starts Initial State Hduty InitLevelA = 1 Hduty PWM_A InitLevelA = 0 Initial State:模块EN=0时引脚电平状态 PWM Starts:模块EN=1时引脚电平状态 InitLevel:初始电平配置 图 6-25 独立模式下初始电平配置示意图 互补模式时,EN 使能前,初始电平配置有效,使能后,该寄存器配置对 B 路输出电平 126 Version 1.02 SWM320 系列 无效。 通过 SYSCON 模块 CLKDIV 寄存器,可进行 PWM 计数时钟周期配置,支持计数周期 最多为 PWM 模块时钟周期的 8 倍。 注意:分频寄存器需要在初始电平设置完成后进行配置。 PWM 模块建议按照如下顺序配置  配置初始电平  配置周期及中断相关寄存器  初始化时钟分频  引脚功能切换  PWM 使能 PWM Starts Initial State Initial State PWM Starts CYCLE PWM_A Hduty InitLevelA = 1 InitLevelB = 1 PWM_B CYCLE PWM_A Hduty InitLevelA = 0 InitLevelB = 1 PWM_B CYCLE PWM_A Hduty InitLevelA = 1 InitLevelB = 0 PWM_B CYCLE PWM_A Hduty InitLevelA = 0 InitLevelB = 0 PWM_B Initial State:模块EN=0引脚电平状态 PWM Starts:模块EN=1引脚电平状态 InitLevel:初始电平 阴影部分:死区周期 图 6-26 互补模式下初始电平设置示意图 127 Version 1.02 SWM320 系列 模式选择 通过配置 MODEx 寄存器,配置 PWM 输出模式,包括独立/互补/中心对称/单步模式。 独立模式下,每一路 PWM 独立配置,彼此间相互无影响。 其中,起始输出电平根据 BCTRLx 寄存器配置而定,可选择高电平或低电平;周期通 过寄存器 PERAx 设置,最大值为 FFFFh;高电平周期通过寄存器 HIGHx 进行设置,低电平 周期则为 PERAx-HIGHx。 PERAx的值 HIGHAx 时间 0x80 PWMA_OUTx 图 6-27 PWM 独立模式起始输出低电平示意图 PERBx的值 HIGHBx 时间 0x80 PWMB_OUTx 图 6-28 PWM 独立模式起始输出高电平示意图 互补模式下, 同组 A 路及 B 路输出为一组, 只需配置当前组 A 路计数周期寄存器 PERAx 及高电平周期寄存器 HIGHAx,B 路输出为 A 路输出的反向。此外,可配置死区发生器, 死区效果为将上升沿推后指定周期,通过 DZAx 及 DZBx 寄存器进行配置,配置值不可大 于高电平值。 PERAx的值 HIGHAx 时间 0x80 PWMA_OUTx PWMB_OUTx 128 Version 1.02 SWM320 系列 图 6-29 未开启死区的互补模式 PERAx的值 HIGHAx 时间 0x80 PWMA_OUTx PWMB_OUTx DZAx DZBx 图 6-30 开启死区的互补模式 中心对称模式下,周期数为一个对称单元,周期长度寄存器(PERAx 及 PERBx)设置 长度为所需周期长度的一半(cycle/2),高电平长度寄存器 (HIGHAx 及 HIGHBx)设置长 度同样为所需长度一半(high_cycle/2) 。波形如下图所示。 PERAx的值 HIGHAx 时间 0x40 PWMA_OUTx 图 6-31 中心对称模式 中心对称互补模式下,B 路输出为 A 路输出反向,同时可配置死区寄存器(DZAx 及 DZBx) ,产生死区,如下图所示。 129 Version 1.02 SWM320 系列 PERAx的值 HIGHAx 时间 0x40 PWMA_OUTx PWMB_OUTx DZAx DZBx 图 6-32 中心对称互补模式 单步模式下,PWM 波形与普通模式相同,但输出周期个数为 1。输出 1 个周期后,自 动停止 PWM 通道。 触发 SAR ADC 采样 使用 PWM 触发时,需将 PWM 配置为中心对称互补模式。将 SAR ADC 配置寄存器 (CTRL)中 TRIG(BIT[15:14])设置为 01。每路 PWM 对应一个 TRIGGERx 寄存器值, 当 PWM 计数到指定值,可触发 ADC 进行采样。当 8 路 PWM 工作在中心对称互补模式下 时,最多可触发 8 次 ADC 采样。具体配置方式如下(以 TRIGGERA0 为例) :  配置 TRIGGERAEVEN0 位,确认为前半周期或后半周期触发(前半周期与后半周 期以中心点为界)  配置 TRIGGERA0 数值,该数值为触发延时时长,前半周期从周期起始记,后半 周期从中心点记,该数值最小填充值为 1  置 TRIGGERAEN0 位为 1,使能 0_A 通道触发功能  使能 PWM 模块 EN 位,当计数值到达 TRIGGERA0 设置值时,触发 ADC 配置寄 存器(CTRL)中选中的通道(CHx)进行采样,采样完成后,将产生 EOC 标志位, 并产生 ADC 中断 示意图如下图所示,其中 A 路位前半周期触发,B 路为后半周期触发。 130 Version 1.02 SWM320 系列 图 6-33 PWM 触发 ADC 采样示意图 中断 PWM 模块提供了高电平结束中断、周期起始中断以及刹车中断,其中高电平结束中断 和新周期起始中断,每一路均可单独进行使能、屏蔽及查询操作。通过 IE 寄存器、IF 寄存 器、IMASK 寄存器、IRAWST 寄存器进行操作。IRAWST 寄存器只受 EN 寄存器影响,当 INTMASK 寄存器使能后,INTST 寄存器对应位将被屏蔽。对于高电平结束中断和新周期起 始中断,不同模式下工作方式如下:  对于独立模式,每路均可单独产生这两种中断 PERAx的值 HIGHAx 时间 0x80 PWMA_OUTx HENDxA 图 6-34 PWM 独立模式下高电平结束中断示意图 131 Version 1.02 SWM320 系列 PERBx的值 HIGHBx 时间 0x80 PWMB_OUTx NEWPxB 图 6-35 PWM 独立模式下新周期起始中断示意图  对于中心对称模式,周期起始中断只在前半周期产生,中心点不产生,高电平结束 中断根据波形产生 PERAx的值 HIGHAx 时间 0x40 PWMA_OUTx NEWPxA 图 6-36 PWM 中心对称模式下新周期起始中断示意图  对于中心对称互补模式,A 路与 B 路周期起始中断同时产生,高电平结束中断可 根据波形分别产生 PERAx的值 HIGHAx 时间 0x40 PWMA_OUTx PWMB_OUTx NEWPxA NEWPxB 132 Version 1.02 SWM320 系列 图 6-37 PWM 中心对称互补模式下新周期起始中断示意图 所有模式下, 可随时产生刹车中断。 清中断通过对 IRAWST 寄存器相应位写 1 进行操作。 注:在中心对称模式下,当占空比为 100%时,需要在该周期内将高电平结束中断关闭 刹车与暂停功能 PWM 发生器模块支持外部信号输入与内部软件操作对输出进行暂停。  软件可以通过配置 PWMMSK 寄存器,使对应 PWM 通道引脚输出为 1。此时, PWM 模块计数依然继续进行,当禁能该寄存器对应位时,PWM 可继续输出。波形如下 图所示。 PWMMSK 0x0 0x1(CH0/1) 0x2(CH2/3) 0x0 0x0 0x4(CH4/5) CH0 CH1 CH2 CH3 CH4 CH5 图 6-38 输出屏蔽功能示意图  外部信号可通过 PWM_BREAK 引脚输入指定电平对 PWM 模块进行刹车操作,使 用前配置如下:  配置 PORTCON 模块中 INEN 寄存器使能引脚输入功能  通过 PORT_SEL 寄存器将引脚切换为数字功能  通过 FUNMUX 寄存器将引脚配置为 PWM_BREAK 功能  对 HALTCTRL 寄存器进行设置,配置刹车输入有效电平、刹车过程中输出电 平、刹车后 PWM 是否继续计数、该功能影响的通道  配置 HALTCTRL 寄存器 BIT[0]进行使能。使能后,当外部输入指定电平时, 对应通道执行刹车功能 刹车电平恢复后,将根据 HALTCTRL 寄存器配置决定 PWM 波形是否继续输出 6.13.3 寄存器映射 PWM BASE:0x4001A000 名称 偏移量 类型 复位值 描述 MODE0 0x00 R/W 0 第 0 组 PWM 的工作模式控制 PERA0 0x04 R/W 0 第 0 组 A 路 PWM 的计数周期,最 小为 1,对应一个计数时钟周期 133 Version 1.02 SWM320 系列 名称 偏移量 类型 复位值 描述 HIGHA0 0x08 R/W 0 第 0 组 A 路 PWM 的高电平持续周 期,最小为 0,对应一直输出低电 平 DZA0 0x0C R/W 0 第 0 组 A 路死区长度控制。必须小 于 HIGHA0 PERB0 0x10 R/W 0 第 0 组 B 路 PWM 的计数周期,最 小为 1,对应一个计数时钟周期 HIGHB0 0x14 R/W 0 第 0 组 B 路 PWM 的高电平持续周 期,最小为 0,对应一直输出低电 平 DZB0 0x18 R/W 0 第 0 组 B 路死区长度控制。 BCTRL0 0x1C R/W 0 第 0 组 PWM 输出起始值控制 MODE1 0x20 R/W 0 第 1 组 PWM 的工作模式控制 PERA1 0x24 R/W 0 第 1 组 A 路 PWM 的计数周期,最 小为 1,对应一个计数时钟周期 HIGHA1 0x28 R/W 0 第 1 组 A 路 PWM 的高电平持续周 期,最小为 0,对应一直输出低电 平 DZA1 0x2C R/W 0 第 1 组 A 路死区长度控制。必须小 于 HIGHA1 PERB1 0x30 R/W 0 第 1 组 B 路 PWM 的计数周期,最 小为 1,对应一个计数时钟周期 HIGHB1 0x34 R/W 0 第 1 组 B 路 PWM 的高电平持续周 期,最小为 0,对应一直输出低电 平 DZB1 0x38 R/W 0 第 1 组 B 路死区长度控制。 BCTRL1 0x3C R/W 0 第 1 组 PWM 输出起始值控制 MODE2 0x40 R/W 0 第 2 组 PWM 的工作模式控制 PERA2 0x44 R/W 0 第 2 组 A 路 PWM 的计数周期,最 小为 1,对应一个计数时钟周期 HIGHA2 0x48 R/W 0 第 2 组 A 路 PWM 的高电平持续周 期,最小为 0,对应一直输出低电 平 DZA2 0x4C R/W 0 第 2 组 A 路死区长度控制。必须小 于 HIGHA2 PERB2 0x50 R/W 0 第 2 组 B 路 PWM 的计数周期,最 小为 1,对应一个计数时钟周期 HIGHB2 0x54 R/W 0 第 2 组 B 路 PWM 的高电平持续周 期,最小为 0,对应一直输出低电 平 DZB2 0x58 R/W 0 第 2 组 B 路死区长度控制。 134 Version 1.02 SWM320 系列 名称 偏移量 类型 复位值 描述 BCTRL2 0x5C R/W 0 第 2 组 PWM 输出起始值控制 MODE3 0x60 R/W 0 第 3 组 PWM 的工作模式控制 PERA3 0x64 R/W 0 第 3 组 A 路 PWM 的计数周期,最 小为 1,对应一个计数时钟周期 HIGHA3 0x68 R/W 0 第 3 组 A 路 PWM 的高电平持续周 期,最小为 0,对应一直输出低电 平 DZA3 0x6C R/W 0 第 3 组 A 路死区长度控制。必须小 于 HIGHA3 PERB3 0x70 R/W 0 第 3 组 B 路 PWM 的计数周期,最 小为 1,对应一个计数时钟周期 HIGHB3 0x74 R/W 0 第 3 组 B 路 PWM 的高电平持续周 期,最小为 0,对应一直输出低电 平 DZB3 0x78 R/W 0 第 3 组 B 路死区长度控制。 BCTRL3 0x7C R/W 0 第 3 组 PWM 输出起始值控制 MODE4 0x80 R/W 0 第 4 组 PWM 的工作模式控制 PERA4 0x84 R/W 0 第 4 组 A 路 PWM 的计数周期,最 小为 1,对应一个计数时钟周期 HIGHA4 0x88 R/W 0 第 4 组 A 路 PWM 的高电平持续周 期,最小为 0,对应一直输出低电 平 DZA4 0x8C R/W 0 第 4 组 A 路死区长度控制。必须小 于 HIGHA4 PERB4 0x90 R/W 0 第 4 组 B 路 PWM 的计数周期,最 小为 1,对应一个计数时钟周期 HIGHB4 0x94 R/W 0 第 4 组 B 路 PWM 的高电平持续周 期,最小为 0,对应一直输出低电 平 DZB4 0x98 R/W 0 第 4 组 B 路死区长度控制。 BCTRL4 0x9C R/W 0 第 4 组 PWM 输出起始值控制 MODE5 0xA0 R/W 0 第 5 组 PWM 的工作模式控制 PERA5 0xA4 R/W 0 第 5 组 A 路 PWM 的计数周期,最 小为 1,对应一个计数时钟周期 HIGHA5 0xA8 R/W 0 第 5 组 A 路 PWM 的高电平持续周 期,最小为 0,对应一直输出低电 平 DZA5 0xAC R/W 0 第 5 组 A 路死区长度控制。必须小 于 HIGHA5 PERB5 0xB0 R/W 0 第 5 组 B 路 PWM 的计数周期,最 小为 1,对应一个计数时钟周期 135 Version 1.02 SWM320 系列 名称 偏移量 类型 复位值 描述 HIGHB5 0xB4 R/W 0 第 5 组 B 路 PWM 的高电平持续周 期,最小为 0,对应一直输出低电 平 DZB5 0xB8 R/W 0 第 5 组 B 路死区长度控制。 BCTRL5 0xBC R/W 0 第 5 组 PWM 输出起始值控制 PWMMSK 0x180 R/W 0 将相应组的 PWM 输出置为 1 ADTRIGA0 0x184 R/W 0 组 0 的 trigger 控制寄存器 A ADTRIGB0 0x188 R/W 0 组 0 的 trigger 控制寄存器 B ADTRIGA1 0x18C R/W 0 组 1 的 trigger 控制寄存器 A ADTRIGB1 0x190 R/W 0 组 1 的 trigger 控制寄存器 B ADTRIGA2 0x194 R/W 0 组 2 的 trigger 控制寄存器 A ADTRIGB2 0x198 R/W 0 组 2 的 trigger 控制寄存器 B ADTRIGA3 0x19C R/W 0 组 3 的 trigger 控制寄存器 A ADTRIGB3 0x1A0 R/W 0 组 3 的 trigger 控制寄存器 B ADTRIGA4 0x1A4 R/W 0 组 4 的 trigger 控制寄存器 A ADTRIGB4 0x1A8 R/W 0 组 4 的 trigger 控制寄存器 B ADTRIGA5 0x1AC R/W 0 组 5 的 trigger 控制寄存器 A ADTRIGB5 0x1B0 R/W 0 组 5 的 trigger 控制寄存器 B HALTCTRL 0x1C0 R/W 0 刹车控制寄存器 ENABLE 0x1C4 R/W 0 PWM 使能,每一位对应一路 INTEN 0x1C8 R/W 0 中断使能寄存器 INTST 0x1CC RO 0 中断状态 INTMASK 0x1D0 R/W 0 中断屏蔽寄存器 INTRAWST 0x1D4 R/W1C 0 中断原始状态 6.13.4 寄存器描述 PWM 工作模式寄存器 MODEx(x=0,1,2,3,4,5) ADDR: 0x4001A000+0x20*x(x 为端口值) 位域 名称 类型 复位值 31:3 REVERSED — — 保留 0 第 x 组 PWM 的工作模式控制 00:普通模式,每一组 PWM 中的 A、B 两路 互相独立。 01:互补模式,每一组中的 A、B 两路互补, 由死区长度寄存器控制推迟上升沿 11:对称模式,每一组中的 A、B 两路互相独 立,两个计数周期为一个对称单元 10:单步模式,和普通模式相似,区别在于一 个计数周期后自动停止 2:0 MODE R/W 描述 136 Version 1.02 SWM320 系列 100:对称互补模式,综合对称模式及互补模 式 PWM_A 路计数周期 PERAx(x=0,1,2,3,4,5) ADDR: 0x4001A004+0x20*x(x 为端口值) 位域 名称 类型 复位值 描述 31:16 REVERSED — — 保留 15:0 PERA R/W 0 第 x 组 A 路 PWM 的计数周期,最小为 1,对 应一个计数时钟周期 PWM_A 路高电平持续时长 HIGHAx(x=0,1,2,3,4,5) ADDR: 0x4001A008+0x20*x(x 为端口值) 位域 名称 类型 复位值 描述 31:16 REVERSED — — 保留 15:0 HIGHA R/W 0 第 x 组 A 路 PWM 的高电平持续周期。最小为 0,对应一直输出低电平 PWM_A 路死区长度 DZAx(x=0,1,2,3,4,5) ADDR: 0x4001A00C+0x20*x(x 为端口值) 位域 名称 类型 复位值 描述 31:10 REVERSED — — 保留 9:0 DZA R/W 0 第 x 组 A 路死区长度控制。必须小于 HIGHAx PWM_B 路计数周期 PERBx(x=0,1,2,3,4,5) ADDR: 0x4001A010+0x20*x(x 为端口值) 位域 名称 类型 复位值 描述 31:16 REVERSED — — 保留 15:0 PERB R/W 0 第 x 组 B 路 PWM 的计数周期,最小为 1,对 应一个计数时钟周期 PWM_B 路高电平持续时长 HIGHBx(x=0,1,2,3,4,5) ADDR: 0x4001A014+0x20*x(x 为端口值) 位域 名称 类型 复位值 31:16 REVERSED — — 描述 保留 137 Version 1.02 SWM320 系列 15:0 HIGHB R/W 0 第 x 组 B 路 PWM 的高电平持续周期。最小为 0,对应一直输出低电平 PWM_B 路死区长度 DZBx(x=0,1,2,3,4,5) ADDR: 0x4001A018+0x20*x(x 为端口值) 位域 名称 类型 复位值 描述 31:10 REVERSED — — 保留 9:0 DZB R/W 0 第 x 组 B 路死区长度控制。必须小于 HIGHBx PWM 输出起始值控制 BCTRLx(x=0,1,2,3,4,5) ADDR: 0x4001A01C+0x20*x(x 为端口值) 位域 名称 类型 复位值 描述 31:2 REVERSED — — 1 BWHBx R/W 0 0 BWHAx R/W 0 保留 B 路输出起始电平 1:第 x 组 B 路输出从高电平开始,空闲时低 电平 0:第 x 组 B 路输出从低电平开始,空闲时高 电平 A 路输出起始电平 1:第 x 组 A 路输出从高电平开始,空闲时低 电平 0:第 x 组 A 路输出从低电平开始,空闲时高 电平 PWM 强制输出高电平寄存器 PWMMASK ADDR: 0x4001A180 位域 名称 类型 复位值 31:6 REVERSED — — 保留 0 将相应组的 PWM 输出置为 1 1:第 x 组输出强制为高电平 0:第 x 组输出正常 5:0 PWMMSKx R/W 描述 PWM_A 路触发 ADC 控制 ADTRIGAx (x=0,1,2,3,4,5) ADDR: 0x4001A184+0x20*x(x 为端口值) 位域 名称 类型 复位值 31:18 REVERSED — — 保留 0 第 x 组 trigger 控制寄存器 A 是否有效 1:有效 0:无效 17 EN R/W 描述 138 Version 1.02 SWM320 系列 位域 16 15:0 名称 EVEN VALUE 类型 R/W R/W 复位值 描述 0 第 x 组 trigger 控制寄存器 A 发生在单周期还 是双周期 1:后半周期生效 0:前半周期生效 0 在对称互补模式下,PWM 触发 ADC 采样的周 期数值,该数值最小值为 1 例如:设置为后半周期生效且 EN 为 1,则中 心点后,当对应 PWM 计数器的值和 TRIGGER 值相等时,输出 ADC 触发脉冲 PWM_B 路触发 ADC 控制 ADTRIGBx (x=0,1,2,3,4,5) ADDR: 0x4001A188+0x20*x(x 为端口值) 位域 名称 类型 复位值 31:18 REVERSED — — 保留 17 EN R/W 0 第 x 组 trigger 控制寄存器 B 是否有效 1:有效 0:无效 0 第 x 组 trigger 控制寄存器 B 发生在单周期还 是双周期 1:后半周期生效 0:前半周期生效 0 在对称互补模式下,PWM 触发 ADC 采样的周 期数值,该数值最小值为 1 例如:设置为后半周期生效且 EN 为 1,则中 心点后,当对应 PWM 计数器的值和 TRIGGER 值相等时,输出 ADC 触发脉冲 描述 16 15:0 EVEN VALUE R/W R/W 描述 PWM 刹车控制 HALTCTRL ADDR: 0x4001A1C0 位域 名称 类型 复位值 31:11 REVERSED — — 保留 10 HALTSTAT R/W 0 当前刹车的状态 1:正在刹车 0:没有刹车 9 HALTPOL R/W 0 1:刹车过程中输出高电平 0:刹车过程中输出低电平 8 HALTCON R/W 0 1:刹车输入高电平有效 0:刹车输入低电平有效 7 HALTMOD R/W 0 1:刹车时将 PWM 计数器清零,停止计数 0:刹车时,PWM 计数器继续计数 139 Version 1.02 SWM320 系列 6:1 HALTCHEN R/W 0 1:刹车影响该组 PWM 0:刹车不影响该组 PWM 第 6 位对应第 5 组,第 1 位对应第 0 组,以此 类推 0 HALTEN R/W 0 1:刹车功能生效 0:屏蔽刹车功能 PWM 使能控制寄存器 CHEN ADDR: 0x4001A1C4 位域 名称 类型 复位值 31:12 REVERSED — — 11 ENABLEB5 R/W 0 10 ENABLEA5 R/W 0 9 ENABLEB4 R/W 0 8 ENABLEA4 R/W 0 7 ENABLEB3 R/W 0 6 ENABLEA3 R/W 0 5 ENABLEB2 R/W 0 4 ENABLEA2 R/W 0 3 ENABLEB1 R/W 0 2 ENABLEA1 R/W 0 1 ENABLEB0 R/W 0 0 ENABLEA0 R/W 0 描述 保留 第 5 组 B 路 PWM 使能 1:使能 0:禁能 第 5 组 A 路 PWM 使能 1:使能 0:禁能 第 4 组 B 路 PWM 使能 1:使能 0:禁能 第 4 组 A 路 PWM 使能 1:使能 0:禁能 第 3 组 B 路 PWM 使能 1:使能 0:禁能 第 3 组 A 路 PWM 使能 1:使能 0:禁能 第 2 组 B 路 PWM 使能 1:使能 0:禁能 第 2 组 A 路 PWM 使能 1:使能 0:禁能 第 1 组 B 路 PWM 使能 1:使能 0:禁能 第 1 组 A 路 PWM 使能 1:使能 0:禁能 第 0 组 B 路 PWM 使能 1:使能 0:禁能 第 0 组 A 路 PWM 使能 1:使能 0:禁能 140 Version 1.02 SWM320 系列 PWM 中断使能寄存器 INTEN ADDR: 0x4001A1C8 位域 名称 类型 复位值 31:25 REVERSED — — 24 HALTINTEN R/W 0 23 INTFENB5 R/W 0 22 INTFENA5 R/W 0 21 INTFENB4 R/W 0 20 INTFENA4 R/W 0 19 INTFENB3 R/W 0 18 INTFENA3 R/W 0 17 INTFENB2 R/W 0 14 INTFENA1 R/W 0 13 INTFENB0 R/W 0 12 INTFENA0 R/W 0 11 INTNCENB5 R/W 0 10 INTNCENA5 R/W 0 9 INTNCENB4 R/W 0 描述 保留 刹车中断使能 1:使能 0:禁能 第 5 组 B 路高电平结束中断使能 1:使能 0:禁能 第 5 组 A 路高电平结束中断使能 1:使能 0:禁能 第 4 组 B 路高电平结束中断使能 1:使能 0:禁能 第 4 组 A 路高电平结束中断使能 1:使能 0:禁能 第 3 组 B 路高电平结束中断使能 1:使能 0:禁能 第 3 组 A 路高电平结束中断使能 1:使能 0:禁能 第 2 组 B 路高电平结束中断使能 1:使能 0:不是能 第 1 组 A 路高电平结束中断使能 1:使能 0:禁能 第 0 组 B 路高电平结束中断使能 1:使能 0:禁能 第 0 组 A 路高电平结束中断使能 1:使能 0:禁能 第 5 组 B 路新周期中断使能 1:使能 0:禁能 第 5 组 A 路新周期中断使能 1:使能 0:禁能 第 4 组 B 路新周期中断使能 1:使能 141 Version 1.02 SWM320 系列 位域 名称 类型 复位值 描述 0:禁能 8 INTNCENA4 R/W 0 7 INTNCENB3 R/W 0 6 INTNCENA3 R/W 0 5 INTNCENB2 R/W 0 4 INTNCENA2 R/W 0 3 INTNCENB1 R/W 0 2 INTNCENA1 R/W 0 1 INTNCENB0 R/W 0 0 INTNCENA0 R/W 0 第 4 组 A 路新周期中断使能 1:使能 0:禁能 第 3 组 B 路新周期中断使能 1:使能 0:禁能 第 3 组 A 路新周期中断使能 1:使能 0:禁能 第 2 组 B 路新周期中断使能 1:使能 0:禁能 第 2 组 A 路新周期中断使能 1:使能 0:禁能 第 1 组 B 路新周期中断使能 1:使能 0:禁能 第 1 组 A 路新周期中断使能 1:使能 0:禁能 第 0 组 B 路新周期中断使能 1:使能 0:禁能 第 0 组 A 路新周期中断使能 1:使能 0:禁能 PWM 中断状态寄存器 INTST ADDR: 0x4001A1CC 位域 名称 类型 复位值 31:25 REVERSED — — 24 HALTINTST R/W 0 23 INTFSTB5 R/W 0 22 INTFSTA5 R/W 0 描述 保留 刹车中断状态 1:中断已发生 0:中断未发生 第 5 组 B 路高电平结束中断状态 1:中断已发生 0:中断未发生 第 5 组 A 路高电平结束中断状态 1:中断已发生 0:中断未发生 142 Version 1.02 SWM320 系列 位域 名称 类型 复位值 21 INTFSTB4 R/W 0 20 INTFSTA4 R/W 0 19 INTFSTB3 R/W 0 18 INTFSTA3 R/W 0 17 INTFSTB2 R/W 0 16 INTFSTA2 R/W 0 15 INTFSTB1 R/W 0 14 INTFSTA1 R/W 0 13 INTFSTB0 R/W 0 12 INTFSTA0 R/W 0 11 INTNCSTB5 R/W 0 10 INTNCSTA5 R/W 0 9 INTNCSTB4 R/W 0 8 INTNCSTA4 R/W 0 7 INTNCSTB3 R/W 0 描述 第 4 组 B 路高电平结束中断状态 1:中断已发生 0:中断未发生 第 4 组 A 路高电平结束中断状态 1:中断已发生 0:中断未发生 第 3 组 B 路高电平结束中断状态 1:中断已发生 0:中断未发生 第 3 组 A 路高电平结束中断状态 1:中断已发生 0:中断未发生 第 2 组 B 路高电平结束中断状态 1:中断已发生 0:中断未发生 第 2 组 A 路高电平结束中断状态 1:中断已发生 0:中断未发生 第 1 组 B 路高电平结束中断状态 1:中断已发生 0:中断未发生 第 1 组 A 路高电平结束中断状态 1:中断已发生 0:中断未发生 第 0 组 B 路高电平结束中断状态 1:中断已发生 0:中断未发生 第 0 组 A 路高电平结束中断状态 1:中断已发生 0:中断未发生 第 5 组 B 路新周期开始中断状态 1:中断已发生 0:中断未发生 第 5 组 A 路新周期开始中断状态 1:中断已发生 0:中断未发生 第 4 组 B 路新周期开始中断状态 1:中断已发生 0:中断未发生 第 4 组 A 路新周期开始中断状态 1:中断已发生 0:中断未发生 第 3 组 B 路新周期开始中断状态 1:中断已发生 0:中断未发生 143 Version 1.02 SWM320 系列 位域 名称 类型 复位值 6 INTNCSTA3 R/W 0 5 INTNCSTB2 R/W 0 4 INTNCSTA2 R/W 0 3 INTNCSTB1 R/W 0 2 INTNCSTA1 R/W 0 1 INTNCSTB0 R/W 0 0 INTNCSTA0 R/W 0 描述 第 3 组 A 路新周期开始中断状态 1:中断已发生 0:中断未发生 第 2 组 B 路新周期开始中断状态 1:中断已发生 0:中断未发生 第 2 组 A 路新周期开始中断状态 1:中断已发生 0:中断未发生 第 1 组 B 路新周期开始中断状态 1:中断已发生 0:中断未发生 第 1 组 A 路新周期开始中断状态 1:中断已发生 0:中断未发生 第 0 组 B 路新周期开始中断状态 1:中断已发生 0:中断未发生 第 0 组 A 路新周期开始中断状态 1:中断已发生 0:中断未发生 PWM 中断屏蔽寄存器 INTMSK ADDR: 0x4001A1D0 位域 名称 类型 复位值 31:25 REVERSED — — 24 HALTINTMSK R/W 0 23 INTFMSKB5 R/W 0 22 INTFMSKA5 R/W 0 21 INTFMSKB4 R/W 0 20 INTFMSKA4 R/W 0 19 INTFMSKB3 R/W 0 描述 保留 刹车中断屏蔽 1:屏蔽 0:不屏蔽 第 5 组 B 路高电平结束中断屏蔽 1:屏蔽 0:不屏蔽 第 5 组 A 路高电平结束中断屏蔽 1:屏蔽 0:不屏蔽 第 4 组 B 路高电平结束中断屏蔽 1:屏蔽 0:不屏蔽 第 4 组 A 路高电平结束中断屏蔽 1:屏蔽 0:不屏蔽 第 3 组 B 路高电平结束中断屏蔽 1:屏蔽 0:不屏蔽 144 Version 1.02 SWM320 系列 位域 名称 类型 复位值 18 INTFMSKA3 R/W 0 17 INTFMSKB2 R/W 0 16 INTFMSKA2 R/W 0 15 INTFMSKB1 R/W 0 14 INTFMSKA1 R/W 0 13 INTFMSKB0 R/W 0 12 INTFMSKA0 R/W 0 11 INTFMSKB5 R/W 0 10 INTFMSKA5 R/W 0 9 INTFMSKB4 R/W 0 8 INTFMSKA4 R/W 0 7 INTNCMSKB3 R/W 0 6 INTNCMSKA3 R/W 0 5 INTNCMSKB2 R/W 0 4 INTNCMSKA2 R/W 0 描述 第 3 组 A 路高电平结束中断屏蔽 1:屏蔽 0:不屏蔽 第 2 组 B 路高电平结束中断屏蔽 1:屏蔽 0:不屏蔽 第 2 组 A 路高电平结束中断屏蔽 1:屏蔽 0:不屏蔽 第 1 组 B 路高电平结束中断屏蔽 1:屏蔽 0:不屏蔽 第 1 组 A 路高电平结束中断屏蔽 1:屏蔽 0:不屏蔽 第 0 组 B 路高电平结束中断屏蔽 1:屏蔽 0:不屏蔽 第 0 组 A 路高电平结束中断屏蔽 1:屏蔽 0:不屏蔽 第 5 组 B 路新周期中断屏蔽 1:屏蔽 0:不屏蔽 第 5 组 A 路新周期中断屏蔽 1:屏蔽 0:不屏蔽 第 4 组 B 路新周期中断屏蔽 1:屏蔽 0:不屏蔽 第 4 组 A 路新周期中断屏蔽 1:屏蔽 0:不屏蔽 第 3 组 B 路新周期中断屏蔽 1:屏蔽 0:不屏蔽 第 3 组 A 路新周期中断屏蔽 1:屏蔽 0:不屏蔽 第 2 组 B 路新周期中断屏蔽 1:屏蔽 0:不屏蔽 第 2 组 A 路新周期中断屏蔽 1:屏蔽 0:不屏蔽 145 Version 1.02 SWM320 系列 位域 名称 类型 复位值 3 INTNCMSKB1 R/W 0 2 INTNCMSKA1 R/W 0 1 INTNCMSKB0 R/W 0 0 INTNCMSKA0 R/W 0 描述 第 1 组 B 路新周期中断屏蔽 1:屏蔽 0:不屏蔽 第 1 组 A 路新周期中断屏蔽 1:屏蔽 0:不屏蔽 第 0 组 B 路新周期中断屏蔽 1:屏蔽 0:不屏蔽 第 0 组 A 路新周期中断屏蔽 1:屏蔽 0:不屏蔽 PWM 原始状态寄存器 IRAWST ADDR: 0x4001A1D4 位域 名称 类型 复位值 31:25 REVERSED — — 24 HALTINTRAW ST R/ W1C 0 23 INTRAWFSTB 5 R/ W1C 0 22 INTRAWFSTA5 R/ W1C 0 21 INTRAWFSTB 4 R/ W1C 0 20 INTRAWFSTA4 R/ W1C 0 19 INTRAWFSTB 3 R/ W1C 0 18 INTRAWFSTA3 R/ W1C 0 17 INTRAWFSTB 2 R/ W1C 0 16 INTRAWFSTA2 R/ W1C 0 描述 保留 刹车原始中断状态 1:中断已发生 0:中断未发生 第 5 组 B 路高电平结束原始中断状态 1:中断已发生 0:中断未发生 第 5 组 A 路高电平结束原始中断状态 1:中断已发生 0:中断未发生 第 4 组 B 路高电平结束原始中断状态 1:中断已发生 0:中断未发生 第 4 组 A 路高电平结束原始中断状态 1:中断已发生 0:中断未发生 第 3 组 B 路高电平结束原始中断状态 1:中断已发生 0:中断未发生 第 3 组 A 路高电平结束原始中断状态 1:中断已发生 0:中断未发生 第 2 组 B 路高电平结束原始中断状态 1:中断已发生 0:中断未发生 第 2 组 A 路高电平结束原始中断状态 1:中断已发生 0:中断未发生 146 Version 1.02 SWM320 系列 位域 名称 类型 复位值 15 INTRAWFSTB 1 R/ W1C 0 14 INTRAWFSTA1 R/ W1C 0 13 INTRAWFSTB 0 R/ W1C 0 12 INTRAWFSTA0 R/ W1C 0 11 INTRAWNSTB 5 R/ W1C 0 10 INTRAWNSTA 5 R/ W1C 0 9 INRAWTNSTB 4 R/ W1C 0 8 INTRAWNSTA 4 R/ W1C 0 7 INTRAWNSTB 3 R/ W1C 0 6 INTRAWNSTA 3 R/ W1C 0 5 INRAWTNSTB 2 R/ W1C 0 4 INTRAWNSTA 2 R/ W1C 0 3 INTRAWNSTB 1 R/ W1C 0 2 INTRAWNSTA 1 R/ W1C 0 1 INTRAWNSTB 0 R/ W1C 0 0 INTRAWNSTA R/ W1C 0 描述 第 1 组 B 路高电平结束原始中断状态 1:中断已发生 0:中断未发生 第 1 组 A 路高电平结束原始中断状态 1:中断已发生 0:中断未发生 第 0 组 B 路高电平结束原始中断状态 1:中断已发生 0:中断未发生 第 0 组 A 路高电平结束原始中断状态 1:中断已发生 0:中断未发生 第 5 组 B 路新周期开始原始中断状态 1:中断已发生 0:中断未发生 第 5 组 A 路新周期开始原始中断状态 1:中断已发生 0:中断未发生 第 4 组 B 路新周期开始原始中断状态 1:中断已发生 0:中断未发生 第 4 组 A 路新周期开始原始中断状态 1:中断已发生 0:中断未发生 第 3 组 B 路新周期开始原始中断状态 1:中断已发生 0:中断未发生 第 3 组 A 路新周期开始原始中断状态 1:中断已发生 0:中断未发生 第 2 组 B 路新周期开始原始中断状态 1:中断已发生 0:中断未发生 第 2 组 A 路新周期开始原始中断状态 1:中断已发生 0:中断未发生 第 1 组 B 路新周期开始原始中断状态 1:中断已发生 0:中断未发生 第 1 组 A 路新周期开始原始中断状态 1:中断已发生 0:中断未发生 第 0 组 B 路新周期开始原始中断状态 1:中断已发生 0:中断未发生 第 0 组 A 路新周期开始原始中断状态 1:中断已发生 147 Version 1.02 SWM320 系列 位域 名称 0 类型 复位值 描述 0:中断未发生 148 Version 1.02 SWM320 系列 6.14 模拟数字转换器(ADC) 6.14.1 特性         12-Bits 分辨率 最多 8 路输入通道 最高 1MSPS 转换速率 支持单次模式和连续模式 灵活的转换启动方式 支持软件、PWM 启动 每个通道都有自己独立的转换结果数据寄存器和转换完成、数据溢出状态寄存器 每个通道都有自己独立的转换完成中断使能和数据溢出中断使能 6.14.2 功能 本系列所有型号 SAR ADC 操作均相同,两个 12 位逐次逼近型模拟数字转换器最多支 持 8 通道,使用前需使能 SAR ADC 模块时钟。 操作说明  配置流程 使用 SAR ADC 前,需针对对应引脚及模块进行如下操作:  配置 PORTCON 模块中 INEN 寄存器使能引脚输入功能  通过 PORT_SEL 寄存器将引脚切换为 ADC CHx 功能  通过 CTRL 寄存器中 TRIG 位配置触发方式  通过 CTRL 寄存器中 CONT 位配置采样方式  通过 CTRL 寄存器中 AVG 位配置是否需要硬件计算平均值  如需使用中断,通过 IE 寄存器使能对应中断  配置 CTRL 寄存器中对应通道(CHx)选通  使能 CTRL 寄存器中 EN 位  使用软件使能 START 寄存器 GO 位触发采样或使用 PWM 模块触发采样  工作过程中,START 寄存器 BUSY 位将被硬件置 1,采样完成后,自动清 0  触发方式 ADC 支持 PWM 触发及软件触发。通过将 ADC 配置寄存器(CTRL)中 TRIG(BIT[14]) 进行设置,该设置对所有选中通道均有效,当不同通道需要不同触发方式时,需要在采样间 隔配置 TRIG 位进行切换。 各模式触发操作方式如下:  使用 PWM 触发:需将 PWM 配置为中心对称互补模式。将 SAR ADC 配置寄存器 (CTRL)中 TRIG(BIT[14])设置为 01。每路 PWM 对应一个 TRIGGERx 寄存器 值,当 PWM 计数到指定值,可触发 ADC 进行采样。当 12 路 PWM 工作在中心对 称互补模式下时,最多可触发 12 次 ADC 采样。PWM 触发仅支持单次模式,每次 触发选中通道采样一次 (支持求平均)。 具体配置方式如下(以 TRIGGERA0 为例) : 149 Version 1.02 SWM320 系列  配置 TRIGGERAEVEN0 位,确认为前半周期或后半周期触发(前半周期与后 半周期以中心点为界)  配置 TRIGGERA0 数值,该数值为触发延时时长,前半周期从周期起始记, 后半周期从中心点记  置 TRIGGERAEN0 位为 1,使能 0_A 通道触发功能  使能 PWM 模块 EN 位,当计数值到达 TRIGGERA0 设置值时,触发 ADC 配 置寄存器(CTRL)中选中的通道(CHx)进行采样,采样完成后,将产生 EOC 标志位,并产生 ADC 中断 示意图如下图所示。 图 6-39 触发 ADC 采样示意图  使用软件触发:将配置寄存器(CTRL)中 TRIG(BIT[15:14])设置为 0。ADC 配 置完成后,通过程序将 START 寄存器 GO 位置 1 触发采样。采样完成后,该位自 动清 0。可以通过 ADC 采样完成中断或标志位查询进行结果获取。软件触发支持 单次模式及多次模式。  数据处理 SAR ADC 支持针对采样数据硬件自动完成平均值计算。该功能通过配置 CTRL 寄存器 中 AVG 位进行使能。支持对 2 到 16 次采样取平均。设置 n 次平均,则采集完成 n 次后 EOC 标志有效,同时取平均结果被送至对应通道数据寄存器。 模式说明  单次模式 单次模式在所有选通通道上执行一次转换,然后自动停止,其运作流程如下:   START 寄存器写 1 启动转换,也可以用 PWM 触发启动 所有选通通道依次完成一次转换,并将转换结果和转换完成 EOC 标志存入通道对 应的数据和状态寄存器 150 Version 1.02 SWM320 系列  每个通道转换完成时对应通道状态寄存器的 EOC 标志会置位,如果该通道的 EOC 中断使能,则该通道转换完成时会触发中断处理程序  通道转换完成后,START 寄存器自动清零,停止转换,ADC 进入 Idle 模式  连续模式 连续模式下 ADC 会重复在所有选通通道上执行转换,直到软件向 START 寄存器写 0, 具体操作步骤如下:     START 寄存器写 1 启动转换 所有选通通道依次完成一次转换,并将转换结果和转换完成 EOC 标志存入通道对 应的数据和状态寄存器 每个通道转换完成时对应通道状态寄存器的 EOC 标志会置位,如果该通道的 EOC 中断使能,则该通道转换完成时会触发中断处理程序 重复步骤 2 到步骤 3. 直到 START 寄存器写 0,A/D 转换停止,A/D 转换器进入空 闲状态 sample0 sample1 sample2 sample3 sample4 sample5 ADC_PLL_CKIN EN_ADC ADC_CH_SEL ADC_DOUT 0 2 5 ch2_0 ch2_1 6 ch5_2 ch5_3 ch5_4 ch6_5 ADC_LATCH_CLK 图 6-40 SAR ADC 多通道连续采样示意图 中断处理 在 Burst 模式下, A/D 转换会采样和转换指定的独立通道, 并将采样值存储在 FIFO 中, 具体操作步骤如下:  软件置 ADCR 的 AD_EN 位为 1 或由外部触发输入(PWM) ,开始 A/D 转换  当 A/D 转换完成后,结果送入 FIFO,可以从 A/D 数据寄存器中读取  多于 4 个采样时,ADCST 的 ADF 位将置 1。如果此时 ADCMSK 寄存器 ADF_MSK 位置 1,在 A/D 转换完成时就会产生 ADINT 中断请求  AD_EN 保持为 1 时,重复步骤 2 到步骤 3. 当 AD_EN 位清零时,A/D 转换停止, A/D 转换器进入空闲状态 注:在 burst 模式下,如果软件使能多个通道, 最小通道进行转换,其他通道不转换。 151 Version 1.02 SWM320 系列 6.14.3 寄存器映射 SAR-ADC BASE:0x4001C000/0x4001D000 名称 偏移量 类型 复位值 描述 CTRL 0x00 R/W 0 ADC 配置寄存器 START 0x04 R/W 0 ADC 启动寄存器 IE 0x08 R/W 0 ADC 中断使能寄存器 IF 0x0C R/W 0 ADC 中断状态寄存器 STAT0 0x10 R/W 0 ADC 通道 0 状态寄存器 DATA0 0x14 R/W 0 ADC 通道 0 数据寄存器 STAT1 0x20 R/W 0 ADC 通道 1 状态寄存器 DATA1 0x24 R/W 0 ADC 通道 1 数据寄存器 STAT2 0x30 R/W 0 ADC 通道 2 状态寄存器 DATA2 0x34 R/W 0 ADC 通道 2 数据寄存器 STAT3 0x40 R/W 0 ADC 通道 3 状态寄存器 DATA3 0x44 R/W 0 ADC 通道 3 数据寄存器 STAT4 0x50 R/W 0 ADC 通道 4 状态寄存器 DATA4 0x54 R/W 0 ADC 通道 4 数据寄存器 STAT5 0x60 R/W 0 ADC 通道 5 状态寄存器 DATA5 0x64 R/W 0 ADC 通道 5 数据寄存器 STAT6 0x70 R/W 0 ADC 通道 6 状态寄存器 DATA6 0x74 R/W 0 ADC 通道 6 数据寄存器 STAT7 0x80 R/W 0 ADC 通道 7 状态寄存器 DATA7 0x84 R/W 0 ADC 通道 7 数据寄存器 CTRL1 0x90 R/W 0 ADC FIFO 状态寄存器 CTRL2 0x94 R/W 0 ADC 所有通道数据寄存器 6.14.4 寄存器描述 配置寄存器 CTRL ADDR: 0x4001C000/0x4001D000 位域 名称 类型 复位值 31:16 REVERSED — — 15 CLKSRC R/W 0 描述 保留 ADC RC 时钟使能 1:禁能 0:使能 14 TRIG R/W 0 13 CONT R/W 0 ADC triger 方式选择 1:PWM 触发 0:CPU 触发 ADC 工作模式(只在 CPU 触发方式下有效) 1:多次采样 0:单次采样 152 Version 1.02 SWM320 系列 位域 名称 类型 复位值 描述 12 EN R/W 0 11:8 AVG R/W 0 7 CH7 R/W 0 ADC 通道 7 选择,1 有效 6 CH6 R/W 0 ADC 通道 6 选择,1 有效 5 CH5 R/W 0 ADC 通道 5 选择,1 有效 4 CH4 R/W 0 ADC 通道 4 选择,1 有效 3 CH3 R/W 0 ADC 通道 3 选择,1 有效 2 CH2 R/W 0 ADC 通道 2 选择,1 有效 1 CH1 R/W 0 ADC 通道 1 选择,1 有效 0 CH0 R/W 0 ADC 通道 0 选择,1 有效 ADC 使能 1:使能 0:禁能 一次启动 ADC 采样次数 0000:1 次采样 0001:2 次采样并取平均 0010:保留 0011:4 次采样并取平均 0100/0101/0110:保留 0111:8 次采样并取平均 1000/1001/1010/1011/1100/1101/1110:保留 1111:16 次采样并取平均 启动寄存器 START ADDR: 0x4001C004/0x4001D004 位域 名称 类型 复位值 31:5 REVERSED — — 4 BUSY R/W 0 3:1 REVERSED — — 0 GO R/W 0 描述 保留 ADC 工作状态标识 1:正在转换 0:转换结束 保留 ADC 启动信号(只在 CPU 触发方式下有效) 该位写 1,则启动一次转换,可以 ADC_MODE 配合使用。 单次采样模式:该位置 1 后,将对有效通道依 次轮询进行采样转换,并将转换的数据保存在 相应通道的 FIFO 或寄存器中。转换完成硬件 自动清零; 多次采样模式:该位置 1 表示启动 ADC 转换, 清零后表示停止 ADC 转换。启动 ADC 转换后, 将对有效通道依次轮询进行采样转换,并将转 换的数据保存在相应通道的 FIFO 或寄存器 中。每次转换完成后判断该位是否为 1,若为 1 则继续转换,若为 0 则停止转换 中断寄存器 IE ADDR: 0x4001C008/0x4001D008 位域 名称 类型 复位值 描述 153 Version 1.02 SWM320 系列 位域 31 30 29 名称 CH7FULL CH7HFULL CH7OVF 类型 R/W R/W R/W 复位值 描述 0 ADC 通道 7 数据 FIFO 满中断使能 1:使能 0:禁能 0 ADC 通道 7 数据 FIFO 半满中断使能 1:使能 0:禁能 0 ADC 通道 7 数据 FIFO 溢出中断使能 1:使能 0:禁能 28 CH7EOC R/W 0 ADC 通道 7 数据转换完成中断使能 1:使能 0:禁能 27 CH6FULL R/W 0 ADC 通道 6 数据 FIFO 满中断使能 1:使能 0:禁能 0 ADC 通道 6 数据 FIFO 半满中断使能 1:使能 0:禁能 0 ADC 通道 6 数据 FIFO 溢出中断使能 1:使能 0:禁能 0 ADC 通道 6 数据转换完成中断使能 1:使能 0:禁能 0 ADC 通道 5 数据 FIFO 满中断使能 1:使能 0:禁能 0 ADC 通道 5 数据 FIFO 半满中断使能 1:使能 0:禁能 0 ADC 通道 5 数据 FIFO 溢出中断使能 1:使能 0:禁能 0 ADC 通道 5 数据转换完成中断使能 1:使能 0:禁能 0 ADC 通道 4 数据 FIFO 满中断使能 1:使能 0:禁能 26 25 24 23 22 21 20 19 CH6HFULL CH6OVF CH6EOC CH5FULL CH5HFULL CH5OVF CH5EOC CH4FULL R/W R/W R/W R/W R/W R/W R/W R/W 154 Version 1.02 SWM320 系列 位域 18 17 16 名称 CH4HFULL CH4OVF CH4EOC 类型 R/W R/W R/W 复位值 描述 0 ADC 通道 4 数据 FIFO 半满中断使能 1:使能 0:禁能 0 ADC 通道 4 数据 FIFO 溢出中断使能 1:使能 0:禁能 0 ADC 通道 4 数据转换完成中断使能 1:使能 0:禁能 15 CH3FULL R/W 0 ADC 通道 3 数据 FIFO 满中断使能 1:使能 0:禁能 14 CH3HFULL R/W 0 ADC 通道 3 数据 FIFO 半满中断使能 1:使能 0:禁能 0 ADC 通道 3 数据 FIFO 溢出中断使能 1:使能 0:禁能 0 ADC 通道 3 数据转换完成中断使能 1:使能 0:禁能 0 ADC 通道 2 数据 FIFO 满中断使能 1:使能 0:禁能 0 ADC 通道 2 数据 FIFO 半满中断使能 1:使能 0:禁能 0 ADC 通道 2 数据 FIFO 溢出中断使能 1:使能 0:禁能 0 ADC 通道 2 数据转换完成中断使能 1:使能 0:禁能 0 ADC 通道 1 数据 FIFO 满中断使能 1:使能 0:禁能 0 ADC 通道 1 数据 FIFO 半满中断使能 1:使能 0:禁能 13 12 11 10 9 8 7 6 CH3OVF CH3EOC CH2FULL CH2HFULL CH2OVF CH2EOC CH1FULL CH1HFULL R/W R/W R/W R/W R/W R/W R/W R/W 155 Version 1.02 SWM320 系列 位域 5 4 3 名称 CH1OVF CH1EOC CH0FULL 类型 R/W R/W R/W 复位值 描述 0 ADC 通道 1 数据 FIFO 溢出中断使能 1:使能 0:禁能 0 ADC 通道 1 数据转换完成中断使能 1:使能 0:禁能 0 ADC 通道 0 数据 FIFO 满中断使能 1:使能 0:禁能 2 CH0HFULL R/W 0 ADC 通道 0 数据 FIFO 半满中断使能 1:使能 0:禁能 1 CH0OVF R/W 0 ADC 通道 0 数据 FIFO 溢出中断使能 1:使能 0:禁能 0 ADC 通道 0 数据转换完成中断使能 1:使能 0:禁能 0 CH0EOC R/W 中断寄存器 IF ADDR: 0x4001C00C/0x4001D00C 位域 名称 类型 复位值 31 CH7FULL R/W 0 30 CH7HFULL R/W 0 29 CH7OVF R/W 0 28 CH7EOC R/W 0 27 CH6FULL R/W 0 26 CH6HFULL R/W 0 描述 ADC 通道 7 数据 FIFO 满中断状态,写 1 清 1:中断已产生 0:中断未产生 ADC 通道 7 数据 FIFO 半满中断状态,写 1 清 1:中断已产生 0:中断未产生 ADC 通道 7 数据 FIFO 溢出中断状态,写 1 清 1:中断已产生 0:中断未产生 ADC 通道 7 数据转换完成中断状态,写 1 清 1:中断已产生 0:中断未产生 ADC 通道 6 数据 FIFO 满中断状态,写 1 清 1:中断已产生 0:中断未产生 ADC 通道 6 数据 FIFO 半满中断状态,写 1 清 1:中断已产生 0:中断未产生 156 Version 1.02 SWM320 系列 位域 名称 类型 复位值 25 CH6OVF R/W 0 24 CH6EOC R/W 0 23 CH5FULL R/W 0 22 CH5HFULL R/W 0 21 CH5OVF R/W 0 20 CH5EOC R/W 0 19 CH4FULL R/W 0 18 CH4HFULL R/W 0 17 CH4OVF R/W 0 16 CH4EOC R/W 0 15 CH3FULL R/W 0 14 CH3HFULL R/W 0 13 CH3OVF R/W 0 描述 ADC 通道 6 数据 FIFO 溢出中断状态,写 1 清 1:中断已产生 0:中断未产生 ADC 通道 6 数据转换完成中断状态,写 1 清 1:中断已产生 0:中断未产生 ADC 通道 5 数据 FIFO 满中断状态,写 1 清 1:中断已产生 0:中断未产生 ADC 通道 5 数据 FIFO 半满中断状态,写 1 清 1:中断已产生 0:中断未产生 ADC 通道 5 数据 FIFO 溢出中断状态,写 1 清 1:中断已产生 0:中断未产生 ADC 通道 5 数据转换完成中断状态,写 1 清 1:中断已产生 0:中断未产生 ADC 通道 4 数据 FIFO 满中断状态,写 1 清 1:中断已产生 0:中断未产生 ADC 通道 4 数据 FIFO 半满中断状态,写 1 清 1:中断已产生 0:中断未产生 ADC 通道 4 数据 FIFO 溢出中断状态,写 1 清 1:中断已产生 0:中断未产生 ADC 通道 4 数据转换完成中断状态,写 1 清 1:中断已产生 0:中断未产生 ADC 通道 3 数据 FIFO 满中断状态,写 1 清 1:中断已产生 0:中断未产生 ADC 通道 3 数据 FIFO 半满中断状态,写 1 清 1:中断已产生 0:中断未产生 ADC 通道 3 数据 FIFO 溢出中断状态,写 1 清 1:中断已产生 0:中断未产生 157 Version 1.02 SWM320 系列 位域 名称 类型 复位值 12 CH3EOC R/W 0 11 CH2FULL R/W 0 10 CH2HFULL R/W 0 9 CH2OVF R/W 0 8 CH2EOC R/W 0 7 CH1FULL R/W 0 6 CH1HFULL R/W 0 5 CH1OVF R/W 0 4 CH1EOC R/W 0 3 CH0FULL R/W 0 2 CH0HFULL R/W 0 1 CH0OVF R/W 0 0 CH0EOC R/W 0 描述 ADC 通道 3 数据转换完成中断状态,写 1 清 1:中断已产生 0:中断未产生 ADC 通道 2 数据 FIFO 满中断状态,写 1 清 1:中断已产生 0:中断未产生 ADC 通道 2 数据 FIFO 半满中断状态,写 1 清 1:中断已产生 0:中断未产生 ADC 通道 2 数据 FIFO 溢出中断状态,写 1 清 1:中断已产生 0:中断未产生 ADC 通道 2 数据转换完成中断状态,写 1 清 1:中断已产生 0:中断未产生 ADC 通道 1 数据 FIFO 满中断状态,写 1 清 1:中断已产生 0:中断未产生 ADC 通道 1 数据 FIFO 半满中断状态,写 1 清 1:中断已产生 0:中断未产生 ADC 通道 1 数据 FIFO 溢出中断状态,写 1 清 1:中断已产生 0:中断未产生 ADC 通道 1 数据转换完成中断状态,写 1 清 1:中断已产生 0:中断未产生 ADC 通道 0 数据 FIFO 满中断状态,写 1 清 1:中断已产生 0:中断未产生 ADC 通道 0 数据 FIFO 半满中断状态,写 1 清 1:中断已产生 0:中断未产生 ADC 通道 0 数据 FIFO 溢出中断状态,写 1 清 1:中断已产生 0:中断未产生 ADC 通道 0 数据转换完成中断状态,写 1 清 1:中断已产生 0:中断未产生 158 Version 1.02 SWM320 系列 通道状态寄存器 STATx(0~7) ADDR: 0x4001C010/0x4001D010 + 0x10*x 位域 名称 类型 复位值 31:5 REVERSED — — 4 EMPTYx R/W 0 3 FULLx R/W 0 2 HFULLx R/W 0 1 OVFx R/W 0 0 EOCx R/W 0 描述 保留 ADC 通道 x 数据 FIFO 空标志 1:FIFO 空 0:FIFO 非空 ADC 通道 x 数据 FIFO 满标志 1:FIFO 满 0:FIFO 非满 ADC 通道 x 数据 FIFO 半满标志 1:FIFO 半满 0:FIFO 未半满 ADC 通道 x 数据 FIFO 溢出标志 1:FIFO 出现溢出 0:FIFO 未出现溢出 ADC 通道 x 数据转换完成标志,写 1 清 1:ADC 对通道 x 一次采样转换完成 0:无采样完成 通道数据寄存器 DATAx(0~7) ADDR: 0x4001C014/0x4001D014 + 0x10*x 位域 31:12 名称 REVERSED 类型 — 复位值 — 11:0 DATAx R/W 0 描述 保留 ADC 通道 x 数据 FIFO 寄存器 注:溢出后,再次转换的数据会被丢掉 配置寄存器 CTRL1 ADDR: 0x4001C090/0x4001D090 位域 名称 类型 复位值 31:7 REVERSED — — 6:4 RIN R/W 0 3:0 REVERSED — — 描述 保留 ADC 输入阻抗选择 000:无穷大 001:105K 010:90K 011:75K 100:60K 101:45K 110:30K 111:15K 保留 配置寄存器 CTRL2 ADDR: 0x4001C094/0x4001D094 位域 名称 类型 复位值 31:29 REVERSED — — 描述 保留 159 Version 1.02 SWM320 系列 位域 名称 类型 复位值 描述 28:24 CLKDIV R/W 0 ADC 输入时钟分频 分频值 = 1 + 写入值 N 23:6 REVERSED — — 保留 5:3 PGAGAIN R/W 0 2 PGAIVCM R/W 0 1 REVERSED — — 0 RESET R/W 0 PGA 增益选择,使能前需写入 0x6 Reference 切换 0:内部基准 1:外部基准 保留 ADC 复位 写入 1 模块复位,写 0 清除复位 160 Version 1.02 SWM320 系列 6.15 直接内存存取(DMA)控制器 6.15.1 特性     支持存储器之间数据交互 最大通道数为 8 支持二种地址变化方式:递增,固定 支持 memory to memory,memory to peripheral,peripheral to peripheral 三种握手方 式 6.15.2 功能 DMA Handshake Interface DMA 主要功能在于完成两个 AHB Master 口之间的数据搬移,支持系统内存与系统内 存、系统内存与片上外设(NORFLC/SDRAMC/SRAMC)间的数据搬运,外设与外设之间 无法直接进行数据交换,需先从外设 A 搬移到系统内存,然后再从系统内存搬移到外设 B。 搬运过程中无需占用内核资源,从而节省了内核资源可供其他操作使用。 DMA 模块结构如下图所示: DMA Tx: miu0 to miu1 Rx: miu1 to miu0 SIU (control registers) AHB Master IF halfplexch ch0 halfplexch ch1 halfplexch ch6 halfplexch ch7 pshctrl pshctrl pshctrl pshctrl fifo fifo fifo fifo Popctrl Popctrl Popctrl popctrl DMA Handshake Interface AHB Slave IF ARB0 ARB1 AHB Master IF 图 6-41 DMA 模块结构示意图 SIU 是 AHB slave 接口,MCU 通过这个接口配置相关的控制寄存器,同时也完成和外 设之间的握手。 ARB0 和 ARB1 用于仲裁各个通道的数据传输请求。 HALFPLEXCH 是单向传输通道,在任意时刻只能配置为发送或接收方向。 DMA 处理  每条通道可以根据需要配置为 TX 或者 RX,在每一个 DMA 请求执行完后,可以 动态的改变 TX 和 RX 的配置 161 Version 1.02 SWM320 系列   DMA 只支持 WORD 读操作,并且只支持连续的 SINGLE 读 访问存储器时,不需要握手信号,访问外设时,需要通过握手信号进行信息交换。 在 DMA 开始访问外设的数据之前,会发出 req 请求信号,同时会通知外设本次 DMA 传输的起始地址、数据长度、以及是读还是写,外设在收到请求后,做好相 应的准备后,给出 gnt 回应信号 DMA 访问外设握手时序如下图所示: 图 6-42 DMA 访问外设握手时序示意图 优先级 每条通道在传输数据前,都要先申请总线的仲裁权。 当前获得仲裁权的通道为 CH0 时,优先级从高到低为 CH1,CH2,CH3,CH4,CH5, CH6,CH7,CH0;当前通道为 CH1 时,优先级从高到低依次为 CH2,CH3,CH4,CH5, CH6,CH7,CH0,CH1。以此类推。 中断处理 DMA 控制器模块各通道均支持传输结束中断。DMA 初始化时如果配置了中断使能寄 存器 IE,当所配置通道传输完指定数据长度时会产生中断,此时中断状态寄存器 IF 对应位 自动置 1,对该位写 1 则清除中断,用户可通过读此寄存器来判断是否产生了中断。 DMA 各个通道还具备中断屏蔽功能。当配置了中断屏蔽寄存器 IM 时,即使数据传输 结束,也不会产生中断。 操作说明 使用 DMA 各通道之前,需针对 DMA 模块进行如下初始化操作:  通过寄存器 CHxAM 设置 DMA 通道 x 的发送端与接收端地址变化模式  通过寄存器 CHxSRC 设置 DMA 通道 x 源地址  通过寄存器 CHxDST 设置 DMA 通道 x 目的地址  通过寄存器 CHxCR 的 LEN 位设置 DMA 数据传输长度  根据所需,通过寄存器 IE 配置 DMA 传输结束中断  DMA 使能,寄存器 EN 置 1  启动 DMA 传输,寄存器 CHxCR 的 TXEN 位置 1  传输完成后进入中断处理部分,通过查询中断状态寄存器 IF 来判断通道 x 是否传 输完成 162 Version 1.02 SWM320 系列 6.15.3 寄存器映射 DMA BASE:0x40001000 名称 偏移量 类型 复位值 描述 EN 0x00 R/W 0 DMA 使能,高有效 IE 0x04 R/W 0 DMA 各通道中断使能 IM 0x08 R/W 0 DMA 各通道中断屏蔽 IF 0x0C R/W 0 DMA 各通道中断状态 CH0CR 0x40 R/W 0 CH0 控制寄存器 CH0AM 0x44 R/W 0 CH0 地址变化模式 CH0SRC 0x48 R/W 0 CH0 起始地址 CH0DST 0x5C R/W 0 CH0 目的地址 CH1CR 0x80 R/W 0 CH1 控制寄存器 CH1AM 0x84 R/W 0 CH1 地址变化模式 CH1SRC 0x88 R/W 0 CH1 起始地址 CH1DST 0x9C R/W 0 CH1 目的地址 CH2CR 0xC0 R/W 0 CH2 控制寄存器 CH2AM 0xC4 R/W 0 CH2 地址变化模式 CH2SRC 0xC8 R/W 0 CH2 起始地址 CH2DST 0xDC R/W 0 CH2 目的地址 6.15.4 寄存器描述 DMA 使能寄存器 EN ADDR: 0x40001000 位域 名称 类型 复位值 描述 31:1 REVERSED — — 保留 0 EN R/W 0 DMA 使能 1:使能 0:禁能 DMA 中断使能寄存器 IE ADDR: 0x40001004 位域 名称 类型 复位值 31:3 REVERSED — — 2 CH2_IE R/W 0 1 CH1_IE R/W 0 0 CH0_IE R/W 0 描述 保留 通道 2 传输结束时中断使能 1:使能 0:禁能 通道 1 传输结束时中断使能 1:使能 0:禁能 通道 0 传输结束时中断使能 1:使能 0:禁能 163 Version 1.02 SWM320 系列 DMA 中断屏蔽寄存器 IM ADDR: 0x40001008 位域 名称 类型 复位值 31:3 REVERSED — — 2 CH2_IM R/W 0 1 CH1_IM R/W 0 0 CH0_IM R/W 0 描述 保留 通道 2 中断屏蔽 1:屏蔽 0:非屏蔽 通道 1 中断屏蔽 1:屏蔽 0:非屏蔽 通道 0 中断屏蔽 1:屏蔽 0:非屏蔽 DMA 中断状态寄存器 IF ADDR: 0x4000100C 位域 名称 类型 复位值 31:3 REVERSED — — 2 CH2_IF R/W 0 1 CH1_IF R/W 0 0 CH0_IF R/W 0 描述 保留 通道 2 中断状态 1:中断已产生 0:中断未产生 通道 1 中断状态 1:中断已产生 0:中断未产生 通道 0 中断状态 1:中断已产生 0:中断未产生 通道 x 控制寄存器 CHxCR ADDR: 0x40001000+0x40*x 位域 名称 类型 复位值 描述 31:19 REVERSED — — 18 AUTORE R/W 0 17 TXEN R/W, AC 0 16 RXEN R/W, AC 0 15:12 REVERSED — — 11:0 LEN R/W 0 保留 自动重启使能 1:传输完成后自动按照上一次的配置重新启 动传输 0:传输完成后停止 通道的 TX 启动位,写 1 启动传输。如果 AUTORE 为 0,传输完成自动清零。和 RXEN 在任何时间不能同时为 1 通道的 RX 启动位,写 1 启动传输。如果 AUTORE 为 0,传输完成自动清零。和 TXEN 在任何时间不能同时为 1 保留 DMA 传输的长度。0 对应 1 字节,最大为 4096 字节 164 Version 1.02 SWM320 系列 通道 x 地址变化模式寄存器 CHxAM ADDR: 0x40001004+0x40*x 位域 名称 类型 复位值 31:10 REVERSED — — 9:8 DSTCHxAM R/W 0 7: 2 REVERSED — — 1:0 SRCCHxAM R/W 0 描述 保留 目的地址变化模式 00:固定地址 01:地址递增 保留 源地址变化模式 00:固定地址 01:地址递增 通道 x 源地址寄存器 SRC ADDR: 0x40001008+0x40*x 位域 名称 类型 复位值 31:0 SRC R/W 0 描述 DMA 通道 x 源地址 字对齐,低两位自动补 0 通道 x 目的地址寄存器 DST ADDR: 0x4000101C+0x40*x 位域 名称 类型 复位值 31:0 DST R/W 0 描述 DMA 通道 x 目的地址 字对齐,低两位自动补 0 165 Version 1.02 SWM320 系列 6.16 局域网控制器(CAN) 6.16.1 特性       支持协议 2.0A(11bit 标识符)和 2.0B(29bit 标识符) 支持最大 1 Mbit/s 的比特率 提供 64 字节的接收 FIFO 提供两个 16 位或 1 个 32 位的滤波器 提供可掩蔽中断 为自检操作提供可编程环回模式 6.16.2 功能 本系列所有型号 CAN 模块操作均相同。使用前需使能 CAN 模块时钟。与物理层相连 需要连接额外的硬件收发器。 中断 CAN 模块支持如下中断:  接收中断  发送中断  错误中断  数据溢出中断  唤醒中断  被动错误中断  仲裁丢失中断  总线错误中断 触发中断前,首先需要设置相应位的中断使能(IE)。 各中断状态清除(除接收中断),均为读清除。对于接收中断,需要将 CMD 寄存器 RRB 位置 1 清除。 数据发送 发送报文需要设置发送 buffer (寄存器 INFO,DATA0—DATA11)。可以是标准帧格式或 是扩展帧格式。数据位最大是 8 个字节,超过 8 字节,自动按 8 字节计算。写数据前,需要 查看 SR 寄存器 TXRDY 位是否等于 1,如果不等于 1,则发送的数据将会被丢弃。发送数 据请求通过设置 CMD 寄存器 TXREQ 位为 1(发送请求) 或是 CMD. SRR=1(自接收请求)。 当设置发送请求后,状态寄存器 SR.TXBUSY = 1,发送请求位清除。 数据传输没有开始时,可以通过设置命令寄存器(CMD. ABTTX = 1)中止传输。如果已 经开始传输,则不能中止。 166 Version 1.02 SWM320 系列 数据接收 数据接收先通过滤波器,符合条件标识符的才可以接收。滤波器的设置详见“接收滤波” 章节。 数据接收可以采用 DMA 模式或是读取内部 64 字节 FIFO。  采用 DMA 模式 需要设置控制寄存器 CR. DMAEN = 1,IE. RXDA =0;然后配置 DMA 相关寄存器。等待 DMA 中断,然后读取数据。  采用非 DMA 模式 读取内部的接收 FIFIO, 开始接收数据时, 状态寄存器 SR.RXBUSY = 1,当接收 FIFO (寄 存器 INFO,DATA0—DATA11)接收到完整报文的时候,状态寄存器(SR. RXDA = 1) ,中断状 态 IF. RXDA = 1(如果中断使能寄存器 IE. RXDA = 1)。接收 FIFO 是 64 字节,最多允许接收 5 个完成的扩展帧报文。如果接收 FIFO 没有足够的内存,状态寄存器 SR. RXOV = 1,数据 溢出,(如果中断使能 IE. RXOV =1),溢出中断置位(IF.RXOV = 1) 。 从接收 FIFO 中读取数据后,需要释放 FIFO(设置 CMD. RRB= 1)。如果没有读取的数 据,中断状态位(IE. RXDA)和接收 BUFFER(SR. RXDA)状态位清除。 自接收 自接收功能,数据可以自发自收,不发送应答位。通过设置自接收请求(CMD. SRR = 1), 根据配置,可以产生发送和接收中断。 如果自接收请求和发送请求同时设置,则自接收请求设置无效 接收滤波 验收滤波器有验收代码寄存器(ACR0—ACR3)和验收屏蔽寄存器(AMR0—AMR1) 标准帧格式,单过滤模式 接收 buffer 地址 0x44 0x48 ID28….ID21 ID20…ID18 RTR 0x4c 0x50 XXXX(不匹配) 数据字节 1 数据字节 2 过滤器 ACR0[7:0] ACR1[7:4] (ACR1[3:0]不使用) ACR2[7:0] ACR3[7:0] AMR0[7:0] AMR1[7:4] (AMR1[3:0]不使用) AMR2[7:0] AMR3[7:0] 注:如果不需要数据匹配,AMR2、AMR3 设置 0xFF 标准帧格式,双过滤模式 接收 buffer 地址 0x44 0x48 0x4C 0x50 167 Version 1.02 SWM320 系列 ID28…ID21 ID20…ID18 RTR 数据字节 1[7:4] XX(不匹配) 数据字节 1[3:0] 数据字节 2 过滤器 1: ACR0[7:0] ACR1[7:4] ACR1[3:0] ACR3[3:0] AMR0[7:0] AMR1[7:4] AMR1[3:0] AMR3[3:0] 过滤器 2: ACR2[7:0] ACR3[7:4] AMR2[7:0] AMR3[7:4] 扩展帧格式,单过滤模式 接收 buffer 地址:0x44 0x48 0x4c 0x50 ID28…ID21 ID20…ID13 ID12…ID5 ID4…ID0 ACR0[7:0] ACR1[7:0] ACR2[7:0] ACR3[7:2] ACR3[1:0]不匹配 AMR0[7:0] AMR1[7:0] AMR2[7:0] AMR3[7:2] AMR3[1:0]不匹配 RTR XX(不匹配) 过滤器: 扩展帧格式,双过滤模式 接收 buffer 地址:0x44 0x48 0x4C 0x50 ID28…ID21 ID20…ID13 ID12~ID5(不匹配) ID4~ID0(不匹配) RTR(不匹配) XX(不匹配) 过滤器 1: ACR0[7:0] ACR1[7:0] AMR0[7:0] AMR1[7:0] 过滤器 2: ACR2[7:0] ACR3[7:0] AMR2[7:0] AMR3[7:0] 波特率 通过 BTR0 和 BTR1 寄存器设置波特率。 168 Version 1.02 SWM320 系列 错误处理 CAN 模块包括两个错误计数器:接收错误计数器 RXERR 和发送错误计数器 TXERR. 当发生接收错误或是发送错误时,相应的寄存器会加 1;当成功接收或是成功发送,相应的寄 存器会减 1. 位错误、格式错误、填充错误或是其他错误,可以通过错误代码捕捉寄存器 ECC 查询。 错误报警限制寄存器 EWLIM 设置的是发生错误(接收或是发送)的最大次数,默认值是 96.当发送错误计数器或是接收错误计数器超过错误报警限制寄存器设置的值时,错误状态 寄存器(SR.6 = 1)置 1,如果错误中断使能(IE. ERR = 1),产生错误中断(IF. ERR = 1)。 如果任何一个错误计数器超过 127 是,CAN 进入错误主动状态,如果主动错误中断使 能(IE. ERRPASS = 1),产生错误主动中断(IE. ERRPASS = 1)。 如果错误计数器超过了 255,总线状态位(SR.7)会被置 1,总线关闭,CAN 就会进入复 位模式。当清除控制寄存器的复位模式(CR.0 ),CAN 退出复位模式。 睡眠模式 CAN 可以工作在低功耗的睡眠模式。通过设置控制寄存器 CR.SLEEP = 1,进入睡眠模 式。 唤醒睡眠模式可以通过以下三种方式:  总线上有活动。  配置睡眠中断使能,触发睡眠唤醒中断。  清除睡眠位(CR.SLEEP =0) 。 如果是总线上有活动唤醒睡眠模式,CAN 直到检测到总线空闲,并且接收到 11bit 后, 才接受报文。在复位模式下,CAN 不能进入睡眠模式。 仅听模式 配置 CR. LOM = 1,进入仅听模式。 (至少需要三个节点) 。 169 Version 1.02 SWM320 系列 CAN 工作在仅听模式,只接收数据,不发送数据。即使接收成功,也不发送应答位。 初始化和配置 初始化:   配置中断使能寄存器 (IE);  选择单/双过滤模式(CR.3)和复位模式(CR.0 = 0);  配置验收寄存器(ACR0—ACR3) 和验收屏蔽寄存器(AMR0—AMR3);  配置总线定时寄存器 0(BTR0)和 1(BTR1),设置波特率;  配置 CR 寄存器,退出复位模式。 设置发送数据:    查看发送 buffer 状态位是否为 1(SR.2=1) ;  如果 SR.2 =1, 在发送 buffer 中写入数据 (配置寄存器 INFO,DATA0—DATA11);  配置命令寄存器 CMD,设置 CMD.0=1,发送数据请求,或 CMD.4 = 1,自接 收请求。 设置接收数据:   非 DMA 模式  查看接收中断状态 IE.0 = 1(使能接收中断)或是接收 buffer 状态寄存器 SR.0 = 1;  当读取接收 buffer 里的数据后(寄存器 INFO,DATA0—DATA11),将 CMD.2 置 1,释放接收 fifo。 DMA 模式  查看 DMA 中断,读取数据。 6.16.3 寄存器映射 CAN BASE:0x40030000 名称 偏移量 类型 复位值 描述 CR 0x00 R/W 0x01 控制寄存器 CMD 0x04 RO 0x00 命令寄存器 SR 0x08 RO 0x3C 状态寄存器 IF 0x0C RC 0x00 中断状态 IE 0x10 R/W 0x00 中断使能 BT0 0x18 R/W 0x00 总线定时器 0 BT1 0x1C R/W 0x00 总线定时器 1 ALC 0x2C RO 0x00 仲裁丢失捕捉 ECC 0x30 RO 0x00 错误代码捕捉 EWLIM 0x34 RO 0x5A 错误报警限制 170 Version 1.02 SWM320 系列 名称 偏移量 类型 复位值 描述 RXERR 0x38 RO 0x00 接收错误计数 TXERR 0x3C RO 0x00 发送错误计数 ACR0 0x40 RO 0x00 验收码寄存器 0 ACR1 0x44 RO 0x00 验收码寄存器 1 ACR2 0x48 RO 0x00 验收码寄存器 2 ACR3 0x4C RO 0x00 验收码寄存器 3 AMR0 0x50 RO 0x00 验收屏蔽寄存器 0 AMR1 0x54 RO 0x00 验收屏蔽寄存器 1 AMR2 0x58 RO 0x00 验收屏蔽寄存器 2 AMR3 0x5C RO 0x00 验收屏蔽寄存器 3 INFO 0x40 RO 0x00 帧格式 DATA0 0x44 WO 0x00 数据 0 寄存器 DATA1 0x48 WO 0x00 数据 1 寄存器 DATA2 0x4C WO 0x00 数据 2 寄存器 DATA3 0x50 WO 0x00 数据 3 寄存器 DATA4 0x54 WO 0x00 数据 4 寄存器 DATA5 0x58 WO 0x00 数据 5 寄存器 DATA6 0x5C WO 0x00 数据 6 寄存器 DATA7 0x60 WO 0x00 数据 7 寄存器 DATA8 0x64 WO 0x00 数据 8 寄存器 DATA9 0x68 WO 0x00 数据 9 寄存器 DATA10 0x6C WO 0x00 数据 10 寄存器 DATA11 0x70 WO 0x00 数据 11 寄存器 RMCNT 0x74 R/W 0x00 接收数据计数寄存器 TXRINFO 0x180 RO 0x00 读取发送帧格式寄存器 TXRDATA0 0x184 RO 0x00 读取发送数据 0 寄存器 TXRDATA1 0x188 RO 0x00 读取发送数据 1 寄存器 TXRDATA2 0x18C RO 0x00 读取发送数据 2 寄存器 TXRDATA3 0x190 RO 0x00 读取发送数据 3 寄存器 TXRDATA4 0x194 RO 0x00 读取发送数据 4 寄存器 TXRDATA5 0x198 RO 0x00 读取发送数据 5 寄存器 TXRDATA6 0x19C RO 0x00 读取发送数据 6 寄存器 TXRDATA7 0x1A0 RO 0x00 读取发送数据 7 寄存器 TXRDATA8 0x1A4 RO 0x00 读取发送数据 8 寄存器 TXRDATA9 0x1A8 RO 0x00 读取发送数据 9 寄存器 TXRDATA10 0x1AC RO 0x00 读取发送数据 10 寄存器 TXRDATA11 0x1B0 RO 0x00 读取发送数据 11 寄存器 171 Version 1.02 SWM320 系列 6.16.4 寄存器描述 控制寄存器 CR ADDR:0x40030000 位域 名称 类型 复位值 描述 31:6 REVERSED — — 保留 5 DMAEN R/W 0x0 1:DMA 模式接收报文 0:非 DMA 模式接收报文 4 SLEEP R/W 0x0 1:进入睡眠模式,有总线活动或中断时唤醒 并自动清零此位 0:正常模式 3 AFM R/W 0x0 1:单个验收滤波器(32 位) 0:两个验收滤波器(16 位) 2 STM R/W 0x0 1 :自测模式,使没有应答,CAN 控制器也 可以成功发送 0 :正常模式 1 LOM R/W 0x0 1 :仅听模式 0 :正常模式 0 RST R/W 0x1 1 :复位模式 0 :正常模式 注:CR.SLEEP 只能在正常模式下写;CR[3:1] 在正常模式和复位模式下都可以写 命令寄存器 CMD ADDR: 0x40030004 位域 名称 类型 复位值 描述 31:6 REVERSED — — 保留 4 SRR WO 0x0 1:自测模式下,自接收请求,数据可以同时 发送和接收 3 CLROV WO 0x0 1:清除数据溢出状态位 2 RRB WO 0x0 1:释放接收缓冲 1 ABTTX WO 0x0 1:取消下一个发送请求 0 TXREQ WO 0x0 1:工作模式下,发送数据请求 状态寄存器 SR ADDR:0x40030008 位域 名称 类型 复位值 描述 31:8 REVERSED — — 保留 7 BUSOFF RO 0x0 1:CAN 控制器处于总线关闭状态,没有参与 到总线活动 6 ERR RO 0x0 1:至少一个错误计数器达到 Warning Limit 5 TXBUSY RO 0x1 1:正在发送报文 4 RXBUSY RO 0x1 1:正在接收报文 172 Version 1.02 SWM320 系列 3 TXDONE RO 0x1 1:上一个报文发送成功完成 2 TXRDY RO 0x1 0:正在处理前面的发送,现在不能写新的报 文 1:可以写入新的报文发送 1 RXOV RO 0x0 1:新接收的报文由于接收 FIFO 已满而丢掉 0 RXDA RO 0x0 1:接收 FIFO 中有完整消息可以读取 中断状态寄存器 IF ADDR:0x4003000C 位域 名称 类型 复位值 描述 31:8 REVERSED — — 保留 7 BUSERR RC 0x0 当 IE.BUSERR=1 时,CAN 控制器检测到总线 错误时硬件置位 6 ARBLOST RC 0x0 当 IE.ARBLOST=1 时,CAN 控制器丢失仲裁 变成接收方时硬件置位 5 ERRPASS RC 0x0 当 IE.ERRPASS=1 时,从被动错误进入主动错 误,或是至少一个错误计数器超过 127 时硬件 置位 4 WKUP RC 0x0 当 IE.WKUP=1 时,在睡眠模式下的 CAN 控制 器检测到总线活动时硬件置位 3 RXOV RC 0x0 当 IE.RXOV = 1 时,如果 SR.RXOV = 1, 硬件 置位 2 ERR RC 0x0 当 IE.ERR=1 时,SR.ERR 或 SR.BUSOFF 0-to-1 或 1-to-0 将置位此位 1 TXRDY RC 0x0 当 IE.TXRDY=1 时,SR.TXRDY 由 0 变成 1 将置位此位,并且此时 SR.TXDONE 肯定也变 成了 1 0 RXDA RO W1C 0x0 当 IE.RXDA = 1 时,如果 SR.RXDA = 1,硬件 置位 注:IF.RXDA 清除通过写 CMD RRB = 1 清除。 中断使能寄存器 IE ADDR:0x40030010 位域 名称 类型 复位值 描述 31:8 REVERSED — — 保留 7 BUSERR WO 0x0 1:总线错误 使能 6 ARBLOST WO 0x0 1:丢失仲裁使能 5 ERRPASS WO 0x0 1:主动错误使能 4 WKUP WO 0x0 1:睡眠唤醒使能 3 RXOV WO 0x0 1:接收报文溢出使能 2 ERR WO 0x0 1:错误使能 1 TXRDY WO 0x0 1:报文发送完成使能 173 Version 1.02 SWM320 系列 位域 名称 类型 复位值 0 RXDA WO 0x0 描述 1:报文成功接收使能 总线定时器 BT0 ADDR:0x40030018 位域 名称 类型 复位值 描述 31:8 REVERSED — — 保留 7:6 SJW RW 0x0 同步跳变宽度 5:0 BRP RW 0x0 波特率设置 CAN 时间单位=2*Tsysclk*(BRP+1) 总线定时器 BT1 ADDR:0x4003001C 位域 名称 类型 复位值 描述 31:8 REVERSED — — 保留 7 SAM RW 0x0 采样次数 0:1 次 1:3 次 6:4 TSEG2 RW 0x0 t_tseg2 = CAN 时间单位 * (TSEG2+1) 3:0 TSEG1 RW 0x0 t_tseg1 = CAN 时间单位 * (TSEG1+1) 仲裁丢失捕捉寄存器 ALC ADDR:0x4003002C 位域 名称 类型 复位值 31:5 REVERSED — — 4:0 ERR_Code RO 0x0 描述 保留 十进制值 ALC[4:0] 功能 00000 00 仲裁丢失在识别码的 bit1(ID.28) 00001 01 仲裁丢失在识别码的 bit2(ID.27) 00010 02 仲裁丢失在识别码的 bit3(ID.26) 00011 03 仲裁丢失在识别码的 bit4(ID.25) 00100 04 仲裁丢失在识别码的 bit5(ID.24) 00101 05 仲裁丢失在识别码的 bit6(ID.23) 00110 06 仲裁丢失在识别码的 bit7(ID.22) 00111 07 仲裁丢失在识别码的 bit8(ID.21) 01000 08 仲裁丢失在识别码的 bit9(ID.20) 01001 09 仲裁丢失在识别码的 bit10(ID.19) 01010 10 仲裁丢失在识别码的 bit11(ID.18) 01011 11 仲裁丢失在 SRTR 位 01100 12 仲裁丢失在 IDE 位 01101 13 仲裁丢失在识别码的 bit12(ID.17) 只存在扩展 174 Version 1.02 SWM320 系列 01110 14 仲裁丢失在识别码的 bit13(ID.16) 01111 15 仲裁丢失在识别码的 bit14(ID.15) 10000 16 仲裁丢失在识别码的 bit15(ID.14) 10001 17 仲裁丢失在识别码的 bit16(ID.13) 10010 18 仲裁丢失在识别码的 bit17(ID.12) 10011 19 仲裁丢失在识别码的 bit18(ID.11) 10100 20 仲裁丢失在识别码的 bit19(ID.10) 10101 21 仲裁丢失在识别码的 bit20(ID. 9) 10110 22 仲裁丢失在识别码的 bit21(ID. 8) 10111 23 仲裁丢失在识别码的 bit22(ID. 7) 11000 24 仲裁丢失在识别码的 bit23(ID. 6) 11001 25 仲裁丢失在识别码的 bit24(ID. 5) 11010 26 仲裁丢失在识别码的 bit25(ID. 4) 11011 27 仲裁丢失在识别码的 bit26(ID. 3) 11100 28 仲裁丢失在识别码的 bit27(ID. 2) 11101 29 仲裁丢失在识别码的 bit28(ID. 1) 11110 30 仲裁丢失在识别码的 bit29(ID. 0) 11111 31 仲裁丢失在 RTR 位 帧格式 错误代码 ECC ADDR:0x40030030 位域 名称 类型 复位值 描述 31:8 REVERSED — — 保留 错误代码: 0 位错误 1 格式错误 2 填充错误 3 其它错误 7:6 ERRCODE RO 0x0 位域 名称 类型 复位值 5 DIR RO 0x0 0 发送时发生错误 1 接收时发生错误 4:0 SEGCODE RO 0x0 发生错误 见下表 描述 功能 ECC[4:0] 00011 帧开始 00010 ID28—ID21 00110 ID20—ID18 00100 SRTR 位 00101 IDE 位 00111 ID17—ID13 01111 ID.12 – ID.5 175 Version 1.02 SWM320 系列 功能 ECC[4:0] 01110 ID.4 – ID.0 01100 RTR 位 01101 保留位 1 01001 保留位 0 01011 数据长度代码 01010 数据区 01000 CRC 序列 11000 CRC 定义符 11001 应答通道 11011 应答定义符 11010 帧结束 10010 终止 10001 积极错误标志 10110 消极错误标志 10011 支配(控制)位误差 10111 错误定义符 11100 溢出标志 错误报警限制 EWLIM ADDR:0x40030034 位域 名称 类型 复位值 描述 31:8 REVERSED — — 保留 7:0 EWLIM RW(RO) 96 注意:在复位模式下可读可写 在正常模式下只读 接收错误计数器 RXERR ADDR:0x40030038 位域 名称 类型 复位值 描述 31:8 REVERSED — — 保留 7:0 ERRCNT RW(RO) 0 注意:在复位模式下可读可写 在正常模式下只读 发送错误计数器 TXERR ADDR:0x4003003C 位域 名称 类型 复位值 描述 31:8 REVERSED — — 保留 7:0 ERRCNT RW (R0) 0 注意:在复位模式下可读可写 在正常模式下只读 类型 复位值 帧信息寄存器 INFO ADDR:0x40030040 位域 名称 描述 176 Version 1.02 SWM320 系列 31:8 7 REVERSED FF — RW — 保留 0x0 帧格式 0 标准帧格式 1 扩展帧格式 6 RTR RW 0x0 帧格式 1 远程帧 0 数据帧 3:0 DLC RW 0x0 数据长度 数据寄存器 0 DATA0 ADDR:0x40030044 位域 名称 类型 复位值 描述 31:8 REVERSED — — 保留 7:0 ID RW 0x0 标识符 ID[28:21] 数据寄存器 1 DATA1 ADDR:0x40030048 位域 名称 类型 复位值 描述 31:8 REVERSED — — 保留 7:5 ID RW 0x0 标识符 ID[20:18] 4:0 REVERSED — — 保留 数据寄存器 2 DATA2 ADDR:0x4003004C 位域 名称 类型 复位值 描述 31:8 REVERSED — — 保留 7:0 DATA RW 0x0 数据字节 0 数据寄存器 3 DATA3 ADDR:0x40030050 位域 名称 类型 复位值 描述 31:8 REVERSED — — 保留 7:0 DATA RW 0x0 数据字节 1 数据寄存器 4 DATA4 ADDR:0x40030054 位域 名称 类型 复位值 描述 31:8 REVERSED — — 保留 7:0 DATA RW 0x0 数据字节 2 数据寄存器 5 DATA5 ADDR:0x40030058 177 Version 1.02 SWM320 系列 位域 名称 类型 复位值 描述 31:8 REVERSED — — 保留 7:0 DATA RW 0x0 数据字节 3 数据寄存器 6 DATA6 ADDR:0x4003005C 位域 名称 类型 复位值 描述 31:8 REVERSED — — 保留 7:0 DATA RW 0x0 数据字节 4 数据寄存器 7 DATA7 ADDR:0x40030060 位域 名称 类型 复位值 描述 31:8 REVERSED — — 保留 7:0 DATA RW 0x0 数据字节 5 数据寄存器 8 DATA8 ADDR:0x40030064 位域 名称 类型 复位值 描述 31:8 REVERSED — — 保留 7:0 DATA RW 0x0 数据字节 6 数据寄存器 9 DATA9 ADDR:0x40030068 位域 名称 类型 复位值 描述 31:8 REVERSED — — 保留 7:0 DATA RW 0x0 数据字节 7 数据寄存器 0 DATA0 ADDR:0x40030044 位域 名称 类型 复位值 描述 31:8 REVERSED — — 保留 7:0 ID RW 0x0 标识符 ID[28:21] 数据寄存器 1 DATA1 ADDR:0x40030048 位域 名称 类型 复位值 描述 31:8 REVERSED — — 保留 7:0 ID RW 0x0 标识符 ID[20:13] 数据寄存器 2 DATA2 ADDR:0x4003004C 位域 名称 类型 复位值 描述 178 Version 1.02 SWM320 系列 31:8 REVERSED — — 保留 7:0 ID RW 0x0 标识符 ID[12:5] 数据寄存器 3 DATA3 ADDR:0x40030050 位域 名称 类型 复位值 描述 31:8 REVERSED — — 保留 7:3 ID RW 0x0 标识符 ID[4:0] 2:0 REVERSED — — 保留 数据寄存器 4 DATA4 ADDR:0x40030054 位域 名称 类型 复位值 描述 31:8 REVERSED — — 保留 7:0 DATA RW 0x0 数据字节 0 数据寄存器 5 DATA5 ADDR:0x40030058 位域 名称 类型 复位值 描述 31:8 REVERSED — — 保留 7:0 DATA RW 0x0 数据字节 1 数据寄存器 6 DATA6 ADDR:0x4003005C 位域 名称 类型 复位值 描述 31:8 REVERSED — — 保留 7:0 DATA RW 0x0 数据字节 2 数据寄存器 7 DATA7 ADDR:0x40030060 位域 名称 类型 复位值 描述 31:8 REVERSED — — 保留 7:0 DATA RW 0x0 数据字节 3 数据寄存器 8 DATA8 ADDR:0x40030064 位域 名称 类型 复位值 描述 31:8 REVERSED — — 保留 7:0 DATA RW 0x0 数据字节 4 数据寄存器 9 DATA9 ADDR:0x40030068 位域 名称 类型 复位值 描述 179 Version 1.02 SWM320 系列 31:8 REVERSED — — 保留 7:0 DATA RW 0x0 数据字节 5 数据寄存器 10 DATA10 ADDR:0x4003006C 位域 名称 类型 复位值 描述 31:8 REVERSED — — 保留 7:0 DATA RW 0x0 数据字节 6 数据寄存器 11 DATA11 ADDR:0x40030070 位域 名称 类型 复位值 描述 31:8 REVERSED — — 保留 7:0 DATA RW 0x0 数据字节 7 接收报文数目寄存器 RMCNT ADDR:0x40030074 位域 名称 类型 复位值 描述 31:8 REVERSED — — 保留 7:0 RMC RW 0x0 每次接收到报文数目加 1, 释放接收缓冲数目减 1 读取发送帧信息寄存器 TXRDINFO ADDR:0x40030180 位域 名称 类型 复位值 31:8 REVERSED — — 保留 0x0 帧格式 0 标准帧格式 1 扩展帧格式 7 FF RW 描述 6 RTR RW 0x0 帧格式 1 远程帧 0 数据帧 3:0 DLC RW 0x0 数据长度 读取发送数据寄存器 0 TXRDATA0 ADDR:0x40030184 位域 名称 类型 复位值 描述 31:8 REVERSED — — 保留 7:0 ID RW 0x0 标识符 ID[28:21] 读取发送数据寄存器 1 TXRDATA 1 ADDR:0x40030188 位域 名称 类型 复位值 描述 180 Version 1.02 SWM320 系列 31:8 REVERSED — — 保留 7:5 ID RW 0x0 标识符 ID[20:18] 4:0 REVERSED — — 保留 读取发送数据寄存器 2 TXRDATA 2 ADDR:0x4003018C 位域 名称 类型 复位值 描述 31:8 REVERSED — — 保留 7:0 DATA RW 0x0 数据字节 0 读取发送数据寄存器 3 TXRDATA 3 ADDR:0x40030190 位域 名称 类型 复位值 描述 31:8 REVERSED — — 保留 7:0 DATA RW 0x0 数据字节 1 读取发送数据寄存器 4 TXRDATA 4 ADDR:0x40030194 位域 名称 类型 复位值 描述 31:8 REVERSED — — 保留 7:0 DATA RW 0x0 数据字节 2 读取发送数据寄存器 5 TXRDATA 5 ADDR:0x40030198 位域 名称 类型 复位值 描述 31:8 REVERSED — — 保留 7:0 DATA RW 0x0 数据字节 3 读取发送数据寄存器 6 TXRDATA 6 ADDR:0x4003019C 位域 名称 类型 复位值 描述 31:8 REVERSED — — 保留 7:0 DATA RW 0x0 数据字节 4 读取发送数据寄存器 7 TXRDATA 7 ADDR:0x400301A0 位域 名称 类型 复位值 描述 31:8 REVERSED — — 保留 7:0 DATA RW 0x0 数据字节 5 读取发送数据寄存器 8 TXRDATA 8 ADDR:0x400301A4 位域 名称 类型 复位值 描述 181 Version 1.02 SWM320 系列 31:8 REVERSED — — 保留 7:0 DATA RW 0x0 数据字节 6 读取发送数据寄存器 9 TXRDATA 9 ADDR:0x400301A8 位域 名称 类型 复位值 描述 31:8 REVERSED — — 保留 7:0 DATA RW 0x0 数据字节 7 读取发送数据寄存器 0 TXRDATA0 ADDR:0x40030184 位域 名称 类型 复位值 描述 31:8 REVERSED — — 保留 7:0 ID RW 0x0 标识符 ID[28:21] 读取发送数据寄存器 1 TXRDATA1 ADDR:0x40030188 位域 名称 类型 复位值 描述 31:8 REVERSED — — 保留 7:0 ID RW 0x0 标识符 ID[20:13] 读取发送数据寄存器 2 TXRDATA2 ADDR:0x4003018C 位域 名称 类型 复位值 描述 31:8 REVERSED — — 保留 7:0 ID RW 0x0 标识符 ID[12:5] 读取发送数据寄存器 3 TXRDATA3 ADDR:0x40030190 位域 名称 类型 复位值 描述 31:8 REVERSED — — 保留 7:3 ID RW 0x0 标识符 ID[5:0] 2:0 REVERSED — — 保留 读取发送数据寄存器 4 TXRDATA4 ADDR:0x40030194 位域 名称 类型 复位值 描述 31:8 REVERSED — — 保留 7:0 DATA RW 0x0 数据字节 0 读取发送数据寄存器 5 TXRDATA5 ADDR:0x40030198 位域 名称 类型 复位值 描述 182 Version 1.02 SWM320 系列 31:8 REVERSED — — 保留 7:0 DATA RW 0x0 数据字节 1 读取发送数据寄存器 6 TXRDATA6 ADDR:0x4003019C 位域 名称 类型 复位值 描述 31:8 REVERSED — — 保留 7:0 DATA RW 0x0 数据字节 2 读取发送数据寄存器 7 TXRDATA7 ADDR:0x400301A0 位域 名称 类型 复位值 描述 31:8 REVERSED — — 保留 7:0 DATA RW 0x0 数据字节 3 读取发送数据寄存器 8 TXRDATA8 ADDR:0x400301A4 位域 名称 类型 复位值 描述 31:8 REVERSED — — 保留 7:0 DATA RW 0x0 数据字节 4 读取发送数据寄存器 9 TXRDATA9 ADDR:0x400301A8 位域 名称 类型 复位值 描述 31:8 REVERSED — — 保留 7:0 DATA RW 0x0 数据字节 5 读取发送数据寄存器 10 TXRDATA10 ADDR:0x400301AC 位域 名称 类型 复位值 描述 31:8 REVERSED — — 保留 7:0 DATA RW 0x0 数据字节 6 读取发送数据寄存器 11 TXRDATA11 ADDR:0x400301B0 位域 名称 类型 复位值 描述 31:8 REVERSED — — 保留 7:0 DATA RW 0x0 数据字节 7 验收码寄存器 ACRx (x = 0,1,2,3 ) ADDR:0x40030040+0x4*n 位域 名称 类型 复位值 31:8 REVERSED — — 描述 保留 183 Version 1.02 SWM320 系列 7:0 IDx RW 0x0 验收码 验收屏蔽器 AMRx (x = 0,1,2,3 ) ADDR:0x40030050+0x4*n 位域 名称 类型 复位值 31:8 REVERSED — — 保留 0x0 验收屏蔽 1:不屏蔽 0:屏蔽 7:0 IDx RW 描述 184 Version 1.02 SWM320 系列 6.17 实时时钟(RTC) 6.17.1 特性      可自由设置日期(年、月、周、日)和时间(时、分、秒) 可自由设置闹钟(周、时、分、秒) 自动识别当前设置年份是否为闰年 支持 RTC 时钟校正功能 支持 RTC 中断从 SLEEP 模式下唤醒芯片 6.17.2 功能 使用前需使能 RTC 模块时钟。RTC 控制器用于提供给用户实时的时间信息与日期信息。 使用 RTC 前,需进行如下操作:  通过寄存器 EN 禁能 RTC;  读取配置状态寄存器 CFGABLE,当该寄存器 = 1 时,分别通过寄存器 MINSEC、 DATHUR、MONDAY、YEAR 配置 RTC 的初始计数值 ,通过寄存器 MINSECAL、 DATHURAL 设置 RTC 闹钟时间;  通过寄存器 LOAD 加载各项初始值;  用户根据需要,通过寄存器 IE 使能天/时/分/秒等中断或闹钟中断;  通过寄存器 EN 使能 RTC;  若使能了天/时/分/秒等中断,计数到规定时间后进入中断;若使能了闹钟中断,计 数到闹钟设定时间后将芯片从休眠状态唤醒(进入闹钟中断前芯片需处于休眠状 态) 。 唤醒休眠相关配置流程参见 SYSCON 模块的“休眠与唤醒设置”章节。 RTC 的时钟计数周期默认为 32768,可通过软件进行时钟校正,时钟校正分为时钟调整 和时钟微调整,在配置状态寄存器 CFGABLE 为 1 时,分别通过时钟调整寄存器 TRIM 和 时钟微调 TRIMM 寄存器进行校正。 时钟调整  读取 TRIM 寄存器 DEC 位和 ADJ 位的值  判断 DEC 位是否为 1  若 DEC=1,计数周期设置为 32768-ADJ,否则计数周期设置为 32768+ADJ 时钟微调整  设置 TRIMM 寄存器 CYCLE 位的值(0-7,分别代表 1-8 个计数周期)以确定几个 周期进行一次微调  读取并判断 TRIMM 寄存器 INC 位的值  若 INC=1,则每次微调时计数周期调整为(32768±ADJ)+1,否则每次微调时计数周 185 Version 1.02 SWM320 系列 期调整为(32768±ADJ)+1 注:CYCLE=0 时,不进行微调整 6.17.3 寄存器映射 RTC BASE:0x4001B000 名称 偏移量 类型 复位值 描述 MINSEC 0x00 R/W 0 分秒计数寄存器 DATHUR 0x04 R/W 0x20 日时计数寄存器 MONDAY 0x08 R/W 0x8 月周计数寄存器 YEAR 0x0C R/W 0x7df 年计数寄存器 MINSECAL 0x10 R/W 0 分秒闹铃设置寄存器 DAYHURAL 0x14 R/W 0 周时闹铃设置寄存器 LOAD 0x18 R/W,AC 0 初始化计数器 IE 0x1C R/W 0 中断使能寄存器 IF 0x20 R/W, W1C 0 中断状态寄存器 EN 0x24 R/W 0x1 RTC 使能寄存器 CFGABLE 0x28 RO 0 配置状态寄存器 TRIM 0x2C R/W 0 时钟调整寄存器 TRIMM 0x30 R/W 0 时钟微调寄存器 6.17.4 寄存器描述 分秒计数寄存器 MINSEC ADDR: 0x4001B000 位域 名称 类型 复位值 描述 31:12 REVERSED — — 保留 11:6 MIN R/W 0 计时器分钟计数 5:0 SEC R/W 0 计时器秒计数 日时计数寄存器 DATHUR ADDR: 0x4001B004 位域 名称 类型 复位值 描述 31:10 REVERSED — — 保留 9:5 DATE R/W 0x1 计时器天计数 4:0 HOUR R/W 0 计时器小时计数 月周计数寄存器 MONDAY ADDR: 0x4001B008 位域 名称 类型 复位值 31:7 REVERSED — — 描述 保留 186 Version 1.02 SWM320 系列 6:3 MON R/W 0x1 2:0 DAY R/W 0 计时器月计数 计时器周计数 0 表示周日,6 表示周六,以此类推 年计数寄存器 YEAR ADDR: 0x4001B00C 位域 名称 类型 复位值 31:12 REVERSED — — 11:0 YEAR R/W 0x7df 描述 保留 计时器年计数。支持 1901-2199 分秒闹铃设置寄存器 MINSECAL ADDR: 0x4001B010 位域 名称 类型 复位值 描述 31:12 REVERSED — — 保留 11:6 MIN R/W 0 定时器分钟设置 5:0 SEC R/W 0 定时器秒设置 周时闹铃设置寄存器 DATHURAL ADDR: 0x4001B014 位域 名称 类型 复位值 描述 31:12 REVERSED — — 保留 11 SAT R/W 0 定时器周设置,设置为周六 10 FRI R/W 0 定时器周设置,设置为周五 9 THU R/W 0 定时器周设置,设置为周四 8 WED R/W 0 定时器周设置,设置为周三 7 TUE R/W 0 定时器周设置,设置为周二 6 MON R/W 0 定时器周设置,设置为周一 5 SUN R/W 0 定时器周设置,设置为周日 4:0 HOUR R/W 0 定时器小时设置 初始化寄存器 LOAD ADDR: 0x4001B018 位域 名称 类型 复位值 31:1 REVERSED — — 保留 1 Load_alarm R/W, AC 0 闹钟设置值生效,1 有效 0 将设置的 MINSEC、DATHUR、MONDAY 和 YEAR 装载到相关计数器, 将 TRIM 和 TRIMM 的值装载作为基础计数器,持续到 RTC 时钟 的上升沿来临,自动清零 0 LOAD R/W 描述 中断使能寄存器 IE ADDR: 0x4001B01C 187 Version 1.02 SWM320 系列 位域 名称 类型 复位值 描述 31:5 REVERSED — — 保留 4 ALARM R/W 0 闹钟中断使能 3 DATE R/W 0 天中断使能 2 HOUR R/W 0 小时中断使能 1 MIN R/W 0 分钟中断使能 0 SEC R/W 0 秒中断使能 中断状态寄存器 IF ADDR: 0x4001B020 位域 名称 类型 复位值 描述 31:5 REVERSED — — 保留 4 ALARM R/W,W1C 0 闹钟中断状态,写 1 清零 3 DATE R/W,W1C 0 天中断状态,写 1 清零 2 HOUR R/W,W1C 0 小时中断状态,写 1 清零 1 MIN R/W,W1C 0 分钟中断状态,写 1 清零 0 SEC R/W,W1C 0 秒中断状态,写 1 清零 RTC 使能寄存器 EN ADDR: 0x4001B024 位域 名称 类型 复位值 描述 31:1 REVERSED — — 保留 0 EN R/W 0x1 RTC 使能 配置状态寄存器 CFGABLE ADDR: 0x4001B028 位域 名称 类型 复位值 31:1 REVERSED — — 保留 RO 0 寄存器可配置指示。如果需要更改 RTC 的寄 存器时,必须先查询此寄存器,当 CFGABLE 为 1 时,尽快配置完所有的寄存器(IE 和 IF 的配置不需要看这一位) 描述 0 CFGABLE 描述 时钟调整寄存器 TRIM ADDR: 0x4001B02C 位域 名称 类型 复位值 31:9 REVERSED — — 保留 8 DEC R/W 0 7:0 ADJ R/W 0 用于调整计数周期,默认为 32768,如果 DEC 为 1,则计数周期调整为 32768-ADJ,否则调 整为 32768+ADJ 时钟调整寄存器 TRIMM ADDR: 0x4001B030 188 Version 1.02 SWM320 系列 位域 名称 类型 复位值 描述 31:4 REVERSED — — 保留 3 INC R/W 0 2:0 CYCLE R/W 0 用 于 计 数 周 期 微 调 整 (n 个 周 期 调 整 一 次 ),如果 INC 为 1 ,则第 n 个计数周 期调整为(32768±ADJ)-1,否则调整为(32768 ±ADJ)+1;(CYCLE = 0 时,不进行微调整; CYCLE = 1,则 n 为 2;CYCLE = 7,则 n 为 8; 以此类推) 189 Version 1.02 SWM320 系列 6.18 CRC 计算单元(CRC) 6.18.1 特性  支持 CRC-32 码多项式 生成多项式:X32+X26+X23+X22+X16+X12+X11+X10+X8+X7+X5+X4+X2+X+1  支持 CRC-16 码多项式   生成多项式:X16+X12+X5+1 支持输出结果设置,包括翻转、取反 支持初始值自定义 6.18.2 功能 SWM320 系列所有型号 CRC 模块操作均相同,主要应用于核实数据传输或者数据存储 的正确性和完整性,使用前需使能 CRC 模块时钟。 CRC 模块分为 CRC-32 和 CRC-16 两个算法。使用 CRC-32 多项式进行计算时,输入数 据有效位宽可选择为 32Bit、16Bit、8Bit,使用 CRC-16 多项式进行计算时,输入数据有效 位宽可选择 16Bit、8Bit。 CRC 循环冗余检验结构框图如下图所示: CRC_RESULT Reg CRC_CR Reg Byte2 Byte1 D Q RESULT Reverse MUX In Data Bit Reverse Byte3 MUX CRC32 Byte4 MUX AHB BUS Slave wrapeer CRC_INIVAL Reg CRC16 CRC Control Unit 图 6-43 CRC 结构框图 计算步骤      根据需求,通过 CR 寄存器选择 CRC 算法、输入数据有效位宽、输出结果 根据需求,通过 INIVAL 寄存器设置 CRC 初始值 通过 CR 寄存器使能 CRC 计算 通过 DATAIN 寄存器向 CRC 计算单元输入要计算的数据 通过 RESULT 寄存器读取计算结果 190 Version 1.02 SWM320 系列 6.18.3 寄存器映射 CRC BASE:0x40003000 名称 偏移量 类型 复位值 描述 CR 0x00 R/W 0 CRC 状态控制寄存器 DATAIN 0x04 W 0 CRC 数据输入寄存器 INIVAL 0x08 R/W 0 CRC 初始值设置寄存器 RESULT 0x0C R 0 CRC 结果输出寄存器 6.18.4 寄存器描述 控制寄存器 CR ADDR: 0x40003000 位域 名称 类型 复位值 31:6 REVERSED — — 5:4 IBITS R/W 0 3 2 1 0 CRC16 ONOT OREV EN R/W R/W R/W R/W 0 描述 保留 CRC 输入数据有效位数寄存器 00:32 位输入数据有效 01:低 16 位输入数据有效 10:低 8 位输入数据有效 11:保留 CRC 算法选择寄存器 0:CRC32 1:CRC16 0 输出结果是否取反寄存器 1:输出结果取反 0:输出结果不需要取反 0 输出结果是否翻转寄存器 1:输出数据整体翻转 0:输出数据不需翻转 0 CRC 使能控制位 1:使能 0:禁能 数据输入寄存器 DATAIN ADDR: 0x40003004 位域 名称 类型 复位值 31:0 DATAIN WO 0 描述 CRC 数据输入寄存器,根据 CR[IBITS]选择 00:32 位输入数据有效 01:低 16 位输入数据有效 10:低 8 位输入数据有效 11:保留 191 Version 1.02 SWM320 系列 初始值设置寄存器 INIVAL ADDR: 0x40003008 位域 名称 类型 复位值 31:0 INIVAL R/W 0x0 描述 CRC 初始值寄存器 结果输出寄存器 RESULT ADDR: 0x4000300C 位域 名称 类型 复位值 31:10 RESULT R 0 描述 CRC 结果输出寄存器,根据 CR[CRC16]选择 0:32 位有效 1:低 16 位有效 192 Version 1.02 SWM320 系列 6.19 SRAM 控制器(SRAMC) 6.19.1 特性      Slave 接口为 AMBA 2.0 AHB 接口 支持 32 位/16 位/8 位操作 支持异步 SRAM 接口 支持 8 位数据位宽和 16 位数据位宽的颗粒 最大支持 24 位地址线 6.19.2 功能 本系列所有型号 SRAM 模块操作均相同。使用前需使能 SRAM 模块时钟。 SRAMC 模块能够将 AHB 传输信号转换到适当的外部设备协议,以满足 MCU 访问外 部存储的时序要求,从而完成对片外 8/16 位异步 SRAM 存储器的读、写操作。模块结构如 下图所示: DATA[15:0] CSN AHB Slave SIU FSM WEN OEN ADDR[23:0] 图 6-44 SRAMC 模块结构示意图 MCU 通过 SIU 接口配置相关的控制寄存器,FSM 将控制命令转化为异步 SRAM 的接 口时序。 数据接口 除 CSN 为独立接口信号外,SRAMC 模块其余数据接口与 NORFLC 模块共用,包括 WEN/OEN/ADDR/DATA 等。使用时将相关 GPIO 功能设置为 SRAMC 模块接口信号,如下 表所示: 信号名称 信号方向 功能 CSN O 外部 SRAM 片选信号 WEN O 外部 SRAM 使能信号 OEN O 外部 SRAM 输出使能信号 ADDR O 外部 SRAM 地址信号 DATA I/O 写入/读回 SRAM 的数据 表格 6-3 SRAMC 模块数据接口 数据宽度 当选择的片外异步 SRAM 存储器的数据通道是 8 位或者 16 位时,通过 SRAMC 控制寄 存器 BYTEIF 位可选择对应的 AHB 操作宽度,在 AHB 上的 32 位数据会被分割成连续的 8 193 Version 1.02 SWM320 系列 位或 16 位的数据来进行操作。 普遍的传输规则有以下三种:  AHB 的操作宽度与片外异步 SRAM 存储器的数据宽度相同  AHB 的操作宽度大于片外异步 SRAM 存储器的数据宽度  AHB 的操作宽度小于片外异步 SRAM 存储器的数据宽度 AHB 访问宽度 存储器宽度 8位 16 位 8位 A C 16 位 B A 32 位 B B 表格 6-4 SRAMC 模块传输宽度 当 AHB 的操作宽度大于或小于片外异步 SRAM 存储器的数据宽度时,存在数据传输一 致性的问题,因此为保障数据传输的一致性,根据片外异步 SRAM 存储器的数据宽度,要 求配置与之相同的 AHB 操作宽度。 读写速度 SRAMC 的读写速度由片外 SRAM 存储器的访问速度决定,可通过控制寄存器 CR 的 RWTIME 位来设置。SRAMC 完成每个访问操作至少需持续五个时钟周期,并且所设置的最 终访问速度不得小于片外 SRAM 存储器的访问速度。 例如:SYSCLK =120MHz,SRAMC 完成一个访问操作至少需要 5/120MHz ≈41.67ns, 此时如果片外 SRAM 芯片读写速度为 55ns, 那么 RWTIME 需最小设置为 6(7 个时钟周期) 。 传输时序 SRAMC 模块 CSN/WEN/OEN 等接口信号均在低电平时有效。 读操作期间 WEN 恒为高,ACCESS、ADDR 等信号在片选信号 CSN 拉低之前设置完 成,OEN 信号随着 CSN 的拉低而拉低,经过若干个(取决于 RWTIME)时钟周期后再拉高, 此时可软件读取 DATA,数据读取完成后 CSN 拉高,读操作时序如下图所示: 图 6-45 SRAMC 读操作时序图 194 Version 1.02 SWM320 系列 写操作期间 OEN 恒为高,ACCESS、ADDR、DATA 等信号在 CSN 拉低之前设置完成, WEN 信号随着 CSN 的拉低而拉低,经过若干个(取决于 RWTIME)时钟周期后再拉高, 至此写操作完成,CSN 信号拉高,写操作时序如下图所示: 图 6-46 SRAMC 写操作时序图 6.19.3 寄存器映射 SRAM BASE:0x68000000 名称 偏移量 类型 复位值 描述 CR 0x00 R/W 0 SRAMC 控制寄存器 6.19.4 寄存器描述 控制寄存器 CR ADDR: 0x68000000 位域 名称 类型 复位值 描述 31:5 REVERSED — — 4 BYTEIF R/W 0 3:0 RWTIME R/W 0x4 保留 外部 SRAM 数据宽度 1:8 位 0:16 位 读写操作的时序参数,表示整个读写操作持续 多少个时钟周期。0 表示 1 个时钟周期,依次 类推。 SRAMC 完成每个访问操作至少需持续五个时 钟周期,因此 RWTIME 最小设置为 4,并且所 设置的最终访问速度不得小于片外 SRAM 存 储器的访问速度 195 Version 1.02 SWM320 系列 6.20 NORFLASH 控制器(NORFLC) 6.20.1 特性        支持 WORD 为单位操作 支持并行 NOR FLASH 接口 支持 8 位数据位宽和 16 位数据位宽的颗粒 支持无 Ready/Busy#输出的颗粒 最大支持 24 位地址线 支持写命令读数据和直接读数据两种方式 通过写命令方式,可以支持的命令包括  读数据  复位  读 MAnufacturer ID  读 Device ID  编程  片擦除  扇区擦除 6.20.2 功能 本系列部分型号可能不包括该模块。使用前需使能 NORFLC 模块时钟。 NORFLC 模块能够将 AHB 传输信号转换到适当的外部设备协议,以满足 MCU 访问外 部存储的时序要求,从而完成对片外并行 NOR FLASH 存储器的读、写、擦除等操作。模块 结构如下图所示: DATA[15:0] CEN AHB Slave SIU FSM WEN OEN ADDR[23:0] 图 6-47 NORFLC 模块结构示意图 数据接口 NORFLC 模块包括 CEN、WEN、OEN、ADDR、DATA 等接口信号,使用时将相关 GPIO 功能设置为 NORFLC 模块接口信号。如下表所示: 信号名称 信号方向 功能 CEN O 外部 NOR FLASH 片选信号 WEN O 外部 NOR FLASH 使能信号 196 Version 1.02 SWM320 系列 信号名称 信号方向 功能 OEN O 外部 NOR FLASH 输出使能 信号 ADDR O 外部 NOR FLASH 地址信号 DATA I/O 写入/读回 NOR FLASH 的数 据 表格 6-5 NORFLC 模块数据接口 传输控制 类似于 SRAMC,NORFLC 接外部 NOR FLASH 存储器时也需要根据外部 NOR FLASH 存储器的特性进行匹配设置,包括数据位宽及读/写时序的控制。其中控制寄存器 CR 的 BYTEIF 位控制数据宽度,RDTIME、WRTIME 位分别控制读/写的时序。 传输时序 NORFLC 模块 CEN/WEN/OEN 等接口信号均在低电平时有效。 读操作需要通过 CMD 配置并执行命令 READ。读操作期间 WEN 恒为高,RDTIME、 ADDR 等信号在片选信号 CEN 拉低之前设置完成,OEN 信号随着 CEN 的拉低而拉低,经 过若干个(取决于 RDTIME)时钟周期后再拉高,此时可软件读取 DATA,数据读取完成后 CEN 拉高。读操作时序如下图所示: 图 6-48 NORFLC 读操作时序图 写操作需要通过 CMD 配置并执行命令 PROGRAM。 写操作期间 OEN 恒为高, WRTIME、 ADDR、DATA 等信号在 CEN 拉低之前设置完成,WEN 信号随着 CEN 的拉低而拉低,经 过若干个(取决于 WRTIME)时钟周期后再拉高,至此写操作完成,CEN 信号拉高。写操 作时序如下图所示: 197 Version 1.02 SWM320 系列 图 6-49 NORFLC 写操作时序图 操作说明    初始化  根据外部 NOR Flash 数据宽度配置控制寄存器 BYTEIF 位  根据外部 NOR Flash 写入速度配置控制寄存器 WRTIME 位  根据外部 NOR Flash 读取速度配置控制寄存器 WRTIME 位  如需中断,配置相关中断寄存器  清除 CEN 引脚,选通 NORFLC 读操作 通过命令读数据  NORFLC 初始化  通过地址控制寄存器 ADDR 设置要读取的地址  通过命令控制寄存器 CMD 设置命令为 READ  读取数据寄存器 DATA 通过地址直接读数据  NORFLC 初始化  直 接读地址 25’b1xx_xxxx_xxxx_xxxx_xxxx_xxxx_xxxx,低 24 位为 NOR FLASH 地址,支持字节、半字、字操作 读 ID  NORFLC 初始化  通过命令控制寄存器 CMD 设置命令为 AUTOMATIC SELECT  通过地址控制寄存器 ADDR 设置要读取的地址(由 Flash 决定)  通过命令控制寄存器 CMD 设置命令为 READ  读取数据寄存器 DATA  读取完毕,通过命令控制寄存器 CMD 设置命令为 RESET,系统复位 擦除操作 扇区擦除 198 Version 1.02 SWM320 系列  NORFLC 初始化  通过地址控制寄存器 ADDR 设置要擦除的起始地址  通过命令控制寄存器 CMD 设置命令为 SECTOR ERASE  等待执行命令完成产生中断,扇区擦除操作完成 整片擦除  NORFLC 初始化  通过命令控制寄存器 CMD 设置命令为 CHIP ERASE  等待执行命令完成产生中断,整片擦除操作完成 写操作  NORFLC 初始化  通过地址控制寄存器 ADDR 设置要写入的起始地址  通过命令控制寄存器 CMD 设置命令为 PROGRAM  设置数据寄存器 DATA  等待 PROGRAM 命令执行完成中断,PROGRAM 操作结束  中断处理 NORFLC 模 块 支 持 执 行 命 令 超 时 或 执 行 命 令 完 成 产 生 中 断 , 支 持 的 命 令 包 括 PROGRAM、CHIP ERASE、SECTOR ERASE,若中断使能寄存器 IE 使能,当符合中断产 生的条件后系统进入中断处理部分,可通过读中断状态寄存器 IF 判断是是否进入中断,对 中断状态寄存器写 1 进行清除相对应的中断状态。 6.20.3 寄存器映射 NORFLC BASE:0x60000000 名称 偏移量 类型 复位值 描述 IE 0x00 R/W 0 NORFLC 中断使能,高有效 IF 0x04 R/W 0 NORFLC 中断状态,高有效,写 1 清零 IM 0x08 R/W 0 NORFLC 中断屏蔽,高有效 CR 0x0C R/W 0 NORFLC 时序控制寄存器 ADDR 0x10 R/W 0 NORFLC 地址控制寄存器 CMD 0x14 R/W 0 NORFLC 命令控制寄存器 6.20.4 寄存器描述 中断使能寄存器 IE ADDR: 0x60000000 位域 名称 类型 复位值 描述 31:2 REVERSED — — 1 TIMEOUT R/W 0 保留 执行 PROGRAM、CHIP ERASE、SECTOR ERASE 命令时超时中断使能 1:使能 0:禁能 199 Version 1.02 SWM320 系列 0 FINISH R/W 0 执行 PROGRAM、CHIP ERASE、SECTOR ERASE 命令完成中断使能 1:使能 0:禁能 中断状态寄存器 IF ADDR: 0x60000004 位域 名称 类型 复位值 描述 31:2 REVERSED — — 1 TIMEOUT R, W1C 0 0 FINISH R, W1C 0 保留 执行 PROGRAM、CHIP ERASE、SECTOR ERASE 命令时超时中断状态,写 1 清零 1:中断已发生 0:中断未发生 执行 PROGRAM、CHIP ERASE、SECTOR ERASE 命令完成中断状态,写 1 清零 1:中断已发生 0:中断未发生 中断状态寄存器 IM ADDR: 0x60000008 位域 名称 类型 复位值 描述 31:2 REVERSED — — 1 TIMEOUT R/W 0 0 FINISH R/W 0 保留 执行 PROGRAM、CHIP ERASE、SECTOR ERASE 命令时超时中断屏蔽 1:屏蔽 0:不屏蔽 执行 PROGRAM、CHIP ERASE、SECTOR ERASE 命令完成中断屏蔽 1:屏蔽 0:不屏蔽 时序控制寄存器 CR ADDR: 0x6000000C 位域 名称 类型 复位值 描述 31:9 REVERSED — — 8 BYTEIF R/W 0 7:5 WRTIME R/W 0 4:0 RDTIME R/W 0 保留 外部 NOR FLASH 数据宽度 1:8bit 0:16bit 输出 WEN 的低电平宽度。0 表示 1 个时钟周 期,以此类推 OEN 下降沿后多少个时钟周期后采样读回的 数据。0 表示 1 个时钟周期,以此类推 类型 复位值 地址控制寄存器 ADDR ADDR: 0x60000010 位域 名称 描述 200 Version 1.02 SWM320 系列 31:24 REVERSED — — 保留 23:0 ADDR R/W 0 要写入/读取外部 NOR FLASH 的地址 命令控制寄存器 CMD ADDR: 0x60000014 位域 名称 类型 复位值 描述 31:19 REVERSED — — 保留 18:16 CMD R/W 0 15:0 DATA R/W 0 要执行的命令 000:READ 001:RESET 010:AUTOMATIC SELECT 011:PROGRAM 100:CHIP ERASE 101:SECTOR ERASE 110/111:保留 数据寄存器 CMD=011 时,DATA 是要写入 NOR FLASH 的数据 CMD=000 时,DATA 是从 NOR FLASH 读回 的数据 6.21 LCD 控制器(LCDC) 6.21.1 特性        支持同步 LCD 接口  接口时序可调  输出时钟可配置为空闲时关闭 支持 MPU 接口  支持 I80 接口  支持 M68 接口  接口时序可调 支持 565RGB 格式 支持最高分辨率 1024*768,实际分辨率可以配置 LCDC 输出数据宽度 16bit 支持横屏和竖屏模式 内置单通道 DMA,FIFO 深度 32*32bit 6.21.2 功能 本系列 LCDC 模块操作均相同,使用前需使能 LCDC 模块时钟。 LCDC 模块用于实现 MCU 与外部 LCD 的对接,在 MCU 的控制下,将需要显示的数据 201 Version 1.02 SWM320 系列 AHB Master IF 通过传送到外部 LCD 接口(支持 MPU 和 SYNC 两种常用的 LCD 接口)去显示。结构如下 图所示: LCDC_SIU LCDC_FIFO32* 32 DATA MPU Interface MPUIF SYNCIF SYNC Interface AHB Slave IF DATA LCDC_DMA 图 6-50 LCDC 模块结构示意图 MCU 通过 LCDC_SIU 接口完成对 LCDC 模块寄存器的控制,LCDC_DMA 用于将需要 发送给 LCD 显示的数据从芯片内部的 SRAM 或者片外存储器中读出并压入到 LCDC_FIFO, 在 MPUIF 或者 SYNCIF 的控制下,发送到外部 LCD 的数据线上。 注:MPUIF 实现的是 MPU 接口,SYNCIF 实现的是 SYNC 接口,任何时间只有一个接口可以工作。 数据接口 LCDC 模块包括 RD、WNR、RS、CSN、DATA 等控制接口。使用时将相关 GPIO 功能 设置为 LCDC 模块接口信号。如下表所示: 信号名称 信号方向 RD O MPU:I80 接口下 RD 信号 SYNC:DOTCLK 信号 WNR O MPU:I80 接口下 WR 信号, M68 接口下 E 信号 SYNC:HSYNC 信号 RS O MPU:I80、M68 接口下 RS 信号 SYNC:DEN 信号 O MPU:I80 接口下 CSN 信号, M68 接口下 CSN、RW 信号 SYNC:VSYNC 信号 CSN DATA I/O 功能 MPU:16Bit 数据信号 SYNC:对于 24BitLCD, DOUT[15:11]送给 R[7:3], R[2:0]接 0 DOUT[10:5]送给 G[7:2], G[1:0]接 0 202 Version 1.02 SWM320 系列 信号名称 信号方向 功能 DOUT[4:0]送给 B[7:3],B[2:0] 接0 表格 6-6 LCDC 模块数据接口 接口时序 MPU 接口时序如下图所示: 图 6-51 LCDC 模块 MPU 接口时序图 Tas 周期从 CSN 下降沿到 WR 下降沿,为地址建立时间,可通过寄存器 CR1 的 TAS 位 进行设置; Tpwlw 周期从 WR 下降沿到上升沿, 为 WR 操作脉冲宽度, 可通过寄存器 CR1 的 TPWLW 位进行设置; Tah 周期从 WR 上升沿到 CSN 上升沿,为地址保持时间,可通过寄存器 CR1 的 TAH 位进行设置; Ttail 周期从 CSN 上升沿到 CSN 下降沿,为与下次选通之间的时差,可通过寄存器 CR1 的 TTAIL 位进行设置。 SYNC 接口时序如下图所示: 图 6-52 LCDC 模块 SYNC 接口时序图 在 VSYNC 状态,输出 VSYNC 的变化,然后进入 HSYNC 状态,继而输出 HSYNC 变 化,标志一行数据的开始; 203 Version 1.02 SWM320 系列 进入 HBP 状态,通常 HBP 为 68,HSYNC 和 HBP 一共将持续 68 个 DOTCLK 周期; 进入 HDATA 状态,HDATA 状态将持续 320(以 320*240 分辨率,横屏为例)个 DOTCLK 上升沿,每个上升沿将送出一个像素 16bit 的 565RGB 数据; 发完 320 个像素后,进入 HFP 状态,HFP 通常的设置为 20,20 个 DOTCLK 周期后, 进入 HSYNC,新的一行开始。 操作说明   初始化 MPU  设置 START 寄存器 MPUEN 位为 1,选择 LCD 接口为 MPU 接口  根据外部 LCD 特性,通过 CR1 寄存器设置 TAS、TPWLW、TAH、TTAIL、 I80 位  根据外部 LCD 特性,通过 START 寄存器设置 POSTCMDE、POSTCMDV 位 SYNC  设置 START 寄存器 MPUEN 位为 0,选择 LCD 接口为 SYNC 接口  根据外部 LCD 特性,通过 CR0 寄存器设置 MPUEN 为 0 时各位段  根据外部 LCD 特性,通过 CR1 寄存器设置 MPUEN 为 0 时各位段 数据传输 MPU  通过 IE 寄存器使能中断  通过 SRCADDR 寄存器设置要发送的数据所在地址  通过 CR1 寄存器 OPLEN 位设置要发送的数据的长度  若此次发送的是命令,将 CR1 寄存器 ISCMD 位置 1,并通过 STADDR 位设 置第一个命令寄存器所在地址  将 START 寄存器 GO 位置 1,开始传输  等待中断产生,此次传输结束 SYNC  通过 IE 寄存器使能中断  通过 SRCADDR 寄存器设置要发送的数据所在地址  将 START 寄存器 GO 位置 1,开始传输  等待中断产生,此次传输结束 204 Version 1.02 SWM320 系列 6.21.3 寄存器映射 LCDC BASE:0x40002000 名称 偏移量 类型 复位值 描述 IE 0x00 R/W 0 中断使能寄存器 IF 0x04 R,W1C 0 中断状态寄存器 IM 0x08 R/W 0 中断屏蔽寄存器 START 0x0C R,W1,A C 0x804 启动传输控制寄存器 SRCADDR 0x10 R/W 0 数据源地址寄存器 CR0 0x14 R/W 0 参数控制寄存器 0 CR1 0x18 R/W 0 参数控制寄存器 1 PRECMDV 0x1C R/W 0xC1 MPU 接口发送数据指示 6.21.4 寄存器描述 中断使能寄存器 IE ADDR: 0x40002000 位域 名称 类型 复位值 描述 31:1 REVERSED — — 0 IE R/W 0 保留 中断使能寄存器,完成指定长度的数据传输时 产生中断 1:使能 0:禁能 中断状态寄存器 IF ADDR: 0x40002004 位域 名称 类型 复位值 31:1 REVERSED — — 0 IF R, W1C 0 描述 保留 中断状态寄存器,写 1 清零 1:中断已发生 0:中断未发生 中断屏蔽寄存器 IM ADDR: 0x40002008 位域 名称 类型 复位值 描述 31:1 REVERSED — — 保留 0 IM R/W 0 中断屏蔽寄存器 1:屏蔽 0:不屏蔽 启动传输控制寄存器 START ADDR: 0x4000200C 205 Version 1.02 SWM320 系列 位域 名称 类型 复位值 描述 31:20 REVERSED — — 19:4 POSTCMDV R/W 0x80 3 POSTCMDE R/W 0x1 2 REVERSED — — 保留 在 MPUEN 和 POSTCMDE 同时为 1 时,在命 令结束标志周期,数据总线上的值。 默认是 0x80,根据屏的要求配置 MPUEN 为 1 时,是否发命令结束标志 1:发 POSTCMD 命令 0:不发 POSTCMD 命令 保留 1 GO R/W 0 0 MPUEN R/W 0 写 1 开始传输数据,数据传输结束后自动清零 根据外部接口的情况,在初始化时设置后不能 更改 1:MPU 接口 0:SYNC 接口 数据源地址寄存器 SRCADDR ADDR: 0x40002010 位域 名称 类型 复位值 描述 31:0 SRCADDR R/W 0 数据源地址寄存器,低两位自动补零 参数控制寄存器 CR0 ADDR: 0x40002014 位域 名称 类型 复位值 描述 31:27 REVERSED — — 保留 MPUEN 为 1 时: 26:21 REVERSED — — 保留 20:0 DLEN R/W 0 此次操作的数据长度,单位为字节,0 表示 1 字节。 MPUEN 为 0 时: 22:21 HLOW R/W 0 20 DCLK R/W 0 19:10 HPIX R/W 0 9:0 VPIX R/W 0 输出 HSYNC 低电平持续多少个 DOTCLK 周 期,0 表示 1 个周期 DOTCLK 控制 1:输出的 DOTCLK 在空闲时停在 1 0:输出的 DOTCLK 一直翻转 水平方向的有效像素个数设置 当 DIRV 为 0 时,表示水平方向的有效像素个 数,0 表示 1 个,最大为 1023。 当 DIRV 为 1 时,表示垂直方向的有效像素个 数,0 表示 1 个,最大为 1023 这个值必须配置为奇数 垂直方向的有效像素个数设置 当 DIRV 为 0 时,表示垂直方向的有效像素个 数,0 表示 1 个,最大为 767 当 DIRV 为 1 时,表示水平方向的有效像素个 数,0 表示 1 个,最大为 767 206 Version 1.02 SWM320 系列 这个值必须配置为奇数 参数控制寄存器 CR1 ADDR: 0x40002018 位域 名称 类型 复位值 描述 31:28 REVERSED — — 保留 MPUEN 为 1 时: 控制从 CSn 下降沿到 WR 下降沿的时间 0 0 表示 1 个时钟周期,依次类推 控制 WR 低电平的持续时间 0 0 表示 1 个时钟周期,依次类推 控制从 WR 上升沿到 CSn 上升沿的时间 0 0 表示 1 个时钟周期,依次类推 控制从 CSn 上升沿到 CSn 下降沿的时间 0 0 表示 1 个时钟周期,依次类推 命令/数据选择控制 0 1:发送命令 0:发送数据 接口模式 0 1:接口为 I80 0:接口为 M68 在初始化设置后不需要修改 仅在 ISCMD 为 1 的时候有效,表示需要设置 0 的第一个命令寄存器的地址 MPUEN 为 0 时: 保留 — 27:26 TAS R/W 25:23 TPWLW R/W 22:21 TAH R/W 20:18 TTAIL R/W 17 ISCMD R/W 16 I80 R/W 15:0 STADDR R/W 27 REVERSED — 26 DCLKINV R/W 0 25:21 DCLKDIV R/W 0 20:14 HBP R/W 0 13:9 HFP R/W 0 8:4 VBP R/W 0 DOTCLK 取反控制 当该位为 1 时,输出 DOTCLK 反向,应用于 用 DOTCLK 下降沿采样数据的屏 控制 DOTCLK 相对于模块时钟的分频比 0 表示 2 分频,1 表示 4 分频,2 表示 6 分频, 依次类推 行同步信号的后肩时间 常见设置值为 67。0 表示 1 个 DOTCLK 周期, 竖屏模式下,最小设置为 1 DIRV 为 0 时,表示 Horizonal Back Porch 的时 间 DIRV 为 1 时,表示 Vertical Back Porch 的时间 行同步信号的前肩时间 常见设置值为 19。0 表示 1 个 DOTCLK 周期 DIRV 为 0 时,表示 Horizonal Front Porch 的时 间 DIRV 为 1 时,表示 Vertical Front Porch 的时间 帧同步信号的后肩时间。常见设置值为 17,0 表示 1 个 DOTCLK 周期,横屏模式下,至少 为1 DIRV 为 0 时,表示 Vertical Back Porch 的时间 207 Version 1.02 SWM320 系列 3:1 VFP R/W 0 0 DIRV R/W 0 DIRV 为 1 时,表示 Horizonal Back Porch 的时 间 帧同步信号的前肩时间。常见设置值为 3,0 表示 1 个 DOTCLK 周期 DIRV 为 0 时,表示 Vertical Front Porch 的时间 DIRV 为 1 时,表示 Horizonal Front Porch 的时 间 显示模式 0:横屏模式 1:竖屏模式 MPU 接口发送数据指示寄存器 PRECMDV ADDR: 0x4000201C 位域 名称 类型 复位值 描述 31:16 REVERSED — — 15:0 PRECMDV R/W 0XC1 保留 MPU 接口发送数据指示 在 MPU 接口中,发送数据前,RS 拉低的那一 拍,数据总线上的值 6.22 SDIO 接口(SDIO) 6.22.1 特性                 兼容 SD 主机控制标准规范 2.0 兼容 SDIO 卡规范 2.0 兼容 SD 存储卡规范 2.0(Draft 版本) 兼容 SD 存储卡安全规范 1.01 兼容 MMC 规范标准 3.31、4.2 和 4.3 支持 DMA 和非 DMA 操作两种模式 支持 MMC Plus 和 MMC Mobile 卡检测(插入/移除) 可变时钟频率:0~52MHz 支持 1 位、4 位、8 位的 SD 模式 支持多媒体卡中断模式 4 位 SD 模式下,传输速率高达 100Mbits/S 8 位 SD 模式下,传输速率高达 416Mbits/S 支持读写控制,暂停/恢复操作 支持 MMC4.3 卡纠错 支持 CRC 循环冗余校验 208 Version 1.02 SWM320 系列 6.22.2 功能 本系列 SDIO 模块操作均相同,部分型号可能不包含该模块。使用前需使能 SDIO 模块 时钟。 SDIO 模块控制器支持多媒体卡(MMC)、SD 存储卡、SDIO 卡等设备,可以使用软件 方法或者 DMA 方法(SDIO 模块内部 DMA,与芯片 DMA 模块无关)进行数据传输。模块 结构如下图所示: 图 6-53 SDIO 模块结构框图 AHB Interface: CPU 通过 AHB Interface 控制寄存器。使用软件方法时,通过此接口控制寄存器进行数 据传输,使用 DMA 方法时,AHB Interface 启动一次读/写。 SDIO Controller: SDIO Controller 包括 AHB Interface、SD Registers、Bus Monitor、Clock Control、CRC (CRC7/CRC16) 。AHB Interface 为 SDIO 模块与 AHB 总线的桥;SD Registers 是由 CPU 通 过 AHB 目标接口进行编程;Bus Monitor 用来检测 SD 总线上一切违法行为的发生,包括超 时;Clock Control 用于生成 SD 时钟;CRC 用来生成计算结果发往 SD/SDIO 卡。 Data FIFO: SDIO 使用 2 个 4K 的双向 FIFO 进行读和写的传输。在写操作期间(数据从 CPU 到存 储设备),其中一个 FIFO 会被填满数据,当第一个 FIFO 在传输的时候,第二个 FIFO 会被 填满,反之,当第二个 FIFO 在传输的时候,第一个 FIFO 会被填满,两个 FIFO 交替工作, 使得吞吐量达到最大。在读操作期间(数据从存储设备到 CPU),来自存储设备的数据会交 替写入到两个 FIFO,如果 SDIO 不接受来自存储设备的任何数据,将会发出读等待(如果 卡设备支持读等待机制)或者关闭时钟来停止数据的传输。 CommAnd Control: CommAnd Control 作用是在命令行上发送命令以及接受来自多媒体卡/SD 卡/SDIO 卡的 响应。 Interrupt Controller: 209 Version 1.02 SWM320 系列 中断状态寄存器的任何一位置 1,CPU 会有相应的中断产生。 数据接口 SDIO 模块包括 SDIO_CLK、SDIO_CMD、SDIO_D[7:0]等接口信号,使用时将相关 GPIO 功能设置为 SDIO 模块接口信号。如下表所示: 信号名称 信号方向 功能 SDIO_CLK O MMC 卡/SD 卡/SDIO 卡时钟。 这是主机至卡的时钟线 SDIO_CMD I/O MMC 卡/SD 卡/SDIO 卡命令。 这是双向的命令/响应信号线 SDIO_D[7:0] I/O MMC 卡/SD 卡/SDIO 卡数据。 这是双向的数据总线 表格 6-7 SDIO 模块数据接口 SDIO_CLK: SDIO_CLK 是卡的时钟,可在 0~52MHz 之间变化 SDIO_CMD: 命令在 CMD 线上串行传送。所有命令的长度固定为 48 位,下表给出了多媒体 MMC 卡、 SD 卡和 SDIO 卡上一般的命令格式: 位 宽度 数值 说明 47 1 0 开始位 46 1 1 传输位 [45:40] 6 - 命令索引 [39:8] 32 - 参数 [7:1] 7 - CRC7 0 1 1 结束位 表格 6-8 SDIO 命令格式 响应类型见寄存器描述。 传输协议 SD 传输协议根据传输块的个数基本可以分为以下三类:  单块传输 块的个数是传输之前进行指定的,指定块的个数总是为 1  多块传输 块的个数是传输之前进行指定的,指定块的个数为 1 或多个  无限块传输 块的个数是传输之前进行指定的,此传输是连续的,直到中止传输的执行。中止传 输的执行通过 SD 卡的 CMD12 设置 传输方式分为使用 DMA、不使用 DMA 传输、中止传输:  使用 DMA 传输 使用 DMA 传输步骤如下图所示: 210 Version 1.02 SWM320 系列 Start (1) Set System Address Reg (10) (2) Set Block Size Reg Wait For Transfer Complete Int And DMA Int (3) Set Block Count Reg (11) Check Interrupt Status (4) Set Argument Reg Transfer Complete Int DMA Int (12) (5) Set Transfer Mode Reg (13) (6) Set System Address Reg Set Command Reg (7) (8) Clr DMA Interrupt Status (14) Wait For Command Complete Int Clr Transfer Complete Interrupt Status Clr DMA Interrupt Status Clr Command Complete Status End (9) Get Response Data 图 6-54 SDIO 使用 DMA 传输示意图 详述:  1:通过 DMA_MEM_ADDR 寄存器设置使用 DMA 传输时所指向的系统地址  2:通过 BLK 寄存器设置块大小  3:通过 BLK 寄存器设置块数目  4:通过 ARG 寄存器设置所要发送的命令参数  5:分别通过 CMD 寄存器的 MULTBLK 位设置单块传输或者多块传输、 BLKCNTEN 位选择是否使能多块传输、DIRREAD 位设置数据传输方向、 AUTOCMD12 位选择是否使能多块传输时 CMD12 强制中止传输、DMAEN 位 设置使能 DMA  6:通过 CMD 寄存器的 CMDINDX 位设置所要发送的命令  7:等待命令发送完成中断的产生,通过读取 IF 寄存器 CMDDONE 位判断是 否产生  8:命令发送完成中断产生后,通过向 IF 寄存器 CMDDONE 位写 1 以清除中 断标志  9:读取 RESPx 寄存器获取响应内容  10:等待传输完成中断和 DMA 中断,通过读取 IF 寄存器 TRXDONE 位和 DMADONE 位判断中断是否产生  11:若产生 DMA 中断进入步骤 12,若产生传输完成中断则进入步骤 14  12:通过向 IF 寄存器 DMADONE 写 1 清除 DMA 中断标志 211 Version 1.02 SWM320 系列   13:通过 DMA_MEM_ADDR 寄存器设置下一个指向的系统地址,进入步骤 10  14:通过向 IF 寄存器 TRXDONE 位和 DMADONE 位写 1 以清除传输完成中 断标志位和 DMA 中断标志位,传输结束 不使用 DMA 传输 使用 DMA 传输步骤如下图所示: Start (5) (1) Set Block Size Reg Set Commond Reg (2) (6) Wait For Command Complete Int (7) Clr Command Complete Sts Set Block Count Reg (3) Set Argument Reg (4) (8) Set Transfer Mode Reg Get Response Data (9) Write (10-W) Read Write Or Read Wait For Buffer Write Ready Int Wait For Buffer Read Ready Int (10-R) (11-W) (11-R) Clr Buffer Rd Rdy Sts Clr Buffer Wr Rdy Sts (12-W) (12-R) Get Block Data Set Block Data (13-W) (13-R) Y More Blocks More Blocks N Y N (14) Single/Multi Block Transfer (15) Single/Multi/Infinite Block Transfer ? Wait For Transfer Complete Int Infinite Block Transfer (17) Abort Transaction (16) Clr Transfer Complete Sts End 图 6-55 SDIO 不使用 DMA 传输示意图 212 Version 1.02 SWM320 系列  详述:  1:通过 BLK 寄存器设置块大小  2:通过 BLK 寄存器设置块数目  3:通过 ARG 寄存器设置所要发送的命令参数  4:分别通过 CMD 寄存器的 MULTBLK 位设置单块传输或者多块传输、 BLKCNTEN 位选择是否使能多块传输、DIRREAD 位设置数据传输方向、 AUTOCMD12 位选择是否使能多块传输时 CMD12 强制中止传输、DMAEN 位 设置禁能 DMA  5:通过 CMD 寄存器的 CMDINDX 位设置所要发送的命令  6:等待命令发送完成中断的产生,通过读取 IF 寄存器 CMDDONE 位判断是 否产生  7:命令发送完成中断产生后,通过向 IF 寄存器 CMDDONE 位写 1 以清除中 断标志  8:读取 RESPx 寄存器获取响应内容  9:此时,如果是写卡操作,进入到步骤 10-W,如果是读卡操作,进入到步骤 10-R  10-W:等待写准备完成中断的产生,通过读取 IF 寄存器 BUFWRRDY 位判断 是否产生  11-W:写准备完成中断产生后,通过向 IF 寄存器 BUFWRRDY 位写 1 以清除 中断标志  12-W:根据步骤 1 所指定的块数据大小,将块数据写入到 DATA 寄存器 (DATA 寄存器一次可写入 4Byte,若块大小大于 4Byte,则需分多次写入)  13-W:如果是多块传输,判断块是否全部写完。未写完重复步骤 10-W 至步 骤 13-W,写完进入步骤 14  10-R:等待读准备完成中断的产生,通过读取 IF 寄存器 BUFRDRDY 位判断 是否产生  11-R:读准备完成中断产生后,通过向 IF 寄存器 BUFRDRDY 位写 1 以清除 中断标志  12-R:根据步骤 1 所指定的块数据大小,将块数据从 DATA 寄存器读出 (DATA 寄存器一次可读出 4Byte,若块大小大于 4Byte,则需分多次读出)  13-R:如果是多块传输,判断块是否全部读完。未读完重复步骤 10-R 至步骤 13-R,读完进入步骤 14  14:判断如果是单块或多块传输,进入步骤 15,如果是无限块传输,进入步 骤 17  15:等待传输完成中断的产生  16:清除传输完成中断标志位,传输结束  17:中止传输,传输结束 中止传输 中止传输的步骤如下图所示: 213 Version 1.02 SWM320 系列 Start (1) Set Stop At Block Gap Request (2) Wait For Transfer Complete Int (3) (4) (5) Set Software Reset For DAT Line(DR) And CMD Line(CR) (6) Clr Transfer Complete Interrupt Status Issue Abort Command Check DR And CR DR=1 or CR=1 DR=0 and CR=0 End 图 6-56 SDIO 同步中止传输示意图 说明:  1:通过向 CR1 寄存器 STOP_AT_BLKGAP 位写 1 以停止 SD 传输  2:等待传输完成中断  3:清除传输完成中断标志位  4:发送中止命令  5:通过向 CR2 寄存器 RSTDAT 位和 RSTCMD 位写 1 以设置软复位  6:通过读取 CR2 寄存器 RSTDAT 位和 RSTCMD 位判断数据线和命令线复位 状态。若都为 0 则进入 END 状态,否则重新执行步骤 6 接口时序  写周期时序如下图所示: 图 6-57 SDIO 写周期时序图  读周期时序如下图所示: 214 Version 1.02 SWM320 系列 图 6-58 SDIO 读周期时序图  暂停/继续时序如下图所示: 图 6-59 SDIO 暂停/继续时序图 6.22.3 寄存器映射 SDIO BASE:0x40004000 名称 偏移量 类型 复位值 描述 DMA_MEM_A DDR 0x00 R/W 0 SDMA 地址寄存器 BLK 0x04 R/W 0 块大小和块数目寄存器 ARG 0x08 R/W 0 参数寄存器 CMD 0x0C R/W 0 传输模式及命令寄存器 RESP0 0x10 R/W 0 响应寄存器 0 RESP1 0x14 R/W 0 响应寄存器 1 RESP2 0x18 R/W 0 响应寄存器 2 RESP3 0x1C R/W 0 响应寄存器 3 DATA 0x20 R/W 0 数据缓存端口寄存器 STAT 0x24 R/W 0 状态寄存器 CR1 0x28 R/W 0 主机控制寄存器 CR2 0x2C R/W 0 时钟控制寄存器 IF 0x30 R/W 0 中断状态寄存器 IE 0x34 R/W 0 中断使能寄存器 IM 0x38 R/W 0 中断屏蔽寄存器 215 Version 1.02 SWM320 系列 6.22.4 寄存器描述 SDMA 地址寄存器 DMA_MEM_ADDR ADDR: 0x40004000 位域 名称 类型 复位值 31:0 ADDR R/W 0 描述 采用 DMA 模式传输时的内存地址 块大小和块数目寄存器 BLK ADDR: 0x40004004 位域 名称 类型 复位值 31:16 COUNT R/W 0 15 REVERSED — — 14:12 DMA_SIZE R/W 0 11:0 SIZE R/W 0 描述 块数目设置,写入值即为模块数量 0001:1Block 0002:2 Blocks -----FFFF:65535Blocks 保留 DMA 传输时 buffer 大小设置 000:4KB 001:8KB 010:16KB 011:32KB 100:64KB 101:128KB 110:256KB 111:512KB 块 大 小 设 置 , 用 于 块 传 输 : CMD17 , CMD18,CMD24,CMD25,CMD53 000:没有数据传输 001:1 Byte 002:2 Byte 003:3 Byte 004:4 Byte ---1FF:511 Byte 200:512 Byte ---800:2048 Byte 参数寄存器 ARG ADDR: 0x40004008 位域 名称 类型 复位值 31:0 ARG R/W 0 描述 SD 命令参数中的 bit[39:8 ] 传输模式及命令寄存器 CMD ADDR: 0x4000400C 位域 名称 类型 复位值 描述 216 Version 1.02 SWM320 系列 31:30 REVERSED — — 29:24 CMDINDX R/W 0 23:22 CMDTYPE R/W 0 21 HASDATA R/W 0 20 IDXCHECK R/W 0 19 CRCCHECK R/W 0 18 REVERSED — — 17:16 RESPTYPE R/W 0 15:6 REVERSED — — 5 MULTBLK R/W 0 4 DIRREAD R/W 0 3 REVERSED — — 2 AUTOCMD12 R/W 0 1 BLKCNTEN R/W 0 0 DMAEN R/W 0 保留 设置命令(CMD0 -- CMD63,ACMD0 -ACMD63) 指定命令(中止命令/重新开始命令/停止命令) 模式设置 00:正常模式,普通命令 01:中止模式 10:重新开始 11:停止 数据线上是否有要发送的数据 0:没有数据 1:有数据 命令索引检查使能 0:禁能 1:使能 命令 CRC 检查使能 0:禁能 1:使能 保留 响应类型选择 00:没有响应 01:响应(136 位) 10:响应(48 位) 11:响应(48 位)带检查 Busy 保留 多块传输使能 0:单块 1:多块 数据传输方向 0:写(主机到卡) 1:读(卡到主机) 保留 用于多块传输时 CMD12 停止传输 0:禁能 1:使能 多块传输使能 0:禁能 1:使能 DMA 使能 0:禁能 1:DMA 使能 附1 Multi/Single Block Select 0 1 1 1 Block Count Enable Block Count 功能 --0 1 1 --非0 0 单块传输 无限传输 多块传输 禁止多块传输 217 Version 1.02 SWM320 系列 附2 Response Type 00 01 10 10 11 Index Check Enable 0 0 0 1 1 CRC Check Enable 0 1 0 1 1 响应类型 没有响应 R2 R3,R4 R1,R6,R5,R7 R1b,R5b 响应寄存器 RESPx(x=0,1,2,3) ADDR: 0x40004010/ 0x40004014/ 0x40004018/ 0x4000401C 位域 名称 类型 复位值 描述 31:0 RESPx ROC 0 SD 响应数据 响应类型说明 说明 SD 协议中响应位域 响应寄存器位域 R1,R1b(正常响应) 卡状态 R[39:8] REP[31:0] R1b(CMD12 响应) R2(CID,CSD Register) R3(OCR Register) 卡状态(CMD12) R[39:8] REP[127:96] CID 或 CSD 寄存器 R[127:8] R[39:8] REP[119:0] REP[31:0] R4(OCR Register) OCR 寄存器(I/O 设备) R[39:8] REP[31:0] R5,R5b SDIO 响应 RCA R[39:8] REP[31:0] R[39:8] REP[31:0] 响应类型 R6(RCA) OCR 寄存器(存储卡) 数据缓存端口寄存器 DATA ADDR: 0x40004020 位域 名称 类型 复位值 描述 31:0 DATA R/W 0 数据缓存端口 描述 状态寄存器 STAT ADDR: 0x40004024 位域 名称 类型 复位值 31:20 REVERSED — — 19 WPST RO 0 18 HASCARDST RO 0 17 REVERSED — — 16 CARDINST RO 0 15:12 REVERSED — — 保留 写保护状态 1:写使能 0:写保护 卡检测状态 1:有卡 0:无卡 保留 卡插入状态 1:卡插入 0:无卡、复位或抖动 保留 218 Version 1.02 SWM320 系列 11 RDEN RO 0 10 WREN RO 0 9 RDST RO 0 8 WRST RO 0 7:3 REVERSED — — 2 DATLINEST RO 0 1 REVERSED — — 0 CMDLINEST RO 0 非 DMA 模式下读使能 1:使能 0:禁能 非 DMA 模式下写使能 1:使能 0:禁能 非 DMA 模式下读状态 1:正在读数据 0:没有读 非 DMA 模式下写状态 1:正在写数据 0:没有写 保留 数据线状态 1:数据线正忙 0:数据线空闲 保留 命令线状态 1:CMD 线正忙 0:CMD 线空闲 主机控制寄存器 CR1 ADDR: 0x40004028 位域 名称 类型 复位值 描述 31:17 REVERSED — — 保留 16 STOP_AT_BLK GAP R/W 0 15:12 REVERSED — — 11:9 VOLT R/W 0 8 PWRON R/W 0 7 CDSRC R/W 0 6 CDBIT R/W 0 5 _8BIT R/W 0 4:2 REVERSED — — 停止在块间隙 1:停止 0:传输 保留 SD 电压 111:3.3v 110:3.0v 101:1.8v 其它:保留 上电控制 1:上电 0:断电 卡检测位 1:选择卡检测 0:选择 SDCD# 卡标志位 1:卡插入 0:没有卡 数据模式选择 1:选择 8bit 数据模式 0:没有选择 保留 219 Version 1.02 SWM320 系列 1 _4BIT R/W 0 0 REVERSED — — 数据传输宽度 1:4bit 模式 0:1bit 模式 保留 时钟控制寄存器 CR2 ADDR: 0x4000402C 位域 名称 类型 复位值 31:27 REVERSED — — 26 RSTDAT R/W, AC 0 25 RSTCMD R/W, AC 0 24 RSTALL R/W, AC 0 23:20 REVERSED — — 19:16 TIMEOUT R/W 0 15:8 SDCLKDIV R/W 0 7:3 REVERSED — — 2 SDCLKEN R/W 0 1 CLKRDY R/W 0 0 CLKEN R/W 0 描述 保留 数据线复位控制 1:复位 0:工作 命令线复位控制 1:复位 0:工作 SDIO 复位控制 1:复位 0:工作 保留 超时控制 1111:保留 1110:TMCLK * 2^27 ----0001:TMCLK * 2^14 SDIO 时钟选择,在基准时钟基础上的分频 10000000:256 分频 01000000:128 分频 00100000:64 分频 00010000:32 分频 00001000:16 分频 00000100:8 分频 00000010:4 分频 00000001:2 分频 00000000:基准时钟(10—63MHz) 保留 SD 时钟使能 1:使能 0:禁能 时钟稳定状态 1:SD 时钟稳定 0:SD 时钟不稳定 时钟使能 1:时钟使能 0:时钟停止 中断状态寄存器 IF ADDR: 0x40004030 220 Version 1.02 SWM320 系列 位域 名称 类型 复位值 描述 31:29 REVERSED — — 保留 28 RESPERR R/W 0 27:26 REVERSED — — 25 DMAERR R/W 0 24 CMD12ERR R/W 0 23 CURLIMERR R/W 0 22 DATENDERR R/W 0 21 DATCRCERR R/W 0 20 DATTIMEOUT R/W 0 19 CMDIDXERR R/W 0 18 CMDENDERR R/W 0 17 CMDCRCERR R/W 0 16 CMDTIMEOUT R/W 0 15 ERROR R/W 0 14:9 REVERSED — — 8 CARD R/W 0 7 CARDRMOV R/W 0 响应错误状态 1:有错误 0:没有错误 保留 DMA 错误状态 1:有错误 0:没有错误 CMD12 错误状态 1:有错误 0:没有错误 当前电压支持错误 1:有错误 0:没有错误 数据结束错误 1:有错误 0:没有错误 数据 CRC 错误 1:有错误 0:没有错误 数据超时错误 1:有错误 0:没有错误 命令索引错误 1:有错误 0:没有错误 命令结束错误 1:有错误 0:没有错误 命令 CRC 错误 1:有错误 0:没有错误 命令超时错误 1:有错误 0:没有错误 任何错误状态 1:有错误 0:没有错误 保留 卡中断状态 1:产生卡中断 0:没有卡中断 卡移除状态 1:卡移除 0:卡状态稳定或是消除抖动 221 Version 1.02 SWM320 系列 6 CARDINSR R/W 0 5 BUFRDRDY R/W 0 4 BUFWRRDY R/W 0 3 DMADONE R/W 0 2 BLKGAP R/W 0 1 TRXDONE R/W 0 0 CMDDONE R/W 0 卡插入状态 1:卡插入 0:卡状态稳定或是消除抖动 Buffer 读准备状态 1:Buffer 读准备好 0:Buffer 读没准备好 Buffer 写准备状态 1:Buffer 写准备好 0:Buffer 写没准备好 DMA 中断状态 1:产生 DMA 中断 0:没有产生 DMA 中断 块间隙事件 1:传输停止 0:没有产生块事件 数据传输完成状态 1:数据传输完成 0:数据没有传输完成 命令发送完成状态 1:命令发送完成 0:命令没有发送完成 中断使能寄存器 IE ADDR: 0x40004034 位域 名称 类型 复位值 31:6 REVERSED — — 28 RESPERR R/W 0 27:26 REVERSED — — 25 DMAERR R/W 0 24 CMD12ERR R/W 0 23 CURLIMERR R/W 0 22 DATENDERR R/W 0 21 DATCRCERR R/W 0 20 DATTIMEOUT R/W 0 描述 保留 响应错误中断使能 1:使能 0:禁能 保留 DMA 错误中断使能 1:使能 0:禁能 CMD12 错误中断使能 1:使能 0:禁能 当前电压支持错误中断使能 1:使能 0:禁能 数据结束中断使能 1:使能 0:禁能 数据 CRC 错误使能 1:使能 0:禁能 数据超时中断使能 1:使能 0:禁能 222 Version 1.02 SWM320 系列 19 CMDIDXERR R/W 0 18 CMDENDERR R/W 0 17 CMDCRCERR R/W 0 16 CMDTIMEOUT R/W 0 15 ERROR R/W 0 14:9 REVERSED — — 8 CARD R/W 0 7 CARDRMOV R/W 0 6 CARDINSR R/W 0 5 BUFRDRDY R/W 0 4 BUFWRRDY R/W 0 3 DMADONE R/W 0 2 BLKGAP R/W 0 1 TRXDONE R/W 0 0 CMDDONE R/W 0 命令索引错误中断使能 1:使能 0:禁能 命令结束错误中断使能 1:使能 0:禁能 命令 CRC 错误中断使能 1:使能 0:禁能 命令超时中断使能 1:使能 0:禁能 SDIO 发生错误产生中断使能 1:使能 0:禁能 保留 卡中断使能 1:使能 0:禁能 卡移除中断使能 1:使能 0:禁能 卡插入中断使能 1:使能 0:禁能 Buffer 读准备中断使能 1:使能 0:禁能 Buffer 写准备中断使能 1:使能 0:禁能 DMA 中断使能 1:使能 0:禁能 块间隙中断使能 1:使能 0:禁能 数据传输完成中断使能 1:使能 0:禁能 命令发送完成中断使能 1:使能 0:禁能 中断屏蔽寄存器 IM ADDR: 0x40004038 位域 名称 类型 复位值 31:29 REVERSED — — 描述 保留 223 Version 1.02 SWM320 系列 28 RESPERR R/W 0 27:26 REVERSED — — 25 DMAERR R/W 0 24 CMD12ERR R/W 0 23 CURLIMERR R/W 0 22 DATENDERR R/W 0 21 DATCRCERR R/W 0 20 DATTIMEOUT R/W 0 19 CMDIDXERR R/W 0 18 CMDENDERR R/W 0 17 CMDCRCERR R/W 0 16 CMDTIMEOUT R/W 0 15 ERROR R/W 0 14:9 REVERSED — — 8 CARD R/W 0 7 CARDRMOV R/W 0 6 CARDINSR R/W 0 响应错误中断屏蔽 1:屏蔽 0:不屏蔽 保留 DMA 错误中断屏蔽 1:屏蔽 0:不屏蔽 CMD12 错误中断屏蔽 1:屏蔽 0:不屏蔽 当前电压支持错误中断屏蔽 1:屏蔽 0:不屏蔽 数据结束中断屏蔽 1:屏蔽 0:不屏蔽 数据 CRC 错误屏蔽 1:屏蔽 0:不屏蔽 数据超时中断屏蔽 1:屏蔽 0:不屏蔽 命令索引错误中断屏蔽 1:屏蔽 0:不屏蔽 命令结束错误中断屏蔽 1:屏蔽 0:不屏蔽 命令 CRC 错误中断屏蔽 1:屏蔽 0:不屏蔽 命令超时中断屏蔽 1:屏蔽 0:不屏蔽 SDIO 发生错误产生中断屏蔽 1:屏蔽 0:不屏蔽 保留 卡中断屏蔽 1:屏蔽 0:不屏蔽 卡移除中断屏蔽 1:屏蔽 0:不屏蔽 卡插入中断屏蔽 1:屏蔽 0:不屏蔽 224 Version 1.02 SWM320 系列 5 BUFRDRDY R/W 0 4 BUFWRRDY R/W 0 3 DMADONE R/W 0 2 BLKGAP R/W 0 1 TRXDONE R/W 0 0 CMDDONE R/W 0 Buffer 读准备中断屏蔽 1:屏蔽 0:不屏蔽 Buffer 写准备中断屏蔽 1:屏蔽 0:不屏蔽 DMA 中断屏蔽 1:屏蔽 0:不屏蔽 块间隙中断屏蔽 1:屏蔽 0:不屏蔽 数据传输完成中断屏蔽 1:屏蔽 0:不屏蔽 命令发送完成中断屏蔽 1:屏蔽 0:不屏蔽 6.23 SDRAM 控制器(SDRAMC) 6.23.1 特性     仅支持 32 位 WORD 操作 支持 16bit 位宽的 SDRAM 支持兼容 PC133 标准的 SDRAM 颗粒 支持 2MB 到 64MB 的外部 SDRAM 颗粒 6.23.2 功能 本系列所有型号 SDRAMC 模块操作均相同,主要功能在于完成 AHB 总线和外部 SDRAM 之间的数据搬移,使用前需使能 SDRAMC 模块时钟。 SDRAMC 的主要功能在于完成 AHB 总线和外部 SDRAM 之间的数据搬移,模块支持 标准 AHB 总线操作,仅支持 WORD 级别读写。结构如下图所示: 错误!不能通过编辑域代码创建对象。 图 6-60 SDRAMC 模块结构框图 MCU 通过 SIU 接口配置相关的控制寄存器,FSM 将控制命令转化为 SDRAMC 的接口 时序。 数据接口 SDRAMC 模块提供了标准 SDRAM 接口信号,包括 CLK 、CKE、CS、BA0、BA1、 A0~A12、RAS、CAS、WE、LDQ、UDQ、DQ0~DQ15 等,其中 DQ0~DQ15 与 NORFLC 225 Version 1.02 SWM320 系列 模块共用。使用时将相关 GPIO 功能设置为 SDRAMC 模块接口信号。如下表所示: 信号名称 信号方向 功能 CLK I 系统时钟输入 CKE I 时钟使能 CS I 片选 BA0~BA1 I Bank 选择 A0~A12 I 地址线 RAS I 行有效 CAS I 列有效 WE I 写使能 LDQ/UDQ I 高/低字节有效 DQ0~DQ15 I/O 数据输入输出 表格 6-9 SDRAMC 模块数据接口 接口时序 图 6-61 SDRAMC 写访问周期示意图 SDRAMC 写访问周期如图 U-2 所示,SDRAM 控制器总是在检测下一个访问,在任何 写操作之前,必须先使能 SDRAMC。 226 Version 1.02 SWM320 系列 图 6-62 SDRAMC 读访问周期示意图 SDRAMC 读访问周期如上图所示,读访问期间,写使能信号恒为高。 操作说明 SDRAM 在上电以后必须先对其进行初始化操作,而后才能对其进行其他操作。  通过系统 CLKEN 寄存器使能 SDRAMC 模块时钟  设置 SDRAMC 模块 CR0 寄存器 CASDELAY 位  根据外部 SDRAM 特性及自身需求,设置 SDRAMC 模块 CR1 寄存器各位参数  通过寄存器 LATCH 选择数据的输入输出沿  通过 REFRESH 寄存器设置刷新计数周期,并使能 SDRAMC  读取 REFDONE 寄存器,等待初始化完成 6.23.3 寄存器映射 SDRAMC BASE:0x70000000 名称 偏移量 类型 复位值 描述 CR0 0x00 R/W 0x32 SDRAM 模式寄存器 CR1 0x04 R/W 0x14D_DA 1B SDRAM 配置寄存器 REFRESH 0x08 R/W 0x10FA SDRAM 刷新寄存器 NOPNUM 0x0C R/W 0x682A SDRAM 初始化寄存器 LATCH 0x10 R/W 0x4 SDRAM 输入输出沿选择寄存器 REFDONE 0x14 R/W 0x0 SDRAM 上电初始化完成 227 Version 1.02 SWM320 系列 6.23.4 寄存器描述 SDRAM 模式寄存器 CR0 ADDR: 0x70000000 位域 名称 类型 复位值 描述 31:7 REVERSED — — 保留 CAS 延迟时间 0/1:保留 2:2 个时钟周期 3:3 个时钟周期 6:4 CASDELAY R/W 0x3 3:0 REVERSED — — 保留 SDRAM 配置寄存器 CR1 ADDR: 0x70000004 位域 名称 类型 复位值 描述 31:24 REVERSED — — 23 HIGHSPEED R/W 0 22:21 CELLSIZE R/W 0 20 CELL32BIT R/W 0 19 BANK R/W 0x1 18 _32BIT R/W 0 17:15 TMRD R/W 0x3 14:13 TRRD R/W 0x2 12:10 TRAS R/W 0x6 保留 高速模式设置。当系统时钟大于 100MHz 时, 这一位必须配置为 1,否则为 0 SDRAM 颗粒的容量 0:64Mb 1:128 Mb 2:256Mb 3:16Mb SDRAM 颗粒的位宽 0:16 位 1:32 位 SDRAM 每个颗粒有几个 Bank 0:2 Banks 1:4 Banks SDRAMC 的接口数据位宽 0:16bit 1:保留 Mode register set to activate (clks) 0/1/2:保留 3:3 Activate to activate on different banks(clks) 0/1:保留 2:2 3:3 RASn active time. Ie. Delay between activate and precharge (clks) 0/1:保留 2:2 3:3 228 Version 1.02 SWM320 系列 9:6 TRC R/W 0x8 5:3 TRCD R/W 0x3 2:0 TRP R/W 0x3 RASn cycle time (clks) 0/1:保留 2=2 3=3 RASn to CASn delay. Ie. Activate to CommAnd delay (clks) 0/1/2:保留 3=3 Precharge to Activate (clks) 0/1/2:保留 3:3 SDRAM 刷新寄存器 REFRESH ADDR: 0x70000008 位域 名称 类型 复位值 描述 31:13 REVERSED — — 保留 SDRAMC 使能位 1:使能 0:控制外部 SDRAM 颗粒进入低功耗模式, 并自动刷新 12 EN R/W 0x1 11:0 RATE R/W 0xFA 刷新计数器加载值 SDRAM 初始化寄存器 NOPNUM ADDR: 0x7000000C 位域 名称 类型 复位值 描述 31:16 REVERSED — — 保留 15:0 NOP R/W 0x682A 初始化完成后,在正常操作之前,发送多少个 NOP 命令 SDRAM 输入输出沿选择寄存器 LATCH ADDR: 0x70000010 位域 名称 类型 复位值 描述 31:3 REVERSED — — 保留 2 WAITST R/W 0 1 OUTEDGE R/W 0 0 INEDGE R/W 0 类型 复位值 等待状态 0:没有等待状态 1:有等待状态 边沿锁存送给 SDRAM 的数据 0:下降沿 1:上升沿 边沿锁存从 SDRAM 中读回的数据 0:上升沿 1:下降沿 控制寄存器 CR ADDR: 0x70000014 位域 名称 描述 229 Version 1.02 SWM320 系列 31:1 REVERSED — — 保留 0 REFDONE R/W 0 为 1 表示上电初始化完成 230 Version 1.02 SWM320 系列 6.24 ISP 及 FLASH 操作 6.24.1 特性  支持加密操作;  支持 ISP 程序定制;  支持 FLASH 编程。 6.24.2 功能 ISP 模式 ISP(在系统编程)操作说明 当芯片上电后检测到 B0 引脚持续 5ms 以上的高电平后,将会进入 ISP(在应用编程) 模式。通用 ISP 程序为擦除片上用户程序。 默认 ISP 功能使用 UART 接口,引脚为 A2(RX)/A3(TX)。 加密方式 封锁 SW 端口:通过在用户程序 0x1C 偏移地址写入 0xABCD1234,则上电后,SW 端 口切换为通用 IO,无法通过仿真器访问芯片。 FLASH 操作 FLASH 位宽为 128bit,并具备 CACHE 功能,CACHE 内部具备 128*64 bit 空间,用于程序 预取。每次写操作完成后,建议复位 CACHE,保证读取为最新数据。 寄存器操作  ERASE 操作: a) 配置 ERASE 寄存器 REQ 为 1,同时写入擦除地址 b) 延时 5 个周期 c) 查询 STAT 状态寄存器 ERASE 位,直至从 1 变为 0,擦除完成 d) SECTOR 大小为 4KB  PROGRAM 操作: a) 配置 CTRL 寄存器中 WEN 位为 1 b) 配置 CTRL 中 ADDR 位,写入目标地址,保证 4 个 WORD(128 位)对齐 c) 向 DAT 寄存器写入目标数据,每次写入 4 个字 d) 延时 5 个时钟周期 e) 查询 STAT 寄存器 PROG 位,直至从 1 变为 0,写入完成 f) 重复 b~e 操作,直至烧写完成 注:以上操作流程均需要在 SRAM 中执行 6.24.3 寄存器映射 FLASHCTL BASE:0x4001F000 231 Version 1.02 SWM320 系列 名称 偏移量 类型 复位值 描述 DAT 0x00 R/W 0 写数据寄存器 ADDR 0x04 R/W 0 写地址寄存器 ERASE 0x08 R/W 0 擦除寄存器 CTL 0x0C R/W 0 控制寄存器 REVERSED 0x10~0x1C — — 保留 STAT 0x20 R/W 0 状态寄存器 6.24.4 寄存器地址 写数据寄存器 DAT ADDR: 0x4001F000 位域 名称 类型 复位值 描述 31:10 DATA R/W 0 写数据寄存器,写入目标编程数据,最小单位 为 4 个字(128bit) 描述 地址寄存器 ADDR ADDR: 0x4001F004 位域 名称 类型 复位值 31:0 ADDR R/W 0 写目标起始地址,需 4 字(16 字节)对齐 擦除寄存器 ERASE ADDR: 0x4001F008 位域 名称 类型 复位值 描述 31 EN R/W 0 擦除使能,执行擦除操作前需置 1 1:使能 0:禁能 30:19 REVERSED — — 保留 18:0 PAGE R/W 0 页擦除目标起始地址,需 word 对齐,页擦除 为 4K 大小 当写入全 1 时,进行整片擦除 描述 控置寄存器 CTRL ADDR: 0x4001F00C 位域 名称 类型 复位值 31:4 REVERSED — — 保留 0 CACHE 清除,写 1 清除目前 CACHE 内容 写 1 后需软件重新置 0 此位相关操作不能在 FLASH 中执行 0 写使能,执行编程操作前需置 1 1:使能 0:禁能 3 2 CLEAR WEN R/W R/W 232 Version 1.02 SWM320 系列 位域 名称 类型 复位值 1:0 REVERSED — — 描述 保留 状态寄存器 STAT ADDR: 0x4001F020 位域 名称 类型 复位值 描述 31 FREE RO 1 当 FLASH 控制器处状态指示 1:忙状态 0:空闲状态 30:3 REVERSED — — 保留 2 READ RO 0 FLASH 读状态标志 1:读操作进行中 0:读操作未进行 1 PROG RO 0 FLASH 编程状态标志 1:编程操作进行中 0:编程操作未进行 0 ERASE RO 0 FLASH 擦除状态标志 1:擦除操作进行中 0:擦除操作未进行 233 Version 1.02 SWM320 系列 7 典型应用电路 AVDD AVCC CS CLK MISO MOSI 0.1UF CAP 1UF INTERFACE 2~32 MHZ 20P I2C_SCL CLK VDD I2C_SDA DIO VSS CAN_TX CAN_H CAN_RX CAN_L XO RESETn 0.1UF RXD R-IN TXD T-OUT I2C_DEVICE CAN PC COM PORT DVCC 10K RESET DVCC ODB PORT VDD ICE_CLK(B5) ICE_DAT(B6) RESETn VSS ISP_URX(B12) ISP_UTX(B11) ISP_MODE(D0) XI 20P CRYSTAL 10K AVSS ISP SPI_DEVICE DVCC 1UF SWD VDD VSS 10K POWER DVCC SPI_SS SPI_CLK SPI_MISO SPI_MOSI UART 图 7-1 典型应用电路图 8 电气特性 8.1 绝对最大额定值 表格 8-1 绝对最大额定值 参数 最大值 典型值 最小值 符号 单位 直流电源电压 3.6 3.3 2.0 Vdd-Vss V 输入电压 3.6 3.3 0.8 Vin V 晶振频率 40 20 — 1/Tclk MHz 工作温度 105 — -40 Tw ℃ 贮存温度 150 — -50 Ts ℃ 单一管脚最大灌电流 10.0 — — — mA 单一管脚最大源电流 10.0 — — — mA 所有管脚最大灌电流 80.0 — — — mA 所有管脚最大拉电流 80.0 — — — mA 234 Version 1.02 SWM320 系列 8.2 DC 电气特性 表格 8-2 DC 电气特性( Vdd-Vss = 3.3V, Tw =25℃) 参数 最大值 典型值 最小值 单位 符号 测试条件 工作电压 3.6 3.3 2.0 V Vdd — 电源地 0.8 — — V Vss — 模拟工作电压 Vdd — 0 Tw AVdd — 模拟参考电压 AVdd — 0 V Vref — mA Vdd=3.3V Enable all IP Internal OSC While(1); mA Vdd=3.3V Disable all IP Internal OSC While(1); mA Vdd=3.3V Enable all IP Internal OSC While(1); mA Vdd=3.3V Disable all IP Internal OSC While(1); — 19.5 — Idd2 普通工作模式下电流 (120MHz) — — 12.1 10.0 — — Idd3 Idd4 普通工作模式下电流 (20MHz) — 6.2 — Idd5 普通工作模式下电流 (32KHz) — 390 — Idd7 uA Vdd=3.3V Disable all IP Internal OSC While(1); SLEEP MODE WITH TIMER — 500 — Idd10 uA Vdd = 3.3V 0
SWM320VET7-50 价格&库存

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

免费人工找货