久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 18713|回復: 3
收起左側

怎樣用stm32(F103系列是12位ADC)實現14位精度的AD采樣?

[復制鏈接]
ID:105323 發表于 2016-2-23 17:33 | 顯示全部樓層 |閱讀模式
重點在最后一段(看懂就行了)
可采用過采樣技術。過采樣技術是一種以犧牲采樣速度來提高ADC分辨率的技術。如 果STM32的12位AD,每秒采集10個數據,即采樣率為:10/秒。根據過采樣技術,每提高1位ADC分辨率,需要增加4倍的采樣率。從12位AD提 高到14位AD,一共提高了2位,所以需要把采樣率提高2 * 2 * 2 * 2 = 16倍。原來在100mS之內只采集一個數據,現在需要在100mS之內采集16個數據了。然后,我們把這16個數據累加,再把累加值右移2位,這樣就得 到STM32過采樣之后的14位ADC。
    需要注意的是,過采樣技術會限制輸入信號的頻率。根據采樣定律,采樣率最少是輸入信號的2倍才能將信號還原。當需要提高n位的ADC分辨率時,采樣率又得 提高4*n倍。STM32的12位ADC的最高采樣率為1MHz,如果要達到14位的ADC分辨率,那么輸入信號的頻率就不能超過:1M/2/15 = 31.25KHz。
    最后提醒:分辨率的提升到14位并不是精度也能提升14位。我自己試過提升到16位的分辨率,但是精度大概只有13、14位的樣子。
STM32的精度不可能提高的太多,要提高只能在分辨率上想辦法,提高分辨率間接提高精度,但是這是由一個度的,跟你的要采樣的外部信號的頻率、CPU的處理速度等等都是有關系的。 
過采樣只能提高分辨率,精度不是隨便可以提高的。要不然0832不就能替代所有的AD芯片了。 
精度通常是指準確度。指測量值與實際值的差異性。影響精度的因素很多。如分辨力,線性度等。 
分辨率可以通過分辨力來理解。8bit的分辨力為1/256,10bit時為1/1024,但實際還要通過量程轉換成具體的值,不能沒有量綱或單位(量綱與單位是不同的概念)。 
分辨率通常用百分比來表示,而分辨力則用絕對值來表示。“5/256 =0.01953125V”指的是分辨力而不是分辨率。而這樣的分辨能力僅僅是指理論能力而不是實際能力。因為實際能力還要包括非線性因素引起“干擾”。 
總結:分辨率容易提升到24位,但是精度能到24位的要求就很高了。市面上的16、24位AD轉換芯片一般指的是分辨率,而不是精度。 
STM32的adc如果要使用在精度要求高的地方,如3級電子稱、精準計量儀表的話,stm32就比較勉強了。建議換外置的ADC。
到底怎樣使用過采樣法來提高AD采樣精度?
以下的思路使用于任何單片機: 
比如設個定時器每個10us觸發下STM32的ADC的采用,采到256個后將256個數據累加 求和,如果當12位ADC用就除以256,13位用除以128,14位用除以64,15位用除以32,16位用除以16。得到結果后存放緩沖區中,再增加 一段軟件濾波程序就OK了! 
例如下面這段程序:
#define VccTmpAdcVal  16384//14位ADC
VREF_VAL=VccVal*ADC_FilterChannel[inrefv]/VccTmpAdcVal ; //內部參考電壓對應的電壓值 VREF_VAL=3.3*內部基準電壓的十六進制ADC值/16384

void FileterADC(void)
{
u8 i,j,k;
    u32 sum;
    u16 temp; 
vu16 AD_Value_T[N][M];
 
for(i=0; i
  for(j=0; j
{
AD_Value_T[j][i]=AD_Value[j][i];
}

    for(k=0; k
for(i=N; i>0; i--)//博客不顯示出來 一定要顯示出來這句
   for(j=0; j<=i; j++)
  {
   if(AD_Value_T[j][k] > AD_Value_T[j+1][k] )
 {  
  temp=AD_Value_T[j][k] ;
  AD_Value_T[j][k] =AD_Value_T[j+1][k];
  AD_Value_T[j+1][k]=temp;  
  }
}
for(i=0; i
{
 for(j=30,sum=0; j<70; j++)       
 
sum+=AD_Value_T[j][i] ;  //把第一列的數據從第30位到第69位共40位 求和
  }
  ADC_FilterChannel[i]=sum/10;   //取平均//當14位ADC使用時,累加和要除以(采樣個數右移兩位)//sum/(40>>2)
}

}
回復

使用道具 舉報

ID:371527 發表于 2018-11-24 17:11 | 顯示全部樓層
很好的提升分辨力方法,學習了
回復

使用道具 舉報

ID:433680 發表于 2018-11-27 09:23 | 顯示全部樓層
個人經驗先加軟件濾波程序會比好。
回復

使用道具 舉報

ID:275671 發表于 2020-3-3 12:05 | 顯示全部樓層
精度是不能提高的,你說的提高到13-14位我猜是指穩定的分辨率
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩精品一区二区三区视频播放 | 日韩免费在线观看视频 | 久久久久国产精品一区二区 | 亚欧洲精品在线视频免费观看 | 最新一级毛片 | 亚洲视频免费观看 | 九九色综合 | 日韩国产中文字幕 | 龙珠z在线观看 | 欧美一级全黄 | 九九视频网 | 亚洲电影第1页 | 一区二区三区视频在线免费观看 | 夜夜爽99久久国产综合精品女不卡 | 久草久 | 黄色日批视频 | 欧美一区二区网站 | 成人免费精品视频 | 日韩中字幕| 久久av一区二区三区 | 久久岛国 | 久久久无码精品亚洲日韩按摩 | 成人av大全 | 精品在线一区二区 | 91国自视频 | 国产日韩欧美一区二区 | 国产精品黄 | 亚洲一区 中文字幕 | 亚洲国产精品自拍 | 色橹橹欧美在线观看视频高清 | 亚洲免费久久久 | 精品久久久久久久久久久久久久久久久 | 国产精品久久久久久久久久久久 | 在线国产视频 | 日韩中文字幕在线观看视频 | 日本精品久久久久久久 | 亚洲顶级毛片 | 国产一区二区三区四区在线观看 | 99国产精品久久久久 | 91免费在线 | 一区二区中文字幕 |