Например TDA7294

Форум РадиоКот :: Просмотр темы - PIC12F1822 SLEEP. Большой ток в спящем режиме
Форум РадиоКот
https://radiokot.ru/forum/

PIC12F1822 SLEEP. Большой ток в спящем режиме
https://radiokot.ru/forum/viewtopic.php?f=58&t=199059
Страница 1 из 1

Автор:  serg_svd [ Ср сен 10, 2025 14:29:27 ]
Заголовок сообщения:  PIC12F1822 SLEEP. Большой ток в спящем режиме

Второй день пытаюсь бороться с этим микроконтроллером.
Исходные данные. К микроконтроллеру подключен часовой кварц на 32768 Гц, светодиод и кнопка.
Инициализация портов:
Спойлер
Код:
    TRISA = 0x3F; // input
    ANSELA = 0x0; // digital I/O
    LATA = 0x0;
    WPUA = 0x04; // Pullup WPUA2
    OPTION_REGbits.nWPUEN = 0; //Weak pull-ups are enabled by individual WPUx latch values
    //IOCx registers
    IOCAP = 0x0;
    IOCAN = 0x0;
    IOCAF = 0x0;


Инициализация осциллятора:
Спойлер
Код:
//    OSCCONbits.SCS = 0b00;      // SCS FOSC
//    OSCCONbits.SCS = 0b01;      // SCS Timer1
    OSCCONbits.SCS = 0b10;      // SCS Internal
    OSCCONbits.IRCF = 0b0000;   // IRCF 31KHz_LF
    OSCCONbits.SPLLEN = 0;      // 4x PLL is disabled
    // Oscillator module is running at the factory-calibrated frequency
    OSCTUNE = 0x0;
    // SBOREN disabled;
    BORCON = 0x0;

Тут видно, что пытался играться с тактированием от часового кварца в режиме LP, от Timer1 и от внутреннело LF генератора на 31 кГц. Но все эти режимы в конечном итоге не влияют на ток потребления в спящем режиме.
Подтягивающий резистор включен один для кнопки. Её задача вывести микроконтроллер из сна по внешнему прерыванию, переключить светодиод и опять уйти в спячку. Ток спячки измеряю при ВЫКЛЮЧЕННОМ светодиоде! Вся остальная периферия выключена. WDT и BORCON не работают и выключены!

При этом ток потребления примерно 50 мкА, хотя по ДШ он должен быть не более 15-20 мкА.

PS. на измерение тока в спящем режиме сильно влияет программатор. Приходится отключать микроконтроллер от него. При чем зачастую после отключения программатора ток подрастает на 10-15 мкА, а не снижается. С чем связано я не понимаю.
PS2. на плате утечки тока нет. При отключении от платы микроконтроллера и программатора ток потребления нулевой на моём тестере в режиме мкА.

Добавлено after 1 hour 24 minutes 7 seconds:
В общем виновником светодиод оказался. Хоть при выключении светодиода я перевожу пин в Z состояние, но через него все равно течет ток. Без светодиода 19 мкА. Получается нельзя напрямую на вывод порта включать светодиод??? Неправильно! Нельзя было этот вывод переводить в Z состояние. Надо было отставлять как выход и записать в него 0.

Автор:  Asmodey [ Ср сен 10, 2025 14:37:23 ]
Заголовок сообщения:  Re: PIC12F1822 SLEEP. Большой ток в спящем режиме

В общем виновником светодиод оказался. Хоть при выключении светодиода я перевожу пин в Z состояние, но через него все равно течет ток. Без светодиода 19 мкА. Получается нельзя напрямую на вывод порта включать светодиод???

А что там с подтягивающими резисторами порта?

Автор:  КРАМ [ Ср сен 10, 2025 14:41:22 ]
Заголовок сообщения:  Re: PIC12F1822 SLEEP. Большой ток в спящем режиме

Получается нельзя напрямую на вывод порта включать светодиод???

Наверное нужно опубликовать схему своего устройства...

Добавлено after 2 minutes 11 seconds:
А что там с подтягивающими резисторами порта?

