jcky001 发表于 2022-8-18 10:08

MM32SPIN2x 电机专用MCU功能特色——电压比较器

       上一章节中已经教大家如何使用MM32SPIN2x的硬件除法器和硬件开方器,本章节将与大家一起配置MM32SPIN2x的内嵌比较器。
       电压比较器能够作为模拟电路与数字电路的接口,可以用作波形产生和变换电路,针对电机应用中的过流比较等功能,MM32SPIN2x内部集成了五个独立的电压比较器,使得单片机更加方便地和外部的模拟电路进行连接,减小了单片机系统硬件电路设计的复杂性,缩小了单片机应用系统的物理尺寸和物料成本。
      芯片内嵌五个通用比较器 COMP1、 COMP2、 COMP3、 COMP4 和 COMP5,可独立使用(适用所有终端上的 I/O 口),也可与定时器结合使用。它们可用于多种功能,包括:
• 由模拟信号触发低功耗模式唤醒事件
• 调节模拟信号
• 与定时器输出的 PWM 相结合,组成逐周期的电流控制回路
• 支持五个独立的比较器

jcky001 发表于 2022-8-18 10:10

MM32SPIN2x内嵌比较器的反相输入可选为内部比较电压 CRV 可选择 AVDD 或者内部基准电压Vref的分压电压值,这个功能可以起到窗口比较器的功能,也可以实现过流过压保护和掉电保护等功能。输出可以选择为IO端口,也可以重定向到定时器的输入端,或触发外部中断。比较器有可选的滤波周期和迟滞电压,能够最大程度的消除输入电压波动带来的干扰。四种工作模式,在具体应用中可以通过调整比较器功耗和相应时间得到最优的结果。带有比较器轮询的功能,一个比较器可以分时复用实现多个比较器的功能。出于安全的考虑,在某些特定的有较高安全需求的应用中,为了保证比较器设置不能被无效寄存器访问或者程序计数器破坏所改变,可以将比较器控制和状态寄存器设为写保护(只读)。               

图1 比较器框图

jcky001 发表于 2022-8-18 10:11

MCU内嵌三个单通道比较器和两个四通道比较器, 功能包括:

[*]由模拟信号触发低功耗模式唤醒事件
[*]调节模拟信号
[*]定时器输出的 PWM 相结合,组成逐周期的电流控制回路
[*]支持五个独立的比较器
[*]轨对轨比较器
[*]每个比较器有可选门限
<li>– 可复用的 I/O 引脚
– 内部比较电压 CRV 可选择 AVDD 或者内部基准电压的分压电压值
</li>
• 可编程迟滞电压
• 可编程的速率和功耗
• 支持比较结果的滤波功能
• 输出端可以重定向到一个 I/O 端口或多个定时器输入端,可以触发以下事件:
– 捕获事件
– OCref_clr 事件(逐周期电流控制)
– 为实现快速 PWM 关断的刹车事件
• 两个比较器可以组合在一个窗口比较器中使用
• COMP1/2/3 只有一个正相输入和一个反相输入
• COMP4/5 有 4 个正相输入和 4 个反相输入,带有轮询功能:
– 可以实现定周期切换的轮询功能
– 可控制轮询通道 1/2/3 或 1/2
– 可选固定反向输入端
• 每个比较器都可产生中断,并支持把 CPU 从睡眠和停机模式唤醒(通过 EXti 控制器)特别地,四通道比较器COMP4/5的输入通道可以在普通模式通过软件选择,也可以在轮询工作模式下通过硬件轮询的方式分时检测多个通道的比较结果,类似于多个比较器同时工作。
      下面教大家如何配置使用MM32SPIN2x内置比较器。
       本文使用的是比较器4,首先打开比较器时钟使能,然后通过配置寄存器COMP->COMP4_CSR来选择比较器的正相输入、反相输入以及输出,使用PA6作为COMP4正相输入,CRV选择1/2VDD作为比较器反相输入,输出脚使用IO口Pa11,输出滤波为64个时钟周期,迟滞电压90mv,消除电压扰动带来的误差。最后使能比较器,并打开比较器锁,防止比较器配置被更改。

jcky001 发表于 2022-8-18 10:12



