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

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

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

Процесс:

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

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

, 👍0


1 ответ


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

4

Загрузчик работает в 328 и, как и ваши прикладные программы, устанавливает скорость передачи данных UART для загрузки программ в Uno.

Текущие загрузчики используют для загрузки скорость 115200 бод; самые последние предыдущие использовали скорость 57600 бод. Настройка, являющаяся частью кода загрузчика. Какая бы скорость передачи данных ни была установлена в вашей прикладной программе, это не имеет значения; если вы сбрасываете Uno, загрузчик устанавливает для UART известную скорость передачи данных в бодах и некоторое время ждет, пока компьютер начнет загрузку, и переходит к загруженной в данный момент прикладной программе, если загрузка не началась.

Конфигурация Arduino IDE вашего компьютера написана с использованием известной скорости передачи данных загрузчика (вы можете увидеть это в команде avrdude). Фактически, поскольку у меня есть несколько плат со впаянными чипами со старым загрузчиком со скоростью 57600 бод, в моей IDE есть две конфигурации плат Uno; один для старых чипов и один для нынешних.

,