Очень люблю прерывания по питающему напряжению. При многих ситуациях позволяют выжить конроллеру или не запороть данные, которые пишуться во флеш или EEPROM. Особенно радует нулевая стоимость этой возможности для разработки. Но в проектах, которые критичные к работе с осложненым доступом человека и не сильно критичные к потребляемому питанию, предпочитаю дополнительно использовать внешние супервизоры включающие в себя как правило и супервизор питания, и вачдог. При этом огромным плюсом внешнего супервизора является возможность завести для детекции внешнее питание (например 24В) и детектировать просадку еще на нем. Что позволяет отловить контроллеру проблему с питанием еще на стадии, что в него приходит полноценные 3,3В за счет емкостей. И этого уже с легкостью хватает завершать практически любые задачи и переводить порты в "безопасные" режимы.
@akvilion73654 жыл бұрын
Использовал PVD при работе с внутренней памятью. Чтобы при падении напряжения (считай, пропаданию питания) не записать битые данные или стереть страницу не до конца. Очень удобная штука.
@BB-ti9bf4 жыл бұрын
Я использую модули на zmpt101, (раньше на pc114), при пропадании напряжения сети я получаю на мк это уведомление сильно раньше, чем начнут разряжаться конденсаторы питания.
@user-jl7et8gx5u4 жыл бұрын
Спасибо
@eugene64114 жыл бұрын
Владимир, а почему по старинке используете Keil, а не переходите на STM32CubeIDE?
@VladimirMedintsev4 жыл бұрын
Вы ведь в реальности то не видите на чем создаются мои проекты. Я всегда говорил, что в видео будет использоваться Keil и лишь иногда CubeIDE. Сделано это в связи с тем, что Keil более распространен как на Ютуб так и в статьях.
@eugene64114 жыл бұрын
@@VladimirMedintsev тогда понятно, спасибо за ответ
@olegyurkov60714 жыл бұрын
Владимир, спасибо за видео
@rafikharutyunyan2994 жыл бұрын
Владимир, подскажите, как вы организуете обработку простой кнопки, т.е. через таймер, внешнее прерывание или в цикле ? , какой самый правильный способ, мне очень интересно как делаете вы в серьезных проектах, спасибо.
@VladimirMedintsev4 жыл бұрын
На кнопки и органы управления у меня всегда отдельная задача висит во FreeRTOS. Эта задача давит дребезг контактов и отправляет сообщение в очередь внутри программы оповещая о действиях пользователя.
@rafikharutyunyan2994 жыл бұрын
@@VladimirMedintsev спасибо)
@pavelboboshkin38984 жыл бұрын
Помогите найти информацию на описание битовых полей регистра PWR_CR PLS[2..0]. В референс мануал на серию контроллеров STM32F0 (RM0091) сказано только, что "These bits are written by software to select the voltage threshold detected by the Power Voltage Detector." PVD threshold 0..PVD threshold 7, но нигде не написано, какие напряжения соответствуют этим значениям. А в .h файле на контроллер эти битовые поля вообще не определены!!!
@pavelboboshkin38984 жыл бұрын
Заглянул в документацию на серию STM32F1. Там напряжения расписаны, но возникает вопрос: в контроллерах F0 такие же напряжения, или они могут отличаться?
@VladimirMedintsev4 жыл бұрын
Вы читаете референс мануал. Там в описании этого регистра на странице 90 сказано - Refer to the electrical characteristics of the datasheet for more details. Что означает эти характеристики смотреть в даташите. Открываем даташит (я взял к примеру даташит на STM32F031x4) и там в разделе 6.3.3. есть табличка со всеми напряжениями и их отклонениями от заданного значения в вольтах. Ну я к тому, что написано DATASHEET значит там и надо искать. Вот так и тратят люди свои 3 желания.
@pavelboboshkin38984 жыл бұрын
@@VladimirMedintsev Да, действительно, в указанном вами даташите эта информация есть. А я искал её в даташите на STM32F030x4, так как использую этот контроллер, и там её нет. Спасибо за помощь.
@ibrag20124 жыл бұрын
Дуже цікава проблема: впирається аж в політику продукту: на випадок краху відкриваємо всі шлюзи чи закриваємо.
@vernnms784 жыл бұрын
Очень информативно. Я сам ардуинщик, но постепенно присматриваюсь к STM, благодаря Вам.
@user-ed9px3cz7g4 жыл бұрын
Ардуинщик - звучит как обзывательство
@denisgimper69984 жыл бұрын
Не! как диагноз)
@intelektum4 жыл бұрын
Возможно, уровни напряжений различается в контроллерах, а библиотека общая, поэтому и не вписали значения.
@VladimirMedintsev4 жыл бұрын
Библиотека HAL она на серию мелкоконтроллеров. Я конечно не проверял, но сомневаюсь что в серии будут различия.
@andrey75304 жыл бұрын
Спасибки
@Aleksandr-g8s4 жыл бұрын
Спасибо за знания. Очень жду ролик по PoE
@VladimirMedintsev4 жыл бұрын
PoE пока откладывается. Нет в работе проектов с Ethernet.
@Michael_Kaa4 жыл бұрын
АЦП тоже можно настроить на генерацию прерывания по определенному уровню. например на тот случай если нужно контролить другие линии питания.
@VladimirMedintsev4 жыл бұрын
АЦП можно, но на преобразование АЦП тратит время. А этого иногда и не хватает. Кроме того, тут это без лишней периферии, у вас этот модуль включен всегда. В устройствах с низким энергопотреблением включить АЦП это лишний расход.
@Michael_Kaa4 жыл бұрын
@@VladimirMedintsev Согласен. Но все же принцип тот же: оно само там себе крутиться и генерит прерывание если что не так.
@avi-crakhome25244 жыл бұрын
Ножка контроля напряжения PVD имеет низкое входное сопротивление. При прямом подключении к Vdd - нагрузка незаметна. Но весь прикол в шансе последнего удара, мк должен успеть сделать что-то полезное на остатках энергии. В этом случае линия измерения напряжения PDR_ON - подключается через делитель на резисторах к внешнему питанию (до стабилизатора 3,3V!!!). Нижний резистор должен иметь номинал в десятки килоом, не больше!!! Энергии во внешнем конденсаторе питания 100мф достаточно для корректного завершения операций записи в флешь память. Есно всё это справедливо для режима без искр. Замыкание пинцетом (или чем-то металлическим) внешнего конденсатора питания - лишает смысла всего написанного здесь текста.
@akvilion73654 жыл бұрын
Ещё и периферию можно отключать и тактирование шин - тогда запаса ёмкости конденсаторов обвязки хватит на большее количество циклов работы МК.
@ajdarseidzade6884 жыл бұрын
А где эта "ножка контроля напряжения PVD" находится? К стыду своему пока не сталкивался с ней. Я пока, вообще-то, с апреля стал изучать STM32. Вот на примере корпуса TQFP-100, что тут в видео использован, где эта ножка находится так и не понял.
@VladimirMedintsev4 жыл бұрын
@@ajdarseidzade688 в моем примере никакую ножку я не использовал. В моем конкретном примере использовалось напряжение на выводах VDD. Т.е. цифровое питание.
@VladimirMedintsev4 жыл бұрын
@@ajdarseidzade688 Однако если вы выберите в кубе настройки ADC1 и там среди его каналов прокрутить до самого низа то обнаружите канал vbat channel который соединен с выводом 6 vbat.
@avi-crakhome25244 жыл бұрын
@@ajdarseidzade688 PDR_ON - это аппаратная нога контроля напряжения. Она либо есть в вашем мк, либо её нет. Например она есть в STM32F746BGT, номер контакта 203. В stm32f439zit, контакт 143, и так далее. (Грузим кубик и играемся.) При контроле напряжения через ацп - необходимо его рабочее "взведённое" состояние, да ещё и задержка прибавляется. А на контакте PDR_ON висит несколько деревянных по пояс компараторов, которые способны работать почти мгновенно. Это тот самый момент, когда блох вычёсывать нужно прямо сейчас.