Заголовок сообщения: Watch Dog STM32 перезагружает ethernet
Добавлено: Сб окт 13, 2018 19:25:39
Родился
Зарегистрирован: Чт сен 27, 2018 18:14:49 Сообщений: 13
Рейтинг сообщения:0
Уважаемые коты! Подключил Watch Dog в stm32f767 (плата NUCLEO-F767ZI). Библиотек в кубе почему-то не оказалось. Написал вручную, как чувак рассказывает в этом ролике https://www.youtube.com/watch?v=xzM3NxqSchs
Работает нормально. Сделал эксперимент. Зажег пин и поставил задержку несколько секунд. 8 раз в секунду осциллограмма дергается вниз - микроконтроллер перезагружается.
Но вот что интересно. Подаю число через переходник usb-uart на uart микроконтроллера (пользуюсь LabView). На плате 767 есть ethernet-разъем. Если не подавать данные на USART (выдернуть провода), watch dog 8 раз в секунду моргает оранжевой лампочкой - со скоростью сброса Watch Dog . Если подавать данные - не моргает. Почему так? Я ethernet не активировал. Как индикация работы Watch Dog конечно прикольно, но наверное ethernet работает независимо и Watch Dog его постоянно перезагружает. Можно ли его отключить?
Еще я слышал, что Watch Dog после срабатывания включает какой-то флаг. Его надо потом сбрасывать или необязательно? Может ли быть перезагрузка ethernet из-за каких-нибудь несброшенных флагов? Предполагаю, что на каждом периферийном узле стоит такой флаг, и его надо вручную сбрасывать.
Заголовок сообщения: Re: Watch Dog STM32 перезагружает ethernet
Добавлено: Ср окт 17, 2018 00:18:50
Родился
Зарегистрирован: Чт сен 27, 2018 18:14:49 Сообщений: 13
Рейтинг сообщения:0
Почему бот? Я жив!
Добавлено after 25 minutes 5 seconds: Кажется дошло.WatchDog перезагружает не ethernet, а весь микроконтроллер целиком. Если выдернуть провода, функция HAL_UART_Receive похоже не пропускает программу дальше, и WDG переполняется. Подскажите, есть ли функция проверки подключения usart, что провода не висят в воздухе а именно подключены? А то можно задеть ногой кабель, и stm вместо того чтобы просто замолчать начнет постоянно перезагружаться. Сделать бы условие: если usart не подключен, то выходим из функции, а если подключен то выполняем функцию.
Качественное и безопасное устройство, работающее от аккумулятора, должно учитывать его физические и химические свойства, профили заряда и разряда, их изменение во времени и под влиянием различных условий, таких как температура и ток нагрузки. Мы расскажем о литий-ионных аккумуляторных батареях EVE и нескольких решениях от различных китайских компаний, рекомендуемых для разработок приложений с использованием этих АКБ. Представленные в статье китайские аналоги помогут заменить продукцию западных брендов с оптимизацией цены без потери качества.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Заголовок сообщения: Re: Watch Dog STM32 перезагружает ethernet
Добавлено: Ср окт 17, 2018 17:55:41
Родился
Зарегистрирован: Чт сен 27, 2018 18:14:49 Сообщений: 13
Рейтинг сообщения:0
Ну так от отключенных проводов данные прийти не могут. Если я подтягивающие резисторы на rx и tx поставлю на +питания (и они будут гнать логические нули), это поможет, как думаете?
Заголовок сообщения: Re: Watch Dog STM32 перезагружает ethernet
Добавлено: Ср окт 17, 2018 21:22:54
Родился
Зарегистрирован: Чт сен 27, 2018 18:14:49 Сообщений: 13
Рейтинг сообщения:0
Дааа! Ух ты, с прерыванием-то все нормально работает! И WDG отключать не пришлось! Написал __HAL_UART_ENABLE_IT(&huart3, UART_IT_RXNE); И в бесконечном цикле вызываю прерывание HAL_UART_Receive_IT(&huart3, &X, 1); Если данные не приходят, вызов прерывания тупо пропускается и WDG в следующей строке сбрасывается IWDG -> KR=((uint32_t)0xAAAA);.
VladislavS , я с вами дружу! Надо сказать BusMasterу, чтобы возвращал мне мою карму взад!
Заголовок сообщения: Re: Watch Dog STM32 перезагружает ethernet
Добавлено: Ср окт 17, 2018 21:38:38
Родился
Зарегистрирован: Чт сен 27, 2018 18:14:49 Сообщений: 13
Рейтинг сообщения:0
Прерывание в бесконечном цикле вызываю, вызвать его на стороне не получается. Там какой-то глюк в Кубе. Хотя конечно глупо, прерывание на то и прерывание, чтобы откуда угодно вызываться.
Заголовок сообщения: Re: Watch Dog STM32 перезагружает ethernet
Добавлено: Ср окт 17, 2018 21:54:39
Родился
Зарегистрирован: Чт сен 27, 2018 18:14:49 Сообщений: 13
Рейтинг сообщения:0
Тьфу, херню написал. Вызывается откуда угодно, а функция обработчика прерываний пишется в сторонке. А где там функция для обработчика по приему на UART пока не разобрался.
Вообще-то по вменямому, вся обработка должна быть в хэндлере, без всяких колбэков и прочей ереси и как можно короче. Нет , тогда выставляем флаг и обрабатываем в суперлупе. Это для вашего уровня...
Заголовок сообщения: Re: Watch Dog STM32 перезагружает ethernet
Добавлено: Ср окт 17, 2018 22:59:22
Родился
Зарегистрирован: Чт сен 27, 2018 18:14:49 Сообщений: 13
Рейтинг сообщения:0
Управление-то вручную, зачем мне быстрее одного байта.
А вообще как положено делать? Упаковывать в пакет и посылать всем скопом? Если например ацп задействовать? Однажды возился с платой сбора данных, там по 4000 точек сразу посылалось.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 18
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения