广州周立功单片机科技有限公司 ZLG217P64A 基于 ARM
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
广州周立功单片机科技有限公司
ZLG217P64A 基于ARM® Cortex®-M3核的32
位微控制器
修订历史
ZLG217P64A系列产品命名规则
目录
1.文中的缩写 (26)
1.1寄存器描述表中使用的缩写列表 (26)
1.2术语表 (26)
1.3可用的外设 (26)
2.存储器和总线构架 (27)
2.1系统构架 (27)
2.2存储器组织 (28)
2.2.1介绍 (28)
2.2.2存储器映像和寄存器编址 (28)
2.3内置的SRAM (30)
2.4闪存存储器概述 (30)
2.5启动配置(Boot configuration) (30)
3.嵌入式闪存 (32)
3.1闪存主要特性 (32)
3.2闪存功能描述 (32)
3.2.1闪存结构 (32)
3.2.2Flash写和擦除操作 (33)
3.3存储保护 (37)
3.3.1写保护 (37)
3.3.2选项字节的写保护 (37)
3.4Flash中断 (37)
3.5选项字节说明 (37)
3.6Flash寄存器描述 (39)
3.6.1闪存访问控制寄存器(FLASH_ACR) (39)
3.6.2FPEC键寄存器(FLASH_KEYR) (39)
3.6.3闪存OPTKEY寄存器(FLASH_OPTKEYR) (40)
3.6.4闪存状态寄存器(FLASH_SR) (40)
3.6.5闪存控制寄存器(FLASH_CR) (41)
3.6.6闪存地址寄存器(FLASH_AR) (42)
3.6.7选项字节寄存器(FLASH_OBR) (42)
3.6.8写保护寄存器(FLASH_WRPR) (42)
4.CRC计算单元 (44)
4.1CRC简介 (44)
4.2CRC主要特征特征 (44)
4.3CRC功能介绍 (44)
4.4CRC寄存器 (45)
4.4.1CRC数据寄存器(CRC_DR) (45)
4.4.2CRC独立数据寄存器(CRC_IDR) (45)
4.4.3CRC控制寄存(CRC_CTRL) (45)
5.电源控制(PWR) (46)
5.1电源 (46)
5.1.1独立的A/D转换器供电和参考电压 (46)
5.1.2电池备份区域 (46)
5.1.3电压调节器 (47)
5.2电源管理器 (47)
5.2.1上电复位(POR)和掉电复位(PDR) (47)
5.2.2可编程电压监测器(PVD) (48)
5.3低功耗模式 (48)
5.3.1降低系统时钟 (49)
5.3.2外部时钟的控制 (49)
5.3.3睡眠模式 (49)
5.3.4停机模式 (50)
5.3.5待机模式 (50)
5.3.6低功耗模式下的自动唤醒(AWU) (51)
5.4电源控制寄存器 (52)
5.4.1电源控制寄存器(PWR_CR) (52)
5.4.2电源控制/状态寄存器(PWR_CSR) (52)
6.备份寄存器(BKP) (54)
6.1BKP简介 (54)
6.2BKP特征 (54)
6.3BKP功能描述 (54)
6.3.1侵入检测 (54)
6.3.2RTC校准 (54)
6.4BKP寄存器描述 (55)
6.4.1备份数据寄存器x(BKP_DRx)(x = 1 ... 10).. (55)
6.4.2RTC时钟校准寄存器(BKP_RTCCR) (55)
6.4.3备份控制寄存器(BKP_CR) (56)
6.4.4备份控制/状态寄存器(BKP_CSR) (56)
7.复位和时钟控制(RCC) (58)
7.1复位 (58)
7.1.1系统复位 (58)
7.1.2电源复位 (58)
7.1.3备份域复位 (59)
7.2时钟 (59)
7.2.1HSE时钟 (60)
7.2.2HSI时钟 (61)
7.2.3PLL (61)
7.2.4LSE时钟 (61)
7.2.5LSI时钟 (61)
7.2.6系统时钟(SYSCLK)选择 (61)
7.2.7时钟安全系统(CSS) (61)
7.2.8RTC时钟 (62)
7.2.9看门狗时钟 (62)
7.2.10时钟输出 (62)
7.3RCC寄存器堆与存储器映射描述 (63)
7.3.1时钟控制寄存器(RCC_CR) (63)
7.3.2时钟配置寄存器(RCC_CFGR) (64)
7.3.3时钟中断寄存器(RCC_CIR) (66)
7.3.4APB2外设复位寄存器(RCC_APB2RSTR) (68)
7.3.5APB1外设复位寄存器(RCC_APB1RSTR) (69)
7.3.6AHB外设时钟使能寄存器(RCC_AHBENR) (70)
7.3.7APB2外设时钟使能寄存器(RCC_APB2ENR) (71)
7.3.8APB1外设时钟使能寄存器(RCC_APB1ENR) (72)
7.3.9备份域控制寄存器(RCC_BDCR) (74)
7.3.10控制状态寄存器(RCC_CSR) (75)
7.3.11系统配置寄存器(RCC_SYSCFG) (76)
8.通用和复用功能I/O(GPIO和AFIO) (77)
8.1GPIO功能描述 (77)
8.1.1通用I/O(GPIO) (78)
8.1.2单独的位设置或位清除 (78)
8.1.3外部中断/唤醒线 (78)
8.1.4复用功能 (79)
8.1.5软件重新映射I/O复用功能 (79)
8.1.6GPIO锁定机制 (79)
8.1.7输入配置 (79)
8.1.8输出配置 (80)
8.1.9复用功能配置 (80)
8.1.10模拟输入配置 (81)
8.1.11外设的GPIO配置 (81)
8.2GPIO寄存器描述 (84)
8.2.1端口配置低寄存器(GPIOx_CRL)(x=A..D) (84)
8.2.2端口配置高寄存器(GPIOx_CRH)(x=A..D) (84)
8.2.3端口输入数据寄存器(GPIOx_IDR)(x=A..D) (85)
8.2.4端口输出数据寄存器(GPIOx_ODR)(x=A..D) (85)
8.2.5端口设置/清除寄存器(GPIOx_BSRR)(x=A..D) (86)
8.2.6端口位清除寄存器(GPIOx_BRR)(x=A..D) (86)
8.2.7端口配置锁定寄存器(GPIOx_LCKR)(x=A..D) (87)
8.3复用功能I/O和调试配置(AFIO) (87)
8.3.1把OSC32_IN/OSC32_OUT作为GPIO端口PC14/PC15 (87)
8.3.2把OSC_IN/OSC_OUT引脚作为GPIOPD0/PD1 (87)
8.3.3CAN复用功能重映射 (87)
8.3.4JTAG/SWD复用功能重映射 (88)
8.3.5定时器复用功能重映射 (88)
8.3.6UART复用功能重映射 (89)
8.3.7I2C1复用功能重映射 (89)
8.3.8SPI复用功能重映射 (89)
8.4AFIO寄存器描述 (90)
8.4.1复用重映射和调试I/O配置寄存器(AFIO_MAPR) (90)
8.4.2外部中断配置寄存器1(AFIO_EXTICR1) (91)
8.4.3外部中断配置寄存器2(AFIO_EXTICR2) (91)
8.4.4外部中断配置寄存器3(AFIO_EXTICR3) (92)
8.4.5外部中断配置寄存器4(AFIO_EXTICR4) (93)
9.中断和事件 (94)
9.1嵌套向量中断控制器 (94)
9.1.1系统嘀嗒(SysTick)校准值寄存器 (94)
9.1.2中断和异常向量 (94)
9.2外部中断/事件控制器(EXTI) (96)
9.2.1主要特征 (96)
9.2.2框图 (97)
9.2.3唤醒事件管理 (97)
9.2.4功能说明 (97)
9.2.5外部中断/事件线路映像 (98)
9.3EXTI寄存器描述 (100)
9.3.1中断屏蔽寄存器(EXTI_IMR) (100)
9.3.2事件屏蔽寄存器(EXTI_EMR) (100)
9.3.3上升沿触发选择寄存器(EXTI_RTSR) (101)
9.3.4下降沿触发选择寄存(EXTI_FTSR) (101)
9.3.5软件中断事件寄存器(EXTI_SWIER) (102)
9.3.6软件中断事件寄存(EXTI_PR) (102)
10.DMA控制器(DMA) (103)
10.1DMA简介 (103)
10.2DMA主要特征 (103)
10.3功能描述 (104)
10.3.1DMA处理 (104)
10.3.2仲裁器 (104)
10.3.3DMA通道 (104)
10.3.4可编程的数据传输宽度,对齐方式和数据大小端 (105)
10.3.5错误管理 (106)
10.3.6中断 (106)
10.3.7DMA请求映像 (107)
10.4DMA寄存器描述 (109)
10.4.1DMA中断状态寄存器(DMA_ISR) (109)
10.4.2DMA中断标志清除寄存器(DMA_IFCR) (109)
10.4.3DMA通道x配置寄存器(DMA_CCRx)(x = 1...7).. (110)
10.4.4DMA通道x传输数量寄存器(DMA_CNDTRx)(x = 1...7).. (111)
10.4.5DMA通道x外设地址寄存器(DMA_CPARx)(x = 1...7) . (112)
10.4.6DMA通道x存储器地址寄存器(DMA_CMARx)(x = 1...7) (112)
11.模拟/数字转换(ADC) (113)
11.1ADC介绍 (113)
11.2ADC主要特征 (113)
11.3ADC功能描述 (114)
11.3.1ADC开关控制 (114)
11.3.2通道选择 (114)
11.4ADC工作模式 (115)
11.4.1单次转换模式 (115)
11.4.2单周期扫描模式 (115)
11.4.3连续扫描模式 (116)
11.4.4DMA请求 (116)
11.4.5采样频率设置 (117)
11.5数据对齐 (117)
11.6外部触发转换 (117)
11.7温度传感器 (117)
11.8窗口比较器模式下AD转换结果监控 (117)
11.9ADC寄存器描述 (118)
11.9.1A/D数据寄存器(ADC_ADDATA) (118)
11.9.2A/D 配置寄存器(ADC_ADCFG) (118)
11.9.3A/D控制寄存器(ADC_ADCR) (120)
11.9.4A/D通道选择寄存器(ADC_ADCHS) (122)
11.9.5A/D窗口比较寄存器(ADC_ADCMPR) (122)
11.9.6A/D状态寄存器(ADC_ADSTA) (123)
11.9.7A/D数据寄存器(ADC_ADDR0~8) (124)
12.数字/模拟转换(DAC) (124)
12.1DAC简介 (124)
12.2DAC主要特征 (125)
12.3DAC功能描述 (126)
12.3.1使能DAC通道 (126)
12.3.2DAC数据格式 (126)
12.3.3DAC转换 (127)
12.3.4DAC输出电压 (127)
12.3.5选择DAC触发 (127)
12.3.6DMA请求 (128)
12.3.7噪声生成 (128)
12.3.8三角波生成 (129)
12.4双DAC通道转换 (130)
12.4.1无波形生成的独立触发 (130)
12.4.2带相同LFSR生成的独立触发 (130)
12.4.3带不同LFSR生成的独立触发 (130)
12.4.4带相同三角波生成的独立触发 (131)
12.4.5带不同三角波生成的独立触发 (131)
12.4.6同时软件启动 (131)
12.4.7不带波形生成的同时触发 (131)
12.4.8带相同LFSR生成的同时触发 (131)
12.4.9带不同LFSR生成的同时触发 (132)
12.4.10带相同三角波生成的同时触发 (132)
12.4.11带不同三角波生成的同时触发 (132)
12.5DAC寄存器 (133)
12.5.1DAC控制寄存器(DAC_CR) (133)
12.5.2DAC软件触发寄存器(DAC_SWTRIGR) (135)
12.5.3DAC通道1的12位右对齐数据保持寄存器(DAC_DHR12R1) (136)
12.5.4DAC通道1的12位左对齐数据保持寄存器(DAC_DHR12L1) (136)
12.5.5DAC通道1的8位右对齐数据保持寄存器(DAC_DHR8R1) (136)
12.5.6DAC通道2的12位右对齐数据保持寄存器(DAC_DHR12R2) (137)
12.5.7DAC通道2 的12 位左对齐数据保持寄存器(DAC_DHR12L2) (137)
12.5.8DAC通道2 的8 位右对齐数据保持寄存器(DAC_DHR8R2) (138)
12.5.9双DAC的12 位右对齐数据保持寄存器(DAC_DHR12RD) (138)
12.5.10双DAC的12 位左对齐数据保持寄存器(DAC_DHR12LD) (139)
12.5.11双DAC的8 位右对齐数据保持寄存器(DAC_DHR8RD) (139)
12.5.12DAC通道1 数据输出寄存器(DAC_DOR1) (140)
12.5.13DAC通道2 数据输出寄存器(DAC_DOR2) (140)
13.高级控制定时器(TIM1) (141)
13.1TIM1简介 (141)
13.2主要特征 (141)
13.3功能描述 (142)
13.3.1时基单元 (142)
13.3.2计数模式 (143)
13.3.3重复计数器 (151)
13.3.4时钟选择 (151)
13.3.5捕捉/比较通道 (154)
13.3.6输入捕捉模式 (156)
13.3.7PWM输入模式 (156)
13.3.8强制输出模式 (157)
13.3.9输出比较模式 (157)
13.3.10PWM模式 (158)
13.3.11互补输出和死区插入 (160)
13.3.12使用刹车功能 (162)
13.3.13在外部事件时清除OCxREF信号 (163)
13.3.14产生六步PWM输出 (164)
13.3.15单脉冲模式 (165)
13.3.16编码器接口模式 (166)
13.3.17定时器输入异或功能 (168)
13.3.18与霍尔传感器的接口 (168)
13.3.19TIMx定时器和外部触发的同步 (170)
13.3.20定时器同步 (172)
13.4寄存器描述 (173)
13.4.1控制寄存器1(TIMx_CR1) (173)
13.4.2控制寄存器2(TIMx_CR2) (174)
13.4.3从模式控制寄存器(TIMx_SMCR) (175)
13.4.4DMA/中断使能寄存器(TIMX_DIER) (177)
13.4.5状态寄存器(TIMx_SR) (178)
13.4.6事件产生寄存器(TIMx_EGR) (180)
13.4.7捕捉/比较模式寄存器1(TIMx_CCMR1) (180)
13.4.8捕捉/比较模式寄存器2(TIMx_CCMR2) (183)
13.4.9捕捉/比较使能寄存器(TIMx_CCER) (185)
13.4.10计数器(TIMx_CNT) (186)
13.4.11预分频器(TIMx_PSC) (187)
13.4.12自动装载寄存器(TIMx_ARR) (187)
13.4.13重复计数寄存器(TIMx_RCR) (187)
13.4.14捕获/比较寄存器1(TIMx_CCR1) (189)
13.4.15捕获/比较寄存器2(TIMx_CCR2) (189)
13.4.16捕获/比较寄存器3(TIMx_CCR3) (190)
13.4.17捕获/比较寄存器4(TIMx_CCR4) (190)
13.4.18刹车和死区寄存器(TIMx_BDTR) (191)
13.4.19DMA控制寄存器(TIMx_DCR) (192)
13.4.20连续模式的DMA地址(TIMx_DMAR) (192)
14.通用定时器(TIMX) (194)
14.1TIMx简介 (194)
14.2TIMx主要功能 (194)
14.3TIMX功能描述 (195)
14.3.1时基单元 (195)
14.3.2计数模式 (196)
14.3.3时钟选择 (203)
14.3.4捕捉/比较通道 (206)
14.3.5输入捕捉模式 (207)
14.3.6PWM输入模式 (208)
14.3.8输出比较模式 (208)
14.3.9PWM模式 (209)
14.3.10单脉冲模式 (211)
14.3.11在外部事件时清除OCxREF信号 (212)
14.3.12编码器接口模式 (213)
14.3.13定时器输入异或功能 (215)
14.3.14定时器和外部触发的同步 (216)
14.3.15定时器同步 (218)
14.3.16调试模式 (222)
14.4TIMx寄存器描述 (222)
14.4.1控制寄存器1(TIMx_CR1) (222)
14.4.2控制寄存器2(TIMx_CR2) (224)
14.4.3从模式控制寄存器(TIMx_SMCR) (224)
14.4.4DMA/中断使能寄存器(TIMX_DIER) (227)
14.4.5状态寄存器(TIMx_SR) (227)
14.4.6事件产生寄存器(TIMx_EGR) (228)
14.4.7捕捉/比较模式寄存器1(TIMx_CCMR1) (229)
14.4.8捕捉/比较模式寄存器2(TIMx_CCMR2) (232)
14.4.9捕捉/比较使能寄存器(TIMx_CCER) (233)
14.4.10计数器(TIMx_CNT) (235)
14.4.11预分频器(TIMx_PSC) (235)
14.4.12自动装载寄存器(TIMx_ARR) (235)
14.4.13捕获/比较寄存器1(TIMx_CCR1) (236)
14.4.14捕获/比较寄存器2(TIMx_CCR2) (236)
14.4.15捕获/比较寄存器3(TIMx_CCR3) (237)
14.4.16捕获/比较寄存器4(TIMx_CCR4) (237)
14.4.17DMA控制寄存器(TIMx_DCR) (238)
14.4.18连续模式的DMA地址(TIMx_DMAR) (238)
15.实时时钟(RTC) (239)
15.1RTC简介 (239)
15.2主要特征 (239)
15.3.1概述 (239)
15.3.2复位过程 (240)
15.3.3读RTC寄存器 (240)
15.3.4配置RTC寄存器 (240)
15.3.5RTC标志的设置 (241)
15.4RTC寄存器描述 (241)
15.4.1RTC控制寄存器高位(RTC_CRH) (241)
15.4.2RTC 控制寄存器低位(RTC_CRL) (243)
15.4.3RTC 预分频装载寄存器(RTC_PRLH/RTC_PRLL) (244)
15.4.4RTC 预分频器分频因子寄存器(RTC_DIVH/RTC_DIVL) (244)
15.4.5RTC计数器寄存器(RTC_CNTH/RTC_CNTL) (245)
15.4.6RTC 闹钟寄存器(RTC_ALRH/RTC_ALRL) (245)
16.独立看门狗(IWDG) (247)
16.1IWDG简介 (247)
16.2IWDG主要性能 (247)
16.3IWDG功能描述 (247)
16.3.1硬件看门狗 (248)
16.3.2寄存器访问保护 (248)
16.3.3调试模式 (248)
16.4IWDG寄存器描述 (248)
16.4.1键寄存器(IWDG_KR) (248)
16.4.2预分频寄存器(IWDG_PR) (249)
16.4.3重装载寄存器(IWDG_RLR) (249)
16.4.4状态寄存器(IWDG_SR) (249)
17.窗口看门狗(WWDG) (251)
17.1WWDG简介 (251)
17.2WWDG主要特征 (251)
17.3WWDG功能描述 (251)
17.4如何编写看门狗超时程序 (252)
17.5调试模式 (252)
17.6WWDG寄存器描述 (253)
17.6.1控制寄存器(WWDG_CR) (253)
17.6.2配置寄存器(WWDG_CFR) (253)
17.6.3状态寄存器(WWDG_SR) (254)
18.串行外设接口(SPI) (255)
18.1SPI简述 (255)
18.2主要特征 (255)
18.3SPI功能描述 (255)
18.3.1概述 (255)
18.3.2SPI从模式 (258)
18.3.3SPI主模式 (259)
18.3.4状态标志 (259)
18.3.5波特率设置 (260)
18.3.6利用DMA的SPI通信 (260)
18.4寄存器堆和存储器映射描述 (260)
18.4.1发送数据寄存器(SPI_TXREG) (260)
18.4.2接收数据寄存器(SPI_RXREG) (261)
18.4.3当前状态寄存器(SPI_CSTAT) (261)
18.4.4中断状态寄存器(SPI_INTSTAT) (262)
18.4.5中断使能寄存器(SPI_INTEN) (263)
18.4.6中断清除寄存器(SPI_INTCLR) (263)
18.4.7全局控制寄存器(SPI_GCTL) (264)
18.4.8通用控制寄存器(SPI_CCTL) (265)
18.4.9波特率发生器(SPI_SPBRG) (266)
18.4.10接收数据个数寄存器(SPI_RXDNR) (266)
18.4.11从机片选寄存器(SPI_NSSR) (266)
18.4.12数据控制寄存器(SPI_EXTCTL) (267)
19.I2C接口 (267)
19.1I2C简介 (267)
19.2I2C主要特征 (267)
19.3I2C协议 (268)
19.3.1起始和停止条件 (268)
19.3.2从机寻址协议 (268)
19.3.3发送和接收协议 (269)
19.3.4起始字节传输协议 (270)
19.3.5发送缓冲管理以及起始、停止和重复起始条件产生 (270)
19.3.6多个主机仲裁 (271)
19.3.7时钟同步 (272)
19.4I2C工作模式 (272)
19.4.1从模式 (273)
19.4.2主模式 (275)
19.4.3I2C中止传输 (277)
19.5利用DMA通信 (277)
19.6I2C中断 (277)
19.7I2C寄存器描述 (278)
19.7.1I2C控制寄存器(IC_CON) (278)
19.7.2I2C目标地址寄存器(IC_TAR) (280)
19.7.3I2C从机地址寄存器(IC_SAR) (281)
19.7.4I2C数据命令寄存器(IC_DATA_CMD) (281)
19.7.5标准模式I2C时钟高电平计数寄存器(IC_SS_SCL_HCNT) (281)
19.7.6标准模式I2C时钟低电平计数寄存器(IC_SS_SCL_LCNT) (282)
19.7.7快速模式I2C时钟高电平计数寄存器(IC_FS_SCL_HCNT) (283)
19.7.8快速模式I2C时钟低电平计数寄存器(IC_FS_SCL_LCNT) (283)
19.7.9I2C中断状态寄存器(IC_INTR_STAT) (283)
19.7.10I2C中断屏蔽寄存器(IC_INTR_MASK) (283)
19.7.11I2C RAW中断寄存器(IC_RAW_INTR_STAT) (284)
19.7.12I2C接收阈值(IC_RX_TL) (285)
19.7.13I2C发送阈值(IC_TX_TL) (285)
19.7.14I2C组合和独立中断清除寄存器(IC_CLR_INTR) (285)
19.7.15I2C清除RX_UNDER中断寄存器(IC_CLR_RX_UNDER) (286)
19.7.16I2C清除RX_OVER中断寄存器(IC_CLR_RX_OVER) (286)
19.7.17I2C清除TX_OVER中断寄存器(IC_CLR_TX_OVER) (286)
19.7.18I2C清除RD_REQ中断寄存器(IC_CLR_RD_REQ) (286)
19.7.19I2C清除TX_ABRT中断寄存器(IC_CLR_TX_ABRT) (287)
19.7.20I2C清除RX_DONE中断寄存器(IC_CLR_RX_DONE) (288)
19.7.21I2C清除ACTIVITY中断寄存器(IC_CLR_ACTIVITY) (288)
19.7.22I2C清除STOP_DET中断寄存器(IC_CLR_STOP_DET) (289)
19.7.23I2C清除START_DET中断寄存器(IC_CLR_START_DET) (289)
19.7.24I2C清除GEN_CALL中断寄存器(IC_CLR_GEN_CALL) (289)
19.7.25I2C使能寄存器(IC_ENABLE) (289)
19.7.26I2C状态寄存器(IC_STATUS) (290)
19.7.27I2C发送缓冲水平寄存器(IC_TXFLR) (290)
19.7.28I2C接收缓冲水平寄存器(IC_RXFLR) (291)
19.7.29I2C SDA保持时间寄存器(IC_SDA_HOLD) (291)
19.7.30I2C DMA控制寄存器(IC_DMA_CR) (291)
19.7.31I2C SDA建立时间寄存器(IC_SDA_SETUP) (292)
19.7.32I2C广播呼叫ACK寄存器(IC_ACK_GENERAL_CALL) (292)
20.通用异步收发器(UART) (293)
20.1UART简介 (293)
20.2UART主要特征 (293)
20.3UART功能概述 (293)
20.3.1UART 特性描述 (294)
20.3.2发送器 (294)
20.3.3接收器 (296)
20.3.4分数波特率发生器 (296)
20.3.5采样 (298)
20.3.6校验控制 (299)
20.3.7硬件流控制 (299)
20.3.8利用DMA通信 (300)
20.4UART中断请求 (300)
20.5UART寄存器描述 (301)
20.5.1UART发送数据寄存器(UART_TDR) (301)
20.5.2UART接收数据寄存器(UART_RDR) (301)
20.5.3UART当前状态寄存器(UART_CSR) (302)
20.5.4UART中断状态寄存器(UART_ISR) (302)
20.5.5UART 中断使能寄存器(UART_IER) (303)
20.5.6UART 中断清除寄存器(UART_ICR) (303)
20.5.7UART 全局控制寄存器(UART_GCR) (304)
20.5.8UART 通用控制寄存器(UART_CCR) (305)
20.5.9UART 波特率寄存器(UART_BRR) (306)
20.5.10UART 分数波特率寄存器(UART_FRA) (306)
21.器件电子签名 (307)
21.1存储器容量寄存器 (307)
21.1.1产品唯一身份标识寄存器(96位) (307)
22.调试支持(DBG) (309)
22.1概述 (309)
22.2SWJ调试端口(serial wire and JTAG) (309)
22.2.1JTAG-DP和SW-DP切换的机制 (310)
22.3引脚分布和调试端口脚 (310)
22.3.1SWJ调试端口脚 (310)
22.3.2灵活的SWJ-DP脚分配 (311)
22.3.3JTAG脚上的内部上拉和下拉 (312)
22.3.4利用串行接口并释放不用的调试脚作为普通I/O口 (312)
22.4ZLG217P64Ax JTAG TAP 连接 (313)
22.5ID 代码和锁定机制 (313)
22.5.1微控制器设备ID编码 (313)
22.5.2边界扫描TAP JTAG ID编码 (315)
22.5.3CPU JTAG TAP (315)
22.5.4Cortex JEDEC-106 ID代码 (315)
22.6JTAG调试端口 (315)
22.7SW调试端口 (317)
22.7.1SW协议介绍 (317)
22.7.2SW协议序列 (317)
22.7.3SW-DP状态机(Reset,idle states,ID code) (318)
22.7.4DP和AP读/写访问 (318)
22.7.5SW-DP寄存器 (318)
22.7.6SW-AP寄存器 (319)
22.8MCU调试模块(MCUDBG) (319)
22.8.1低功耗模式的调试支持 (319)
22.8.2支持定时器、看门狗 (319)
22.8.3调试MCU配置寄存器 (319)
23.免责声明 (320)
图片目录
图1. ZLG217P64Ax系统架构 (27)
图2. 编程流程 (34)
图3. Flash寄存器页擦除流程 (35)
图4. Flash寄存器整片擦除流程 (36)
图5. CRC计算单元框图 (44)
图6. 电源框图 (46)
图7. 上电复位和掉电复位的波形图 (47)
图8. PVD的门限 (48)
图9. 复位电路 (58)
图10. 时钟树 (59)
图11. HSE/LSE时钟源 (60)
图12. I/O端口位的基本结构 (77)
图13. 输入浮空/上拉/下拉配置 (79)
图14. 输出配置 (80)
图15. 复用功能配置 (81)
图16. 高阻抗的模拟输入配置 (81)
图17. 外部中断/事件控制器框图 (97)
图18. 外部中断通用I/O映像 (98)
图19. DMA框图 (103)
图20. 外设DMA请求映射 (108)
图21. AD框图 (114)
图22. 单次转换模式时序图 (115)
图23. 单周期扫描下使能通道转换时序图 (116)
图24. 连续扫描模式使能通道转换时序图 (116)
图25. 数据对齐方式 (117)
图26. DAC通道模块框图 (125)
图27. 单DAC通道模式的数据寄存 (126)
图28. 双DAC 通道模式的数据寄存器 (127)
图29. TEN =0触发关闭时转换的时间框图 (127)
图30. DAC LFSR寄存器算法 (128)
图31. 带LFSR波形生成的DAC转换(使能软件触发) (129)
图32. DAC三角波生成 (129)
图33. 带三角生成的DAC转换(使能软件触发) (130)
图34. 高级控制定时器框图 (142)
图35. 当预分频器的参数从1变到2时,计数器的时序图 (143)
图36. 当预分频器的参数从1变到4时,计数器的时序图 (143)
图37. 计数器时序图,内部时钟分频因子为1 (144)
图38. 计数器时序图,内部时钟分频因子为2 (144)
图39. 计数器时序图,内部时钟分频因子为4 (145)
图40. 计数器时序图,内部时钟分频因子为N (145)
图41. 计数器时序图,当ARPE=0时的更新事件(TIMx_ARR没有预装入) (145)
图42. 计数器时序图,当ARPE=1时的更新事件(预装入了TIMx_ARR) (146)
图43. 计数器时序图,内部时钟分频因子为1 (147)
图44. 计数器时序图,内部时钟分频因子为2 (147)
图45. 计数器时序图,内部时钟分频因子为4 (147)
图46. 计数器时序图,内部时钟分频因子为N (148)
图47. 计数器时序图,当没有使用重复计数器时的更新事件 (148)
图48. 计数器时序图,内部时钟分频因子为1,TIMx_ARR=0x6 (149)
图49. 计数器时序图,内部时钟分频因子为2 (149)
图50. 计数器时序图,内部时钟分频因子为4,TIMx_ARR=0x36 (149)
图51. 计数器时序图,内部时钟分频因子为N (150)
图52. 计数器时序图,ARPE=1时的更新事件(计数器下溢) (150)
图53. 计数器时序图,ARPE=1时的更新事件(计数器溢出) (150)
图54. 不同模式下更新速率的例子,及TIMx_RCR的寄存器设置 (151)
图55. 一般模式下的控制电路,内部时钟分频因子为1 (152)
图56. TI2外部时钟连接例子 (152)
图57. 外部时钟模式1下的控制电路 (153)
图58. 外部触发输入框图 (153)
图59. 外部时钟模式2下的控制电路 (154)
图60. 捕获/比较通道(如:通道1输入部分) (154)
图61. 捕获/比较通道1的主电路 (155)
图62. 捕获/比较通道的输出部分(通道1至3) (155)
图63. 捕获/比较通道的输出部分(通道4) (155)
图64. PWM输入模式时序 (157)
图65. 输出比较模式,翻转OC1 (158)
图66. 边沿对齐的PWM波形(ARR=8) (159)
图67. 中央对齐的PWM波形(APR=8) (160)
图68. 带死区插入的互补输出 (161)
图69. 死区波形延迟大于负脉冲 (161)
图70. 死区波形延迟大于正脉冲 (161)
图71. 响应刹车的输出 (163)
图72. 清除TIMx的OCxREF (164)
图73. 产生六步PWM,使用COM的例子(OSSR=1) (165)
图74. 单脉冲模式的例子 (166)
图75. 编码器模式下的计数器操作实例 (168)
图76. IC1FP1反相的编码器接口模式实例 (168)
图77. 霍尔传感器接口的实例 (170)
图78. 复位模式下的控制电路 (171)
图79. 门控模式下的控制电路 (171)
图80. 触发器模式下的控制电路 (172)
图81. 外部时钟模式2+触发模式下的控制电路 (172)
图82. 通用定时器框图 (195)
图83. 当预分频器的参数从1变到2时,计数器的时序图 (196)
图84. 当预分频器的参数从1变到4时,计数器的时序图 (196)
图85. 计数器时序图,内部时钟分频因子为1 (197)
图86. 计数器时序图,内部时钟分频因子为2 (197)
图87. 计数器时序图,内部时钟分频因子为4 (197)
图88. 计数器时序图,内部时钟分频因子为N (198)
图89. 计数器时序图,当ARPE=0时的更新事件(TIMx_ARR没有预装入) (198)
图90. 计数器时序图,当ARPE=1时的更新事件(预装入了TIMx_ARR) (198)
图91. 计数器时序图,内部时钟分频因子为1 (199)
图92. 计数器时序图,内部时钟分频因子为2 (199)
图93. 计数器时序图,内部时钟分频因子为4 (200)
图94. 计数器时序图,内部时钟分频因子为N (200)
图95. 计数器时序图,当没有使用重复计数器时的更新事件 (200)
图96. 计数器时序图,内部时钟分频因子为1,TIMx_ARR=0x6 (201)
图97. 计数器时序图,内部时钟分频因子为2 (201)
图98. 计数器时序图,内部时钟分频因子为4,TIMx_ARR=0x36 (202)
图99. 计数器时序图,内部时钟分频因子为N (202)
图100. 计数器时序图,ARPE=1时的更新事件(计数器下溢) (202)
图101. 计数器时序图,ARPE=1时的更新事件(计数器溢出) (203)
图102. 一般模式下的控制电路,内部时钟分频因子为1 (203)
图103. TI2外部时钟连接例子 (204)
图104. 外部时钟模式1下的控制电路 (204)
图105. 外部触发输入框图 (205)
图106. 外部时钟模式2下的控制电路 (205)
图107. 捕获/比较通道(如:通道1输入部分) (206)
图108. 捕获/比较通道1的主电路 (206)
图109. 捕获/比较通道的输出部分(通道1) (207)
图110. PWM输入模式时序 (208)
图111. 输出比较模式,翻转OC1 (209)
图112. 边沿对齐的PWM波形(ARR=8) (210)
图113. 中央对齐的PWM波形(APR=8) (211)
图114. 单脉冲模式的例子 (212)
图115. 清除TIMx的OCxREF (213)
图116. 编码器模式下的计数器操作实例 (214)
图117. IC1FP1反相的编码器接口模式实例 (214)
图118. 复位模式下的控制电路 (216)
图119. 门控模式下的控制电路 (217)
图120. 触发器模式下的控制电路 (217)
图121. 外部时钟模式2 + 触发模式下的控制电路 (218)
图122. 主/从定时器的例子 (218)
图123. 定时器1的OC1REF控制定时器2 (219)
图124. 通过使能定时器1可以控制定时器2 (220)
图125. 使用定时器1的更新触发定时器2 (220)
图126. 利用定时器1的使能触发定时器2 (221)
图127. 使用定时器1的TI1输入触发定时器1和定时器2 (222)
图128. 实时时钟方框图 (240)
图129. RTC秒和闹钟波形图示例,PR=0003,ALARM=00004 (241)
图130. RTC溢出波形图示例,PR=0003 (241)
图131. 独立看门狗框图 (247)
图132. 看门狗框图 (251)
图133. 窗口看门狗时序图 (252)
图134. SPI 框图 (256)
图135. 单主和单从应用 (257)
图136. 数据时钟时序图 (258)
图137. 起始和停止条件 (268)
图138. 7位的地址格式 (268)
图139. 10位的地址格式 (269)
图140. 主发送协议 (269)
图141. 主接收协议 (270)
图142. 起始字节传输 (270)
图143. IC_DATA_CMD寄存器 (271)
图144. 主发送- Tx FIFO为空 (271)
图145. 主接收- Tx FIFO为空 (271)
图146. 多个主机仲裁 (272)
图147. 多个主机时钟同步 (272)
图148. I2C功能框图 (273)
图149. I2C接口主机流程图 (276)
图150. 中断机制 (278)
图151. UART 方框图 (294)
图152. UART 时序 (294)
图153. 发送时状态位变化 (295)
图154. RX引脚采样方案 (299)
图155. 两个UART间的硬件流控制 (299)
图156. RTS流控制 (300)
图157. CTS流控制 (300)
图158. ZLG217P64A系列级别和CPU级别的调试框 (309)
图159. SWJ调试端口 (310)
图160. JTAG TAP连接 (313)
表格目录
表1. 外设寄存器编址 (28)
表2. 启动模式 (31)
表3. Flash模块结构 (32)
表4. Flash中断请求 (37)
表5. 选项字节格式 (37)
表6. 选项字节结构 (38)
表7. 选项字节说明 (38)
表8. 低功耗模式一览 (48)
表9. SLEEP-NOW模式 (49)
表10. SLEEP - ON-EXIT模式 (50)
表11. 停机模式 (50)
表12. 待机模式 (51)
表13. 端口位配置表 (78)
表14. 输出模式位 (78)
表15. 高级定时器TIM1 (81)
表16. 通用定时器TIM2/3/4 (82)
表17. UART (82)
表18. SPI (83)
表19. I2C (83)
表20. CAN (83)
表21. ADC (83)
表22. 其他I/O引脚 (83)
表23. CAN复用功能重映射 (88)
表24. 调试接口信号 (88)
表25. 调试端口映像 (88)
表26. 定时器3复用功能重映像 (88)
表27. 定时器2复用功能重映像 (88)
表28. 定时器1复用功能重映像 (89)
表29. UART3重映像 (89)
表30. UART1重映像 (89)
表31. I2C1重映像 (89)
表32. SPI1重映像 (89)
表33. ZLG217P64Ax系列产品的向量表 (94)
表34. 可编程的数据传输宽度和大小端操作(当PINC = MINC = 1) (105)
表35. DMA中断请求 (107)
表36. 各个通道的DMA请求一览 (109)
表37. DAC 管脚 (125)
表38. 外部触发 (127)
表39. 计数方向与编码器信号的关系 (167)
表40. TIMx内部触发连接 (176)
表41. 带刹车功能的互补输出通道OCx和OCxN的控制位 (186)
表42. 计数方向与编码器信号的关系 (213)
表43. TIMx内部触发连接 (226)
表44. 标准Ocx通道的输出控制位 (234)
表45. 看门狗超时时间(40KHz的输入时钟(LSI)) (248)
表49. SPI状态 (260)
表50. 波特率公式 (260)
表51. I2C首字节 (269)
表52. 中断位的置位和清除 (277)
表53. IC_SLAVE_DISABLE(bit 6)和MASTER_MODE(bit 0)配置 (280)
表54. 设置波特率时的误差计算 (298)
表55. UART 中断请求 (300)
表56. SWJ调试端口管脚 (310)
表57. 灵活的SWJ_DP管脚分配 (312)
表58. ZLG217P64Ax ID编码 (315)
表59. JTAG调试端口数据寄存器 (315)
表60. A[3:2]定义的32位调试接口寄存器地址 (316)
表61. 请求包(8比特位) (317)
表62. ACK定义(3比特位) (317)
表63. 传输数据(33比特位) (318)
表64. SW-DP寄存器 (318)
1. 文中的缩写
1.1 寄存器描述表中使用的缩写列表
在对寄存器的描述中使用了下列缩写:
本节给出本文档涉及到的部分缩写词的一个简洁定义:
SWD:为Serial Wire Debug的首字母缩写。
其是CPU内核集成的一个调试口,是基于SWD协议的2线调试接口。
Word:字,32位长的数据或指令长度。
Half word:半字,16位长的数据或指令长度。
Byte:字节,8位数据长度。
IAP:In-Application Programming的首字母缩写。
直译为在应用编程,即用户程序可以更新自身的程序,从而达到应用升级。
ICP:In-Circuit Programming的首字母缩写。
直译为在电路编程,即用户可通过应用板上的JTAG 口或SWD口对MCU的Flash进行编程。
Option bytes:选项字节,保存在Flash中的MCU配置字节。
OBL:Option Byte Loader的首字母缩写,选项字节装载器。
AHB:Advanced High-performance Bus的首字母缩写,直译为先进高性能总线。
1.3 可用的外设
有关ZLG217P64Ax微控制器系列全部型号中,某外设存在与否及其数目,请查阅相应的数据手册。
2. 存储器和总线构架
2.1 系统构架
ZLG217P64Ax主系统由以下部分构成:
四个驱动单元:
- CPU内核ICode总线(I-bus),DCode总线(D-bus)和系统总线(S-bus)
- 通用DMA
三个被动单元
- 内部SRAM
- 内部闪存存储器
- AHB到APB的桥(AHB2APBx),它连接所有的APB设备
这些都是通过一个多级的AHB总线构架相互连接的,如图1所示:
图1. ZLG217P64Ax系统架构
ICode总线
该总线将CPU内核的指令总线与闪存指令接口相连接。
指令预取在此总线上完成。
DCode总线
该总线将CPU内核的DCode总线与闪存存储器的数据接口相连接(常量加载和调试访问)。
系统总线
此总线连接CPU内核的系统总线(外设总线)到总线矩阵,总线矩阵协调着内核和DMA间的访问。
DMA总线
此总线将DMA的AHB主控接口与总线矩阵相联,总线矩阵协调CPU和DMA到SRAM、闪存和外设的访问控制。
总线矩阵(BusMatrix)
总线矩阵管理着内核系统总线与DMA 总线的访问仲裁,总线矩阵由主模块总线及从模块总线组成。
AHB外设通过总线矩阵与系统总线相连,允许DMA访问。
AHB到APB桥(AHB2APB bridges- APB)
AHB到APB桥在AHB与APB总线间提供同步连接。
在每次复位之后,所有的外设时钟都关闭(除了SRAM及Flash外)。
在用一个外设前,你必须打开相应的RCC_AHBENR、RCC_APB2ENR 或
RCC_APB1ENR寄存器中时钟使能位。
注:当对APB寄存器进行8位或者16位访问时,该访问会被自动转换成32位的访问:桥会自动将16位或者8位的数据扩展以配合32位的宽度。
2.2 存储器组织
2.2.1 介绍
程序存储器,数据存储器,寄存器及I/O口统一编址,其线性地址空间达到4G。
数据字节以小端格式存放在存储器中,一个字里的最低地址字节被认为是该字的最低有效字节,而最高地址字节是最高有效字节。
寻址空间分成8块,每块512MB。
其他所有没有分配给片上存储器和外设的存储器空间都是保留的地址空间。
详细请参考存储器映像和寄存器编址章节和外设章节。
2.2.2 存储器映像和寄存器编址
存储器映像请参考各外设对应章节中的存储器映像图。
表1给出了所有内置外设的起始地址。
表1. 外设寄存器编址
2.3 内置的SRAM
ZLG217P64Ax内置最大可到20K字节的静态SRAM。
它可以以字节(8位)、半字(16位)或字(32位)进行访问。
SRAM起始地址为0x2000 0000。
数据总线上最大可到20K字节的SRAM。
可以被CPU或者DMA用最快的系统时钟且不插入任何等待进行访问。
2.4 闪存存储器概述
闪存存储器有两个不同存储区域:
主闪存存储块,它包括应用程序和用户数据区(若需要时)
信息块,其包含四个部分:
- 选项字节(Option bytes)-内含硬件及存储保护用户配置选项。
- 系统存储器(System memory)-其包含boot loader 代码。
参见内置闪存存储器章节。
- 保护字节(Protect bytes)–存储保密空间密钥。
- 保密空间(Security space)–保存用户关键代码。
闪存接口基于AHB协议执行指令和数据存取。
其预取缓冲的功能可加速CPU执行代码的速度。
2.5 启动配置(Boot configuration)
在ZLG217P64Ax中,可通过BOOT0及BOOT1脚的配置选择三种不同的启动模式,如下表所示。
器件复位后,在SYSCLK 的第4个上升沿锁存BOOT0和BOOT1的引脚值,用户可通过设置BOOT1和BOOT0来选择启动模式。
从待机模式唤醒时,CPU会得新采样BOOT0及BOOT1的引脚值,因此在有待机应用的场合需要保
持启动模式的设置。
在启动延迟之后,CPU从地址0x0000 0000获取堆栈顶的地址,并从启动存储器的
0x0000 0004指示的地址开始执行代码。
根据选定的启动模式,主闪存存储器,系统存储器或SRAM按照以下的说明访问:
从主闪存存储器启动:主闪存存储器被映射到启动存储空间(0x0000 0000),但仍然能从原有的地址空间(0x800 0000)访问。
即闪存存储器的内容可从两个地址开始访问,0x0000 0000或0x800 0000。
从系统存储器启动:系统存储器被映射到启动空间(0x0000 0000),但仍然能够在它原有的地址空间(0x1FFF F400)访问。
从内置的SRAM启动:SRAM映射到启动空间(0x0000 0000),但其仍然能够在它原有的地址空间(0x2000 0000)访问。
内嵌的自举程序
内嵌的自举程序存放在系统存储器,由厂家在生产时写入。
该程序可以通过UART1对闪存进行重新编程。
3. 嵌入式闪存
3.1 闪存主要特性
高达128K字节闪存存储器
存储器结构:
- 主闪存模块:最大32K字(32K×32位)
- 信息模块:系统存储器:高达1K字节(1K x 8位)
选项字节:高达2 x 8字节
保密空间:高达3K字节(3K x 8位)
保护字节:高达512字节(512 x 8位)
闪存接口的特性为:
带预取缓冲器的读接口(每字为2×64位)
选择字节加载器
闪存编程/ 擦除操作
访问/ 写保护
低功耗模式
3.2 闪存功能描述
3.2.1 闪存结构
闪存空间由64位宽的存储单元组成,既可以存代码又可以存数据。
主闪存块按128页(每1K字节)或32扇区(每扇区4K字节)分块,以扇区为单位设置写保护(参见存储保护相关内容)。
表3. Flash模块结构
3.2.2 Flash写和擦除操作
ZLG217P64A的嵌入式闪存支持在线编程以及在应用编程。
ICP是指使用SWD或Boot loader的方法在线改变Flash的内容,将用户代码烧录到单片机中。
ICP 提供了一种简单高效的方法,免除了烧写芯片时的芯片装夹等问题。
与ICP方法不同的是,IAP(在应用编程)能够使用MCU支持的任何通信接口(I/Os,USB,UART,I2C,SPI,等等)下载程序或者数据。
IAP允许用户在运行程序的过程中重写应用程序,前提是一部分应用程序必须预先用ICP的方法烧写进去。
烧写和擦除操作在整个产品工作电压范围内都可以完成。
该操作有下列7个寄存器完成:
关键字寄存器(FLASH_KEYR)
选项字节关键字寄存器(FLASH_OPRKEYR)
Flash 控制寄存器(FLASH_CR)
Flash 状态寄存器(FLASH_SR)
Flash 地址寄存器(FLASH_AR)
选项字节寄存器(FLASH_OBR)
写保护寄存器(FLASH_WRPR)
只要CPU不去访问Flash空间,进行中的Flash写操作不会妨碍CPU的运行。
也就是说,在对Flash 进行写/擦除操作的同时,任何对Flash的访问都会令总线停顿,直到写/擦除操作完成后才会继续执行,这意味着在写/擦除Flash的同时不可以对它取指和访问数据。
在对Flash空间做写/擦除操作时,内部振荡器(HSI)必须处于开启状态。
对Flash空间的解锁
复位后,Flash存储器默认是受保护状态的,这样可以防范意外的擦除动作。
FLASH_CR寄存器不允许被改写,除非执行一串针对FLASH_KEYR寄存器的解锁操作才能开启对FLASH_ CR的访问权限。
这串操作由下面2个写操作构成:
写关键字1=0x45670123
写关键字2=0xCDEF89AB
任何错误的顺序将会锁死FLASH_CR直至下次复位。
当发生关键字错误时,会由总线错误引发一次硬件错误中断。
KEY1出错会立即中断,KEY1正确但KEY2错误时会在KEY2错的时候引发中断。
主闪存编程
主闪存一次可以编程16 位。
当FLASH_CR中的PG位为1时,直接对相应的地址写一个半字(16位),就是一次编程操作。
如果试图写别的长度而不是半字,将引起硬件错误中断。