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

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

3天內(nèi)不再提示

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

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

1. 參考電壓不準確:

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

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

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

    關注

    98

    文章

    6402

    瀏覽量

    543848
  • 電壓
    +關注

    關注

    45

    文章

    5540

    瀏覽量

    115498
收藏 人收藏

    評論

    相關推薦

    如何校準adc提高精度

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

    過采樣提高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

    pwm脈寬調(diào)制的四種方法有哪些

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

    芯海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)助力提高配網(wǎng)行波測距裝置精度

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

    傳統(tǒng)激光功率衰減的三種方法

    傳統(tǒng)激光功率衰減通常使用以下三種方法,分別為中性密度衰減片衰減法、偏振衰減法、鍍膜光學鏡片衰減法。
    的頭像 發(fā)表于 01-20 10:42 ?1640次閱讀
    傳統(tǒng)激光功率衰減的三<b class='flag-5'>種方法</b>

    編寫PLC程序的7種方法

    種方法是最原始最初級的寫法,也是最簡單的一寫法,比如第一步置位M0,M0接通后控制某個結果,結果實現(xiàn)后復位M0,再置位M1,依次進行l(wèi)流程控制。這種寫法通用所有的PLC。
    發(fā)表于 01-02 11:08 ?1.2w次閱讀
    編寫PLC程序的7<b class='flag-5'>種方法</b>

    adc的參考電壓與轉換結果的精度有何關系

    的定義、影響精度的因素以及提高精度方法。 首先,讓我們回顧一下ADC的基本原理。ADC是一
    的頭像 發(fā)表于 12-28 10:42 ?3001次閱讀

    檢測電容常見的4種方法 使用萬用表如何測電容是否損壞?

    檢測電容常見的4種方法 使用萬用表如何測電容是否損壞? 檢測電容的四種方法: 1. 直流電橋法: 直流電橋法是常用的測量電容的方法之一。它基于電容器在直流電路中的充放電特性。測量過程中
    的頭像 發(fā)表于 11-29 16:15 ?4883次閱讀

    linux網(wǎng)絡配置的3種方法

    Linux是一流行的操作系統(tǒng),廣泛應用于服務器和網(wǎng)絡設備中。Linux系統(tǒng)提供了多種方法來配置網(wǎng)絡連接,使得網(wǎng)絡設置更加靈活和可定制。本文將會介紹Linux網(wǎng)絡配置的三種方法,包括命令行方式
    的頭像 發(fā)表于 11-27 14:33 ?4203次閱讀

    高速ADC的特征測試和生產(chǎn)測試方法評估筆記

    電子發(fā)燒友網(wǎng)站提供《高速ADC的特征測試和生產(chǎn)測試方法評估筆記.pdf》資料免費下載
    發(fā)表于 11-27 10:28 ?7次下載
    高速<b class='flag-5'>ADC</b>的特征測試和生產(chǎn)測試<b class='flag-5'>方法</b>評估<b class='flag-5'>筆記</b>

    修復鋰電池的三種方法

    電子發(fā)燒友網(wǎng)站提供《修復鋰電池的三種方法.doc》資料免費下載
    發(fā)表于 11-15 10:40 ?5次下載
    修復鋰電池的三<b class='flag-5'>種方法</b>