Jump to content

    

Ioann_II

Свой
  • Content Count

    236
  • Joined

  • Last visited

Community Reputation

0 Обычный

About Ioann_II

  • Rank
    Местный

Контакты

  • ICQ
    Array

Recent Profile Visitors

1864 profile views
  1. Питание нарастает достаточно медленно, а GPIO имеет зону неопределённости между уровнями 0 и 1, поэтому у меня выбор: или ставить пороговый элемент (сформировать этот GPIO сигнал), либо применить обычную задержку. Пошёл по второму пути. Задержка (1с) основана на прерывании SysTick. Это прерывание единственное, и его я не отключаю.
  2. Времени не было сразу задуматься, почему не получилось на частоте 15кГц (с максимальным делением)... а на выходных задумался... Причина простая - есть обработчик прерывания, который вызывается каждую 1мс, и видимо, при такой частоте, не успевает за 1мс выполнить все необходимые операции.
  3. На 15кГц сделать почему-то не получилось. Но на 250кГц всё прекрасно. Вставил ожидание. И конденсатора в 470мкФ оказалось достаточно. Спасибо за подсказки.
  4. В даташите ниже 8МГц не упоминается - надо завтра попробовать. Про ключ на P-MOSFET: коммутирует напряжение от стабилизатора на МК. Через встроенный диод напряжение подаётся на МК, а включением ключа обеспечивается равенство напряжения со стабилизатора и на МК. Это для внешних цепей на АЦП - чтобы не потребляли ток, когда МК в режиме STOP.
  5. Есть ещё тёмное место. Не совсем пока уверен, но. В макетке, при постоянном питании от программатора (через мультиметр, для контроля тока), при переходе в STOP ток спадал сразу до 5-6мкА. А в образце, при отключении сети ток спадает сначала до 230мкА, потом до 100мкА, потом до 5-6мкА, и это в течении 1-2с. Может мультиметр так показывает (по времени)... но разница есть. Программа одна. В макетке датчик наличия сети иммитирую с помощью таймера. В образце таймер работает так-же, но его сигнал не используется. Ну ведь писал, что ставил ионистор и параллельно ему конденсатор 470мкФ. В этом случае уже стало работать как надо, т.е. коммутация сети не влияла. По расчётам там одного конденсатора должно бы хватать... Теперь следующий шаг - обойтись без ионистора. Теоретически он не нужен. Или я ошибаюсь? Неплохо-бы взглянуть на типовые решения, но смог найти только с батарейным питанием и пробуждением от кнопки.... а это делается на "раз-два".
  6. В 2-3 раза - это несильно. Тут бы на порядок... А где поискать посоветуете?
  7. Недопонял: предлагаете при пробуждении сделать другую настройку тактирования, а с задержкой времени изменить её? Судя по даташиту можно ток снизить с 16 до 5мА (хотя измеренный ток, вместе с индикацией в режиме RUN составляет 13мА). Несильно выиграю, если перестрою на 8МГц. Вообще, сначала была мысль пробуждаться периодически и проверять наличие питания, но, думаю, это неправильно.
  8. Цены высоковаты... 12...36 руб. Хотя 12 ещё да. Понятно, что 3,3В не порог, а номинал, порог включения наверное чуть более 2В. STM32F030, как я понял, нормально работает от 2В. Про ключ не понял - это логический элемент или конкретное наименование? Может быть интересно в маленьком корпусе (опять таки, sot-23.... не больше). Сейчас крупные детали разместить негде... Если в паре с монитором питания, то функционально - оно. И в идеале, хотелось бы без ионистора обойтись, одним конденсатором, ёмкостью до 2200мкф, теоретически его должно хватить... Но что-то "поджирает" и сходу не удалось.
  9. Zig, включать от сигнала с МК невозможно, т.к. МК в режиме STOP полностью остановлен и ничего не делает (если я конечно, не ошибаюсь). Про сигнал о достижении нормального питания думаю, это по сути нужна микросхема монитора питания - кстати, можете порекомендовать дешёвую, распространённую, на 3.3В, желательно в корпусе sot-23...sot23-6. Ну или в другом малогабаритном SMD? А то я давно забыл уже за них.
  10. Ув. aaarrr, на макетке всё было прекрасно, ток измерял (но источник не отключал), по одному событию уходил в STOP, и ток при этом не более 5-6мкА, по другому (кнопка) - переход в RUN. Никаких фокусов по питанию не обнаруживал, при пробуждении от кнопки ход программы продолжался как положено. Но вот когда всё это было перенесено в испытываемый образец, появились проблемы. Хочу заострить внимание на том обстоятельстве, что датчик сети пробуждает раньше, чем появляется нормальное питание на МК. Этот момент нужно исправить. Но как? Какие есть рекомендуемые решения? Что посоветуете? Ранее с подобными особенностями по питанию устройства делать не приходилось.
  11. Тут есть у меня предположение: питание появляется не сразу, как к сети подключаю - надо, чтобы ещё конденсаторы зарядились. Пробовал сделать пробуждение от другого входа, на который подавал питание. Не получилось. Наверное, медленно питание появляется.
  12. Посмотрел - бит RCC_CSR_PORRSTF установлен. Получается, что по питанию. Цепь RESET - на выводе конденсатор 0,1мкф и на земляной полигон. Поставил дополнительно к ионистору конденсатор 470мкФ - стало правильное пробуждение. Вероятно, при пробуждении получается большой ток. Но почему? И можно этого избежать?
  13. Так я запитал от ионистора, он "держит" питание. Вот и спрашиваю.
  14. При переходе в STOP отладка у меня отваливается.
  15. Здравствуйте, Коллеги. Потребовалась помощь. Устройство должно получать основное питание от сетевого БП с гасящим конденсатором. При пропадании сети надо переходить в режим STOP, а при появлении сети - снова в RUN. Питание во время отсутствия сети предполагается от электролитического конденсатора. Датчик сети выдаёт меандр при наличии сети, при отсутствии его нет. Тактирование от внутренних генераторов, используется PLL. Переход в режим STOP происходит, перед этим отключаю индикацию, записываю данные во FLASH, останавливаю таймер, АЦП, выключаю P-MOSFET-ключ, через который подаётся питание. Все неиспользуемые выводы в режиме выходов с низким уровнем. Практически если включить в сеть позже, чем через 1-2с, то вместо продолжения работы происходит RESET. Подал внешнее питание 3,3В на STM через мультиметр, чтобы измерить ток. Сделал внешний сигнал пробуждения от кнопки. Ток потребления составляет 5-6мкА. Конденсатора 470мкФ должно хватать на 80с. Отключаю сеть, через 10-20с снова включаю - STM в режиме STOP. Затем подаю сигнал пробуждения - и ... происходит RESET. Не пойму в чём дело... Подпаял временно ионистор, на нём контролирую напряжение мультиметром. Напряжениие держится. При включении в сеть - небольшая просадка. И RESET. Подскажите, куда копать?