发新帖本帖赏金 50.00元(功能说明)我要提问
12下一页
返回列表
打印
[CW32F030系列]

【CW32F030CxTx StartKit测评】07.低电压检测器(LVD)实测与问题反馈

[复制链接]
2573|31
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
CW32F030系列MCU带有低电压检测(LVD)功能,用于监测VDDA电源电压或外部引脚输入电压,当被监测电压与LVD阈值的比较结果满足触发条件时,将产生LVD中断或复位信号,通常用于处理一些紧急任务。

我们在产品上使用这一功能来检测外部的输入电压,当输入电压降低到一个数值时,我们需要通过软件对外部的硬件电路进行控制,起到保护的作用;当达到设置数值之上的电压时,我们再将对应的外部硬件电路功能打开,所以这一功能对我们产品来说很重要,所以专门测试了一下LVD功能。


主要特性
  • 4路监测电压源:VDDA电源电压、PA00、PB00、PB11引脚输入
  • 16阶阈值电压,范围2V~3.67V
  • 3种触发条件,可以组合使用:电平触发(电压低于阈值)、下降沿触发(电压跌落到阈值以下的下降沿)、上升沿触发(电压回升到阈值以上的上升沿)
  • 可触发产生中断或复位信号,二者不能同时使用
  • 8阶滤波可配置
  • 支持迟滞功能
  • 支持低功耗模式下运行,中断唤醒MCU


LVD功能框图


LVD阈值电压


LVD测试实现
将LVD的监测源设置为VDDA,参照CW32F030CxTx StartKit开发板原理图,我们断开J23跳帽,然后使用数字稳压源对其进行供电,这样方便调整VDDA的电压;此外将LVD触发动作配置为中断方式,并使能中断;触发条件为上升沿和下降沿组合使用;通过配置选择不同的阈值电压,结合数字稳压电源的供电调节来测试CW32F030的LVD实际值,具体的代码和测试结果如下所示:
原理图


硬件环境


实现代码
void LVD_Configuration(void)
{
    LVD_InitTypeDef LVD_InitStruct;

    LVD_InitStruct.LVD_Action     = LVD_Action_Irq;
    LVD_InitStruct.LVD_Source     = LVD_Source_VDDA;
    LVD_InitStruct.LVD_Threshold  = LVD_Threshold_3p1V;
    LVD_InitStruct.LVD_FilterEn   = LVD_Filter_Enable;
    LVD_InitStruct.LVD_FilterClk  = LVD_FilterClk_RC150K;
    LVD_InitStruct.LVD_FilterTime = LVD_FilterTime_4095Clk;
    LVD_Init(&LVD_InitStruct);

    LVD_TrigConfig(LVD_TRIG_FALL | LVD_TRIG_RISE, ENABLE);
    LVD_EnableIrq(LVD_INT_PRIORITY);
    LVD_ClearIrq();

    SysTickDelay(1);    LVD_Enable();
}

void LVD_IRQHandler(void)
{
    printf("\r\n");
    if(LVD_GetFilterResult() != FALSE) printf("\r\nFLTV : H");
    else                               printf("\r\nFLTV : L");
    printf("\r\n");

    LVD_ClearIrq();
}


测试结果
设置阈值电压
触发下限
触发上限
LVD_Threshold_2p0V       
2.46
2.51
LVD_Threshold_2p11V
2.58
2.65
LVD_Threshold_2p22V
2.72
2.79
LVD_Threshold_2p33V
2.86
2.93
LVD_Threshold_2p44V
3.01
3.06
LVD_Threshold_2p55V
3.13
3.19
LVD_Threshold_2p66V
3.28
3.33
LVD_Threshold_2p77V
3.41
3.47
LVD_Threshold_2p88V
3.56
3.61
LVD_Threshold_2p99V
3.68
3.73
LVD_Threshold_3p1V       
3.82
3.87
LVD_Threshold_3p21V
3.95
4.01
LVD_Threshold_3p32V
4.10
4.15
LVD_Threshold_3p43V
4.23
4.28
LVD_Threshold_3p54V
4.37
4.42
LVD_Threshold_3p65V
4.50
4.55


