GD32F3x0 比较器 (CMP)

[复制链接]
1974|29
手机看帖
扫描二维码
随时随地手机跟帖
stm32jy|  楼主 | 2020-2-21 16:37 | 显示全部楼层 |阅读模式
通用比较器包含 CMP0 和 CMP1,可独立工作,其输出端可用于 I/O 口,也可和定时器结合使
用。
比较器可通过模拟信号将 MCU 从低功耗模式中唤醒, 在一定的条件下, 可将模拟信号作为触
发源,结合 DAC 和定时器的 PWM 输出, 可以实现电流控制。

使用特权

评论回复
stm32jy|  楼主 | 2020-2-21 16:38 | 显示全部楼层
比较器的框图展示如下
861325e4f970ea0c6b.png

使用特权

评论回复
评论
xiaoqi000 2020-2-25 18:42 回复TA
CMP0SW CMP0 开关 该位用于开关 CMP0 相输入端 PA1 与 PA4 之间的连接 0: 开关打开 1: 开关关闭 
stm32jy|  楼主 | 2020-2-21 16:39 | 显示全部楼层
在 I/O 口被选为比较器输入端之前,这些 I/O 口必须在 GPIO 的寄存器中配置为模拟模式。
参考 Datasheet 的引脚定义,比较器输出必须连接到对应的复用 I/O 口。
各种各样的定时器通过内部连接到比较器的输出端来实现下述功能:
 通过输入捕获测量时序
 通过中止功能紧急关掉 PWM 信号
 通过 OCPRE_CLR 输入逐周期地电流控制
为了在深度睡眠模式下工作,比较器端口的极性选择和输出重定向不会因为 PCLK 关闭。
比较器的输出可同时实现内部和外部输入。
比较器的输出端内连到外部中断和事件控制器,每个比较器都有其 EXTI 线,可用于产生中断
或事件, 同样的机制可运用于从省电模式中退出。

使用特权

评论回复
stm32jy|  楼主 | 2020-2-21 16:39 | 显示全部楼层
比较器供电模式
对于给定的程序, 在比较器功耗和传输迟滞之间存在着协定, 可通过寄存器 CMP_CS 的位
CMPxM 的配置进行调整。 当 CMPxM 为 2’b 00 时, 比较器以最快和功耗最大模式工作, 但当
CMPxM 位 2’b 11 时, 比较器以最慢和功耗最小的模式工作

使用特权

评论回复
stm32jy|  楼主 | 2020-2-21 16:40 | 显示全部楼层
比较器寄存器写保护
比较器的控制状态寄存器(CMP_CS)可通过设置 CMPxLK 位为 1 来进行保护, CMP_CS 寄
存器,包含 CMPxLK 位,就会变为只读位,只有在 MCU 复位时才可以复位。 该写保护功能可
运用于某些应用,如热保护和过流保护。

使用特权

评论回复
stm32jy|  楼主 | 2020-2-21 16:41 | 显示全部楼层
CMP 基地址: 0x4001 001C
地址偏移: 0x00
复位值: 0x0000 0000
995445e4f97baa96ba.png

使用特权

评论回复
stm32jy|  楼主 | 2020-2-21 16:42 | 显示全部楼层
CMP1LK CMP1 锁定
该位可将 CMP1 的各控制位设为只读,该位可写一次,通过系统复位清除,可通过
软件置位
0: CMP_CS[31:16]是可读可写位
1: CMP_CS[31:16]是只读位

使用特权

评论回复
stm32jy|  楼主 | 2020-2-21 16:42 | 显示全部楼层
CMP1O CMP1 输出
该位即 CMP1 输出状态,是只读位
0: 相输入端低于反相输入端,输出为低电平
1: 相输入端高于反相输入端,输出为高电平

使用特权

评论回复
stm32jy|  楼主 | 2020-2-21 16:42 | 显示全部楼层
CMP1HST[1:0] CMP1 迟滞
该域用于控制迟滞水平
00: 无迟滞
01:低迟滞
10:中迟滞
11:高迟滞