Утечка порта в Z состоянии по даташиту - 125 нА максимум. Типовое значение - 5 нА

Автор:  serg_svd [ Ср сен 10, 2025 14:53:16 ]
Заголовок сообщения:  Re: PIC12F1822 SLEEP. Большой ток в спящем режиме

А что там с подтягивающими резисторами порта?

Да все нормально! Один включен в регистре WPUA для кнопки. Возможно с внешним резистором ток будет меньше, надо экспериментировать.
КРАМ писал(а):
Наверное нужно опубликовать схему своего устройства...

До можно и опубликовать, если нарисовать её :) . А так я в первом сообщении поправил. Нельзя было пин со светодиодом переключать в Z состояние. Об этом ДШ говорит, я читал, но картинка в мозгу сразу не сложилась. Искал утечку в другом месте.

Автор:  КРАМ [ Ср сен 10, 2025 15:40:17 ]
Заголовок сообщения:  Re: PIC12F1822 SLEEP. Большой ток в спящем режиме

Об этом ДШ говорит

ДШ так же говорит об величине тока утечки Z состояния. И это не десятки микроампер. Это всего 0,1 мкА.
Так что было бы интересно узнать как у вас включен светодиод.

Автор:  serg_svd [ Ср сен 10, 2025 16:08:14 ]
Заголовок сообщения:  Re: PIC12F1822 SLEEP. Большой ток в спящем режиме

Так что было бы интересно узнать как у вас включен светодиод.

Катод светодиода к выводу 8 микроконтроллера, то есть на GND
Анод через резистор 1 кОм к РА1.

Добавлено after 9 minutes 44 seconds:
Вот! Набросал схемку...
Изображение

Автор:  КРАМ [ Ср сен 10, 2025 17:14:09 ]
Заголовок сообщения:  Re: PIC12F1822 SLEEP. Большой ток в спящем режиме

Вот!

Диод создает плавающий потенциал на входе (третье состояние - это вход). Поэтому на выходе входного буфера наблюдается сквозной ток в наблюдаемой разнице токов потребления. Либо нужен параллельный светодиоду резистор примерно 10 кОм, либо нулевой выход.

Автор:  serg_svd [ Чт сен 11, 2025 10:57:04 ]
Заголовок сообщения:  Re: PIC12F1822 SLEEP. Большой ток в спящем режиме

Надо пробовать и остальные неиспользуемые пины переввести на выход и установить в ноль. Может и через них еще утечка идет? 20 мкА тоже много, если в ДШ указан совсем мизерный ток. Про 20 мкА, к которым я стремился, это я невнимательно ДШ прочел. 20 мкА - это ток в рабочем режиме самого микроконтроллера с LP тактировпнием. А в спячке то тактировпние выключено. Значит надо искать, как еще можно снизить ток

Автор:  veso74 [ Чт сен 11, 2025 11:26:39 ]
Заголовок сообщения:  Re: PIC12F1822 SLEEP. Большой ток в спящем режиме

Попробуйте в обратном порядке: создайте настройки нужного генератора, выключите вся периферия и убедитесь, что в спящем режиме потребление низкое и соответствует документации. Затем постепенно включайте периферии, функции и т.д., пока не получите желаемые функции. Так будет легче найти "виновника". В прошлом с подобным PIC12 у меня как идея осталась: WDTE OFF, BOREN OFF -> на простом измерительном приборе с минимальным ток. диапазоном: 2 mA в выключенном состоянии PIC12 показание: 0,000 :). Некоторые PIC12x на это более способны. Напр. любимый: PIC12LF1571 /но нет генератора с внешним кварцем/.

Автор:  Zikon [ Чт сен 11, 2025 15:18:19 ]
Заголовок сообщения:  Re: PIC12F1822 SLEEP. Большой ток в спящем режиме

Надо пробовать и остальные неиспользуемые пины переввести на выход и установить в ноль. Может и через них еще утечка идет? 20 мкА тоже много, если в ДШ указан совсем мизерный ток. Про 20 мкА, к которым я стремился, это я невнимательно ДШ прочел. 20 мкА - это ток в рабочем режиме самого микроконтроллера с LP тактировпнием. А в спячке то тактировпние выключено. Значит надо искать, как еще можно снизить ток


