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与低功耗的问题

Other Parts Discussed in Thread: MSP430G2231

关于ADC10与低功耗的问题

msp430G2系列



手册中写道:

WhenREFON=1,but no conversionis active,the bufferis automatically disabled and automatically
re-enabled when needed.When the bufferis disabled,it consumes no current.In this case,the band-gap
voltage sourcere mains enabled.

请问在框图中是通过哪里控制的呢?



When REFOUT=1,the REFBURST bit controls the operation of the internal reference buffer.When
REFBURST=0,the buffer will be oncontinuously,allowing the reference voltage to be present outside
the device continuously.When REFBURST=1,the bufferis automatically disabled when the ADC10 is
not actively converting,and automatically re-enabled when needed.

请问REFBURST 是否只对输出有影响?对buffer无影响?前一段是否有个条件就是 REFOUT不等于1或者 REFOUT=1但是

REFBURST=1?

自带的时钟振荡器稳定时间是多少?也就是核心的建立时间tADC10ON一般为100ns?
REF的稳定时间在低功耗设计时如何考虑?长了不好,短了不行,用什么计时?

The ADC10is designed for low power applications.When the ADC10 is not actively converting,the core is
automatically disabled and automatically re-enabled when needed.The ADC10OSC is also automatically
enabled when needed and disabled when not needed.When the core or oscillatoris disabled,it
consumes no current.这个和ADC10ON控制位是什么关系?还有ADC10ON内置的振荡器不如果不用用其它时钟源是否能减低

功耗?手册中没有内置振荡器的功耗数据。

ADC10的功耗和时钟源频率的高低在低功耗要求下如何权衡?

对于如果考虑到尽量减低功耗,msp430需要在哪些方面注意到?有没有详细的考虑到各种情况的指导手册?官方有个中文

视频,讲到了低功耗的注意事项,感觉太短了,也许应该考虑的都讲到了,其它的没有必要考虑,但是作为初学者,即使

不用考虑,有时候还是有疑问需要给个确定的回答。例如,定时器本身也有没有功耗?和频率有没有关系?其它的模块呢



