Существует ли простой (разрешительная лицензия) драйвер Leonardo для моста USB-USART для замены чипа FTDI?
Я делаю плату для разработки ESP32 и подумываю о том, чтобы установить микросхему Arduino Leonardo между портом USB и контактами USART ESP32, чтобы она работала в качестве преобразователя USB/USART вместо микросхемы FTDI, чтобы я мог программировать ESP32 через последовательный порт USB, как и любая другая плата Arduino.
Существует ли библиотека/скетч, лицензированная по разрешительной лицензии (MIT, BSD, Apache и т. д.), которая может заставить чип Leonardo действовать как устройство последовательного порта HID, имеющее имя устройства, которое я хочу для легкой идентификации в диспетчере устройств и который не требует специальной установки драйверов в Windows и Linux после подключения к компьютеру?
Спасибо, что уделили время.
@Foxcat385, 👍0
Обсуждение1 ответ
Почему бы не написать свой собственный?
Во-первых, вам нужно создать собственное определение платы. Для этого найдите файл boards.txt
в ядре AVR вашей установки. Затем найдите блок записей, начинающийся с leonardo.
, и скопируйте весь блок. Измените leonardo
на имя по вашему выбору.
Затем измените запись .name
, чтобы дать вашей плате новое имя в IDE.
Наконец, найдите (переименованные) записи:
leonardo.build.vid=0x2341
leonardo.build.pid=0x8036
leonardo.build.usb_product="Arduino Leonardo"
Конечно, leonardo
будет таким, каким вы его изменили. Теперь вы можете присвоить вашей плате новые VID и PID, чтобы однозначно идентифицировать их, а также изменить usb_product
, чтобы дать имя вашей плате.
Вы также можете добавить запись myboard.build.usb_manufacturer="..."
, чтобы изменить производителя Arduino по умолчанию.
Теперь у вас есть определение платы, которое идентифицирует вашу плату такой, какой вы хотите ее видеть. Итак, теперь просто напишите скетч, который проходит через последовательный порт между USB и UART, а также обрабатывает сигналы DTR и RTS, чтобы иметь возможность войти в режим флэш-памяти на ESP32 (подсказка: используйте Serial.dtr() и
Serial.rts()
, чтобы проверить состояние этих сигналов).
Это вполне исчерпывающий ответ. Спасибо! Однако я до сих пор не понимаю, где находится библиотека драйверов последовательного порта HID (под разрешительной лицензией), которую я могу включить в свой проект на C++, и какие функции/классы мне нужно использовать для взаимодействия с USB-стороной. Я понимаю последовательную библиотеку, но это для USART между Леонардо и ESP32. Мне нужна виртуальная часть USART. Не могли бы вы добавить это к своему ответу?, @Foxcat385
Оно уже здесь. Он находится в ядре Arduino. Библиотека не нужна., @Majenko
О, так есть Serial и Serial1? Это верно?, @Foxcat385
Да. Последовательный порт — это USB, а Serial1 — контакты TX/RX., @Majenko
- Максимальная последовательная скорость CH340
- Можно ли загрузить скетч Arduino через последовательный порт (RX) вместо USB?
- Может ли Arduino Leonardo одновременно использовать USB-порт и последовательные контакты RX TX?
- Внешнее питание 5 В и последовательный порт USB
- Можно ли использовать Serial.print(сообщение), когда USB-кабель не подключен к хост-компьютеру?
- Как установить последовательные драйверы FTDI на Mac?
- SerialUSB на Arduino Due
- Mac не обнаруживает последовательный порт для Леонардо
вам следует провести более тщательное исследование, прежде чем спрашивать. "Чип Леонардо"? «Последовательный порт HID»? почему вы не хотите использовать 32u4 в качестве последовательного порта USB-TTL? только Uno и Mega используют микроконтроллер Atmel для USB. большинство плат имеют USB-чипы FTDI или CH340., @Juraj
@Juraj Я использую небольшой чип PIC32MX в качестве интерфейса USB на своих платах. Мне нравится гибкость, которую дает вам создание собственного интерфейса. Например, активация DTR в моей системе автоматически создает импульс сброса, вместо того, чтобы просто удерживать линию на низком уровне., @Majenko
Причина, по которой я использую 32U4, заключается в том, что я также хотел бы использовать его в качестве виртуального HID-привода компакт-дисков с виртуальным компакт-диском, предоставляющим exe-приложение, позволяющее конечному пользователю загружать прошивку, взаимодействовать с существующей прошивкой и т. д. И самое главное, его можно программировать так, как я хочу, и весь код, который я добавляю к нему, принадлежит мне., @Foxcat385