Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Электрические помехи и STM32
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Страницы: 1, 2
картошка
В общем так, при тестировании STM32 в боевых условиях с помехами и наводками, в частности: STM32F03, STM32F207 и д.р. выявилась проблема, которая на микроконтроллерах типа AVR никогда не проявлялась или очень редко проявлялась.
Небольшие наводки (естественно выше допустимых по мануалу уровней) по GPIO портам у STM32 вызывают аппаратные сбои ядра, периферии и оперативной памяти.
В одних случаях сбоит периферия: слетает инициализация или происходит установка ошибок, лечится банальной но частой переинициализацией по программному таймеру или переинициализацией после отработки некоторых условий. В других случаях происходит сбой ядра и передача управления на HARDFAULT_Handler или BUSFAULT_Handler, где вместо while (true) - поставили простое лечение NVIC_SYSTEM_Reset (). Иногда сбоит оперативная память, теряет данные. Но это все поправимо, если устанавливать контрольные суммы.

Что делать, когда заинициализированный и проверенный WATCHDOG после наводок не сработал, а внутреннее ядро СТАЛО, симптомы именно такие ! В HARDFAUL вхождения не было !!!
Проблема не в том, чтобы в оборудовании сделать ПОЛНУЮ гальваноразвязку, как устранить полное зависание и останов ядра после сбоя, если сам WATCHDOG слетает и ядро где-то шляется по адрессам ?

Видел в живую некоторые реализации схемотехники для 8051 микроконтроллера. С внешней микросхемы формирователя на 555 генерился постоянный неуправляемый сброс с определенным периодом и скважностью, остается догадываться что программа организованна по SWITCH CASE программного состояния. Но это достаточно неудобно когда организовываешь протокол обмена например по MODBUS, где циклы сброса с формирователя ассинхроны к пакетам передачи ???

Кто-нибудь знает как вывести STM32 из полного штопора ??????????????????????
segment
Может быть стоит пересмотреть схемотехнику?
картошка
Цитата(Сега @ Apr 29 2016, 21:02) *
Может быть стоит пересмотреть схемотехнику?


Да в том то и дело, надо решить проблему на корню. Помехи могут добраться и до полной гальваноразвязки (не припомню когда было sm.gif ) и бронированного корпуса.

Кто-нибудь знает как вывести STM из полного штопора. Склалось впечатление о полной остановке ядра.
1113
Цитата(картошка @ Apr 29 2016, 20:00) *
естественно выше допустимых по мануалу уровней

где об этом почитать?
картошка
Цитата(1113 @ Apr 29 2016, 21:09) *
где об этом почитать?


Absolute maximum ratings ... В каждом Product Specifications pdf на соответствующий микроконтроллер.
x893
Поставте внешний watchdog, хоть 5 внешних - один да сработает если что.
ViKo
Как watchdog может сломаться? Это фантастика. Вы где его сбрасываете? Не в прерывании?
В STM32F207 их там 3.
segment
А что за помехи такие? От чего наводится?
1113
Цитата(картошка @ Apr 29 2016, 20:00) *
при тестировании STM32 в боевых условиях с помехами и наводками, в частности: STM32F03, STM32F207

покажите схему плату и опишите условия
adnega
Цитата(картошка @ Apr 29 2016, 20:07) *
Кто-нибудь знает как вывести STM из полного штопора.

А зачем, если у вас такие помехи, что даже ОЗУ портится?
Только аппаратное решение напрашивается.
картошка
Цитата(ViKo @ Apr 29 2016, 21:17) *
Как watchdog может сломаться? Это фантастика. Вы где его сбрасываете? Не в прерывании?


Таки да, сломался. В прерывании сброс WATCHDOGA я бы додумался поставить лет 15 назад, сейчас не встает вопрос, не школьник, не ставлю.
ViKo
Цитата(картошка @ Apr 29 2016, 20:21) *
Таки да, сломался.

Independent watchdog?
картошка
Цитата(adnega @ Apr 29 2016, 21:20) *
А зачем, если у вас такие помехи, что даже ОЗУ портится?
Только аппаратное решение напрашивается.


Вот. Я об том же, о надежности. А если все-таки дойдет помеха, доберется ?! Потом что капитуляция или как ? Я все грешу на свою несостоятельность, мож что не так делаю sm.gif. Вернее ищу дельного совета.

Цитата(ViKo @ Apr 29 2016, 21:23) *
Independent watchdog?


Да, он , не WWDG. Проверил, он работает. Но когда на него надеешься - он сливается.
ViKo
Так защиту по входам поставьте, если не школьник. rolleyes.gif И по питанию тоже. sm.gif
картошка
Цитата(ViKo @ Apr 29 2016, 21:28) *
Так защиту по входам поставьте, если не школьник. rolleyes.gif И по питанию тоже. sm.gif


Не школьник. По земле иногда проходит, по чистой, по GND. Поэтому гальваноразвязка только. Но ответ на вопрос "как выйти из штопора " - дороже гальваноразвязки !!!
Выяснилось не по питанию идет. Идет по корпусу железному + рядом провода с индукционными наводками (убрали). Выбросы реактивных цепей, пускатели, частотные приводы. Питание сразу поставили импульсное.
1113
с чего решили?
adnega
Цитата(картошка @ Apr 29 2016, 20:28) *
Вот. Я об том же, о надежности. А если все-таки дойдет помеха, доберется ?! Потом что капитуляция или как ? Я все грешу на свою несостоятельность, мож что не так делаю sm.gif.

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

Я предлагаю определить помехи, на которые ваше устройство должно адекватно реагировать (работать при помехе;
не работать при помехе, но восстанавливать работоспособность после снятия помехи) и проектировать цепи защиты исходя из
указанных ограничений. Обычно требования к помехам прописаны в руководящих документах для конкретного типа изделий.


Цитата(картошка @ Apr 29 2016, 20:33) *
Питание сразу поставили импульсное.

Я обычно ставлю импульсное для 5В, затем линейный стабилизатор на 3.3В
scifi
Цитата(картошка @ Apr 29 2016, 20:33) *
Но ответ на вопрос "как выйти из штопора " - дороже гальваноразвязки !!!

Имеет ли смысл этот вопрос? Если процессор "вошёл в штопор", он может натворить непоправимое, и "выход из штопора" может быть уже не актуальным. То есть нельзя допускать штопор.
А по поводу выхода - внешний RESET должен работать. А снятие питания совершенно точно поможет.
картошка
Цитата(ViKo @ Apr 29 2016, 21:17) *
Как watchdog может сломаться? Это фантастика. Вы где его сбрасываете? Не в прерывании?
В STM32F207 их там 3.

За бусы фаулты тоже знаем и за другие. Везде поставил NVIC_Reset. Срабатывает иногда в 90 процентах случаев - пока штопор не отлавливает. А в STM32F03 - там только HARDFAULT.


Цитата(scifi @ Apr 29 2016, 21:41) *
Имеет ли смысл этот вопрос? Если процессор "вошёл в штопор", он может натворить непоправимое, и "выход из штопора" может быть уже не актуальным. То есть нельзя допускать штопор.
А по поводу выхода - внешний RESET должен работать. А снятие питания совершенно точно поможет.


Ну он только RESETом и выводится. Знаете более или менее надежные системы периодического сброса, проверенные опытом и временем, чтоб без програмной настройки были. Чтоб очень "деревянные" были, электричества не боялись sm.gif ?!
amiller
Цитата(ViKo @ Apr 29 2016, 20:17) *
Как watchdog может сломаться? Это фантастика. Вы где его сбрасываете? Не в прерывании?
В STM32F207 их там 3.

Если речь идёт о том, что глючит периферия STM, то почему не может произойти сбой таймера-сторожа? Это такой же периферийный модуль.
Если остальные наблюдаемые эффекты Вас не смущают, и дело только в WDT, то я рекомендую Вам также поставить внешний таймер.
Несмотря на то, что сам я с такими эффектами не сталкивался, в особо ответственных применениях наряду с внутренним WDT, всегда использую ещё и внешний, тем более, что стоит он копейки.
Я тоже не так давно был неприятно удивлён, что модуль протоколирования операций на STM32 в условиях сильных помех писал в области Flash, куда ему писать было запрещено. Хотя адреса неоднократно программно проверяются перед записью. Пришлось через Option byte запрещать запись в некоторые сектора.
Но само по себе это печально. Пока я ещё верю, что схемотехнически, используя комплексные меры защиты, можно любой микроконтроллер заставить нормально работать в любых условиях.
Но знаю несколько человек, которые утверждают, что там где STM32 периодически выходит из строя в результате воздействия мощных электромагнитных помех, AVR работают устойчиво.
adnega
Уж если речь идет об STM32, то советую пролистать AN3307.
картошка
Цитата(adnega @ Apr 29 2016, 21:41) *
Помехи классифицируются. От одних помех можно дешево и надежно защититься. От всех помех защититься не возможно.
По мере расширения класса подавляемых помех, стоимость защиты увеличивается. При недопустимом уровне помех,
когда цифровая схема начинает работать как аналоговая - аналитический аппарат становится другим.
Можно назвать это "капитуляцией".

Я предлагаю определить помехи, на которые ваше устройство должно адекватно реагировать (работать при помехе;
не работать при помехе, но восстанавливать работоспособность после снятия помехи) и проектировать цепи защиты исходя из
указанных ограничений. Обычно требования к помехам прописаны в руководящих документах для конкретного типа изделий.



Я обычно ставлю импульсное для 5В, затем линейный стабилизатор на 3.3В


С питание аналогично, LM1117-3.3.
Помеха ЖЕСТКАЯ ! Резкое изменение потенциала земли в какую-либо сторону в момент резких выбросов ЭНЕРГИИ дальше по схеме. Ответ по поведению внутреностей ядра- имеет право, такое наблюдал, когда напряжение питания на цифровых схемах снижается до уровня работы в неопределенном гистерезисе цифр. уровней. Но тут с питанием все нормульно. Происходит сбой не изменяя вроде внутренего гистерезиса, хотя я уже склоняюсь до подобных представлений.
Что посоветуете из проверенных временем "не настраиваемых программно" схем внешнего периодического сброса ?!

Цитата(amiller @ Apr 29 2016, 21:48) *
Если речь идёт о том, что глючит периферия STM, то почему не может произойти сбой таймера-сторожа? Это такой же периферийный модуль.
Если остальные наблюдаемые эффекты Вас не смущают, и дело только в WDT, то я рекомендую Вам также поставить внешний таймер.
Несмотря на то, что сам я с такими эффектами не сталкивался, в особо ответственных применениях наряду с внутренним WDT, всегда использую ещё и внешний, тем более, что стоит он копейки.
Я тоже не так давно был неприятно удивлён, что модуль протоколирования операций на STM32 в условиях сильных помех писал в области Flash, куда ему писать было запрещено. Хотя адреса неоднократно программно проверяются перед записью. Пришлось через Option byte запрещать запись в некоторые сектора.
Но само по себе это печально. Пока я ещё верю, что схемотехнически, используя комплексные меры защиты, можно любой микроконтроллер заставить нормально работать в любых условиях.
Но знаю несколько человек, которые утверждают, что там где STM32 периодически выходит из строя в результате воздействия мощных электромагнитных помех, AVR работают устойчиво.


Приятно услышать слово от закаленного трудоднями человека. sm.gif
ViKo
Цитата(картошка @ Apr 29 2016, 20:47) *
За бусы фаулты тоже знаем и за другие. Везде поставил NVIC_Reset. Срабатывает иногда в 90 процентах случаев - пока штопор не отлавливает. А в STM32F03 - там только HARDFAULT.

Я про 3 watchdog-а.

Цитата(amiller @ Apr 29 2016, 20:48) *
Если речь идёт о том, что глючит периферия STM, то почему не может произойти сбой таймера-сторожа? Это такой же периферийный модуль.

Пока есть питание, LSI RC генератор должен работать. А счетчик после него завалить? сомневаюсь. Ну, если вольт 3000 шарахнуть, все может быть.
zltigo
QUOTE (ViKo @ Apr 29 2016, 20:17) *
Как watchdog может сломаться? Это фантастика.

Фанастика это то, что Вы все еще верите во встроеные watchdog-и sm.gif sad.gif и вообще в чудодейственный сброс.

Это обычная перефиферия со всеми обычными и потенциальными проблемами.
adnega
Цитата(картошка @ Apr 29 2016, 21:02) *
Помеха ЖЕСТКАЯ !

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

Если бы вы озвучили параметры помехи и показали схему защиты с топологией,
то довольно быстро вам бы показали, где слабое место.
amiller
Цитата(ViKo @ Apr 29 2016, 21:04) *
Пока есть питание, LSI RC генератор должен работать. А счетчик после него завалить? сомневаюсь. Ну, если вольт 3000 шарахнуть, все может быть.

Автор написал, что происходит сброс настроек периферии. Значит и таймер-сторож может отключиться (сбросится в начальное состояние). Может конечно помочь принудительное включение таймера через Option byte, но надежнее проверенный путь - внешний WDT.
ViKo
Цитата(картошка @ Apr 29 2016, 20:33) *
Не школьник. По земле иногда проходит, по чистой, по GND.

Это смотря с какой точки смотреть. biggrin.gif если относительно земли, то по питанию.
rudy_b
Цитата(картошка @ Apr 29 2016, 20:33) *
Не школьник. По земле иногда проходит, по чистой, по GND. Поэтому гальваноразвязка только. Но ответ на вопрос "как выйти из штопора " - дороже гальваноразвязки !!!
Выяснилось не по питанию идет. Идет по корпусу железному + рядом провода с индукционными наводками (убрали). Выбросы реактивных цепей, пускатели, частотные приводы. Питание сразу поставили импульсное.

Что-то слабо верится. Поставьте плату в отдельный экранированный корпус, нормально защитите все входы/выходы (продольный резистор + шотки земля-питание) (питание в т.ч - стабилитрон), нормально разведите плату (4-х слойка со слоями земли и питания+правильная разводка) и в такой блок можно будет напрямую молниями пулять без всяких сбоев, независимимо от процессора.

Мы делали блоки контроля тока ОПН - там импульсы напряжений до сотен кВ с токами до 100 кА с крутыми фронтами - и все нормально работало без сбоев. Да еще и питаться умело от этих самых импульсов.

А гальваноразвязку тоже с умом делать нужно, от высокочастотных помех она не спасет - фильтры нужны.
ViKo
Цитата(zltigo @ Apr 29 2016, 21:06) *
Фанастика это то, что Вы все еще верите во встроеные watchdog-и sm.gif sad.gif и вообще в чудодейственный сброс.

Чем встроенный watchdog хуже внешнего? Точнее, что мешает сделать такой же качественный? А то, что в STM32 его можно отключить, да, это не очень надежное решение.
Вообще-то, речь не только про сторожа. И про защиту. И про плохую землю. Про отсутствие экранов.
картошка
Цитата(adnega @ Apr 29 2016, 21:57) *
Уж если речь идет об STM32, то советую пролистать AN3307.


Печалит одно только существование документа... На ровной дороге такие документы не составляются, видимо как способ увести внимание что грабли из чужого огорода у ST немного получилось. Все еще надеюсь найти совет по штопору. В AVR при компиляции программ я в конце BIN файла обычно JMP 0 ставил, а тут некуда. Возможно ядро и работает, но ГДЕ-ТО там, а WATCHDOG завял. Может в оперативку в конец сгенерировать код на NVIC_Reset ???
zltigo
QUOTE (ViKo @ Apr 29 2016, 21:18) *
Чем встроенный watchdog хуже внешнего?

Вам уже было написано. Причем не только мной. Читайте.

Огурцов
как бы посмотреть схему и плату ?
хотя бы чтобы так не делать
adnega
Цитата(картошка @ Apr 29 2016, 21:20) *
Печалит одно только существование документа...

Дык, вы его полистайте и печаль пройдет. В документе написано про надежную софтовую часть.
Как тестировать, что тестировать. Или вы считаете, что этого делать не стоит, т.к. есть прекрасный AVR?
При этом нужно понимать, что аппаратная часть должна быть исправная. И софт и железо - это параллельные вещи.

Из личного: я одновременно использовал в работе и AVR, и STM32. Всяко бывало... но AVR частенько выдерживал
12В на входе. Ну как выдерживал? - пин выгорит, а все остальное продолжает работать. У STM32 при ахтунге на
входе сразу КЗ по питанию. При этом если ток по питанию не ограничивать, камень будет греться, но продолжает работать.
Собственно, как к этому относиться? В начале меня это очень сильно печалило - шаг влево, шаг вправо, МК в помойку.
Но когда потребовалось делать ответственную аппаратуру, то такое поведение МК мне очень понравилось. Сразу можно
сказать, что МК не исправен, а не эксплуатировать полу-рабочее изделие.

