Сброс USB на Arduino не работает из-за 5 В на цифровых контактах

power usb arduino-due digital-in

У меня есть сигнальные каналы четырёх 5-вольтовых магнитных энкодеров, подключенных напрямую к цифровым контактам Arduino Due. Я знаю, что это запрещено спецификацией, согласно которой цифровые контакты должны принимать только 3,3 В, но до сих пор я не сталкивался с серьезными проблемами с такой конфигурацией, и энкодеры принимают только 20 мА.

Это настройка одного из энкодеров. Я сталкиваюсь со следующей проблемой только при подключении более двух энкодеров в этой конфигурации

circuit

Due нормально сбрасывается при нажатии кнопки сброса, но при повторном подключении USB Due вылетает и не может запустить никакой код (протестировал скетч Blink).

Я не могу изменить ни одну из схем, потому что она уже установлена на нескольких печатных платах. Есть ли у кого-нибудь идеи, почему напряжение 5 В на контактах, устойчивых к напряжению 3,3 В, приводит к сбою сброса по USB, и как это можно исправить программно? Должно быть, это можно исправить программно, поскольку среда разработки Arduino IDE успевает загружать скетчи, пока подключены энкодеры. Я пробовал выполнить сброс по USB, подключившись на скорости 1200 бод и установив DTR, но это не сработало.

Заранее большое спасибо. Надеюсь, мой вопрос был ясен.

Редактировать: Я понимаю, что делаю что-то неправильно, и именно это является причиной проблемы. Проблема в том, что мы спаяли более 20 таких плат, и я не могу просто так вносить изменения, даже самые простые. Я ищу идеи, как исправить ошибку в программном обеспечении, которую я допустил в аппаратном обеспечении.

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

, 👍-2

Обсуждение

Вы задаетесь вопросом, почему что-то работает неправильно, когда вы знаете, что подключаете 5 В к плате, которая должна использовать только логику 3,3 В....?, @Chad G


1 ответ


4

Вы перегружаете микроконтроллер и провоцируете всякие ужасные вещи с шинами питания. Конечно, неприятности произойдут.

Единственный способ исправить это — изменить схему. Для решения проблемы может быть достаточно просто добавить резистор сопротивлением 1 кОм последовательно с каждым входным соединением.

,

Добавление резистора последовательно можно выполнить, удалив часть паяльной маски, перерезав дорожку и заглушив место среза SMD-резистором., @Gerben