Скорость передачи данных загрузчика Arduino

Я изучаю UART, и у меня возникает проблема с пониманием того, что происходит, когда я отправляю последовательные данные на свой компьютер через USB, встроенный в плату Arduino uno.

Для входящих последовательных данных я использую терминал v1.9b, и он в основном позволяет мне устанавливать некоторые параметры и прослушивать входящие данные через последовательный порт программного обеспечения и/или записывать на него.

Процесс:

  1. Скорость передачи данных Atmega328p установлена на 9600.
  2. Терминал подключается к нему (выполняет сброс), и я получаю свои данные.

Очень просто, все работает, и у меня нет с этим проблем. У меня вопрос: я предполагаю, что мой компьютер не взаимодействует напрямую с atmega328p, поскольку у него нет интерфейса USB. он взаимодействует с чипом загрузчика, который преобразует USB в UART, а затем я получаю это сообщение на своем atmega328p. Откуда этот чип знает, какую скорость передачи данных мы договорились. ИЛИ «Терминал» отправляет скорость передачи данных на этот загрузочный чип через протокол USB и устанавливает настройки UART?

, 👍0

Обсуждение

https://cdn.sparkfun.com/datasheets/Dev/Arduino/Other/CH340DS1.PDF, @Bruce Abbott


1 ответ


Лучший ответ:

4

Загрузчик работает в 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