Это накладывает сильный отпечаток на разработку. Согласитесь, разница очевидна? С одной стороны: "если я не позабочусь
о помехе и ее энергия попадет на пин, то получу полностью убитое изделие". С другой стороны: "наплевать на помеху,
поставлю внешнюю кувыркалку, чтоб она в случае чего перезапускала софт; один пин отгорит - не жалко - их еще много".
картошка
Цитата(rudy_b @ Apr 29 2016, 22:11) *
Что-то слабо верится. Поставьте плату в отдельный экранированный корпус, нормально защитите все входы/выходы (продольный резистор + шотки земля-питание) (питание в т.ч - стабилитрон), нормально разведите плату (4-х слойка со слоями земли и питания+правильная разводка) и в такой блок можно будет напрямую молниями пулять без всяких сбоев, независимимо от процессора.

Мы делали блоки контроля тока ОПН - там импульсы напряжений до сотен кВ с токами до 100 кА с крутыми фронтами - и все нормально работало без сбоев. Да еще и питаться умело от этих самых импульсов.

А гальваноразвязку тоже с умом делать нужно, от высокочастотных помех она не спасет - фильтры нужны.


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

Цитата(adnega @ Apr 29 2016, 22:34) *
Дык, вы его полистайте и печаль пройдет. В документе написано про надежную софтовую часть.
Как тестировать, что тестировать. Или вы считаете, что этого делать не стоит, т.к. есть прекрасный AVR?
При этом нужно понимать, что аппаратная часть должна быть исправная. И софт и железо - это параллельные вещи.

Из личного: я одновременно использовал в работе и AVR, и STM32. Всяко бывало... но AVR частенько выдерживал
12В на входе. Ну как выдерживал? - пин выгорит, а все остальное продолжает работать. У STM32 при ахтунге на
входе сразу КЗ по питанию. При этом если ток по питанию не ограничивать, камень будет греться, но продолжает работать.
Собственно, как к этому относиться? В начале меня это очень сильно печалило - шаг влево, шаг вправо, МК в помойку.
Но когда потребовалось делать ответственную аппаратуру, то такое поведение МК мне очень понравилось. Сразу можно
сказать, что МК не исправен, а не эксплуатировать полу-рабочее изделие.

Это накладывает сильный отпечаток на разработку. Согласитесь, разница очевидна? С одной стороны: "если я не позабочусь
о помехе и ее энергия попадет на пин, то получу полностью убитое изделие". С другой стороны: "наплевать на помеху,
поставлю внешнюю кувыркалку, чтоб она в случае чего перезапускала софт; один пин отгорит - не жалко - их еще много".


Софтовой части нет шансов вылезти из ступора - ядро не передает управления и все ватчдоги - отвалились, в софт безопастности меня STM за эти 6 лет подковал. А когда программа укатила в неизвестно куда , посторю - заинициализированный ватчдог в УЛЕТЕ ? Что посоветуете как управление вернуть, если оно ни на один вектор не приходит ?
Пины не выгорают в нашем случае есть ограничители. Волновые распространение сигнала в соответствующей среде и по одному проводу, не буду дискутировать. Со всеми проблемами AVR знаком и STM уже лет 6 мучаю успешно.
Вопрос открыт, что можно сделать такое, чтобы вернуть управление ядра не через внешний сброс; при полном штопоре и реально отвалившемся ватчдоге ??????
adnega
Цитата(картошка @ Apr 29 2016, 21:52) *
Вопрос открыт, что может быть такое в ядре, чтоб вернуть управление не через внешний сброс, при полном штопоре и реально отвалившемся ватчдоге ??????

Тогда встречный вопрос: как загнать ядро в такое состояние?
Например, я тестировал свой пульт с сенсорными кнопками. Через 1.5 мм оргстекла водил кисточкой с 6 кВ на кончике.
Сенсорная кнопка - это площадка меди? подключенная напрямую к пину МК (stm32f042k6t6).
Итого: пульт жив, а в блоке питания ATTEN TPR3005T-3C перестал показывать дисплей канала, от которого запитывал пульт.

картошка
Цитата(Огурцов @ Apr 29 2016, 22:27) *
как бы посмотреть схему и плату ?
хотя бы чтобы так не делать

