关于CC2541的ADC取样问题
Dear TI:
你们好。现在我们在采用CC2541的ADC取样时,遇到如下问题,每次取样时,ADC端口的电压就会有一个小的跳动,我们是取样16次,然后计算平均值,然后就有16此跳动,具体波形请参看附件。我们的参考电源用的是外部稳压源(REF3320-2.048V),采样用的是ADC2。
附件图片中,4为ADC2端口电压值,3为参考电压2.048V,2为参考电压的输入电压3V, 1为电压控制脚。
可能的原因:1.RC滤波电路的影响,出现的震荡
2.程序中对引脚的配置,模拟输入方式和GPIO方式来回切换,可能在程序中每次都对对APCFG寄存器的操作
Hi:
你好。关于您说的两点,我们这边之前都已经确认过了,第一点是不存在的,第二点软件已经做了如下设置:
在uint16 HalAdcRead (uint8 channel, uint8 resolution)函数中屏蔽了下面两句,多次重复读取之后,依然会有这种情况
/* Disable channel after done conversion */ /*转换后取消采样通道的模拟输入设置*/ //if (channel <= HAL_ADC_CHANNEL_7) // ADCCFG &= (adcChannel ^ 0xFF);
通过屏蔽下面两句,将IO口固定到模拟输入状态,防止来回切换。
如此设置的,但是依然会跳动,请问是否存在其他问题,谢谢了。
请参考:
unsigned int adc_result;
APCFG=0x84;///adc=p0.2
ADCCON1=0x33;
ADCCON3=0x72;///外部参考电压 External reference on AIN7 pin 单通道 12位 实际效果为11位!
!
ADCCON1 |= 0x40;///start adc
while( !(ADCCON1 & ADCCON1_EOC));///等待转换完成
adc_result = (ADCL >> 4);
adc_result |= (ADCH << 4);
测量的电压如果大于电源电压和参考电压,需要外部电阻分压!
参考这个帖子:
http://www.deyisupport.com/question_answer/wireless_connectivity/bluetooth/f/103/p/70484/1693
17.aspx#169317
我也碰到类似问题,纠结了很久,其实这个就是输入阻抗不匹配的问题,直接在ad口那里加个大电容就解决了