0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

【筆記】提高ADC精度的4種方法(附代碼)

撞上電子 ? 2023-06-09 09:38 ? 次閱讀

1. 參考電壓不準確:

-使用外部參考電壓:將外部參考電壓連接到芯片的參考電壓引腳,確保參考電壓的穩(wěn)定性和準確性。例如,連接一個精密參考電壓芯片,如LM4040,來提供穩(wěn)定的參考電壓。

-校準參考電壓:通過測量實際參考電壓并校準內部參考電壓的偏差來提高準確性。首先,使用一個已知準確的參考電壓源進行測量,然后將測量結果與期望值進行比較,并校準相應的參數(shù),如內部參考電壓的縮放系數(shù)。

示例代碼:

//使用外部參考電壓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. 輸入信號干擾:

-硬件濾波:在輸入信號線上添加低通濾波器電路,以濾除高頻噪聲和干擾。這可以通過在輸入信號線和地之間添加電容器來實現(xiàn)。濾波器的截止頻率應根據(jù)應用的要求進行選擇。

-軟件濾波:使用軟件濾波算法對采樣數(shù)據(jù)進行濾波處理。常用的軟件濾波算法包括移動平均濾波、中值濾波等。根據(jù)應用的實際需求,選擇適當?shù)臑V波算法來平滑采樣數(shù)據(jù)。

示例代碼:

//硬件濾波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參考電壓的穩(wěn)定性:

-穩(wěn)壓器和濾波電容:使用穩(wěn)壓器和合適的濾波電容,以提供穩(wěn)定的參考電壓。選擇低噪聲、高穩(wěn)定性的穩(wěn)壓器,并根據(jù)參考電壓的負載要求選擇合適的濾波電容。

-溫度補償:對參考電壓進行溫度補償,以校正溫度變化對參考電壓的影響。通過使用溫度傳感器監(jiān)測芯片的溫度,并根據(jù)溫度補償曲線進行校準。

示例代碼:

// 穩(wěn)壓器和濾波電容//在電路中使用低噪聲、高穩(wěn)定性的穩(wěn)壓器,并根據(jù)參考電壓的負載要求選擇合適的濾波電容。
// 溫度補償float measuredVref = measureExternalReferenceVoltage(); // 測量實際參考電壓float expectedVref = getExpectedReferenceVoltage(); // 獲取期望參考電壓float vrefCalibrationFactor = expectedVref / measuredVref; // 計算校準因子float temperature = measureTemperature(); // 測量芯片溫度float temperatureCompensation = getTemperatureCompensation(temperature); //計算補償值
float calibratedVref = measuredVref * vrefCalibrationFactor * temperatureCompensation; // 根據(jù)校準因子和溫度補償計算校準后的參考電壓setReferenceVoltage(calibratedVref); // 設置校準后的參考電壓

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • adc
    adc
    +關注

    關注

    99

    文章

    6528

    瀏覽量

    545330
  • 電壓
    +關注

    關注

    45

    文章

    5632

    瀏覽量

    116066
