Как расшифровать UART на осциллографе?
Обновлено Редакция GAW
Осциллограф с декодером превращает записанный сигнал в байты: под осциллограммой появляется шина с расшифровкой, а в таблице событий — список принятых значений. Чтобы декодер не ошибался, ему нужно знать всё, что знает приёмник UART.
Что задать в декодере (Rigol DS1000Z, гл. 8)
| Параметр | Что выбрать | По умолчанию |
|---|---|---|
| Канал Tx (и Rx) | канал с линией TX микроконтроллера | — |
| Скорость | скорость передатчика, например 115200 | 9600 |
| Полярность | положительная — UART на уровнях микросхемы; отрицательная — после преобразователя RS-232 | — |
| Порядок бит | LSB (как в UART) | LSB |
| Данные / стоп / чётность | как у передатчика, чаще 8 / 1 / нет | 8 бит |
| Порог | середина между уровнями; есть автопорог | — |
Опции RS232, I2C и SPI у DS1000Z платные — в руководстве они помечены как необязательные; стандартно доступен только параллельный декодер.
Порядок работы
- Запуск по спаду на линии TX, режим однократной записи.
- Развёртку и память выберите так, чтобы в запись вошла вся посылка, но на один бит пришлось несколько точек; расчёт — в ответе «Какая частота выборки нужна для UART».
- Включите декодер, задайте параметры из таблицы и откройте таблицу событий в формате ASCII или HEX.
Наш расчёт длительности бита для проверки скорости курсорами:
Формат кадра подробно описан в статье «UART», собрать кадр по битам поможет калькулятор кадра UART, а декодеры логических анализаторов — в словаре на странице «Декодер протоколов».
Похожие вопросы
Почему декодер показывает знаки вопроса и мусор?
Не совпала скорость или формат кадра, либо полярность: у Rigol ошибка конечного кадра отмечается знаком «?». Сначала проверьте скорость по длительности одного бита курсорами, затем число бит и чётность. Сигнал после преобразователя уровней RS-232 инвертирован относительно UART на выводах микроконтроллера — переключите полярность.
Можно ли декодировать сразу TX и RX?
Да: у Rigol DS1000Z в настройках RS232 есть отдельные каналы Tx и Rx, а в таблице событий можно выбрать, данные какой линии показывать.
Хватит ли памяти, чтобы записать длинную посылку?
Зависит от скорости и частоты выборки. Длину записи считают как глубину памяти, делённую на частоту выборки; если строка не помещается, уменьшите частоту выборки, не опускаясь ниже нескольких точек на бит.
Источники
- RIGOL. MSO1000Z/DS1000Z Series Digital Oscilloscope User's Guide, UGA19111-1110 (Aug. 2016) — гл. 8: два модуля декодирования; параллельный — стандартно, RS232, I2C и SPI — опции; RS232: MATH → Decode1 → Decoder → RS232; каналы Tx и Rx (CH1–CH4 или D0–D15); скорость 110 бит/с — 20 Мбит/с, заготовки от 2400 до 20M, по умолчанию 9600; копирование настроек из запуска по RS232; полярность положительная или отрицательная; порядок LSB или MSB, по умолчанию LSB; данные 5–8 бит, стоп-бит 1, 1,5 или 2, чётность нет/нечёт/чёт; порог — автоматический (середина сигнала) или вручную; таблица событий в HEX, DEC или ASCII, экспорт в CSV; ошибка конечного кадра отмечается «?»; память до 12 млн точек, на четырёх каналах 3 млн
- Texas Instruments. TL16C550C Asynchronous Communications Element with Autoflow Control, SLLS177I — асинхронный обмен: символы из 5, 6, 7 или 8 бит, чётность чётная, нечётная или без неё, 1, 1½ или 2 стоп-бита; бит FE — у принятого символа нет действительного стоп-бита
Нашли ошибку?
Смотрите также
- Какая частота дискретизации осциллографа нужна для UART?Единицы МВыб/с на бит, а длину посылки ограничивает память
- UARTКадр 8N1, скорость и допуск, TX и RX, уровни, USB–UART, AVR и STM32
- Декодер протоколовПрограмма, разбирающая запись анализатора в кадры UART, I2C, SPI, CAN
- Кадр UART по битамБиты кадра, чётность, время символа, разбор и расхождение скоростей
- Ошибка кадра UARTНоль на месте стоп-бита: причины, флаги FE, связь с break