mirror of
https://github.com/EmbedDevIOT/obsidian-vault-.git
synced 2026-11-06 02:13:27 +03:00
10 KiB
10 KiB
i2C (Inter-Integrated Circuit)
- Общие вопросы и принцип работы
- Шина двухпроводная: SDA (данные) и SCL (тактовый). OpenDrain линия + pull up резисторы.
- Что означает Open Drain?
Устройства могут только тянуть линию вниз (0), а “1” формируется резистором подтяжки. - Опишите преимущества:
- Арбитраж. Несколько устройств на шине
- Отсутствие конфликтов (драйвер против драйвера)
- Pull up резисторы. Для чего нужны:
- Чтобы линии SDA и SCL могли уходить в состояние логической “1”.
- Типичные значения: 2.2–10 кΩ (зависит от скорости и ёмкости линии).
- Что будет если pull up слишком большой?
- Медленный rise-time
- Ошибки на высоких скоростях
- Потери данных
- Что означает Open Drain?
- Режим работы master–slave.
- Мастер генерирует такты. Слайв отвечает
- Скорости.
- Standart - 100kHz
- Fast mode - 400kHz
- Fast + 1MHz
- Адресация 7 или 10 бит.
- Как задается адрес устройства?
- Разница 7 и 10 бит (7 стандартная)
- Транзакции и сигналы:
- Как выполняется передача (пример посылки)
- start → address + R/W → ack → data bytes → stop.
- Что такое Start и Stop в I2C
- START - Переход SDA - в HIGH - LOW при HIGH SCL
- STOP - обратный переход SDA LOW → HIGH при HIGH SCL
- Что такое ACK и NACK (Используется для подтверждения прима каждого байта)
- ACK - slave тянет SDA LOW
- NACK - SDA остаётся HIGH
- Как выполняется передача (пример посылки)
- Протоколы over I2C
- SMBus - подмножество I²C с более строгими таймингами и дополнительными протоколами (battery management, sensors)
- PMBus - протокол управления питанием поверх SMBus/I²C. Используется в телеком/серверных блоках питания
- Шина двухпроводная: SDA (данные) и SCL (тактовый). OpenDrain линия + pull up резисторы.
- Тестирование
- Как влияет длина линии (емкость) ?
- Чем больше суммарная ёмкость, тем хуже rise-time (меньше скорость)
- длинные транзакции, шум, ошибки тактирования.
- Что дает использование логического анализатора ?
- Проверить корректность инициализации битрейта (100/400 kHz и выше).
- Детальный анализ SDA и SCL
- Анализ проблемы на уровне таймингов
- Проверять ACK/NACK, корректность адресации.
- Что дает использование осциллографа
- Фронты SDA/SCL
- Наводки
- Соответствие rise/fall таймингам
- Уровни напряжений
- Тестирование на практике
- Проверка адресации (i2cdetect)
- Запись/чтение регистров
- Тест на шум/помехи
- Linux и I²C 1.
- Как влияет длина линии (емкость) ?
UART (Universal Asynchronous Receiver/Transmitter)
- Общие вопросы и принцип работы.
- Что такое UART?
- Асинхронный последовательный интерфейс передачи данных “точка-точка"
- Двухпроводная шина (RX, TX, GND)
- Уровни (TTL 3.3 В / TTL 5 В)
- Что значит асинхронный последовательный интерфейс?
- Линии не содержат тактового сигнала. Синхронизация происходит по битам START/STOP.
- UART = RS-232 (отличия) ?
- UART – протокол передачи данных. RS-232 – электрический стандарт уровней (±3…±15 В).
- В чем разница TTL UART и RS - 232
- TTL: 0/3.3 В или 0/5 В / RS-232: –15 В → лог. 1, +15 В → лог. 0 (инверсная логика)
- Какие параметры нужно согласовать между устройствами?
- Скорость (baud rate) - Количество символов (битовых переходов) в секунду.
- Стандартные скорости 9600, 115200.
- Количество бит данных
- Чётность (parity)
- Количество стоп-битов
- Flow control (RTS/CTS) Контроль потока.
- Скорость (baud rate) - Количество символов (битовых переходов) в секунду.
- Как устроен формат UART кадра?
- 1 стартовый бит (0)
- 5–9 бит данных
- необязательный бит чётности
- 1 или 2 стоп-бита (1)
- Как определяется начало передачи?
- По переходу TX с HIGH → LOW (start бит).
- Что происходит, если неверно настроен baud rate?
- Искажённый битовый поток
- Ошибки приёма
- “кракозябры” в терминале
- Зачем используются стоп-биты?
- Для восстановления синхронизации при асинхронной передаче.
- Что такое XON/XOFF?
- Программный flow-control.
XOFFпосылается для остановки передачи,XON— для возобновления.
- Что такое аппаратный flow-control (RTS/CTS)?
- RTS (Ready To Send) — устройство готово принимать данные
- CTS (Clear To Send) — разрешение на передачу. Используется для предотвращения переполнения буфера.
- Что будет, если не использовать flow-control при высоких скоростях?
- Переполнение FIFO / Потеря данных / Framing errors
- Что такое UART?
- Тестирование.
- Способы тестирования UART?
- Проверить сигнал осциллографом
- Запустить loopback тест
- Отправить известную последовательность и сравнить (проверка UART - USB конвертором)
- Проверить стресс/нагрузку
- Что такое loopback тест
- Соединение TX → RX, чтобы проверять передачу/приём на одном устройстве.
- Как обнаружить линии с шумом?
- Нестабильные фронты
- Framing errors (Стоп-бит не обнаружен в ожидаемое время → нарушение кадра.)
- Анализ сигнала на осциллографе
- На что влияет длина UART кабеля?
- Ослабление сигнала
- Шум
- Перекрёстные помехи
- Максимальная длина зависит от скорости (обычно 1–2 м )
- Как уменьшить шум в UART?
- Экранированный кабель + скрутка
- Переход на RS - 485 (дифференциальный сигнал)
- Разнести питание и сигнал
- Как проверить UART в Linux?
stty -F /dev/ttyS0echo "test" > /dev/ttyS0cat /dev/ttyS0minicom / picocomdmesg | grep tty
- Как работать с USB-UART адаптерами в Linux?
/dev/ttyUSB0(ch341, cp2102)lsusb- `dmesg | grep tty
- Способы тестирования UART?
RS-485
- Общие вопросы и принцип работы
-
Что такое RS485 и для чего применяется?
- Дифференциальный последовательный интерфейс.
- Предназначенный для связи на большие расстояния (до 1200 м) и многоточечной топологии (до 32 устройств).
- Обеспечивает высокую помехоустойчивость и может работать на скоростях до 10 Мбит/с на коротких дистанциях.
-
Что значит дифференциальный интерфейс и в чём преимущества?
- Сигнал передаётся по двум линиям A и B. Информация кодируется разностью напряжений, а не абсолютными уровнями.
- Высокая помехоустойчивость.
- Возможность работы на больших расстояниях.
- Устойчивость к земляным петлям и снижение влияния электромагнитных наводок.
-
Чем RS-485 отличается от RS-232?
- Тип сигнала: RS-232 - однотактный. RS-485 - дифференциальный
- Расстояние: RS-232 - до 15м. RS-485 - 1200м
- Скорость RS-232 - до ~115 кбит/с. RS-485 - до 10 Мбит/с
- Топология RS-232 - точка - точка. RS-485 - многоточка
- Устойчивость к помехам RS-232 - низкая. RS-485 - высокая
-
- Тестирование.
SPI
- Общие вопросы и принцип работы
- Тестирование.