CW32L012电压电流表设计思路

CW32L012C8T6 定位为电机控制、电源管理、智能仪表、工业传感器等领域的高性价比解决方案,尤其适合需要高精度模拟信号处理 + 复杂数字控制的混合信号系统,ARM Cortex-M0+ 内核:主频高达96MHz,提供高效运算能力,兼顾性能与功耗平衡。

单芯片完整混合信号处理能力,无需额外模拟芯片:

1.png

这篇文章以及系列文章就是介绍使用这款芯片的模拟外设,尽可能减少外围电路,使用少量的外围器件,以极低的成本设计出一款智能万用表,实现精度高,功能全,成本低 ,智能化的万用表。

首先我们来到电压电流表的第一部分,就是直流电压表的设计,整体采用“电压采集→信号调理→模数转换→数据处理→显示输出”的模块化架构,有核心功能均通过CW32L012C8T6的特设外设实现,无需外接复杂模拟电路。其中,信号调理依托芯片内置OPA,模数转换依靠双12位ADC,数据处理由Cortex-M0+内核配合硬件加速单元完成,显示输出通过芯片通信外设驱动,电源管理借助LVD电压检测与低功耗模式(如果有需要),因为我本次是使用的官方开发板来实验的,所以并未使用电源管理。这样形成完整的电压测量闭环,简化电路设计并降低BOM成本。

电压采集与信号调理模块(核心依托:双路轨到轨OPA),MCU电源供电采用的是3.3V,那么OPA的正向输入电压最高为3.3V,那么待测的电压就是0-3.3V,这显然是不符合电压表的测量量程的,电压表能测量大范围的电压其实是依靠电阻分压完成的,将大电压通过分压比合理分压到3.3V以内,再通过OPA的正向输入,在软件中通过分压比进行计算就能得到准确的电压,这就是大电压的测量,在这里将大电压已经合理分压到3.3V以内了,为什么还需要通过OPA的正向输入?这就需要给大家介绍OPA的三种模式了:

内部程控放大模式

原理:利用CW32L012C8T6 OPA内置的可编程增益放大器(PGA),无需外接反馈/输入电阻,通过芯片寄存器配置增益,输入信号接入OPA同相/反相端,输出经内部反馈回路形成闭环,实现信号放大,属于芯片内置增益调节模式。

优点:

1. 无需外接电阻,简化硬件电路、降低BOM成本,缩小PCB体积;

2. 增益通过寄存器程控配置,调节便捷,无需改动硬件;

3. 依托芯片OPA校准功能,失调电压小,放大精度高;

4. 适配芯片低功耗特性,程控调节时不增加额外功耗。

缺点:

1. 增益范围受芯片PGA限制(如固定几档增益),无法实现任意增益调节;

2. 仅支持放大功能,无法实现信号衰减;

3. 对输入信号幅度有要求,超出范围易出现饱和失真,需提前预处理。

电压跟随器模式

原理:属于芯片OPA内置闭环模式,无需外接任何电阻,将OPA输出端直接反馈至反相输入端,同相输入端接入输入信号,闭环增益恒为1,仅实现信号的缓冲与隔离,无放大/衰减功能,是内部程控放大模式的特殊增益(增益=1)情况。

优点:

1. 电路最简单,无需外接任何元器件,最大程度简化设计;

2. 输入阻抗极高(MΩ~TΩ级),输出阻抗极低,有效隔离前级与后级,避免后级负载影响前级信号;

3. 信号无相位失真、无幅度失真,传输延迟小,响应速度快;

4. 适配芯片轨到轨输入输出特性,信号幅度可接近电源电压范围。

缺点:

1. 无任何放大/衰减能力,仅能做信号缓冲,无法调理信号幅度;

2. 抗干扰能力弱,无增益带来的干扰抑制效果,易受环境噪声影响;

3. 输出电压完全跟随输入电压,无法拓展信号动态范围。

外部独立运放模式

原理:将芯片OPA作为独立运放使用,脱离内置PGA,通过外接输入电阻、反馈电阻等元器件,自主配置成同相放大、反相放大等组态,增益、反馈方式完全由外部电路决定,芯片仅提供OPA核心放大单元。

优点:

1. 灵活性极高,可根据需求配置任意增益(放大/衰减)、任意反馈组态;

2. 不受芯片PGA增益范围限制,适配不同幅度、不同类型的信号调理需求;

3. 可通过外接高精度电阻、滤波元器件,进一步提升信号调理精度和抗干扰能力;

4. 适配复杂场景,可与外部电路联动,实现定制化信号处理。

缺点:

1. 需外接电阻、电容等元器件,增加硬件复杂度和BOM成本;

2. 调试难度增加,需匹配外部元器件参数,避免自激、失真;

3. 外接元器件的精度、温漂会影响OPA整体性能,需选用高品质元器件;

4. 相比内部模式,功耗略有增加(受外接电路影响)。

其实这就是用到了电压跟随器模式,做前后级隔离,减少干扰的。

如果是特别小的电压,比如只有几个mV的电压,直接使用ADC进行测量是测量不到这么微小的电压的,那么我们就需要将微弱的电压放大到ADC可以测量的范围,再通过软件计算除以相应的放大的倍数,就可以测量到这个微弱电压,这款OPA可以放大的倍数为2,4,8,16,32,我使用的是低于10mV的电压就放大8倍进行测量,10mV以上的电压就通过软件切换到电压跟随器模式。

模数转换模块(核心依托:双12位ADC),正常的配置是选用其中一路ADC作为主采样通道,另一路选用参考电压芯片内置1.2V基准源(BGR1p2),配置为双通道连续采样模式,主采样通道接入OPA输出,这样就能获得OPA调理以后的数据,我一开始也是这样设计的,但是经过实验使用BGR作为参考电压是会放大误差的,因为BGR内部电压会有噪声波动,ADC采集数据也会有2个单位左右的波动,参考源加上ADC的双重波动,在测量mV级电压误差极大,而且这种误差是随机的,不可控,所以我们需要固定的参考源,最好是一个固定的参考源,这就需要引入对ADC进行标定的概念,我们用外出电压表测量出准确的接入芯片的电源电压,比如我测到的电源电压为3.296V,那么在软件中12位ADC的4095个单位,对应的参考值就是一个固定的3.296V,ADC的配置也只需要配置为单通道连续采样了,这样我们就获得了一个稳定的参考源,但是这种方法的弊端就是,采用不同的电压管理就需要对芯片的电源进行标定一次,记录到芯片的FLASH中,接着可以在软件中使用取极值平均滤波尽可能的消除ADC的抖动,这样可以获得一个较稳定的原始数据,通过对原始数据的转换,获得了一个准确的电压值,最后通过大量的数据验证,使用我们这款芯片测量电压,和使用准确的电压表测量电压,通过表格做一个数据的对比,找到ADC的偏差值,这个误差是系统误差,可以消除。

数据处理模块(核心依托:Cortex-M0+内核+硬件加速单元),利用EAU扩展算术运算单元,优化除法、乘法等数学运算,减轻CPU负担,提升数据处理速度;如果电压表不能实现自动切换挡位,就不能叫智能电压表,在软件中,默认时刻都需要切换到最大量程的范围,最大分压比得到的电压太小就切换到更小的分压比,通过软件判断测量值的大小,逐步切换到不使用分压比,极小的电压信号就切换到OPA的程控放大模式,这样就实现的挡位的自动切换,最后将测量到的数据通过I2C,SPI通讯发生到显示屏上显示。

来源:CW32生态社区

免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。