[*]比较器配置代码:
[*]void Comp4_Config(void)
[*]{
[*]RCC->AHBENR |= RCC_AHBENR_GPIOAEN;//使能GPIO时钟
[*]RCC->APB2ENR |= RCC_APB2RSTR_CPTEN; //使能比较器时钟
[*]
[*]GPIOA->CRH &= 0xFFFF0FFF;
[*]GPIOA->CRH |= 0x0000B000; //COMP4_OUT-PA11
[*]
[*]GPIOA->AFRH &= 0xFFFF0FFF;//复位GPIOA端口复用功能寄存器
[*]GPIOA->AFRH |= 0x00007000;
[*]
[*]COMP->COMP4_CSR= 0x00000000; //复位比较器控制状态寄存器
[*]COMP->COMP4_CSR |= 1<<7;//COMP4_INP3(PA6)为比较器正相输入
[*]COMP->COMP4_CSR |= 3<<4;//CRV为比较器反相输入
[*]COMP->COMP4_CSR |= 4<<18;//比较器输出滤波为64个时钟周期
[*]COMP->COMP4_CSR |= 3<<16;//比较器迟滞电压90mv
[*]COMP->COMP4_CSR |= 3<<2;//COMP4为高速率模式
[*]
[*]COMP->COMP_CRV = 0x00000000;//复位比较器外部参考电压寄存器
[*]COMP->COMP_CRV |= 3<<4;//比较器外部参考电压使能,选择AVDD为比较器外部参考电压源
[*]COMP->COMP_CRV |= 9; //比较器外部参考电压分压选择,为10/20AVDD
[*]COMP->COMP4_CSR |= 0x1;         //使能COMP4
[*]COMP->COMP4_CSR |= 1<<31;            //打开比较器写保护
[*]}
[*]主程序:
[*]int main(void)
[*]{
[*]delay_init();
[*]Comp4_Config();
[*]while(1)
[*]{
[*];
[*]}
[*]}
[*]

复制代码


jcky001 发表于 2022-8-18 10:13

将COMP4的正相输入脚(PA6)接10KHz方波,使用内部的CRV作为反相输入的信号源,CRV选择为1/2AVDD电压。下图是使用示波器观察到的COMP4_OUT(PA11)引脚波形:

图2 测试结果波形


         通道1是正相输入的100Hz方波,幅值4v的三角波行,通道2是比较器输出脚的波形,且相较于输入波形有600ns(64个时钟周期滤波周期)左右滞后,符合程序设置。

jcky001 发表于 2022-8-18 10:14

关于灵动微电子灵动微电子股份有限公司(股票代码:833448,股票简称:灵动微电)是国内专注于MCU产品与MCU应用方案的领先供应商,是中国工业及信息化部和上海市信息化办公室认定的集成电路设计企业,同时也是上海市认定的高新技术企业。自2011年3月成立至今,灵动微电子已经成功完成数百余MCU产品的设计及推广,灵动微电子目前已批量供货的基于ARMCortex-M0及Cortex-M3 内核的MCU产品包括:针对通用高性能市场的MM32F系列,针对超低功耗及安全应用的MM32L系列,具有多种无线连接功能的MM32W系列,电机驱动及控制专用的MM32SPIN系列,以及针对超小尺寸及超高集成度的MM32P系列等,以满足客户及市场多领域、多层次的丰富应用场景需求。
      灵动微电子立足本土,洞悉市场,贴近客户,以为客户提供“保姆式”的全方位支持为特色,坚持“专业、可靠、便捷、高效”的服务理念,贯彻差异最大化,成本最优化的经营策略,不断强化自身生态价值,维护良好产品品牌。公司在销售初期就与客户充分接触,为客户提供产品整体解决方案,从产品功能定义、市场竞争力分析到算法整合、软件驱动、应用例程等都深入参与,为客户提供精准的市场分析和全面的应用方案,帮助客户把握好成功的每一个重要环节。

`


match007 发表于 2022-8-21 13:18

这个波形怎么搞的

mutable 发表于 2022-8-25 21:11

具体应用实例有么

tpgf 发表于 2022-9-3 20:13

电压比较的范围是多少啊

nawu 发表于 2022-9-3 20:20

看波形的话运行的还是稳定的

aoyi 发表于 2022-9-3 20:27

用信号发生器加示波器就行

zljiu 发表于 2022-9-3 20:34

响应时间还不错哈

gwsan 发表于 2022-9-3 20:41

频率还是很低的

tfqi 发表于 2022-9-3 20:47

提高频率的话 还能这么稳定吗

lzbf 发表于 2022-9-5 12:53

可以实现低电平触摸中断吗

dspmana 发表于 2022-9-5 14:11

这个还有电压比较器呢

fengm 发表于 2022-9-5 17:05

电机有foc算法吗

Bowclad 发表于 2022-9-9 19:07

电压比较的范围是多少啊

Stahan 发表于 2022-9-16 20:44

有应用实例吗?
页: [1]
查看完整版本: MM32SPIN2x 电机专用MCU功能特色——电压比较器