Ioann_II 0 10 сентября, 2020 Опубликовано 10 сентября, 2020 · Жалоба Здравствуйте, Коллеги. Потребовалась помощь. Устройство должно получать основное питание от сетевого БП с гасящим конденсатором. При пропадании сети надо переходить в режим STOP, а при появлении сети - снова в RUN. Питание во время отсутствия сети предполагается от электролитического конденсатора. Датчик сети выдаёт меандр при наличии сети, при отсутствии его нет. Тактирование от внутренних генераторов, используется PLL. Переход в режим STOP происходит, перед этим отключаю индикацию, записываю данные во FLASH, останавливаю таймер, АЦП, выключаю P-MOSFET-ключ, через который подаётся питание. Все неиспользуемые выводы в режиме выходов с низким уровнем. Практически если включить в сеть позже, чем через 1-2с, то вместо продолжения работы происходит RESET. Подал внешнее питание 3,3В на STM через мультиметр, чтобы измерить ток. Сделал внешний сигнал пробуждения от кнопки. Ток потребления составляет 5-6мкА. Конденсатора 470мкФ должно хватать на 80с. Отключаю сеть, через 10-20с снова включаю - STM в режиме STOP. Затем подаю сигнал пробуждения - и ... происходит RESET. Не пойму в чём дело... Подпаял временно ионистор, на нём контролирую напряжение мультиметром. Напряжениие держится. При включении в сеть - небольшая просадка. И RESET. Подскажите, куда копать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 60 10 сентября, 2020 Опубликовано 10 сентября, 2020 · Жалоба 3 minutes ago, Ioann_II said: И RESET. А нельзя ли посмотреть отладчиком причину сброса? Регистр RCC_CSR. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Ioann_II 0 10 сентября, 2020 Опубликовано 10 сентября, 2020 · Жалоба При переходе в STOP отладка у меня отваливается. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 63 10 сентября, 2020 Опубликовано 10 сентября, 2020 · Жалоба Попробуйте запитать МК от батареи и тоже подергать сеть - вполне вероятно, что дело не в питании. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Ioann_II 0 10 сентября, 2020 Опубликовано 10 сентября, 2020 · Жалоба Так я запитал от ионистора, он "держит" питание. Вот и спрашиваю. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 60 10 сентября, 2020 Опубликовано 10 сентября, 2020 · Жалоба 5 minutes ago, Ioann_II said: При переходе в STOP отладка у меня отваливается. Вывести содержимое битов после сброса на ножку последовательно, поймать анализатором. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 63 10 сентября, 2020 Опубликовано 10 сентября, 2020 · Жалоба 1 minute ago, Ioann_II said: Вот и спрашиваю. Вероятно, в момент коммутации сети ваш МК ловит импульс сброса. Как цепь RESET организована? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 183 10 сентября, 2020 Опубликовано 10 сентября, 2020 · Жалоба 21 минуту назад, haker_fox сказал: А нельзя ли посмотреть отладчиком причину сброса? Регистр RCC_CSR. Сделать вывод в отладочный UART. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Ioann_II 0 10 сентября, 2020 Опубликовано 10 сентября, 2020 · Жалоба Посмотрел - бит RCC_CSR_PORRSTF установлен. Получается, что по питанию. Цепь RESET - на выводе конденсатор 0,1мкф и на земляной полигон. Поставил дополнительно к ионистору конденсатор 470мкФ - стало правильное пробуждение. Вероятно, при пробуждении получается большой ток. Но почему? И можно этого избежать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 183 10 сентября, 2020 Опубликовано 10 сентября, 2020 · Жалоба 14 минут назад, Ioann_II сказал: Посмотрел - бит RCC_CSR_PORRSTF установлен. Получается, что по питанию. Цепь RESET - на выводе конденсатор 0,1мкф и на земляной полигон. Так если POR, то причём тут "цепь RESET"? Смотреть глитчи по линиям питания. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Ioann_II 0 10 сентября, 2020 Опубликовано 10 сентября, 2020 · Жалоба Тут есть у меня предположение: питание появляется не сразу, как к сети подключаю - надо, чтобы ещё конденсаторы зарядились. Пробовал сделать пробуждение от другого входа, на который подавал питание. Не получилось. Наверное, медленно питание появляется. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 63 10 сентября, 2020 Опубликовано 10 сентября, 2020 · Жалоба 58 minutes ago, Ioann_II said: Так я запитал от ионистора, он "держит" питание Держит ли? Если будить не сетью, а вручную - не сбрасывается? Лучше подключите батарею, а цепи питания МК от сети временно отключите. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Ioann_II 0 10 сентября, 2020 Опубликовано 10 сентября, 2020 · Жалоба Ув. aaarrr, на макетке всё было прекрасно, ток измерял (но источник не отключал), по одному событию уходил в STOP, и ток при этом не более 5-6мкА, по другому (кнопка) - переход в RUN. Никаких фокусов по питанию не обнаруживал, при пробуждении от кнопки ход программы продолжался как положено. Но вот когда всё это было перенесено в испытываемый образец, появились проблемы. Хочу заострить внимание на том обстоятельстве, что датчик сети пробуждает раньше, чем появляется нормальное питание на МК. Этот момент нужно исправить. Но как? Какие есть рекомендуемые решения? Что посоветуете? Ранее с подобными особенностями по питанию устройства делать не приходилось. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Zig 28 10 сентября, 2020 Опубликовано 10 сентября, 2020 · Жалоба 23 минуты назад, Ioann_II сказал: датчик сети пробуждает раньше, чем появляется нормальное питание на МК. Этот момент нужно исправить. Но как? Добавьте ключ на сигнал от датчика, который включится либо от сигнала с МК, либо по достижению нормального питания. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Ioann_II 0 10 сентября, 2020 Опубликовано 10 сентября, 2020 · Жалоба Zig, включать от сигнала с МК невозможно, т.к. МК в режиме STOP полностью остановлен и ничего не делает (если я конечно, не ошибаюсь). Про сигнал о достижении нормального питания думаю, это по сути нужна микросхема монитора питания - кстати, можете порекомендовать дешёвую, распространённую, на 3.3В, желательно в корпусе sot-23...sot23-6. Ну или в другом малогабаритном SMD? А то я давно забыл уже за них. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться