Доброго времени, Уважаемые форумчане. Имеется аккумулятор от ИБП который запараллелен на 4 преобразователя напряжения, 2 идут на питание Драйверов ШД, 1 на питание датчиков, и 1 на питание Ардуин. Первая проблема с которой я столкнулся (ну скорее 100...) - это бесконечный вызов прерывания (в скетче одной из ардуин использовалось прерывание RISING), но не смотря на то, что контакт был разъединен и стянут резистором, все равно постоянно вызывалось прерывание, при включении основной цепи, при запитке от USB компа, именно ардуино и кнопки, все было норм. Данная проблема я так понимаю была вызвана или низкой импульсной частотой преобразователя который запитывал контакт, или помехами (наводками). Она была решена радикально, выпилом прерывания, и переписыванием всего кода без оной процедуры. Но теперь I2C не работает корректно, а именно через раз, когда включаю цепь, иногда все пакеты приходят а иногда вообще не идет передача. Подскажите пожалуйста как можно решить проблему с шумами и помехами? Есть смысл поставить конденсатор параллельно кнопке включения? есть смысл I2C в экран пропустить притянутый к земле? Есть смысл стягивающие резисторы поставить номеналом меньше 10 k? Пропустить I2C через как синфазный дроссель через ферритовое кольцо? Вообщем дайте пожалуйста совет по существу. Убедительная просьба советчикам типа "сменить I2С на SPI, 232, can, RS 482..." не писать предложение по смене канала передачи данных, пожалуйста! Есть модель нечто... собранное, и это нечто нуждается в доработке. Вообщем есть вопрос и именно на этот вопрос дайте пожалуйста ответ/совет. Если в этом есть смысл могу нарисовать схему подключения.
Там если честно вообще жесть, что стыдно показывать, т.к. везде навесной монтаж, а общую плату еще не вытравил, много лишних проводов болтается, не задействованых. Ну ок фото я выложу с небольшими пояснениями,
Такая каша не будет работать с высокочастотными сигналами никогда. И плату вам делать рано, сперва следует почитать литературу по принципам электромагнитной защиты плат. Заодно и поймете, почему так нельзя.
Как самый минимум нужно максимально укоротить сигнальные петли, в первую очередь для высокочастотных сигналов (выше 100 кГц), и распутать всю проводку. Но еще раз: это все очень подробно разжевано в литературе, и нужен системный подход, вплоть до выбора расположения раздельных компонентов, а не просто ткнуть где-то конденсатор.
спасибо за ответ, я в краце пробежался по основным принципам и уже понял, что ошибка в хаотичной земле, и преобразователями между сигнальных линий... дело в том что тут литературы на пару недель а то и месяцев... а времени нет, вы не могли бы за отдельную плату помочь с проектировкой схемы? В скайпе например могли бы обговорить подробности
а если я фото планируемой компановки пришлю сможете совет дать? Я на блоки разделил схему и постарался исключить пересечение сигналов
Посмотрите пожалуйста, это я сделал набросок расположения 3 Дуин на плате, и как пойдут контактные линии (текстолит 1сторонний только в наличии имеется). Такая разводка норм или могут быть помехи между ардуинами по передаче канала I2C? вот так будут вставляться в плату, а вот сама схема
Землю нужно объединить 2-3 проводами, чтобы сократить сигнальные петли, и чтобы для разных сигналов были разные пути, иначе все сигналы будут течь по кромке этой заливки по бокам. И пересекаться, соответственно. Зеленым отметил пример длинной петли SDA, которая сократится через перемычку В остальном с ардуино сильно лучше не сделать.
Пойдет. На внешнюю периферию еще смотрите, по каким маршрутам там высокочастотные сигналы и большие токи текут.
ок, спасибо, я щас этот модуль вытравлю и распаяю а два других с вашего позволения так же на рецензию выложу (не хочется второй раз на одни и те же грабли наступать)