Схема плохая, с точки зрения подвода, много внешних проводов и неправильная заводка земли. Но микроконтроллер, только временами сбоит, было принято решение довести программную часть до оптимального со стороны безопастности - помехи усилили, поставили рядом провода с индукционными импульсными наводками - 12 вольтовые импульсные сигналы сблизили с межплатным обменом по SPI где уровни 3 вольта. С этого и приступили к испытаниям программы. Ну этим пока и закончили sad.gif ... Глохнет заведенный ватчдог, Хардфаултов - нет, управление ядра - неизвестно где ходит ??? Шо делать ?
ViKo
Есть NMI в STM32. Пользуетесь?

Если в программе есть петля типа goto here ... laughing.gif
картошка
Цитата(adnega @ Apr 29 2016, 23:04) *
Тогда встречный вопрос: как загнать ядро в такое состояние?
Например, я тестировал свой пульт с сенсорными кнопками. Через 1.5 мм оргстекла водил кисточкой с 6 кВ на кончике.
Сенсорная кнопка - это площадка меди? подключенная напрямую к пину МК (stm32f042k6t6).
Итого: пульт жив, а в блоке питания ATTEN TPR3005T-3C перестал показывать дисплей канала, от которого запитывал пульт.


Думаю просто. Припаиваешь к цифровой земле 1 метр провода , один выход генератора цепляешь на самый отдаленный край провода земляного. Другим концом с генератора замыкаешь на тот же провод рядом, подальше от MPU естественно. Помучайте это земляной провод импульсами от генератора. Думаю эффект не заставит долго себя ждать. Если не получится, поискрите второй конец ближе к MPU. Если не получится, поставьте вместо керамики и танталов на плате MPU только электролитик индукционный какой на 3 вольтового питания . И проделайте тоже самое с землей и генератором снова.



Цитата(adnega @ Apr 29 2016, 21:57) *
Уж если речь идет об STM32, то советую пролистать AN3307.


Вот меня уже направляли на путь правильный...

Цитата(ViKo @ Apr 29 2016, 23:14) *
Есть NMI в STM32. Пользуетесь?

Если в программе есть петля типа goto here ... laughing.gif


Но понял я что по NMI я промазал.... Люблю котов !!! Не поставил обработчик по NMI sad.gif ...

The data bus width is 36 bits because 4 bits are available for parity check (1 bit per byte) in order to increase memory robustness, as required for instance by Class B or SIL norms.
The parity bits are computed and stored when writing into the SRAM. Then, they are automatically checked when reading. If one bit fails, an NMI is generated.


If a failure is detected on the HSE clock, the HSE oscillator is automatically disabled, a clock failure event is sent to the break input of the advanced-control timers (TIM1) and general-purpose timers (TIM15, TIM16 and TIM17) and an interrupt is generated to inform the software about the failure (Clock Security System Interrupt CSSI), allowing the MCU to perform rescue operations. The CSSI is linked to the Cortex-M0 NMI (Non-Maskable Interrupt) exception vector.
jcxz
Цитата(ViKo @ Apr 30 2016, 00:18) *
Чем встроенный watchdog хуже внешнего? Точнее, что мешает сделать такой же качественный? А то, что в STM32 его можно отключить, да, это не очень надежное решение.

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

Цитата(картошка @ Apr 30 2016, 00:20) *
В AVR при компиляции программ я в конце BIN файла обычно JMP 0 ставил, а тут некуда.

Кто-ж Вам в ARM это делать мешает??
Только это всё - борьба с ветряными мельницами. Вам надо брать учебник по схемотехнике и садиться за учёбу. При кривой схеме и разводке никакие программные ухищрения не помогут.
ViKo
Цитата(jcxz @ Apr 30 2016, 00:15) *
Вот тем и хуже, что его отключить можно. Вотчдог должен быть неотключаемым ни программно ни каким-либо сбросом, он должен работать всегда, без необходимости его включения конфигурированием чего-либо программно. Т.е. - только простой железный внешний WD может быть надёжным.

Да, согласен. Надо было сделать неуправляемым. Включать при программировании. Или хотя бы быть включенным после сброса.
jcxz
Цитата(ViKo @ Apr 30 2016, 03:20) *
Да, согласен. Надо было сделать неуправляемым. Включать при программировании. Или хотя бы быть включенным после сброса.

