Скорость передачи данных загрузчика Arduino
Я изучаю UART, и у меня возникает проблема с пониманием того, что происходит, когда я отправляю последовательные данные на свой компьютер через USB, встроенный в плату Arduino uno.
Для входящих последовательных данных я использую терминал v1.9b, и он в основном позволяет мне устанавливать некоторые параметры и прослушивать входящие данные через последовательный порт программного обеспечения и/или записывать на него.
Процесс:
- Скорость передачи данных Atmega328p установлена на 9600.
- Терминал подключается к нему (выполняет сброс), и я получаю свои данные.
Очень просто, все работает, и у меня нет с этим проблем. У меня вопрос: я предполагаю, что мой компьютер не взаимодействует напрямую с atmega328p, поскольку у него нет интерфейса USB. он взаимодействует с чипом загрузчика, который преобразует USB в UART, а затем я получаю это сообщение на своем atmega328p. Откуда этот чип знает, какую скорость передачи данных мы договорились. ИЛИ «Терминал» отправляет скорость передачи данных на этот загрузочный чип через протокол USB и устанавливает настройки UART?
@Anton Stafeyev, 👍0
Обсуждение1 ответ
Лучший ответ:
Загрузчик работает в 328 и, как и ваши прикладные программы, устанавливает скорость передачи данных UART для загрузки программ в Uno.
Текущие загрузчики используют для загрузки скорость 115200 бод; самые последние предыдущие использовали скорость 57600 бод. Настройка, являющаяся частью кода загрузчика. Какая бы скорость передачи данных ни была установлена в вашей прикладной программе, это не имеет значения; если вы сбрасываете Uno, загрузчик устанавливает для UART известную скорость передачи данных в бодах и некоторое время ждет, пока компьютер начнет загрузку, и переходит к загруженной в данный момент прикладной программе, если загрузка не началась.
Конфигурация Arduino IDE вашего компьютера написана с использованием известной скорости передачи данных загрузчика (вы можете увидеть это в команде avrdude). Фактически, поскольку у меня есть несколько плат со впаянными чипами со старым загрузчиком со скоростью 57600 бод, в моей IDE есть две конфигурации плат Uno; один для старых чипов и один для нынешних.
Спасибо за ответ, да, я разобрался, что такое загрузчик, но мой вопрос был задан некорректно. Поскольку у меня есть еще один преобразователь USB-последовательный порт, он отображается на моем компьютере как COM-устройство. Что нужно сделать, чтобы это устройство выглядело, например, как USB-накопитель? мне нужно будет написать для него драйвер? и как мне применить драйвер к чипу, если у меня нет возможности изменить его PID., @Anton Stafeyev
Это действительно новый вопрос, но краткий ответ: вам придется перепрограммировать USB-процессор Uno (Atmega 8U2), чтобы он работал как любое другое USB-устройство., @JRobert
- В чем разница между библиотеками Software Serial? Какая из них совместима с Arduino Nano?
- Как использовать Serial.setTimeout()
- Аппаратная последовательная библиотека Arduino с поддержкой управления потоком rts/cts
- Отправить структуру через Serial
- Передавать данные структуры во внешнюю структуру через serial?
- Мост I2C-UART в виде прорыва или в корпусе DIP
- Может ли Arduino Leonardo одновременно использовать USB-порт и последовательные контакты RX TX?
- Последовательная связь между несколькими устройствами (или ардуино)
https://cdn.sparkfun.com/datasheets/Dev/Arduino/Other/CH340DS1.PDF, @Bruce Abbott