|
|
  |
Электрические помехи и STM32, что делать, ваах ! |
|
|
|
Apr 29 2016, 18:34
|
Гуру
     
Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702

|
Цитата(картошка @ Apr 29 2016, 21:20)  Печалит одно только существование документа... Дык, вы его полистайте и печаль пройдет. В документе написано про надежную софтовую часть. Как тестировать, что тестировать. Или вы считаете, что этого делать не стоит, т.к. есть прекрасный AVR? При этом нужно понимать, что аппаратная часть должна быть исправная. И софт и железо - это параллельные вещи. Из личного: я одновременно использовал в работе и AVR, и STM32. Всяко бывало... но AVR частенько выдерживал 12В на входе. Ну как выдерживал? - пин выгорит, а все остальное продолжает работать. У STM32 при ахтунге на входе сразу КЗ по питанию. При этом если ток по питанию не ограничивать, камень будет греться, но продолжает работать. Собственно, как к этому относиться? В начале меня это очень сильно печалило - шаг влево, шаг вправо, МК в помойку. Но когда потребовалось делать ответственную аппаратуру, то такое поведение МК мне очень понравилось. Сразу можно сказать, что МК не исправен, а не эксплуатировать полу-рабочее изделие. Это накладывает сильный отпечаток на разработку. Согласитесь, разница очевидна? С одной стороны: "если я не позабочусь о помехе и ее энергия попадет на пин, то получу полностью убитое изделие". С другой стороны: "наплевать на помеху, поставлю внешнюю кувыркалку, чтоб она в случае чего перезапускала софт; один пин отгорит - не жалко - их еще много".
|
|
|
|
|
Apr 29 2016, 18:52
|

Участник

Группа: Участник
Сообщений: 65
Регистрация: 28-12-05
Из: Odessa
Пользователь №: 12 673

|
Цитата(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 мучаю успешно. Вопрос открыт, что можно сделать такое, чтобы вернуть управление ядра не через внешний сброс; при полном штопоре и реально отвалившемся ватчдоге ??????
Сообщение отредактировал картошка - Apr 29 2016, 18:58
|
|
|
|
|
Apr 29 2016, 19:04
|
Гуру
     
Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702

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

Участник

Группа: Участник
Сообщений: 65
Регистрация: 28-12-05
Из: Odessa
Пользователь №: 12 673

|
Цитата(Огурцов @ Apr 29 2016, 22:27)  как бы посмотреть схему и плату ? хотя бы чтобы так не делать Схема плохая, с точки зрения подвода, много внешних проводов и неправильная заводка земли. Но микроконтроллер, только временами сбоит, было принято решение довести программную часть до оптимального со стороны безопастности - помехи усилили, поставили рядом провода с индукционными импульсными наводками - 12 вольтовые импульсные сигналы сблизили с межплатным обменом по SPI где уровни 3 вольта. С этого и приступили к испытаниям программы. Ну этим пока и закончили  ... Глохнет заведенный ватчдог, Хардфаултов - нет, управление ядра - неизвестно где ходит ??? Шо делать ?
|
|
|
|
|
Apr 29 2016, 19:37
|

Участник

Группа: Участник
Сообщений: 65
Регистрация: 28-12-05
Из: Odessa
Пользователь №: 12 673

|
Цитата(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 ...  Но понял я что по NMI я промазал.... Люблю котов !!! Не поставил обработчик по NMI  ... 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.
Сообщение отредактировал картошка - Apr 29 2016, 19:42
|
|
|
|
|
Apr 29 2016, 21:15
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(ViKo @ Apr 30 2016, 00:18)  Чем встроенный watchdog хуже внешнего? Точнее, что мешает сделать такой же качественный? А то, что в STM32 его можно отключить, да, это не очень надежное решение. Вот тем и хуже, что его отключить можно. Вотчдог должен быть неотключаемым ни программно ни каким-либо сбросом, он должен работать всегда, без необходимости его включения конфигурированием чего-либо программно. Т.е. - только простой железный внешний WD может быть надёжным. Ну это конечно после вправления рук схемотехнику по части правильной разводки и борьбы с помехами. Мы во всех своих устройствах в обязательном порядке ставим внешний WD. Цитата(картошка @ Apr 30 2016, 00:20)  В AVR при компиляции программ я в конце BIN файла обычно JMP 0 ставил, а тут некуда. Кто-ж Вам в ARM это делать мешает?? Только это всё - борьба с ветряными мельницами. Вам надо брать учебник по схемотехнике и садиться за учёбу. При кривой схеме и разводке никакие программные ухищрения не помогут.
|
|
|
|
|
Apr 30 2016, 04:57
|
Знающий
   
Группа: Участник
Сообщений: 758
Регистрация: 27-08-08
Пользователь №: 39 839

|
Цитата(картошка @ Apr 29 2016, 22:12)  Шо делать ? Начать с исправления вот того: Цитата Схема плохая, с точки зрения подвода, много внешних проводов и неправильная заводка земли.
|
|
|
|
|
Apr 30 2016, 07:03
|
Гуру
     
Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588

|
Цитата(картошка @ Apr 29 2016, 19:12)  Схема плохая ну вот и интересно, вдруг мы делаем так же Цитата(картошка @ Apr 29 2016, 19:12)  управление ядра - неизвестно где ходит ??? Шо делать ? а отладчик тоже не подключается ?
|
|
|
|
|
Apr 30 2016, 13:17
|
Знающий
   
Группа: Свой
Сообщений: 888
Регистрация: 25-09-08
Из: Питер
Пользователь №: 40 458

|
Цитата(картошка @ Apr 29 2016, 21:52)  Согласен, что схемотехника не годится. Аналоговые цепи были в схеме ? Использовалась общая земля или только гальваноразвязанные линии ??? Да, были. И гальваническая развязка от токонесущего проводника тоже, но и без нее все работало, разница лишь в опасности для оператора. Кстати сталкивался и с палеными ногами на stm32f207. Нога отваливается, остальное продолжает работать без проблем. Но это как повезет. По уму, полезно во все NMI прописать сброс.
|
|
|
|
|
  |
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|