打印

LM4F232 adc 外部参考电压请教

[复制链接]
3548|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
fq1110|  楼主 | 2012-4-7 10:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
大家好,
        我使用的是TI官方的EK-LM4F232H5QD评估板,遇到了以下两个问题。
       1、其中PD4(AIN7)外接电池进行AD采样测试,电池电压1.528-1.533V左右,当设置参考电压为内部参考电压时,采样值在1827-1924,1.528/3.3*4096=1896左右,设置为外部3V参考电压时,采样值还是和内部参考电压值时差不多?为什么不是1.528/3*4096=2086左右呢?还是我的代码有问题呢(用的官方ADC例程)?更换为外部3V参考电压仅增加了红色区域的代码。请问要如何使用外部3V参考电压呢?
       2、12bit的adc,在参考电压与测试电压值都在较稳定的情况下,为什么AD采样值变化如此大?采用硬件多次平均,效果也不是特别好,ad值偏差也有几十个。
unsigned long ref=0xff;
int main(void)
{
    tContext sContext;
    char cText[8];
    unsigned long ulText;
    unsigned long ulADC0_Value[3];
    FPUEnable();
FPULazyStackingEnable();
SysCtlClockSet(SYSCTL_SYSDIV_4 | SYSCTL_USE_PLL | SYSCTL_XTAL_16MHZ |          SYSCTL_OSC_MAIN);
    CFAL96x64x16Init();
    GrContextInit(&sContext, &g_sCFAL96x64x16);
    GrContextForegroundSet(&sContext, ClrWhite);
    GrContextFontSet(&sContext, &g_sFontFixed6x8);
GrStringDraw(&sContext,"ADC Hands On Lab", -1,1, 5, 0);
GrStringDraw(&sContext,"----------------", -1,1, 15, 0);
GrStringDraw(&sContext,"Ad:", -1,20, 25, 0);
   SysCtlPeripheralEnable(SYSCTL_PERIPH_ADC0);
   SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOE);
    GPIOPinTypeADC(GPIO_PORTE_BASE, GPIO_PIN_4 | GPIO_PIN_5 | GPIO_PIN_6);
ref=ADCReferenceGet(ADC0_BASE);
  ADCReferenceSet(ADC0_BASE,ADC_REF_EXT_3V);
ref=ADCReferenceGet(ADC0_BASE);
    ADCSequenceConfigure(ADC0_BASE, SEQUENCER, ADC_TRIGGER_PROCESSOR, 0);
  ADCSequenceStepConfigure(ADC0_BASE, SEQUENCER, 0, ADC_CTL_CH7 | ADC_CTL_IE
                      |ADC_CTL_END);
    ADCSequenceEnable(ADC0_BASE, SEQUENCER);
    ADCIntClear(ADC0_BASE, SEQUENCER);
    while(1)
    {
        ADCProcessorTrigger(ADC0_BASE, SEQUENCER);
        while(!ADCIntStatus(ADC0_BASE, SEQUENCER, false))
        {
        }
        ADCSequenceDataGet(ADC0_BASE, SEQUENCER, ulADC0_Value);
        usprintf(cText, " %d    ", ulADC0_Value[0]);
        GrStringDraw(&sContext, cText, -1, 45, 25, 1);
        SysCtlDelay(SysCtlClockGet() / 12);
     GrFlush(&sContext);
    }
}

相关帖子

沙发
ssdw| | 2012-4-7 13:28 | 只看该作者
不是很清楚 帮楼主顶下

使用特权

评论回复
板凳
ssdw| | 2012-4-7 13:28 | 只看该作者
专家会很快为你解答的

使用特权

评论回复
地板
czdo| | 2012-4-7 14:16 | 只看该作者
楼主多开始搞M4了!速度真快

使用特权

评论回复
5
fq1110|  楼主 | 2012-4-7 20:42 | 只看该作者
呵呵,不会整了.菜鸟一个,没人帮忙解决啊.

使用特权

评论回复
6
fq1110|  楼主 | 2012-4-9 11:58 | 只看该作者
3# ssdw

专家怎么还不来啊。

使用特权

评论回复
7
TI_MCU| | 2012-4-9 21:15 | 只看该作者
楼主用的是A1版本的芯片吧,A1里有个Bug,配置外部参考无效的。需要置PB6的AMSEL寄存器。

楼主可以加一句:
HWREG(GPIO_PORTB_BASE + GPIO_O_AFSEL) |= (1 << 6);

使用特权

评论回复
8
litgb| | 2012-4-9 21:30 | 只看该作者
专家这不来了吗     ?

使用特权

评论回复
9
fq1110|  楼主 | 2012-4-10 14:33 | 只看该作者
收到,谢谢。我去验证一下。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

68

主题

530

帖子

1

粉丝