CW32F030是武漢芯源半導體推出的基于Cortex?-M0+內核32位微處理器,內部集成一個 12 位精度,最高 1M SPS 轉換速度的逐次逼近型模數轉換器;最多支持16通道轉換;支持4路參考電壓源選擇:VDDA、ExRef、內置1.5V參考電壓、內置2.5V參考電壓;同時內置信號跟隨器,能滿足高阻抗信號測量需求。
功能框圖如下:
在實際應用中ADC采樣精度性能指標受多因素影響,要達到ADC的高性能,需要妥善處理硬件和軟件。
硬件方面
1.穩定的參考電壓源,推薦選用電池或者高性能的穩壓源給VDDA供電;
2.VDDA引腳并接4.7uF和100nF陶瓷電容到GND,最大程度消除噪聲干擾;
3.如條件許可,應將信號源和參考電壓源以屏蔽線接入到ADC輸入通道和VDDA引腳;
4.靠近芯片的ADC輸入通道引腳附近增加100nF陶瓷電容到GND,消除空間的輻射干擾。
軟件方面
1.選擇VDDA為參考電壓源;
2.ADC采樣率盡量低,ADC工作時鐘可采用128分頻,采樣周期選擇10個;
3.在采樣轉換時,除了ADC模塊外 ,其它外設都不要打開,采樣數據先緩存在RAM中,采樣到一定量的數據后再初始化串口,將數據通過串口發送出來;
4.在啟動ADC轉換后,MCU要進入Sleep休眠狀態(MCU停止運行),最大程度的減小噪聲。
5.ADC轉換完成后,轉換完成中斷喚醒MCU,初始化串口,將ADC轉換結果輸出。
關鍵代碼設計如下:
//配置ADC
__RCC_ADC_CLK_ENABLE();
//ADC初始化
ADC_StructInit(&ADC_InitStructure);
//ADC工作時鐘配置
ADC_InitStructure.ADC_ClkDiv = ADC_Clk_Div128; //269Hz
ADC_WdtInit(&ADC_WdtStructure);
//配置單通道轉換模式
ADC_SingleChStructure.ADC_DiscardEn= ADC_DiscardNull;
ADC_SingleChStructure.ADC_Chmux= ADC_ExInputCH0;//選擇ADC轉換通道,AIN1:PA00
ADC_SingleChStructure.ADC_InitStruct= ADC_InitStructure;
ADC_SingleChStructure.ADC_WdtStruct= ADC_WdtStructure;
ADC_SingleChOneModeCfg(&ADC_SingleChStructure); //初始化單通道單次采樣
ADC_ITConfig(ADC_IT_EOC, ENABLE); //使能ADC的EOC中斷
ADC_EnableIrq(ADC_INT_PRIORITY);
ADC_ClearITPendingAll();
ADC_Enable(); //ADC模塊使能
SysTickDelay(2); //延時2S
CW_ADC->START = 0X01; //啟動ADC開始轉換
SCB->SCR = 0; // MCU進入Sleep狀態
__WFI();
本次測試中,配置系統時鐘為1M,ADC采樣時鐘分頻比設置為128,采樣時鐘10個周期,計算ADC的采樣率為=1000000/128/29=269Hz。
使用精密穩壓電源(GPP-2323)給VDD和VDDA供電,穩壓源設置輸出電壓為3.30V,用普通測試線雙絞后接入(如有測試條件建議用同軸線接入),實測引腳電壓為3.299V;待測信號源用1節干電池提供,用同軸線接入,實測引腳電壓為1.615V。
測試10次,每次測試100個數據,實測結果如下:
由測試結果可以看到,10次共1000次采樣,最大采樣值為2006,最小采樣值為2003,采樣值變化僅僅4LSB,集中度非常高。如下圖所示:
下面分析一下實際的測試誤差。
采樣值2006對應:2006*3.299/4095=1.616V
采樣值2003對應:2003*3.299/4095=1.614V
和信號源電壓1.615V相比,最大相差正負1mV。
可見CW32F030芯片的ADC性能非常好,能滿足常規mV級別應用。
-
微控制器
+關注
關注
48文章
7548瀏覽量
151370 -
單片機
+關注
關注
6036文章
44555瀏覽量
634911 -
mcu
+關注
關注
146文章
17141瀏覽量
351081 -
adc
+關注
關注
98文章
6497瀏覽量
544533 -
武漢芯源
+關注
關注
1文章
66瀏覽量
255
發布評論請先 登錄
相關推薦
評論