Защита Arduino от помех (28.08.2024). |
![]() |
2024 - Август | |||
28.08.2024 12:47 | |||
В системе защиты от протечек был баг с электрокранами 230В: когда помехи били в Adruino и заставляли её зависать, а затем почти сразу перезагружаться. Тогда зашёл не с того конца: с устранения недоразрыва в проводе 230В, соединения GND розетки с GND печатной платы, напаивания варисторов внутри корпуса электрокранов - помеху загасил, всё заработало. Сегодня же вернул помеху обратно, с целью проверки другого пути: что если номинал резистора между контактом RST Arduino и плюсом питания - выбран неверно. И если с разрушением проблем не возникло (кусачками рвёшь всё ранее залатанное - и нет проблем) - то с созиданием вышло плохо. Убедившись, что помеха вернулась, - принялся прозванивать выключатели на крышке защиты от протечек (вместо того, чтобы лезть внутрь платы, - на крокодилы можно было подцепиться в 2 разных местах выходящих из платы проводов). И если первый провод прозвонился успешно и был подкрашен - то со вторым случилась беда. Вторая пара проводов у выключателя - шла к GND платы и к контакту RST. Дальше - совпадения: - решил прозвонить GND вместо RST (удобство пищалки мультиметра). Если бы прозвонил RST - исключил бы прозвон GND; - в печатной плате очень много мест, куда можно ткнуться к GND (их и создавал для удобства). Так оказалось, что удобно было потянуться в определённый дальний угол, тоненьким концом медной скрепки; - рука дрогнула; - медная скрепка задевает контакт 230В, расположенный относительно неподалёку от GND; - задетый контакт оказывается фазой; - защиту из розетки вытащил, а электрокраны - нет; - искровая вспышка ослепляет глаза и дезориентирует; - мультиметр дезориентирует дополнительно: выходит из строя - пищалка орёт теперь всегда; - спасает УЗО (второй раз уже), отрубая фазу раньше предохранителя сетевого фильтра. И вот, в ванной стоит человеческая фигура с выпрыгивающим сердцем, пищащим мультиметром и хлопающими ослеплёнными глазами. ...спустя секунд 10... То, что сработало УЗО, - ещё не установлено: ошеломление ещё не прошло. Была полная уверенность, что систему защиты от протечек спалил, потому что она не включалась. Только потом мозги начинают понимать, что кнопка сетевого фильтра не горит - при исправном его предохранителе. И УЗО не взводится в штатное положение. Спалил УЗО, сетевой фильтр и всё-всё-всё в нём (защиту от протечек, стиральную машину, впускную систему унитаза)??? ![]() В резиновых перчатках отключается автомат в щитке. Более подробно осматривается УЗО - а там кнопка Reset есть. С учётом того, что вся эта канитель была из-за контакта RST, нажимать её было особенно стрёмно. Итог - УЗО взвелось. Включается автомат в щитке. Пилот и всё в него подключенное - живы. Теперь главное, ради чего всё это задевалось: цепляются 2 крокодила за отмеченные провода, с другой стороны 2 крокодила для резистора 1кОм и... Помеха полностью "исчезла". То есть, если с причиной помехи бороться лень - то можно и со следствием. Резистор 12кОм тоже успешно мешал Arduino перезагружаться - а вот установленный в защиту от протечек 160кОм уже был излишком. Естественно, потом этот резистор 1кОм припаяю, и недоконтакт пропаяю: лучше, чем обратно в двигатели электрокранов лезть. Из этого следует простой и ужасный выводы: - почему производитель сам в своей плате не соединит RST через 1-12кОм с плюсом питания - непонятно. Но теперь, во всех проектах, нужно этим резистором контакт RST подтягивать; - нужно выпускать печатную плату защиты от протечек версии 7.5. И перепроверять её всю. ![]() (добавлено 29.08.2024) С учётом того, что новый мультиметр обошёлся в целые 325руб (и старый нельзя было использовать даже как амперметр), - нужно было провести дополнительное расследование причин трагедии. Оказалось, совпадений было гораздо больше: - по факту, не было разрыва GND платы с заземлением дома. Потому что ранее сделал такое заземление двумя параллельными проводами - а вчера обрезал только 1, забыв про второй. Сделанный для страховки, если первый оборвётся, - какая ирония. Второй провод шёл незаметно из нижней части корпуса защиты от протечек, вниз, между щелями досок полки - в глубины технической зоны санузла; - в 2021 году соединение GND платы с заземлением дома обозначалась как решение, почти решающее проблему помехи. Это "почти" сработало вчера дважды. Воссозданный излом провода успешно создал помеху оба раза: и до проверки резистора 1кОм, и до проверки 12кОм; - утром пришлось вставать, обрезать второй провод воссоединения GND, повторять эксперимент - получены те же результаты. По итогу: - важная поправка: очень вероятно, что не к плюсу питания нужно притягивать резистором RST, а к логической единице - контакту +5V; - вещь никогда не знает, где она будет использована. Мелкий резистор 1кОм мог лежать десятилетиями в кассетнице из коробков - но ему выпала огромная честь стать основным героем произошедших событий, приведя эти события к успешному результату; - вчера каждое новое действие во время тестирования подталкивало результат к краю пропасти. И если в ЧАЭС от АЗ-5 реактор взорвался - то тут УЗО абсолютно чётко выполнило свою функцию; - лучше не устраиваться на работу заместителем главного инженера в блок реактора на АЭС. (добавлено 30.08.2024) Похоже, проблема сложнее: - спалил Arduino Nano с устаревшей ATmega168, подключив между +5V и RST резистор 2.2кОм при напряжении питания +12В. Из документации к ATmega168 (стр.219): "Pull-up resistors on the dW/(RESET) line must not be smaller than 10k" - упс; - в интернете попадаются номиналы резисторов, подключаемые и рекомендуемые пользователями: 0.1-100к; - документация к ATmega328P - то же самое (стр.221): "Pull-up resistors on the dW/(RESET) line must not be smaller than 10k" - часть пользователей плохие люди, нужно из этой части срочно выходить. Поэтому номинал определён абсолютно точно: не менее 10кОм (документация), верхняя граница - 12-160кОм (мой опыт). (добавлено 31.08.2024) Рисунок на тех же страницах даташита определяет некое VCC как 1.8-5.5В. Из этого косвенно можно думать, что резистор устанавливается между RST и именно +5V. (добавлено 02.09.2024) Стоит отметить, что ATmega168 сгорел без предохранителя на плюсе питания. Мне тут один втирал: "Зачем ты на каждую схему их добавляешь" - а вот именно затем. |
|||
Обновлено ( 02.09.2024 17:59 ) |