首页 » 互联网 » CW32L083模拟电压比较器的运用_电压_暗记

CW32L083模拟电压比较器的运用_电压_暗记

雨夜梧桐 2024-10-16 22:44:08 0

扫一扫用手机浏览

文章目录 [+]

仿照电压比较器紧张特性

• 双路仿照电压比较器 VC1、VC2

CW32L083模拟电压比较器的运用_电压_暗记 互联网

• 内部64阶电阻分压器

• 多达8路外部仿照旗子暗记输入

• 4路片内仿照输入旗子暗记

- 内置电阻分压器输出电压

- 内置温度传感器输出电压

- 内置1.2V基准电压

- ADC参考电压

• 可选择输出极性

• 支持迟滞窗口比较功能

• 可编程的滤波器和滤波韶光

• 3种中断触发办法,可组合利用

- 高电平触发

- 上升沿触发

- 低落沿触发

• 支持低功耗模式下运行,中断唤醒 MCU

下图为仿照电压比较器的功能框图:

VC仿照电压比较器将两路仿照旗子暗记比较时可配置多种参数,如VC1_CR0.EN和VC1_CR0.HYS位分别掌握VC使能及VC迟滞窗口配置。
VC1_CR0.POL掌握输出结果极性,后端还有窗口比较功能配置及数字滤波模块的配置。

VC1、VC2 的正负端输入选择,由掌握寄存器 VCx_CR0 的 INP、INN 位域选择,如下表所示:

仿照电压比较器支持 8路外部仿照旗子暗记输入,用户必须将对应 GPIO端口配置为仿照功能(GPIOx_ANALOG.PINy = 1)。
仿照电压比较器支持将比较结果从引脚输出,用户必须将对应 GPIO 端口配置为数字输出,同时选择功能复用。
VC1、VC2 支持的输入输出引脚如下表所示:

仿照电压比较器还具有延迟/相应韶光配置,从VC使能或VC的正负两端输入电压变革,到电压比较器输出精确比较结果的韶光,被定义为比较器的延迟/相应韶光。
延迟/相应韶光由掌握寄存器 VCx_CR0 的 RESP 位域配置,相应韶光值从200ns到20μs四档可调。

仿照电压比较器可进行输出极性选择,由掌握寄存器VCx_CR0的POL位域设置,POL为1,即正端大于负端时VCx输出低电平;POL为0,正端大于负端时VCx输出高电平。

仿照电压比较用具有数字滤波功能,电压比较器内置的数字滤波器,用于对电压比较器的输出旗子暗记进行数字滤波,由掌握寄存器VCx_CR1的FLTEN位域掌握,FLTEN为1使能数字滤波,FLTEN为0禁止数字滤波。

仿照电压比较器支持迟滞功能,利用迟滞功能后,比较器的输出结果不会随输入旗子暗记的变革而立即翻转,而是在两路输入旗子暗记的偏移值高于或低于迟滞阈值电压后才发生翻转。
迟滞阈值电压由掌握寄存器VCx_CR0的HYS位域决定,配置为00时,没有迟滞;配置为01时迟滞窗口大约10mV;配置为10时,迟滞窗口大约为20mV;配置为11时,迟滞窗口大约30mV。

仿照电压比较器支持窗口比较功能,可将VC1和VC2的比较结果进行异或操作后输出,由掌握寄存器VCx_CR0的WINDOW位域使能。
WINDOW为1时,VCx_OUTW旗子暗记为 VC1_OUTP旗子暗记与VC2_OUTP 旗子暗记的异或值;WINDOW为0时,VCx_OUTW旗子暗记与VCx_OUTP 旗子暗记电平相同。

仿照电压比较器支持BLANK窗口功能,在保持VCx模块事情的同时,如果想暂时停滞电压比较功能,或者为避免某些运用系统(比如电机掌握)中,被监测旗子暗记短韶光的合理颠簸造成电压比较器的输出电平发生不必要的翻转,本芯片的电压比较器增加了BLANK窗口功能,即当指定的外部触发条件启动BLANK窗口时,在设定的BLANK窗口期内,不进行电压比较,电压比较器的输出电平保持当前电平状态。
BLANK窗口期之后,电压比较器规复正常事情。
BLANK窗口持续韶光,由掌握寄存器 VCx_CR1的BLANKFLT位域配置。
BLANK窗口的触发启动条件,由掌握寄存器VCx_CR1的 BLANKCH1B、BLANKCH2B、BLANKCH3B位域配置,分别由ATIM的CH1B、CH2B、CH3B上升沿触发启动BLANK窗口。

CW32L083 的电压比较器支持在低功耗模式下事情,比较中断可将芯片从低功耗模式下唤醒。
设置掌握寄存器 VCx_CR0 的 IE 位域为 1,使能 VCx 中断,产生中断时状态寄存器 VCx_SR 的中断标志位 INTF 会 被硬件置 1,用户可以向 INTF 位写 0,打消中断标志。

设置掌握寄存器 VCx_CR1 的 HIGHIE、RISEIE、FALLIE 位域,可选择不同的中断触发办法:

• HIGHIE 为 1,VCx_OUT 输出旗子暗记高电平触发中断

