Скорость передачи данных загрузчика 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; один для старых чипов и один для нынешних.
- В чем разница между библиотеками Software Serial? Какая из них совместима с Arduino Nano?
- Как использовать Serial.setTimeout()
- Передавать данные структуры во внешнюю структуру через serial?
- Отправить структуру через Serial
- Мост I2C-UART в виде прорыва или в корпусе DIP
- Последовательная связь между несколькими устройствами (или ардуино)
- I2C связь между Arduino Uno и Nodemcu32-s (ESP32)
- Arduino UART (TX/RX) multidrop 1 master 50 slaves