реклама на сайте
подробности

 
 
> Вопрос по ADC10, Большое потребление
Denisnovel
сообщение Jul 10 2009, 07:59
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 108
Регистрация: 31-12-07
Из: Фрязино М.О.
Пользователь №: 33 753



Опрашиваю АЦП по таймеру.
Код
ADC10CTL1 = INCH_3;         // Канал 3
            ADC10CTL0 |= REFOUT+REFON+SREF_1+ ADC10ON+ADC10SHT_2+ ADC10IE+REFBURST;
          TI_CC_Wait(50);
           for (char k=0;k<10;k++)
            {
              ADC10CTL0 |= ENC + ADC10SC;//Запускаем АЦП
             _BIS_SR(CPUOFF + GIE);        // Засыпаем до появления прерывания от АЦП
              ADC_Sum=ADC_Sum+ADC10MEM;//Суммируем
            }
            ADC_Sum=ADC_Sum/10;//Находим среднее
            ADC10CTL0 &= ~(ADC10ON+ ENC );//ADC off


В режиме сна МК потребляет 250 мкА. Если мерить только напряжение батарейки, то все нормально, потребление около 7 мкА.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Denisnovel
сообщение Jul 10 2009, 09:14
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 108
Регистрация: 31-12-07
Из: Фрязино М.О.
Пользователь №: 33 753



Другой канал и не используется вывод внутреннего опорного напряжения на внешний пин.
Код
ADC10CTL1 = INCH_11;//bat
               ADC10CTL0 |= REFON+SREF_1+ ADC10ON+ADC10SHT_2+ ADC10IE;
              TI_CC_Wait(50);
              ADC10CTL0 |= ENC + ADC10SC;
              _BIS_SR(CPUOFF + GIE);        // LPM0, ADC10_ISR will force exit
              BatV=ADC10MEM/34;
              ADC10CTL0 &= ~(ADC10ON+ ENC + ADC10SC+REFON);//ADC off
              ADC10CTL1 = INCH_15;


Причем, если закоментировать строки в коде из первого поста то потребление тоже упадет
Код
              //ADC10CTL0 |= ENC + ADC10SC;//Запускаем АЦП
             _//BIS_SR(CPUOFF + GIE);        // Засыпаем до появления прерывания от АЦП
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Jul 10 2009, 09:26
Сообщение #3


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(Denisnovel @ Jul 10 2009, 13:14) *
Другой канал и не используется вывод внутреннего опорного напряжения на внешний пин.

Я так и думал.
А оно там очень нужно?
Если да, ищите, куда стекает ток. Может, в электролит?


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
rezident
сообщение Jul 10 2009, 09:58
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(Denisnovel @ Jul 10 2009, 15:14) *
Причем, если закоментировать строки в коде из первого поста то потребление тоже упадет
Код
              //ADC10CTL0 |= ENC + ADC10SC;//Запускаем АЦП
             _//BIS_SR(CPUOFF + GIE);        // Засыпаем до появления прерывания от АЦП
Вполне логично. У вас выбран режим Reference burst (биты REFOUT и REFBURST в регистре ADC10CTL0). Закомментировав строки, вы не запускаете преобразование и в соответствии с выбранным режимом REF не включается до тех пор, пока не поступит управляющий сигнал SAMPCON, для запуска выборки входного сигнала. REF включается только во время выборки сигнала перед преобразованием.
Цитата(MrYuran @ Jul 10 2009, 15:26) *
Если да, ищите, куда стекает ток. Может, в электролит?
Поскольку установлен REFON в регистре ADC10CTL0, то REF соединяется с соответствующим внешним пином, на котором теоретически конденсатор висеть должен.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 26th June 2025 - 07:28
Рейтинг@Mail.ru


Страница сгенерированна за 0.01389 секунд с 7
ELECTRONIX ©2004-2016