Форум РадиоКот 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 для кнопки. Возможно с внешним резистором ток будет меньше, надо экспериментировать. КРАМ писал(а): Наверное нужно опубликовать схему своего устройства... До можно и опубликовать, если нарисовать её ![]() |
Автор: | КРАМ [ Ср сен 10, 2025 15:40:17 ] |
Заголовок сообщения: | Re: PIC12F1822 SLEEP. Большой ток в спящем режиме |
Об этом ДШ говорит ДШ так же говорит об величине тока утечки Z состояния. И это не десятки микроампер. Это всего 0,1 мкА. Так что было бы интересно узнать как у вас включен светодиод. |
Автор: | КРАМ [ Ср сен 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 ![]() |
Автор: | Zikon [ Чт сен 11, 2025 15:18:19 ] |
Заголовок сообщения: | Re: PIC12F1822 SLEEP. Большой ток в спящем режиме |
Надо пробовать и остальные неиспользуемые пины переввести на выход и установить в ноль. Может и через них еще утечка идет? 20 мкА тоже много, если в ДШ указан совсем мизерный ток. Про 20 мкА, к которым я стремился, это я невнимательно ДШ прочел. 20 мкА - это ток в рабочем режиме самого микроконтроллера с LP тактировпнием. А в спячке то тактировпние выключено. Значит надо искать, как еще можно снизить ток Перечитал ДШ и вопрос если у вас PIC12F1822 - то это минимум - 20мкА а вот если PIC12LF1822 - то там действительно мизерные токи ! |
Автор: | 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в. Зато потребление в слипе - наноамперы. ![]() |
Автор: | zAries [ Пт сен 12, 2025 22:51:39 ] |
Заголовок сообщения: | Re: PIC12F1822 SLEEP. Большой ток в спящем режиме |
...Зато потребление в слипе - наноамперы. При условии, что питание будет 1,8v. Sleep mode: 20 nA @ 1.8V, typical |
Автор: | 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/ |