• RISEIE 为 1,VCx_OUT 输出旗子暗记上升沿触发中断

• FALLIE 为 1,VCx_OUT 输出旗子暗记低落沿触发中断

根据上述内容先容以下例程,通过VC模块输出旗子暗记的上升沿/低落沿触发中断功能。

//VC I/O初始化

void VC_PortInit(void)

{

GPIO_InitTypeDef GPIO_InitStructure = {0};

//打开GPIO时钟

REGBITS_SET( CW_SYSCTRL->AHBEN, SYSCTRL_AHBEN_GPIOA_Msk );

//打开VC时钟

REGBITS_SET( CW_SYSCTRL->APBEN2, SYSCTRL_APBEN2_VC_Msk );

//set PA11 as output

GPIO_InitStructure.Pins = GPIO_PIN_11;

GPIO_InitStructure.Mode = GPIO_MODE_OUTPUT_PP;

GPIO_Init(CW_GPIOA, &GPIO_InitStructure);

//set PA11 as VC output

PA11_AFx_VC1OUT();

//set PA00 as VC1_CH0 P-INPUT

PA00_ANALOG_ENABLE();

//set PA01 as VC1_CH1 N-INPUT

PA01_ANALOG_ENABLE();

}

int main(void)

{

VC_InitTypeDef VC_InitStruct = {0};

VC_BlankTypeDef VC_BlankStruct = {0};

VC_OutTypeDef VC_OutStruct = {0};

//LED初始化

LED_Init();

//配置测试IO口

VC_PortInit();

//VC通道初始化

VC_InitStruct.VC_InputP = VC_InputP_Ch0;//将VC正端输入为PA00的输入旗子暗记

VC_InitStruct.VC_InputN = VC_InputN_Bgr1P2; //将VC负端输入设置为内部1.2V基准电压

VC_InitStruct.VC_Hys = VC_Hys_10mV;//将VC迟滞功能配置为10mV

VC_InitStruct.VC_Resp = VC_Resp_High;//VC反应速率为高速

VC_InitStruct.VC_FilterEn = VC_Filter_Enable;//VC数字滤波模块开启

VC_InitStruct.VC_FilterClk = VC_FltClk_RC150K;//VC数字滤波时钟为150KHz的RC振荡器

VC_InitStruct.VC_FilterTime = VC_FltTime_4095Clk;//VC的数字滤波韶光配置为滤波小于4095个时钟旗子暗记

VC_InitStruct.VC_Window = VC_Window_Disable;//VC窗口比较功能关闭

VC_InitStruct.VC_Polarity = VC_Polarity_Low;

VC1_ChannelInit(&VC_InitStruct);

//VC Blank窗口初始化

VC1VC2_BlankInit(&VC_BlankStruct);

VC1_BlankCfg(&VC_BlankStruct);

//VC输出连接初始化

VC1VC2_OutInit(&VC_OutStruct);

VC1_OutputCfg(&VC_OutStruct);

//VC中断设置

VC1_ITConfig(VC_IT_FALL | VC_IT_RISE, ENABLE);

VC1_EnableIrq(VC_INT_PRIORITY);

VC1_ClearIrq();

VC1_EnableChannel();

while (1)

{

if(gFlagIrq)

{

PC03_TOG();

gFlagIrq = FALSE;

}

}

}

//LED I/O初始化

void LED_Init(void)

{

GPIO_InitTypeDef GPIO_InitStructure = {0};

//打开GPIOC时钟

REGBITS_SET(CW_SYSCTRL->AHBEN, SYSCTRL_AHBEN_GPIOC_Msk);

GPIO_InitStructure.Pins = GPIO_PIN_2 | GPIO_PIN_3;

GPIO_InitStructure.Mode = GPIO_MODE_OUTPUT_PP;

GPIO_Init(CW_GPIOC, &GPIO_InitStructure);

//LED的初始状态为灭

PC02_SETLOW();

PC03_SETLOW();

}

//VC1的中断做事函数

void VC1_IRQHandler(void)

{

VC1_ClearIrq();

gFlagIrq = TRUE;

}

实验征象

利用电源向PA00输入电压,PA11被复用为VC1的比较结果输出引脚,当电压大于1.2V时, PA11输出高电平,当PA00输入电压小于1.2V时,PA11输出低电平,而当PA00的输入电压由1.2V以下变为1.2V以上或者从1.2V以上变为1.2V以下,LED的状态会发生翻转。

相关文章

快看!带芯片的公章来了!_印章_假证

郭林先容,印章在我国具有非常悠久的历史,在当代社会,印章是法人、自然人的主要信用凭据,广泛用于人们社会活动的各个领域和方方面面。印...

互联网 2025-01-08 阅读0 评论0

全日空航空,以卓越服务铸就品牌传奇

全日空航空(ANA),全称日本航空公司,是一家总部位于日本东京的全球性航空公司。自1929年成立以来,全日空航空始终秉承“安全第一...

互联网 2025-01-08 阅读0 评论0

公司架构图,构建高效组织的蓝图

在当今竞争激烈的市场环境中,企业要想取得成功,离不开高效的组织架构。公司架构图作为企业组织架构的直观展示,能够清晰地展现企业内部各...

互联网 2025-01-08 阅读0 评论0