This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

能否或如何在运行中关断或停止ADC10的内部参考源



本人的一个项目需要使用ADC10,在进行低功耗改进时发现在LMP3状态下90%的工作电流是参考源消耗。所以在初始化阶段是就不启动参考源,此时的电流为10uA。在使用ADC10时再启动参考源。本想在ADC10转换后再关闭参考源。但好像再也关闭不了参考源。此时的电流可达176uA。看看有什么办法可以在ADC10转换后关闭那个参考源?

  • 在关闭ADC时同时关闭基准电压源,注意再次打开时要提前打开基准源,可以试一下下面的代码可以不,

    void ADC_OFF(void)

      ADC12CTL0 &= ~ADC12ON;  

      ADC12CTL0 &= ~ENC;           

      ADC12CTL0 &= ~REFON;          //关闭内部基准源节省电能
    }

  • 你可以配置26.3.1 REFCTL0 Register (offset = 00h) [reset = 0080h]中REFON RW 0h Reference enable.
    ADC10_A: The ADC10_A does not support the reference request. REFON must
    be set if the internal reference voltage is used.
    0b = Disables reference if no other reference requests are pending.
    1b = Enables reference.

    关闭REF 输出。

  • 12天前曾经提了一个低功耗问题,今天已经实现了,LPM3状态,电流从176uA降到10uA以下。这里提供一点心得体会。

    1、ADC10 的内部基准源需要电流160~170uA,在进入LPM3之前关闭ADC10的基准源,即可省下160~170uA。当然active时间会适当地延长,因为基准源需要有30uS的稳定时间。另一个办法是用外部基准源,现在几十uA的基准源也很多的。

    2、DCO需要70uA左右,当从LPM0转为LPM3时可以省下这个电流。如果在LPM3下,需要使用时钟,就要用32K的ACLK。

    3、GPIO 每个pin 大约7uA左右,油水不大。

    4、GPIO的内部上拉电阻。经推算这个电阻大约43k,当该端口被闭合到地时,会产生80uA以上的电流(3.6V)。用中断处理时问题不大,但用电平检测时间有点长了。建议使用外部上来电阻。如果取100k 上拉电阻,产生的电流可降低到30uA左右。

    5、对于使用LPM3来讲,降低LPM3期间的电流是正道,毕竟LPM3的权重高达0.8~0.9 ,有时可能会达到0.9~0.95。