26. 比较器 (CMP)
26.1. 概述
SWM221内置2个模拟比较器。电气特性一样,输入和输出可灵活配置,很好覆盖电机驱动应用需求。
26.2. 特性
迟滞设置:无,10mV,20mV或50mV
内置1路8位DAC,负端可直接使用DAC参考输出
内置DAC参考电压可配置:1.2V,3.6V或VDD
输出作为PWM刹车输入使能
比较器翻转中断
输出数字滤波
26.3. 功能描述
26.3.1. 模块结构
CMP0 结构框图如 图 90 所示。
图 90 CMP0模块结构框图
CMP1 结构框图如 图 91 所示。
图 91 CMP1模块结构框图
本芯片有2个比较器,其中CMP0拥有3个正端输入IO口,当其正端输入(INP)大于负端输入(INN)时,结果为逻辑1,反之则为逻辑0;
每一路比较器的输出经过数字滤波可配置为:
PWM的输入刹车使能
CMP翻转中断
在以上两种输出中,比较器CMPx的结果不会直接输出,可以通过读取ACMPSR寄存器的CMPxOUT位查询原始输出状态。
例如,在使用比较器CMP0时,将相应管脚复用为比较器端口,比较器CMP0的输出结果可在寄存器ACMPSR中的CMP0OUT读取。如果在ACMPCR中配置了CMP0的中断使能,比较器0的输出变化会触发中断,中断状态可在ACMPSR中的CMP0IF位查看。
CMP0、CMP1同时支持负端连接内部8位DAC,但此路DAC有且仅有一个值,可通过ACMPCR寄存器的DACDR位设置。
比较器配置
配置需使用的比较器管脚使其切换为模拟信号模式,比较器的正端输入引脚和负端输入引脚都需要切换为模拟功能模式
配置输入引脚的中断使能(ACMPxCR. IE),可配置为不产生中断,也可配置为当比较器输出有变化(包括从0到1和从1到0)时产生引脚中断
配置CMP迟滞是否开启(ACMPxCR. HYST)
配置CMPx使能寄存器(ACMPxCR.EN),使能CMP
在ACMPSR中查看比较器输出结果和中断状态
26.3.2. 迟滞
带有迟滞比较的输出模式有无,10mV,20mV或50mV迟滞。比较器迟滞电压模块可通过ACMPCR寄存器CMPxHYS位配置。
在迟滞比较的输出模式下,迟滞电压与输出电平反向。当输入信号过零后,输出信号跳转,控制迟滞电压极性,使得输入信号远离过零点,避免输入噪声造成比较器的输出跳变。
其示意图如 图 92 所示:
图 92 比较器迟滞功能示意图
26.3.3. 比较器滤波
此外,比较器的输出端内置filter1软件滤波。
图 93 比较器与FILTER1关系
如 图 93 所示,FILTER1输出的信号连接至PWM刹车及中断,其最终状态可能与输出至PWM刹车及中断的状态不一致。
如 图 94 所示:
图 94 比较器FILTER1滤波波形
26.3.4. 中断配置与清除
比较器支持中断标志变化中断,标志变化包括从0到1和从1到0,此中断写1清零。
26.4. 寄存器映射
名称 |
偏移 |
复位值 |
---|---|---|
ANALOG BASE:0x40045800 |
||
ACMP0CR |
0x02C |
0x00000000 |
ACMP1CR |
0x030 |
0x00000000 |
ACMPCR |
0x034 |
0x00000000 |
ACMPSR |
0x038 |
0x00000000 |
26.5. 寄存器描述
26.5.1. 比较器0控制寄存器ACMP0CR
偏移: 0x02C |
复位值: 0x00000000 |
31 |
30 |
29 |
28 |
27 |
26 |
25 |
24 |
23 |
22 |
21 |
20 |
19 |
18 |
17 |
16 |
TOPWM |
IE |
||||||
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
VPXEN |
|||||||
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
VPSEL |
VNSEL |
HYS |
EN |
位域 |
名称 |
类型 |
描述 |
---|---|---|---|
31:18 |
RO |
||
17 |
TOPWM |
R/W |
PWM刹车输入使能寄存器 0:关闭 1:开启 |
16 |
IE |
R/W |
CMP0中断使能寄存器 0:关闭 1:开启 |
15:9 |
RO |
||
8 |
VPXEN |
R/W |
CMP0_VP0/CMP0_VP1/CMP0_VP2星形连接,中心点VPX |
7:5 |
VPSEL |
R/W |
CMP0正端电压选择信号寄存器 000:CMP0_VP0 001:CMP0_VP1 010:CMP0_VP2 011:PGA0_VP 100:PGA2_VP |
4:3 |
VNSEL |
R/W |
CMP0负端电压选择信号 00:CMP0_VN 01:DAC_VO 10/11:VPX |
2:1 |
HYST |
R/W |
CMP0迟滞电压选择信号 00:1mV 01:10mV 10:20mV 11:50mV |
0 |
EN |
R/W |
CMP0使能寄存器 0:关闭CMP 1:开启CMP |
26.5.2. 比较器1控制寄存器ACMP1CR
偏移: 0x030 |
复位值: 0x00000000 |
31 |
30 |
29 |
28 |
27 |
26 |
25 |
24 |
23 |
22 |
21 |
20 |
19 |
18 |
17 |
16 |
TOPWM |
IE |
||||||
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
VPSEL |
VNSEL |
HYS |
EN |
位域 |
名称 |
类型 |
描述 |
---|---|---|---|
31:18 |
RO |
||
17 |
TOPWM |
R/W |
PWM刹车输入使能寄存器 0:关闭 1:开启 |
16 |
IE |
R/W |
CMP1中断使能寄存器 0:关闭 1:开启 |
15:8 |
RO |
||
7:5 |
VPSEL |
R/W |
CMP1正端电压选择信号 000:CMP1_VP 001:PGA1_VP 010:PGA0_OUT 011:PGA1_OUT 100:PGA2_OUT |
4:3 |
VNSEL |
R/W |
CMP1负端电压选择信号 00:CMP1_VN 01:DAC_VO |
2:1 |
HYST |
R/W |
CMP1迟滞电压选择信号 00:1mV 01:10mV 10:20mV 11:50mV |
0 |
EN |
R/W |
CMP1使能寄存器 0:关闭CMP 1:开启CMP |
26.5.3. ACMP控制寄存器ACMPCR
偏移: 0x034 |
复位值: 0x00000000 |
31 |
30 |
29 |
28 |
27 |
26 |
25 |
24 |
23 |
22 |
21 |
20 |
19 |
18 |
17 |
16 |
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
DACDR |
|||||||
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
DACVR |
DACEN |
位域 |
名称 |
类型 |
描述 |
---|---|---|---|
31:16 |
RO |
||
15:8 |
DACDR |
R/W |
DAC数据寄存器 00:0 01:1 02:2 …… FF:255 (DAC输出电压计算公式:(DACDR/255)*DACVref |
7:3 |
RO |
||
2:1 |
DACVR |
R/W |
CMPDAC参考电压选择信号 00:1.2V 01/10:3.6V 11:VDD |
0 |
DACEN |
R/W |
DAC使能寄存器 0:关闭DAC 1:开启DAC |
26.5.4. ACMP状态寄存器ACMPSR
偏移: 0x038 |
复位值: 0x00000000 |
31 |
30 |
29 |
28 |
27 |
26 |
25 |
24 |
23 |
22 |
21 |
20 |
19 |
18 |
17 |
16 |
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
CMP1OUT |
CMP0OUT |
||||||
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
CMP1IF |
CMP0IF |
位域 |
名称 |
类型 |
描述 |
---|---|---|---|
31:10 |
RO |
||
9 |
CMP1OUT |
RO |
CMP1原始状态输出寄存器 |
8 |
CMP0OUT |
RO |
CMP0原始状态输出寄存器 |
7:2 |
RO |
||
1 |
CMP1IF |
W1C |
CMP1中断标志寄存器 |
0 |
CMP0IF |
W1C |
CMP0中断标志寄存器 |