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

Due нормально сбрасывается при нажатии кнопки сброса, но при повторном подключении USB Due вылетает и не может запустить никакой код (протестировал скетч Blink).
Я не могу изменить ни одну из схем, потому что она уже установлена на нескольких печатных платах. Есть ли у кого-нибудь идеи, почему напряжение 5 В на контактах, устойчивых к напряжению 3,3 В, приводит к сбою сброса по USB, и как это можно исправить программно? Должно быть, это можно исправить программно, поскольку среда разработки Arduino IDE успевает загружать скетчи, пока подключены энкодеры. Я пробовал выполнить сброс по USB, подключившись на скорости 1200 бод и установив DTR, но это не сработало.
Заранее большое спасибо. Надеюсь, мой вопрос был ясен.
Редактировать: Я понимаю, что делаю что-то неправильно, и именно это является причиной проблемы. Проблема в том, что мы спаяли более 20 таких плат, и я не могу просто так вносить изменения, даже самые простые. Я ищу идеи, как исправить ошибку в программном обеспечении, которую я допустил в аппаратном обеспечении.
Правка: Честно говоря, немного разочарован вашей враждебностью. Неужели меня заминусили только потому, что я допустил ошибку в спецификации и пытаюсь найти обходной путь? Не понимаю, как это делает вопрос плохим.
@WhiteSpin, 👍-2
Обсуждение1 ответ
Вы перегружаете микроконтроллер и провоцируете всякие ужасные вещи с шинами питания. Конечно, неприятности произойдут.
Единственный способ исправить это — изменить схему. Для решения проблемы может быть достаточно просто добавить резистор сопротивлением 1 кОм последовательно с каждым входным соединением.
Добавление резистора последовательно можно выполнить, удалив часть паяльной маски, перерезав дорожку и заглушив место среза SMD-резистором., @Gerben
- Кнопка стирания Arduino due и переключение питания
- Если USB дает 5 В, как Arduino может подавать 5 В на контакт 5 В? (И еще вопрос)
- Можно ли использовать внешний источник питания и USB одновременно на Arduino?
- Как запретить Arduino получать питание через USB
- SerialUSB на Arduino Due
- Связь с пользовательским USB-ведомым устройством осуществляется с помощью DUE?
- Связь USB-C к USB-C Arduino не отвечает, даже если он не подключен к этому кабелю
- Можно ли включить arduino uno через 5v pin при одновременном подключении usb?
Вы задаетесь вопросом, почему что-то работает неправильно, когда вы знаете, что подключаете 5 В к плате, которая должна использовать только логику 3,3 В....?, @Chad G