CH582單片機(jī)的ADC無法測(cè)量0-3.3V范圍電壓

你好,CH582單片機(jī)的ADC無法測(cè)量0-3.3V范圍電壓,只能測(cè)量0-2v的電壓。 在0-2v的輸入時(shí),ADC的轉(zhuǎn)換值為0-4080,超過2v后一直為4080.

ADC的PGA增益無論是配置成ADC_PGA_1_4 (-12db)或者ADC_PGA_0 (0db),結(jié)果都一樣。不知哪里出了問題。

我的應(yīng)用場(chǎng)景為測(cè)量電位器旋鈕的位置,不需要精確,能粗略達(dá)到0-3.3v對(duì)應(yīng)ADC值為0-4095轉(zhuǎn)換值即可。下面為我的代碼


//PA5 AIN1 - 光

#define GPIO_Pin_Light? ? ? ? ? ? ? ? ? ? ? ? ? ? ? GPIO_Pin_5

#define ADC_Channel_Light? ? ? ? ? ? ? ? ? ? ? ? ? ?1

//PA0 AIN9 - 旋鈕

#define GPIO_Pin_Knob? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?GPIO_Pin_0

#define ADC_Channel_Knob? ? ? ? ? ? ? ? ? ? ? ? ? ? 9

//PA4 AIN0 - 火焰離子

#define GPIO_Pin_Ion? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? GPIO_Pin_4

#define ADC_Channel_Ion? ? ? ? ? ? ? ? ? ? ? ? ? ? ?0


void adc_init(void)

{

? ? uint8_t pga = ADC_PGA_1_4;

? ? GPIOA_ModeCfg(GPIO_Pin_Knob, GPIO_ModeIN_Floating);

? ? GPIOA_ModeCfg(GPIO_Pin_Light, GPIO_ModeIN_Floating);

? ? GPIOA_ModeCfg(GPIO_Pin_Ion, GPIO_ModeIN_Floating);


? ? DelayMs(20);

? ? ADC_ExtSingleChSampInit(SampleFreq_3_2, pga); //

? ? ADC_PGACfg(pga);

? ? RoughCalib_Value = ADC_DataCalib_Rough(); // 用于計(jì)算ADC內(nèi)部偏差,記錄到全局變量 RoughCalib_Value中

? ? PRINT("#adcInit, ADC_PGA:%d, Calib_Value = %d \n", pga,RoughCalib_Value);

}


// 執(zhí)行ADC轉(zhuǎn)換 - 旋鈕,每隔100ms調(diào)用一次

void excuteAdcConver_knob(void)

{

? ? ADC_ChannelCfg(ADC_Channel_Knob);

? ? adcRaw_knob = ADC_ExcutSingleConver() + RoughCalib_Value;

? ? if(adcRaw_knob < 0){

? ? ? ? adcRaw_knob = 0;

? ? }

}


//獲取未做濾波處理的ADC值

uint16_t getAdcRaw_knob(void)

{

? ? return adcRaw_knob;

}


//下面為函數(shù)片段,每隔100ms調(diào)用一次

// 100ms周期,ADC轉(zhuǎn)換,光和旋鈕

? ? if(events & SENSOR_TASK_EVT_PERIOD_100MS){

? ? ? ? //adc檢測(cè)

? ? ? ? excuteAdcConver_knob();

? ? ? ? excuteAdcConver_light();

? ? ? ? return (events ^ SENSOR_TASK_EVT_PERIOD_100MS);

? ? }


電路情況:

電位器旋鈕為50k歐,三個(gè)管腳分別接GND,GPIO_Pin_Knob,3.3V。電位器中間抽頭經(jīng)過一個(gè)RC濾波(1k歐電阻+0.1u電容)接入單片機(jī)ADC引腳。

萬用表實(shí)測(cè)在旋鈕最小和最大之間旋轉(zhuǎn)時(shí),單片機(jī)的ADC管腳的電壓為0-3.3V變化。VINTA管腳的電壓為1.06V。單片機(jī) 不 啟用內(nèi)部DC-DC


項(xiàng)目被卡在這里,麻煩大神請(qǐng)幫忙分析下,萬分感激!?。。。。?/p>

使用0dbm增益的時(shí)候,實(shí)際測(cè)量范圍是0-2V,但使用-12dbm理論上是可以測(cè)到0-VIO33的電壓的,但是不同增益的計(jì)算公式是不同的,所以需要注意,相同的模擬值,不同的增益對(duì)應(yīng)著不同的電壓值,這個(gè)可以參考手冊(cè)的公式。也可使用我們adc例程做個(gè)簡(jiǎn)單測(cè)試,確保代碼無誤。

emobile_2022-07-05_19-18-03.png



只有登錄才能回復(fù),可以選擇微信賬號(hào)登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频