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