Сторожевые таймеры. Watchdog. Краткое руководство по собаководству в STM32

Поделиться
HTML-код
  • Опубликовано: 24 мар 2019
  • Рассказывается об использовании сторожевых таймеров в процессоре STM32. Независимый и оконный сторожевые таймеры.
    Канал в телеграмм - t.me/vladimir_medintsev
    Канал Яндекс.Дзен - zen.yandex.ru/vladimir_medintsev
    Канал на RuTube - rutube.ru/channel/1797552/
    Канал на RUclips - / vladimirmedintsev
    ------------------------------------------
    Если вы хотите поддержать автора канала номер карты Сбер:
    2202-2023-2480-4008
    ------------------------------------------
  • НаукаНаука

Комментарии • 31

  • @internetuser6194
    @internetuser6194 4 года назад +1

    Здравствуйте Владимир. Спасибо, что делитесь опытом. Информация очень полезная.

  • @realtor3000
    @realtor3000 3 года назад

    Спасибо) и нет, я досматриваю не только до 12-13 минуты. Смотрится все, тем более очень хорошо подаётся материал.

  • @danilv.l.2501
    @danilv.l.2501 5 лет назад +1

    Спасибо! Коротко и ясно.

  • @StalkerSoft
    @StalkerSoft 5 лет назад +4

    10:38 светодиод моргнул лишний раз

    • @VladimirMedintsev
      @VladimirMedintsev  5 лет назад +1

      Да, это рассинхронизация по времени между основным и вставленным роликом.

  • @seawindkiev
    @seawindkiev 3 года назад +1

    Придумал пример для оконного таймера. Допустим, ловим переход через ноль в сети 50гц +- допуск и на каждый десятый переход надо делать какое-то действие. Знаем, что в секунду таких переходов 100, выставляем таймер на 1/100 секунды + окно и обновляем его после каждого перехода через ноль. В какой-то момент отваливается датчик и на входе вместо 50гц появляется помеха с хаотичным переходом через ноль. Сразу после первого же интервала который существенно меньше/больше чем 1/100 секунды (обновление таймера произойдет слишком рано или поздно и не попадет в окно) процессор уйдет в ресет. После ресета можно запускать процедуру диагностики датчиков в случае если регистр говорит что ресетнулись по watchdog'у.

  • @Bvv4529
    @Bvv4529 5 лет назад +4

    Владимир, Вы очень хороший человек 👍
    Спасибо Вам за ваш труд, очень приятно, что Вы все таки находите время на съемку и делитесь опытом со многими. Пересмотрел почти все видео за два вечера. Очень доходчиво и интересно. Все таки решил взять стм32 и пробовать. Хотя до просмотра ваших видео думал, что там все сложно.
    Есть пара вопросов. Можете сделать видео по снижению энергопотребления для приложений, где требуется продолжительная работа от аккумулятора?
    И какую серию посоветуете для начала? Мне вот приглянулись STM32F030 и популярные F103 , но их почему-то советуют не бать.
    Еще раз спасибо.

    • @VladimirMedintsev
      @VladimirMedintsev  5 лет назад

      Серию процессоров вы выбираете исходя из того, какая периферия вам нужна. Если вы будете разрабатывать носимые устройства с батарейным питанием, то смотрите на серию L1 или L4.
      Что касается энергопотребления то там нет общих указаний. И вообще энергопотребление оно базируется на нескольких основных составляющих. Тактовая частота, состав периферии, режим работы.

    • @VladimirMedintsev
      @VladimirMedintsev  5 лет назад

      Т.е. общий подход должен быть таким - разработать блок схему вашего устройства определив состав необходимых вам интерфейсов, портов, таймеров и прочего. Выбрать серию процессоров. Внутри серии выбрать подходящий по корпусу и памяти. А уже после этого прорисовывать схему устройства.

    • @Bvv4529
      @Bvv4529 5 лет назад

      @@VladimirMedintsev спасибо за ответ. Я пока просто хочу попробовать, подергать ногами, мигать светодиодом, передать данные по I2C, SPI.. Поучится в общем так, как для меня это новые контроллеры.
      То есть, видео по снижению энергопотребления не планируется?

    • @Bvv4529
      @Bvv4529 5 лет назад

      @@VladimirMedintsev это как бы понятно из предыдущих ваших видео, но интересен ваш опыт, советы..может где какие грабли есть или несоответствие з даташитом.
      Я работаю с серией контроллеров ATmega. И там все просто настраивается и отключать особо нечего - BOD да ADC. А у контроллеров STM32 все намного интереснее и сложнее. Вот и интересно как оно на практике.
      Спасибо

    • @VladimirMedintsev
      @VladimirMedintsev  5 лет назад +1

      @@Bvv4529 А вот не могу я сказать это точно. Может завтра меня перемкнет и я от нечего делать сниму видео про энергопотребление. Просто вся засада в том, что для каждой задачи и функционала это решается разными способами. Не факт что те методы, которые я использую подойдут именно для вашего проекта.
      Есть и еще один немаловажный факт, на некоторые темы не очень хочется снимать видео из-за опасений раскрыть слишком много коммерческих наработок. Типичный пример это работа с шиной CAN. По ней видео практически никто не снимает из-за того что коммерческие секретики у каждого.

  • @user-qe2ii8hv8k
    @user-qe2ii8hv8k 4 года назад +1

    В частотнозависимых Помехонагруженных системах. FVD/BLDC/DC-AC/DC-2faz-DC/DC-3faz-DC. ДЛЯ ПРОТИВОСТОЯНИЯ СБОЕВ pll, и ПЕРЕХОДА НА ВНУТРЕННИЙ rc!

  • @statstopfinish
    @statstopfinish 5 лет назад

    Интересно а как сторожевой таймер увязать с FreeRTOS? Да и вообще интересно как работать с прерываниями в FreeRTOS. Вы планируете продолжать уроки по FreeRTOS? Спасибо за уроки , все очень грамотно рассказываете, очень достойные уроки , жаль не часто выходят.

    • @VladimirMedintsev
      @VladimirMedintsev  5 лет назад +3

      А что собственно сложного. При использовании FreeRTOS вам необходимо периодически освежать значения в регистре сторожевого таймера. Отдельную задачу под это создавать нет смысла, значит делать в задаче с очевидно большим приоритетом. С прерываниями тоже сложности нет никакой. Как использовали их раньше так и используйте.
      Да, новые видео по FreeRTOS будут периодически появляться, но необходимо учитывать что канал не про программирование в чистом виде. Т.е. будет некоторый баланс между железной и программной частью.
      С частотой роликов тоже не все легко. На ролик уходит минимум 2-3 часа. А их взять где-то необходимо.

  • @Techn0man1ac
    @Techn0man1ac 4 года назад

    А резервные регистры, чтобы их содержимое сохранялось, нужно питать специальный вывод при помощи батарейки?

    • @VladimirMedintsev
      @VladimirMedintsev  4 года назад

      Есть прямо целое видео про это - ruclips.net/video/jQM8KUggwzw/видео.html

  • @user-to2tb6pi2g
    @user-to2tb6pi2g 5 лет назад +1

    Большое спасибо за видео, очень познавательно. Не могли бы вы снять видео ошибок по отказу работы кварцевого резонатора. А также работы таймера 1 при отказе резонатора, у него есть специальный режим работы при отказе резонатора. Он переходит на работу внутреннего кварца но при этом сбивается тактирование таймера, с ним частота работы что важно.

    • @VladimirMedintsev
      @VladimirMedintsev  5 лет назад +2

      Скажу честно с выбором темы вы меня сумели сильно удивить. Но есть простая проблема. Обычным людям эта тема не интересна в принципе. Ну представьте себе что должно случиться с вашим устройством чтобы произошел отказ резонатора. Вы вообще себе такой отказ представить можете? Так что эта тема будет интересна крайне ограниченному кругу лиц и им не составит труда прочитать всего 1 страницу reference guide где это описано. Т.е. просто переход на другое тактирование. Возможно просто я зациклился на своих разработках и не вижу применение этой фишке. Нет, ну правда я могу себе представить эту функцию применительно к космосу или к военке, но там используются чутка другие процессоры.

  • @irbiit4910
    @irbiit4910 5 лет назад +1

    а что такое резервный домен и зачем он нужен?

    • @VladimirMedintsev
      @VladimirMedintsev  5 лет назад

      Читайте в инструкции или рано или поздно будет видео. Но вообще именно в нем я показываю регистры хранения.

  • @talipovp500
    @talipovp500 5 лет назад

    у меня вопрос не по теме. А как вы отмываете платы от остатков флюса ?

    • @VladimirMedintsev
      @VladimirMedintsev  5 лет назад

      А разве есть варианты?
      После сборки плата отмывается в ультразвуковой ванне.
      Иногда в ванне налит раствор Solins но чаще просто сборная солянка спиртов и бензина.
      Зависит от того, что под рукой и насколько хорошо все отмывается.
      После ванны плата промывается в обычной воде в течении 2-3 минут и отправляется на сушку при температуре 60-80 градусов.

    • @talipovp500
      @talipovp500 5 лет назад

      @@VladimirMedintsev в финале дистиллированную воду вы не используете? Я брал у знакомого уз ванную - или ванная была неисправна или раствор Solnis не взял остатки флюса после паяльной пасты и остатки флюса от проволочного припоя. Вообщем платы в итоге отмывать пока не получается.

    • @VladimirMedintsev
      @VladimirMedintsev  5 лет назад

      @@talipovp500 Да, есть флюсы которые Solins не берет, это когда он старый и просроченный. Чип-дип, например, часто полную гадость продает. В этом случае просто используйте бензин в смеси со спиртами. Промывка дистиллированной водой не так важна если изначально вода хорошая. У меня минерализация очень низкая и фильтра на водопроводе более чем хорошие.

  • @Insideus2786
    @Insideus2786 5 лет назад

    А бывали ли у вас случаи, когда действительно было необходимо использовать сторожевые таймеры в реальных проектах? Я имею ввиду зависание МК, не из-за "криво написанного" кода, а из-за каких-либо внешних воздействий, где без таймера никак? Или это чисто учебная история?

    • @VladimirMedintsev
      @VladimirMedintsev  5 лет назад +4

      Если я разрабатываю устройства которые расcчитаны на длительную автономную работу (например контроллеры, то обязательно включаю в коде сторожевые таймеры). В качестве примера, есть серия контроллеров аварийных ситуаций которые автономно работали несколько лет. Не так давно читал логи. Несколько раз сторожевой таймер вытаскивал зависшие контроллеры. На одном сбоила внешняя память у другого была очень мощная наводка по линии связи. Иными словами единичные срабатывания были и это позволило оборудованию работать автономно. Также в носимых устройствах иногда случаются ситуации когда устройство попадает в те условия для которых было явно не предназначено. Например слишком высокая влажность с образованием конденсата или сильные магнитные поля. Это не редкая ситуация. При этом предсказать поведение устройства даже с прямо написанным кодом просто невозможно. Разумеется не будь в таком устройстве сторожевого таймера пришлось бы вынимать элементы питания или отключать аккумулятор. Не говоря уже о том, что ряд зарубежных стандартов прямо обязывает использовать сторожевые таймеры для определенных категорий изделий. Так что производитель включил watchdog в состав процессора не для учебного примера.

    • @Insideus2786
      @Insideus2786 5 лет назад +1

      @@VladimirMedintsev Спасибо за развернутый ответ! Буду иметь ввиду. Пока сколько я не экспериментировал мне не удавалось подвесить МК, но видимо, как вы и написали, все дело в "длительной автономной работе" .

    • @VladimirMedintsev
      @VladimirMedintsev  5 лет назад +3

      @@Insideus2786 Подвесить микроконтроллер? Да вы просто гоняете его в условиях "на столе". Нет ничего более враждебного чем обычные условия эксплуатации. Вон под предыдущим видео человек собирается сигнализацию в доме делать на интерфейсе I2C. Один из лучших способов подвесить контроллер. На втором месте - статика.

    • @Insideus2786
      @Insideus2786 5 лет назад

      ​@@VladimirMedintsev Не совсем. Я проходил тестирование, на ЭМС, куда в том числе, входила проверка на снижение показателей качества функционирования устройства при воздействии помех. В том числе и на статический разряд. Удивительно, но ничего не зависало. Это я исключительно про STM32. Atmel подвешивал статикой.