PIC12F1822 SLEEP. Большой ток в спящем режиме

Поклонники продукции Microchip Technology Inc тусуются тут.
Ответить
Аватара пользователя
serg_svd
Собутыльник Кота
Сообщения: 2560
Зарегистрирован: Ср янв 16, 2008 08:34:04
Откуда: KMV

PIC12F1822 SLEEP. Большой ток в спящем режиме

Сообщение serg_svd »

Второй день пытаюсь бороться с этим микроконтроллером.
Исходные данные. К микроконтроллеру подключен часовой кварц на 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.
Последний раз редактировалось serg_svd Ср сен 10, 2025 14:39:50, всего редактировалось 1 раз.
Аватара пользователя
Asmodey
Друг Кота
Сообщения: 6122
Зарегистрирован: Сб янв 28, 2006 22:47:24

Re: PIC12F1822 SLEEP. Большой ток в спящем режиме

Сообщение Asmodey »

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

А что там с подтягивающими резисторами порта?
Астролябия-сама меряет, было бы что мерять!!!
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25117
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: PIC12F1822 SLEEP. Большой ток в спящем режиме

Сообщение КРАМ »

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

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

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

Утечка порта в Z состоянии по даташиту - 125 нА максимум. Типовое значение - 5 нА
Аватара пользователя
serg_svd
Собутыльник Кота
Сообщения: 2560
Зарегистрирован: Ср янв 16, 2008 08:34:04
Откуда: KMV

Re: PIC12F1822 SLEEP. Большой ток в спящем режиме

Сообщение serg_svd »

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

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

До можно и опубликовать, если нарисовать её :) . А так я в первом сообщении поправил. Нельзя было пин со светодиодом переключать в Z состояние. Об этом ДШ говорит, я читал, но картинка в мозгу сразу не сложилась. Искал утечку в другом месте.
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25117
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: PIC12F1822 SLEEP. Большой ток в спящем режиме

Сообщение КРАМ »

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

ДШ так же говорит об величине тока утечки Z состояния. И это не десятки микроампер. Это всего 0,1 мкА.
Так что было бы интересно узнать как у вас включен светодиод.
Аватара пользователя
serg_svd
Собутыльник Кота
Сообщения: 2560
Зарегистрирован: Ср янв 16, 2008 08:34:04
Откуда: KMV

Re: PIC12F1822 SLEEP. Большой ток в спящем режиме

Сообщение serg_svd »

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

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

Добавлено after 9 minutes 44 seconds:
Вот! Набросал схемку...
Изображение
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25117
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: PIC12F1822 SLEEP. Большой ток в спящем режиме

Сообщение КРАМ »

Вот!

Диод создает плавающий потенциал на входе (третье состояние - это вход). Поэтому на выходе входного буфера наблюдается сквозной ток в наблюдаемой разнице токов потребления. Либо нужен параллельный светодиоду резистор примерно 10 кОм, либо нулевой выход.
Аватара пользователя
serg_svd
Собутыльник Кота
Сообщения: 2560
Зарегистрирован: Ср янв 16, 2008 08:34:04
Откуда: KMV

Re: PIC12F1822 SLEEP. Большой ток в спящем режиме

Сообщение serg_svd »

Надо пробовать и остальные неиспользуемые пины переввести на выход и установить в ноль. Может и через них еще утечка идет? 20 мкА тоже много, если в ДШ указан совсем мизерный ток. Про 20 мкА, к которым я стремился, это я невнимательно ДШ прочел. 20 мкА - это ток в рабочем режиме самого микроконтроллера с LP тактировпнием. А в спячке то тактировпние выключено. Значит надо искать, как еще можно снизить ток
veso74
Поставщик валерьянки для Кота
Сообщения: 1902
Зарегистрирован: Сб май 05, 2012 20:24:52
Откуда: KN34PC, Болгария
Контактная информация:

Re: PIC12F1822 SLEEP. Большой ток в спящем режиме

Сообщение veso74 »

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

Re: PIC12F1822 SLEEP. Большой ток в спящем режиме

Сообщение Zikon »

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


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

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

а вот если PIC12LF1822 - то там действительно мизерные токи !
Аватара пользователя
serg_svd
Собутыльник Кота
Сообщения: 2560
Зарегистрирован: Ср янв 16, 2008 08:34:04
Откуда: KMV

Re: PIC12F1822 SLEEP. Большой ток в спящем режиме

Сообщение serg_svd »

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

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

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

Да я так и делал. Поэтому и нашел проблему с Z-состоянием портов.
veso74
Поставщик валерьянки для Кота
Сообщения: 1902
Зарегистрирован: Сб май 05, 2012 20:24:52
Откуда: KN34PC, Болгария
Контактная информация:

Re: PIC12F1822 SLEEP. Большой ток в спящем режиме

Сообщение veso74 »

Сегодня осталось немного свободного времени. Тест с 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) {
  }
}
Аватара пользователя
Родэрик
Нашел транзистор. Понюхал.
Сообщения: 162
Зарегистрирован: Чт ноя 26, 2015 23:22:35
Откуда: не с Уфы
Контактная информация:

Re: PIC12F1822 SLEEP. Большой ток в спящем режиме

Сообщение Родэрик »

16F636 ... 3.6 вольт ... какие-то ноги выходные, какие-то входные ... подтяжка везде включена (что-то к верху, что-то к низу)
sleep - 0,6 микроампера (всё, что может кушать - отключено).
Аватара пользователя
Mursik
Мудрый кот
Сообщения: 1762
Зарегистрирован: Вт мар 28, 2023 21:17:15
Откуда: Universe

Re: PIC12F1822 SLEEP. Большой ток в спящем режиме

Сообщение Mursik »

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

:tea:
I have a dream...¯\_(ツ)_/¯
Аватара пользователя
zAries
Потрогал лапой паяльник
Сообщения: 305
Зарегистрирован: Ср сен 11, 2024 10:18:53

Re: PIC12F1822 SLEEP. Большой ток в спящем режиме

Сообщение zAries »

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

При условии, что питание будет 1,8v. Sleep mode: 20 nA @ 1.8V, typical
Audiatur et altera pars !
Аватара пользователя
serg_svd
Собутыльник Кота
Сообщения: 2560
Зарегистрирован: Ср янв 16, 2008 08:34:04
Откуда: KMV

Re: PIC12F1822 SLEEP. Большой ток в спящем режиме

Сообщение serg_svd »

[uquote="Mursik",url="/forum/viewtopic.php?p=4745493#p4745493"]...Зато потребление в слипе - наноамперы.

При условии, что питание будет 1,8v. Sleep mode: 20 nA @ 1.8V, typical[/uquote]
Это для LF
Изображение
Аватара пользователя
zAries
Потрогал лапой паяльник
Сообщения: 305
Зарегистрирован: Ср сен 11, 2024 10:18:53

Re: PIC12F1822 SLEEP. Большой ток в спящем режиме

Сообщение zAries »

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

Вернуться в «PIC»