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 所示。

../../_images/CMP0%E7%BB%93%E6%9E%84%E6%A1%86%E5%9B%BE.svg

图 90 CMP0模块结构框图

CMP1 结构框图如 图 91 所示。

../../_images/CMP1%E7%BB%93%E6%9E%84%E6%A1%86%E5%9B%BE.svg

图 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 所示:

../../_images/Hystfunc.svg

图 92 比较器迟滞功能示意图

26.3.3. 比较器滤波

此外,比较器的输出端内置filter1软件滤波。

../../_images/CMP%26FILTER1.svg

图 93 比较器与FILTER1关系

图 93 所示,FILTER1输出的信号连接至PWM刹车及中断,其最终状态可能与输出至PWM刹车及中断的状态不一致。

图 94 所示:

../../_images/FILTER1wave.svg

图 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中断标志寄存器