问题反馈
在CW32F030库函数中宏定义的阈值电压与手册上的不一致,在实测结果时手册上的阈值电压也完全对应不上,且偏差比较大;想问题一下这是软件配置不对,还是单个芯片个体差异导致的,还是说LVD功能就是这样,只能参考不能实例精确使用?


附件
软件工程源代码: Template.zip (7.27 MB)

使用特权

评论回复

打赏榜单

21ic小管家 打赏了 50.00 元 2022-08-10
理由:贡献奖

沙发
HillWoo| | 2022-7-26 18:02 | 只看该作者
赞一个。你测试使用的芯片为早期的工程样片,缺少FT流程,因此存在较大的差异。请私信联系方式,我们会提供量产后的开发板供你测试。

使用特权

评论回复
板凳
deliahouse887| | 2022-8-19 20:14 | 只看该作者
中断代码可以执行多长?

使用特权

评论回复
地板
plsbackup| | 2022-8-19 22:31 | 只看该作者
这个触发中断的响应速度怎么样   

使用特权

评论回复
5
1988020566| | 2022-8-21 21:24 | 只看该作者
保存参数使用可以的。   

使用特权

评论回复
6
aspoke| | 2022-9-5 16:52 | 只看该作者
LVD有什么作用呢

使用特权

评论回复
7
Bowclad| | 2022-9-5 21:41 | 只看该作者
同问,lvd有什么用

使用特权

评论回复
8
lzmm| | 2022-9-8 13:12 | 只看该作者
内部集成的功能吗

使用特权

评论回复
9
uptown| | 2022-9-10 21:41 | 只看该作者
cw32兼容stm32哪个芯片呢

使用特权

评论回复
10
小小蚂蚁举千斤| | 2022-9-29 08:32 | 只看该作者
LVD实际使用意义是什么呢

使用特权

评论回复
11
51xlf| | 2022-10-1 15:25 | 只看该作者
LVD的功能是检测单片机VDD / VDDA 引脚上的供电电压是否低于低电压检测阈值

使用特权

评论回复
12
aspoke| | 2022-10-1 15:44 | 只看该作者
电压检测监视内部电源电压               

使用特权

评论回复
13
cyclefly| | 2022-10-3 10:38 | 只看该作者
基准是内部的么?
稳定性怎么样

使用特权

评论回复
14
Bowclad| | 2022-10-4 18:50 | 只看该作者
触发中断的响应速度怎么样

使用特权

评论回复
15
jf101| | 2022-10-24 22:10 | 只看该作者
请问实现迟滞功能和在低功耗模式下运行,中断唤醒MCU功能容易实现嘛

使用特权

评论回复
16
wengh2016| | 2022-12-4 22:13 | 只看该作者
最大支持几伏电压的监测              

使用特权

评论回复
17
lzbf| | 2022-12-4 22:23 | 只看该作者
如果外部电压不稳定,这个可以解决的吗?

使用特权

评论回复
18
zerorobert| | 2022-12-9 21:53 | 只看该作者
是不是可以使用超级电容供电呢?              

使用特权

评论回复
19
mikewalpole| | 2022-12-10 09:36 | 只看该作者
可以产生低电压中断吗?              

使用特权

评论回复
20
zhanan| | 2022-12-27 15:17 | 只看该作者
mikewalpole 发表于 2022-12-10 09:36
可以产生低电压中断吗?

复位和中断二选一,LVD->CR0.ACTION=0中断,=1复位

使用特权

评论回复
发新帖 本帖赏金 50.00元(功能说明)我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:上海灵动微电子股份有限公司资深现场应用工程师
简介:诚信·承诺·创新·合作

69

主题

2998

帖子

31

粉丝