Как заставить Arduino 32u4 игнорировать DTR для USB Serial?

«Последовательные порты USB» на базе 32u4 отказываются отправлять данные на ПК, если DTR на стороне программного обеспечения ПК не установлен на высокий уровень. Если программное обеспечение ПК не устанавливает для DTR значение true (высокое?), то Serial.print() на Arduino уходит в черную дыру, и программное обеспечение никогда не получает ответы от Arduino.

Мне нужен сторонний программный пакет для работы с моим устройством на базе Arduino Pro Micro. Это программное обеспечение устанавливает для DTR значение false, которое отлично работает со многими другими устройствами. Аруино отлично принимает данные с ПК, теряются только ответы ардуино.

Конечный результат... программное обеспечение может отправлять команды на мое устройство, но поскольку программное обеспечение ПК не устанавливает для DTR значение true (высокий?), мои ответы Serial.print() не принимаются... 32u4 по существу блокирует ответы, потому что DTR низкий ... даже если последовательные данные идут НА Arduino.

Микроконтроллеры PIC, Arduino UNO и т. Д. Не требуют, чтобы DTR был установлен на стороне ПК для работы последовательного порта USB, чипы FTDI, похоже, игнорируют DTR, поэтому это стороннее программное обеспечение отлично работает с большинством других устройств.

Модификация моего оборудования не вариант. Как я могу с помощью программного обеспечения/прошивки взломать это устройство, чтобы оно игнорировало DTR, чтобы стороннее программное обеспечение для ПК могло видеть последовательные данные с устройства?

Я подозреваю, что это связано с задействованными драйверами USB, а не с подключенным оборудованием. По крайней мере, на Mac связь с чипом FDTI осуществляется через другой драйвер, чем связь с USB ATmega, и я подозреваю, что это то же самое для других платформ.
Он обрабатывается встроенной функцией Serial to USB микроконтроллера 32u4. Arduino не имеет доступа к DTR. Я ХОЧУ игнорировать DTR, но не могу найти способ. Кажется, что чипы FTDI (неправильно?) игнорируют DTR. Большинство других устройств для этой цели основаны на FTDI, так что это не было проблемой для поставщика программного обеспечения.
Итак, у вас есть мост Arduino и Mega32U4 USB/Serial? У вас есть исходный код и открытые площадки для программирования на 32U4?
Это arduino pro Micro, подключенный напрямую к USB в Windows... на самом деле, специальная плата с установленным на ней pro micro.

Ответы (1)

Хм, при дальнейшем просмотре, копании исходного кода Arduino для серийного кода USB , мне кажется, что проверка DTR находится в строке 224 (первая строка size_t Serial_::write(const uint8_t *buffer, size_t size)). Я не очень оптимистично отношусь к его отключению (вы, вероятно, зальете некоторый буфер), но, возможно, стоит попробовать.

Как бы мне не хотелось это говорить, но это уродливый хак, но он сработал и, вероятно, является лучшим решением моей проблемы. :-) Спасибо.