Перейти к содержанию

Как узнать скорость UART?

Обновлено Редакция GAW

Скорость UART — число битов в секунду. Приёмник и передатчик должны знать её заранее: в самом сигнале она не передаётся. Поэтому сначала ищут её в документации, а потом, если не нашли, измеряют.

Где посмотреть

  • В прошивке или скетче — например, в вызове Serial.begin().
  • В документации чипа. Загрузчик ESP32 после сброса печатает журнал на 115 200 бит/с, загрузчик ESP8266 — на 74 880 бит/с; об этом журнале — на странице «Прошивка ESP32».

Как измерить

Линия UART в покое — в единице, каждый байт начинается стартовым битом-нулём, за ним идут данные младшим битом вперёд и стоповый бит (DS40002061B, разд. 20.4). Самый короткий импульс на записи — это один бит:

v=1tбит,tбит=1115 200 бит/с≈8,68 мкс.v = \frac{1}{t_{\text{бит}}}, \qquad t_{\text{бит}} = \frac{1}{115\,200\ \text{бит/с}} \approx 8{,}68\ \text{мкс}.
Скорость, бит/сДлительность битаКадр 8N1 (10 бит)
9600104,2 мкс1,04 мс
19 20052,1 мкс0,52 мс
57 60017,4 мкс174 мкс
74 88013,4 мкс134 мкс
115 2008,68 мкс86,8 мкс

Разобрать записанный кадр по битам поможет декодер кадра UART, а проверить, получится ли нужная скорость от тактовой частоты микроконтроллера, — калькулятор скорости UART. Подключение и уровни сигналов — в статье «UART».

Похожие вопросы

Почему в мониторе порта ESP8266 при включении «мусор»?

Потому что загрузчик в ПЗУ ESP8266 пишет журнал на 74 880 бит/с, а программа обычно работает на 115 200 или 9600. Поставьте в мониторе порта 74 880 — и первые строки станут читаемыми, а дальше переключитесь на скорость своей программы.

Как найти скорость по записи логического анализатора?

Найдите самый короткий импульс — это один бит — и разделите единицу на его длительность. Для уверенности проверьте несколько байтов: в кадре 8N1 от начала стартового бита до конца стопового проходит 10 битовых интервалов.

Почему скорость получилась не круглой, например 113 000?

Потому что тактовая частота передатчика не всегда делится на стандартную скорость без остатка. Берите ближайшую стандартную — 115 200, — а насколько допустимо расхождение передатчика и приёмника, разбирает калькулятор скорости UART.

Источники

  1. Microchip. ATmega48A/PA/88A/PA/168A/PA/328/P Data Sheet Complete (DS40002061B) — разд. 20.4: кадр — 1 стартовый бит, 5–9 бит данных, бит чётности (нет, чётный, нечётный), 1 или 2 стоповых бита; передача начинается со стартового бита (всегда ноль) и младшего бита данных; в покое линия в единице; таблицы UBRR — стандартные скорости от 2400 бит/с
  2. Espressif. esptool Documentation (latest), ESP32: Boot Mode Selection — после сброса ПЗУ ESP32 печатает журнал загрузки на 115 200 бит/с
  3. Espressif. esptool Documentation (latest), ESP8266: Boot Mode Selection — ПЗУ ESP8266 при загрузке пишет журнал в UART на необычной скорости 74 880 бит/с

Нашли ошибку?