使用特权

评论回复
stm32jy|  楼主 | 2020-2-21 16:43 | 显示全部楼层
CMP1PL CMP1 输出极性
该位是用来控制输出极性
0: 输出是正相的
1: 输出是反相的

使用特权

评论回复
stm32jy|  楼主 | 2020-2-21 16:43 | 显示全部楼层
CMP1OSEL[2:0] CMP1 输出选择
该域用于控制 CMP1 输出选择
000: 无选择
001: 定时器 0 中止输入
010: 定时器 0 通道 0 输入捕获
011: 定时器 0 OCPRE_CLR 输入
100: 定时器 1 通道 3 输入捕获
101:定时器 1 OCPRE_CLR 输入
110:定时器 2 通道 0 输入捕获
111:定时器 2 OCPRE_CLR 输入

使用特权

评论回复
stm32jy|  楼主 | 2020-2-21 16:43 | 显示全部楼层
WNDEN 窗口模式使能
该位用来断开 CMP1 的 CMP1_IP 输入端与 PA3 的连接, 让其与 CMP0 的
CMP0_IP 相连接
0: CMP1_IP 与 PA3 相连
1: CMP1_IP 与 CMP0_IP 相连

使用特权

评论回复
stm32jy|  楼主 | 2020-2-21 16:44 | 显示全部楼层
CMP1MSEL[2:0] CMP1_IM 输入选择
该位用来选择 CMP1 的输入端 CMP1_IM 的输入源
000: VREFINT/4
001: VREFINT/2
010: VREFINT*3/4
011: VREFINT
100: PA4 (DAC)
101: PA5
110: PA2
111:保留

使用特权

评论回复
stm32jy|  楼主 | 2020-2-21 16:44 | 显示全部楼层
CMP1M[1:0] CMP1 模式
该位用来控制 CMP1 的运行模式以调整速度和功耗
00: 高速/全功耗
01: 中速/中功耗
10: 低速/低功耗
11: 超低速/超低功耗

使用特权

评论回复
stm32jy|  楼主 | 2020-2-21 16:44 | 显示全部楼层
CMP1EN CMP1 使能
0: CMP1 禁能
1: CMP1 使能

使用特权

评论回复
stm32jy|  楼主 | 2020-2-21 16:45 | 显示全部楼层
CMP0LK CMP0 lock
该位可将 CMP0 的各控制位设为只读,该位可写一次,通过系统复位清除,可通过
软件置位.
0: CMP_CS[15:0] 是可读可写位
1: CMP_CS[15:0] 是只读位

使用特权

评论回复
stm32jy|  楼主 | 2020-2-21 16:45 | 显示全部楼层
CMP0O CMP0 输出
该位即 CMP0 输出状态,是只读位.
0: 相输入端低于反相输入端,输出为低电平
1: 相输入端高于反相输入端,输出为高电平

使用特权

评论回复
stm32jy|  楼主 | 2020-2-21 16:45 | 显示全部楼层
CMP0HST[1:0] CMP0 迟滞
该域用于控制迟滞水平
00: 无迟滞
01:低迟滞
10:中迟滞
11:高迟滞

使用特权

评论回复
stm32jy|  楼主 | 2020-2-21 16:54 | 显示全部楼层
CMP0PL CMP0 输出极性
该位是用来控制输出极性
0: 输出是正相的
1: 输出是反相的

使用特权

评论回复
stm32jy|  楼主 | 2020-2-21 16:54 | 显示全部楼层
CMP0OSEL[2:0] 比较器 0 的输出选择
该域用于控制 CMP0 输出选择
000: 无选择
001: 定时器 0 中止输入
010: 定时器 0 通道 0 输入捕获
011: 定时器 0 OCPRE_CLR 输入
100: 定时器 1 通道 3 输入捕获
101:定时器 1 OCPRE_CLR 输入
110:定时器 2 通道 0 输入捕获
111:定时器 2 OCPRE_CLR 输入

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

44

主题

1118

帖子

3

粉丝