0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

【笔记】提高ADC精度的4种方法(附代码)

撞上电子 2023-06-09 09:38 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

1. 参考电压不准确:

-使用外部参考电压:将外部参考电压连接到芯片的参考电压引脚,确保参考电压的稳定性和准确性。例如,连接一个精密参考电压芯片,如LM4040,来提供稳定的参考电压。

-校准参考电压:通过测量实际参考电压并校准内部参考电压的偏差来提高准确性。首先,使用一个已知准确的参考电压源进行测量,然后将测量结果与期望值进行比较,并校准相应的参数,如内部参考电压的缩放系数。

示例代码:

//使用外部参考电压HAL_ADCEx_InjectedReferenceVoltageConfig(&hadc1,ADC_EXTERNALTRIGCONV_T1_CC1,ADC_INJECTED_RANK_1,ADC_EXTERNALTRIGINJECCONVEDGE_RISING,VREF_EXT);// 校准参考电压float measuredVref = measureExternalReferenceVoltage(); // 测量实际参考电压float expectedVref = getExpectedReferenceVoltage(); // 获取期望参考电压float vrefCalibrationFactor = expectedVref / measuredVref; // 计算校准因子HAL_ADCEx_Calibration_SetValue(&hadc1,ADC_SINGLE_ENDED,ADC_CALIB_OFFSET,vrefCalibrationFactor);//应用校准因子

2. 输入信号干扰:

-硬件滤波:在输入信号线上添加低通滤波器电路,以滤除高频噪声和干扰。这可以通过在输入信号线和地之间添加电容器来实现。滤波器的截止频率应根据应用的要求进行选择。

-软件滤波:使用软件滤波算法对采样数据进行滤波处理。常用的软件滤波算法包括移动平均滤波、中值滤波等。根据应用的实际需求,选择适当的滤波算法来平滑采样数据。

示例代码:

//硬件滤波ADC_ChannelConfTypeDef sConfig = {0};sConfig.Channel = ADC_CHANNEL_1;sConfig.Rank = 1;sConfig.SamplingTime = ADC_SAMPLETIME_3CYCLES;sConfig.Offset = 0;HAL_ADC_ConfigChannel(&hadc1, &sConfig);// 软件滤波(移动平均滤波)#define FILTER_LENGTH 5uint32_t adcSamples[FILTER_LENGTH];uint32_t filteredValue = 0;
void filterADCValue(uint32_t newValue) { // 移动平均滤波 for (int i = FILTER_LENGTH - 1; i > 0; i--) { adcSamples[i] = adcSamples[i - 1]; filteredValue += adcSamples[i]; } adcSamples[0] = newValue; filteredValue += adcSamples[0]; filteredValue /= FILTER_LENGTH;}

3. 参考电压和输入信号之间的共模干扰:

-差分输入采样:使用差分输入模式进行采样,以抵消共模干扰。这需要使用带有差分输入的ADC芯片,并正确配置和连接差分输入信号。

-屏蔽共模干扰:在输入信号线和地之间添加屏蔽层,以减少共模干扰的影响。

示例代码:

// 差分输入采样ADC_ChannelConfTypeDef sConfig = {0};sConfig.Channel = ADC_CHANNEL_DIFFERENTIAL_1_2;sConfig.Rank = 1;sConfig.SamplingTime = ADC_SAMPLETIME_3CYCLES;sConfig.Offset = 0;HAL_ADC_ConfigChannel(&hadc1,&sConfig);
// 屏蔽共模干扰ADC_ChannelConfTypeDef sConfig = {0};sConfig.Channel = ADC_CHANNEL_1;sConfig.Rank = 1;sConfig.SamplingTime = ADC_SAMPLETIME_3CYCLES;sConfig.Offset = 0;sConfig.OffsetNumber = ADC_OFFSET_NONE;sConfig.OffsetSign = ADC_OFFSET_SIGN_POSITIVE;sConfig.OffsetShift = ADC_OFFSET_SHIFT_NONE;HAL_ADC_ConfigChannel(&hadc1,&sConfig);

4. ADC参考电压的稳定性:

-稳压器和滤波电容:使用稳压器和合适的滤波电容,以提供稳定的参考电压。选择低噪声、高稳定性的稳压器,并根据参考电压的负载要求选择合适的滤波电容。

-温度补偿:对参考电压进行温度补偿,以校正温度变化对参考电压的影响。通过使用温度传感器监测芯片的温度,并根据温度补偿曲线进行校准。

示例代码:

// 稳压器和滤波电容//在电路中使用低噪声、高稳定性的稳压器,并根据参考电压的负载要求选择合适的滤波电容。
// 温度补偿float measuredVref = measureExternalReferenceVoltage(); // 测量实际参考电压float expectedVref = getExpectedReferenceVoltage(); // 获取期望参考电压float vrefCalibrationFactor = expectedVref / measuredVref; // 计算校准因子float temperature = measureTemperature(); // 测量芯片温度float temperatureCompensation = getTemperatureCompensation(temperature); //计算补偿值
float calibratedVref = measuredVref * vrefCalibrationFactor * temperatureCompensation; // 根据校准因子和温度补偿计算校准后的参考电压setReferenceVoltage(calibratedVref); // 设置校准后的参考电压

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • adc
    adc
    +关注

    关注

    100

    文章

    7943

    浏览量

    556859
  • 电压
    +关注

    关注

    45

    文章

    5788

    浏览量

    122355
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    探索MAX182:高精度4通道12位ADC的卓越性能与应用

    探索MAX182:高精度4通道12位ADC的卓越性能与应用 在电子设计领域,模拟信号到数字信号的转换至关重要,而模数转换器(ADC)则是实现这一转换的核心组件。今天,我们将深入探讨MA
    的头像 发表于 04-16 14:30 63次阅读

    深度解析AD7124 - 4:高精度ADC的卓越之选

    深度解析AD7124 - 4:高精度ADC的卓越之选 在高精度测量应用的领域中,对模拟前端的性能要求愈发严苛。AD7124 - 4作为一款低
    的头像 发表于 03-30 10:35 275次阅读

    ADFS7124 - 4:高精度、低功耗 ADC 的卓越之选

    ADFS7124 - 4:高精度、低功耗 ADC 的卓越之选 在电子设计领域,对于高精度、低功耗的模拟 - 数字转换器(ADC)的需求日益增
    的头像 发表于 03-26 09:05 360次阅读

    AD4190 - 4:24位高精度ADC的卓越之选

    AD4190 - 4:24位高精度ADC的卓越之选 在当今的电子设计领域,对于高精度、高性能的模拟 - 数字转换器(ADC)的需求日益增长。
    的头像 发表于 03-25 11:55 222次阅读

    AD4170 - 4:高精度ADC的卓越之选

    AD4170 - 4:高精度ADC的卓越之选 在电子设计领域,高精度、高性能的模拟 - 数字转换器(ADC)至关重要。AD4170 -
    的头像 发表于 03-25 11:50 223次阅读

    AD4195 - 4:高精度多通道Sigma - Delta ADC的深度剖析

    AD4195 - 4:高精度多通道Sigma - Delta ADC的深度剖析 在当今电子设备不断追求高精度、多功能的时代,一款出色的模数转换器(A
    的头像 发表于 03-25 11:50 217次阅读

    AD4130 - 4:低功耗高精度 ADC 的卓越之选

    AD4130 - 4:低功耗高精度 ADC 的卓越之选 在电子设计领域,对于低功耗、高精度ADC 需求日益增长。AD4130 -
    的头像 发表于 03-25 11:25 167次阅读

    提高石英晶体振荡器相位噪声性能的4种方法

    如果你正在设计一款用于5G基站或精密雷达的振荡器,单纯靠一种方法是不够的。你需要“SC切割晶体 + 四点封装”作为基础,配合“电子补偿”电路来应对动态环境,同时辅以“超低噪声电源”和“精密温控”。这套组合拳,就是目前业界公认的“硬核”降噪方案。
    的头像 发表于 01-16 16:38 1373次阅读
    <b class='flag-5'>提高</b>石英晶体振荡器相位噪声性能的<b class='flag-5'>4</b><b class='flag-5'>种方法</b>

    ADS1675 24 位 4MSPS 高精度模数转换器(ADC)产品手册总结

    该ADS1675是一高速、高精度的模数转换器(ADC)。采用先进的三角标准(delta-sigma,)架构,运行速度可达4MSPS,交流性能和直流
    的头像 发表于 11-24 13:49 773次阅读
    ADS1675 24 位 <b class='flag-5'>4</b>MSPS 高<b class='flag-5'>精度</b>模数转换器(<b class='flag-5'>ADC</b>)产品手册总结

    有多少种方法可以进行频响曲线测量?

    。下面列出APx500软件包含的至少10种方法都可以进行频响曲线的测量:FrequencyResponseContinuousSweepAcousticRespo
    的头像 发表于 11-14 11:29 1173次阅读
    有多少<b class='flag-5'>种方法</b>可以进行频响曲线测量?

    有哪些方法可以提高电能质量在线监测装置的精度等级?

    落地的方法: 一、硬件升级:筑牢精度基础(核心前提) 硬件是精度的底线,需匹配目标精度等级的硬件指标: 核心采样部件升级 ADC 芯片:更换
    的头像 发表于 11-12 09:58 754次阅读

    干扰可以提高测量精度,是真的吗?

    ,干扰是测量的天敌,干扰会降低测量精度,严重情况会导致测量不能正常进行,就这个角度而言,干扰可以提高测量精度,是假的! 然而,是否总是如此呢?是否存在一情况,干扰不但不会降低测量
    的头像 发表于 08-04 09:28 821次阅读
    干扰可以<b class='flag-5'>提高</b>测量<b class='flag-5'>精度</b>,是真的吗?

    提高SEA模型PBNR计算精度方法及策略

    方案即声学包对整车噪声传递的影响,同时克服了NR方法中由于声源特性、声源处麦克风安装位置等因素给测试带来的不利影响,PBNR已广泛用应用于整车SEA模型对标及声学包目标的设定及分解工作中,故而在数字开发阶段,提高整车SEA 模型的PBNR计算
    的头像 发表于 06-30 09:30 1521次阅读
    <b class='flag-5'>提高</b>SEA模型PBNR计算<b class='flag-5'>精度</b>的<b class='flag-5'>方法</b>及策略

    EEPROM芯片内部的1路14bit ADC, ADC精度受使用通道数和采样率是怎么样的?

    影响:温度变化会影响ADC的性能,包括偏置误差、线性误差等。因此,温度补偿或使用高精度的温度传感器校准是提高精度的有效方法
    发表于 06-04 09:04

    精选好文!噪声系数测量的三种方法

    器件噪声系数的三种方法。每种方法都有其优缺点,适用于特定的应用。下表是三种方法优缺点的总结。理论上,同一个射频器件的测量结果应该一样,但是由于射频设备的限制(可用性、精度、频率范围、噪
    发表于 05-07 10:18