能不能就低功耗问题给点参考?谢谢!

  • 研究的很细致啊。

    一个问题一个问题的回答

  • 手册中写道:

    WhenREFON=1,but no conversionis active,the bufferis automatically disabled and automatically

    re-enabled when needed.When the bufferis disabled,it consumes no current.In this case,the band-gap

    voltage sourcere mains enabled.

    请问在框图中是通过哪里控制的呢?

    A : REF的buffer自动控制逻辑没有画出来,所以图上看不到。

  • When REFOUT=1,the REFBURST bit controls the operation of the internal reference buffer.When

    REFBURST=0,the buffer will be oncontinuously,allowing the reference voltage to be present outside

    the device continuously.When REFBURST=1,the bufferis automatically disabled when the ADC10 is

    not actively converting,and automatically re-enabled when needed.

    请问REFBURST 是否只对输出有影响?对buffer无影响?前一段是否有个条件就是 REFOUT不等于1或者 REFOUT=1但是

    REFBURST=1?

     

    A:

    当REFOUT==0时,buffer纯粹自动控制,自动开启自动关闭

    当REFOUT==1时,buffer是否自动控制要看REFBURST位,如果为1,那就自动控制开关,也就是说,在非ADC转换期间,对应引脚是没有REF电压的。如果为0,buffer就一直开着,引脚上会一直有电压。

  • 自带的时钟振荡器稳定时间是多少?也就是核心的建立时间tADC10ON一般为100ns?

    REF的稳定时间在低功耗设计时如何考虑?长了不好,短了不行,用什么计时?

     

    A:ADC10OSC是ADC的专用时钟,典型值是5M,也是系统自动控制的。它的稳定时间没有给出来,我觉得应该是包含在100nS之内了。

    REF的稳定时间就长多了,具体请参考对应的D/S. 有一个值是30uS。所以用到内部的REF,至少要等30uS。时间长了到无所谓,只不过要牺牲功耗。

    这30uS可以用Timer来定时,例如下面的例程

    ADC10CTL1 = CONSEQ_2+INCH_5;                     // Repeat single channel

      ADC10CTL0 = REFOUT + REFON + MSC + ADC10ON+REF2_5V+SREF_1+ADC10IE;//+ADC10SHT_3;

      __enable_interrupt();                     // Enable interrupts.

      TACCR0 = 30;                              // Delay to allow Ref to settle

      TACCTL0 |= CCIE;                          // Compare-mode interrupt.

      TACTL = TASSEL_2 | MC_1;                  // TACLK = SMCLK, Up mode.

      LPM0;                                     // Wait for delay.

      TACCTL0 &= ~CCIE;                         // Disable timer Interrupt

      ADC10AE0 |= BIT5+BIT4;                         // P1.4&P1.5 ADC option select

     

    #pragma vector=TIMER0_A0_VECTOR

    __interrupt void ta0_isr(void)

    {

      TACTL = 0;

      LPM0_EXIT;                                // Exit LPM0 on return

    }

    当然也可以软件延时来做。

  • The ADC10is designed for low power applications.When the ADC10 is not actively converting,the core is 
    automatically disabled and automatically re-enabled when needed.The ADC10OSC is also automatically 
    enabled when needed and disabled when not needed.When the core or oscillatoris disabled,it 
    consumes no current.这个和ADC10ON控制位是什么关系?还有ADC10ON内置的振荡器不如果不用用其它时钟源是否能减低

    功耗?手册中没有内置振荡器的功耗数据。

    ADC10的功耗和时钟源频率的高低在低功耗要求下如何权衡?

     

    A:ADC10对内核,时钟以及REF的控制是自动的,对用户来讲,我觉得是透明的。当用户把ADC10ON设成1后,并不意味着S/H,converter,时钟等都开始运行了。只有当用户发出开始转换(ADC10SC+ENC)的命令之后,ADC10才会依次开始采样(S/H),转换,数据搬运(DTC)。期间的时钟,REF buffer都只有在用到时才开启,用完后自动关闭。

    也可以用其他的时钟源来代替ADC10OSC,但是用比较慢得时钟,可能使转换时间拉长(比如converting的时候需要13个ADC clock),不一定能带来低功耗的结果。这个问题就需要仔细去权衡了。ADC10OSC的功耗已经包含在IADC10这个指标中了

    ADC10功耗和时钟源的关系没有仔细研究过,我觉得这个和主频与功耗的有点类似。主频降低了但是处理同样的任务时间就会加长。所以最终结果要全面来看。

    我的建议其实是推荐用默认时钟ADC10OSC,因为ADC10OSC完全可由芯片自动控制,换了其他时钟可能会和低功耗模式相互牵连,反而麻烦。另外,其它的时钟未必会比内置时钟稳定性好,在做各种稳定性,抗干扰实验时是一个隐患。

     

  • 对于如果考虑到尽量减低功耗,msp430需要在哪些方面注意到?有没有详细的考虑到各种情况的指导手册?官方有个中文

    视频,讲到了低功耗的注意事项,感觉太短了,也许应该考虑的都讲到了,其它的没有必要考虑,但是作为初学者,即使

    不用考虑,有时候还是有疑问需要给个确定的回答。例如,定时器本身也有没有功耗?和频率有没有关系?其它的模块呢



    能不能就低功耗问题给点参考?谢谢!

     

     

    A:

    附件有一些介绍,希望有帮助

    我觉得低功耗的设计其实比较容易理解。总的来讲,是用最低功耗的方式去实现任务(....废话...)

    先把MCU内部的能耗大户给列出来,

    1)CPU:220uA / Mhz(数据不一定准确),对应的软件cycles数

    2)ADC :0.6mA

    3)REF:1.1mA

    4)写flash:1mA

    5)Comparator :45uA

    .....

    因为软件 是能耗大户,所以一般来讲,能用硬件完成的坚决不用软件。 比如可以用DMA实现数据搬移,使用硬件乘法器,CRC模块等来减轻CPU工作量。还有中断方式的充分应用,以及各个模块之间的联动。

    MSP430的外设和内核一般都有低功耗的理念,所以给用户的选择比较多。比如F5xx的内核电压是可调的,ADC10可以选择合适的速度(ADC10SR)来节省功耗。

     

    关于Timer的功耗,其实是包含到对应的低功耗模式中了。可以理解为零功耗。

    比如MSP430G2231,如果 WDTCLK=TACLK=ACLK=32.768K。当LPM3时, WDT,TimerA其实都在运行,不影响LPM3的功耗指标。


    SYS-04 Designing for Ultra-Low-Power with MSP430.pdf
  • 十分感谢!您回答得也很细致!

    我也有点过份像钻牛角尖一样,其实从宏观考虑,在一定的应用需求下,不一定要那么穷尽那么一点功耗,有的地方还没有执行指令的消耗大吧,我只是想弄明白点。还有些枝节小问题,不影响考虑问题,有些猜可能也能猜出来可能应该是怎么回事。有时间需要的话我再另外开帖询问。不知道确定解决问题也是对阁下的一种尊重和感谢,所以我点击确定解答了问题,因为事实上也确实详细解决了我的提问,其它小问题是因为我没有问到。

    如果作为一个用户和入门者可以随便表达意见的话,我对此问题的解答表示十分非常满意!

    作为入门初学者,有些问题可能有点鲁莽甚至幼稚,可能是有点没有看完所有的资料有点急躁想早点知道答案或者能力所致,不过像阁下一样解答问题肯定也是在百忙之中不吝赐教,时间肯定是比我们这样的宝贵呀。所以再次表示感谢!