收藏 人收藏

    評論

    相關推薦

    ADC精度有沒有具體計算的方法 ?

    我想問一下ADC精度有沒有具體計算的方法 ?
    發(fā)表于 01-10 06:00

    如何提高ads1274采集精度?

    ,只是精度較低為16位。 目前希望提高采集精度,想請教一下,下面方法是否能提高采集精度: 犧牲輸
    發(fā)表于 12-23 07:29

    毫米波雷達如何提高測距精度

    毫米波雷達提高測距精度方法可以從多個方面入手,以下是一些主要的方法: 一、改進信號處理技術 采用高級計算機算法 : 在目標檢測和跟蹤等方面,高級的計算機算法可以實現(xiàn)目標的精確定位、精
    的頭像 發(fā)表于 12-03 17:33 ?664次閱讀

    如何校準adc提高精度

    校準ADC(模數(shù)轉換器)以提高精度是確保系統(tǒng)精確采集模擬信號的重要步驟。以下是一些常見的校準ADC提高精度方法: 一、硬件校準
    的頭像 發(fā)表于 10-31 11:10 ?1395次閱讀

    最大限度地提高GSPS ADC中的SFDR性能:雜散源和Mitigat方法

    電子發(fā)燒友網站提供《最大限度地提高GSPS ADC中的SFDR性能:雜散源和Mitigat方法.pdf》資料免費下載
    發(fā)表于 10-10 09:16 ?0次下載
    最大限度地<b class='flag-5'>提高</b>GSPS <b class='flag-5'>ADC</b>中的SFDR性能:雜散源和Mitigat<b class='flag-5'>方法</b>

    過采樣提高12位ADC精度

    過采樣提高12位ADC精度 背景: 過去傳統(tǒng)的按鍵都是機械按鍵,隨著技術的發(fā)展也出現(xiàn)了觸摸按鍵,但是機械按鍵不能泡水,壽命也比較短。觸摸按鍵也沒法有很多水或泡沫等,金屬面板還不能使用。 壓感就應
    發(fā)表于 09-19 19:29

    過采樣提高12位ADC精度在STM32主控上的實現(xiàn)(電路及代碼)

    ,大概計算12位ADC的1ADC = 805uV。沒法識別幾十或幾百uv的壓感信號,所以得增加識別精度。 3、用過采樣方式來提高:軟件上,把12bitADC擴展為16bit數(shù)據(jù),有效位
    發(fā)表于 09-13 15:58

    MCUXpresso IDE下在線聯(lián)合調試雙核MCU工程的三種方法

    大家好,我是痞子衡,是正經搞技術的痞子。今天痞子衡給大家分享的是MCUXpresso IDE下在線聯(lián)合調試i.MXRT1170雙核工程的三種方法。
    的頭像 發(fā)表于 08-08 15:18 ?642次閱讀
    MCUXpresso IDE下在線聯(lián)合調試雙核MCU工程的三<b class='flag-5'>種方法</b>

    pwm脈寬調制的四種方法有哪些

    于電機控制、LED調光、音頻處理等領域。以下是四常見的PWM脈寬調制方法: 固定頻率PWM(Fixed-Frequency PWM) 固定頻率PWM是一最基本的PWM調制方法。在這
    的頭像 發(fā)表于 08-08 15:10 ?1603次閱讀

    人臉檢測的五種方法各有什么特征和優(yōu)缺點

    人臉檢測是計算機視覺領域的一個重要研究方向,主要用于識別和定位圖像中的人臉。以下是五常見的人臉檢測方法及其特征和優(yōu)缺點的介紹: 基于膚色的方法 特征:基于膚色的方法主要利用人臉膚色與
    的頭像 發(fā)表于 07-03 14:47 ?927次閱讀

    芯海CS32F0XXADC外設模塊應用筆記

    本應用筆記旨在展示使用CS32FOxx微控器,提高A/D轉化精度的應用。幫助ADC模塊用戶了解 CS32微控器提供的一些高級應用并加快開發(fā)周期。所介紹的每種模式都提供一個應用示例,以方
    發(fā)表于 05-16 14:58

    芯海通用 MCU 應用筆記:在 MDK 開發(fā)環(huán)境下代碼重定向到 RAM 執(zhí)行的幾種方法

    為 V5.37.0.0。本文檔介紹方法適用于芯??萍?MCU。*附件:應用筆記:在MDK開發(fā)環(huán)境下代碼重定向到RAM執(zhí)行的幾種方法.pdf
    發(fā)表于 05-16 11:58

    芯海應用筆記:CS32F0XX ADC外設模塊指導

    本應用筆記旨在展示使用 CS32F0xx 微控器,提高 A/D 轉化精度的應用。幫助 ADC 模塊用戶了解CS32 微控器提供的一些高級應用并加快開發(fā)周期。所介紹的每種模式都提供一個應
    發(fā)表于 05-16 10:49

    ADC SC2245(LTC2245)助力提高配網行波測距裝置精度

    ADC SC2245(LTC2245)助力提高配網行波測距裝置精度
    的頭像 發(fā)表于 04-25 09:30 ?770次閱讀
    <b class='flag-5'>ADC</b> SC2245(LTC2245)助力<b class='flag-5'>提高</b>配網行波測距裝置<b class='flag-5'>精度</b>

    三菱M70 PLC增加注解的三種方法簡析

    三菱M70 PLC增加注解的三種方法
    的頭像 發(fā)表于 02-26 09:59 ?1134次閱讀
    三菱M70 PLC增加注解的三<b class='flag-5'>種方法</b>簡析