Перечитал ДШ и вопрос

если у вас PIC12F1822 - то это минимум - 20мкА

а вот если PIC12LF1822 - то там действительно мизерные токи !

Автор:  serg_svd [ Чт сен 11, 2025 15:45:13 ]
Заголовок сообщения:  Re: PIC12F1822 SLEEP. Большой ток в спящем режиме

если у вас PIC12F1822 - то это минимум - 20мкА

Похоже так и есть! LF кушает намного меньше. Верхний результат для LF, нижний для F
Изображение

Добавлено after 2 minutes 36 seconds:
Попробуйте в обратном порядке

Да я так и делал. Поэтому и нашел проблему с Z-состоянием портов.

Автор:  veso74 [ Пт сен 12, 2025 11:01:50 ]
Заголовок сообщения:  Re: PIC12F1822 SLEEP. Большой ток в спящем режиме

Сегодня осталось немного свободного времени. Тест с PIC12F1822. VDD +5.0V, SLEEP -> 0,021 mA.
Программатор не подключен.

Спойлер
Код:
#include <xc.h>

#pragma config FOSC = INTOSC
#pragma config WDTE = OFF
#pragma config PWRTE = OFF
#pragma config MCLRE = OFF
#pragma config BOREN = OFF
#pragma config CP = OFF, CPD = OFF
#pragma config PLLEN = OFF
#pragma config LVP = OFF

void main(void) {
  OSCCONbits.SCS = 0b10;
  OSCCONbits.IRCF = 0b0000;
  OSCCONbits.SPLLEN = 0;
  OSCTUNE = 0x00;

  ADCON0 = 0x00;
  ANSELA = 0x00;
  CM1CON0 = 0x00;
  FVRCON = 0x00;
  DACCON0 = 0x00;
  T1CON = 0x00;
  WDTCONbits.SWDTEN = 0;

  TRISA = 0x00;
  LATA = 0x00;
  WPUA = 0x00;
  OPTION_REGbits.nWPUEN = 1;

  INTCON = 0x00;

  SLEEP();

  while (1) {
  }
}

Автор:  Родэрик [ Пт сен 12, 2025 12:23:56 ]
Заголовок сообщения:  Re: PIC12F1822 SLEEP. Большой ток в спящем режиме

16F636 ... 3.6 вольт ... какие-то ноги выходные, какие-то входные ... подтяжка везде включена (что-то к верху, что-то к низу)
sleep - 0,6 микроампера (всё, что может кушать - отключено).

Автор:  Mursik [ Пт сен 12, 2025 13:16:25 ]
Заголовок сообщения:  Re: PIC12F1822 SLEEP. Большой ток в спящем режиме

У PIC12F1822 ядро процессора питается 1,7в, ноги от входного. А ядро кормит стабилизатор. Он и жрет те 20мкА. У PIC12LF1822 стаба нет, потому максимальное питающее 3,6в. Зато потребление в слипе - наноамперы.

:tea:

Автор:  zAries [ Пт сен 12, 2025 22:51:39 ]
Заголовок сообщения:  Re: PIC12F1822 SLEEP. Большой ток в спящем режиме

...Зато потребление в слипе - наноамперы.

При условии, что питание будет 1,8v. Sleep mode: 20 nA @ 1.8V, typical

Автор:  serg_svd [ Вс сен 14, 2025 14:52:24 ]
Заголовок сообщения:  Re: PIC12F1822 SLEEP. Большой ток в спящем режиме

...Зато потребление в слипе - наноамперы.

При условии, что питание будет 1,8v. Sleep mode: 20 nA @ 1.8V, typical

Это для LF
Изображение

Автор:  zAries [ Пн сен 15, 2025 00:36:01 ]
Заголовок сообщения:  Re: PIC12F1822 SLEEP. Большой ток в спящем режиме

Да я разве спорил, но, наверное, кому разрешено так цитировать - тому виднее.

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/