В MSP430FR5xx он именно такой - по дефолту включен после сброса. Это гораздо лучше. Но всё равно - есть возможность программного его отключения, а это дыра в безопасности. Так что - внешний WD всё равно лучше.
Шаманъ
Цитата(картошка @ Apr 29 2016, 22:12) *
Шо делать ?

Начать с исправления вот того:
Цитата
Схема плохая, с точки зрения подвода, много внешних проводов и неправильная заводка земли.
Огурцов
Цитата(картошка @ Apr 29 2016, 19:12) *
Схема плохая

ну вот и интересно, вдруг мы делаем так же

Цитата(картошка @ Apr 29 2016, 19:12) *
управление ядра - неизвестно где ходит ??? Шо делать ?

а отладчик тоже не подключается ?
AleksBak
ТС не томи - ответь уже! Помог неучтенный NMI_Handler или нет? Вопрос жизни или смерти. biggrin.gif Ваах. А как его функция вообще исчезла из обработчиков? Хотя бы _weak реализация осталась? С обработчиком по умолчанию? Или и этого не было? В стартапе было ковыряние.
rudy_b
Цитата(картошка @ Apr 29 2016, 21:52) *
Согласен, что схемотехника не годится. Аналоговые цепи были в схеме ? Использовалась общая земля или только гальваноразвязанные линии ???

Да, были. И гальваническая развязка от токонесущего проводника тоже, но и без нее все работало, разница лишь в опасности для оператора.

Кстати сталкивался и с палеными ногами на stm32f207. Нога отваливается, остальное продолжает работать без проблем. Но это как повезет.

По уму, полезно во все NMI прописать сброс.
johnshadow
На STM32L151, который был расположен прямо возле эл. двигателя и аналогично зависал, помог отказ от использования PLL.
jcxz
Цитата(rudy_b @ Apr 30 2016, 19:17) *
По уму, полезно во все NMI прописать сброс.

Полезно во все неиспользуемые вектора прописывать сброс (или вызов функции критической ошибки).
khach
В таких сложных случаях спасет только второй (медленный) ватчдог с ключем по питанию процессора. Приходилось такое ваять в схеме с тиратроном- помехи от тиратрона бывают запредельные и сбивают все что можно. При этом схемотехника и экранирование силы быле сделаны правильно- второй ватчдог срабатывал только при спонтанных пробоях тиратрона (то ли от космических частиц, то ли от износа) короче это было аварийное событие, но проц после этого оживал.
AVI-crak
Непонятно, в чём смысл возврата в точку сбоя при аппаратном сбое периферии мк. В таких случаях просто необходим сброс периферии, и новая начальная инициализация.
Есть вариант хранить критические переменные в защищённом месте, с двойным тройным резервированием - для восстановления стартовой рабочей точки. Но возврат в точку слома - просто невозможен.

Для развязки управления по высокому напряжению, и высоковольтным импульсным помехам - применяют воздушные оптопары. Это единственный способ изоляции от искры.
картошка
Цитата(jcxz @ Apr 30 2016, 00:15) *
Только это всё - борьба с ветряными мельницами. Вам надо брать учебник по схемотехнике и садиться за учёбу. При кривой схеме и разводке никакие программные ухищрения не помогут.


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

Цитата(johnshadow @ Apr 30 2016, 23:02) *
На STM32L151, который был расположен прямо возле эл. двигателя и аналогично зависал, помог отказ от использования PLL.


Хороший совет. Ведь внутренняя система PLL по любому сделана по схеме НАПРЯЖЕНИЕ-ЧАСТОТА с цифровым счетчиком и цифровым компаратором обратной связи. Любая помеха наводит на накопительную RC цепь приличную наводку или ее изменение.


Цитата(khach @ May 1 2016, 13:40) *
В таких сложных случаях спасет только второй (медленный) ватчдог с ключем по питанию процессора. Приходилось такое ваять в схеме с тиратроном- помехи от тиратрона бывают запредельные и сбивают все что можно. При этом схемотехника и экранирование силы быле сделаны правильно- второй ватчдог срабатывал только при спонтанных пробоях тиратрона (то ли от космических частиц, то ли от износа) короче это было аварийное событие, но проц после этого оживал.


Спасибо. Правильно приняли - что береженного Бог бережет.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.