From fa42c1062549dc97b48ea36f916e5d52c56c8ffa Mon Sep 17 00:00:00 2001 From: Alexey Baranov Date: Mon, 29 Dec 2025 21:21:53 +0300 Subject: [PATCH] vault backup: 2025-12-29 21:21:53 --- .../1. Hardware Skill (I2C_SPI_UART).md | 175 ++++++------------ 1 file changed, 55 insertions(+), 120 deletions(-) diff --git a/Interview Question/1. Hardware Skill (I2C_SPI_UART).md b/Interview Question/1. Hardware Skill (I2C_SPI_UART).md index db6be50..7460229 100644 --- a/Interview Question/1. Hardware Skill (I2C_SPI_UART).md +++ b/Interview Question/1. Hardware Skill (I2C_SPI_UART).md @@ -1,5 +1,5 @@ -### i2C -1. **I2C - Общие принципы работы** +# i2C +1. **I2C - Общие вопросы и принцип работы** 1. Шина _двухпроводная_: SDA (данные) и SCL (тактовый). OpenDrain линия + pull up резисторы. 1. Что означает Open Drain? Устройства могут только тянуть линию вниз (0), а “1” формируется резистором подтяжки. @@ -54,124 +54,59 @@ 3. Тест на шум/помехи 5. Linux и I²C 1. -### UART (Universal Asynchronous Receiver/Transmitter) -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. - ---- - -### **Вопрос 16:** Что будет, если не использовать flow-control при высоких скоростях? - -**Ответ:** - -- Переполнение FIFO - -- Потеря данных - -- Framing errors - - ---- - -# 🔹 **5. Ошибки UART** - -### **Вопрос 17:** Что такое framing error? - -**Ответ:** -Стоп-бит не обнаружен в ожидаемое время → нарушение кадра. - ---- - -### **Вопрос 18:** Что такое overrun error? - -**Ответ:** -Буфер приёмника переполнен, данные потеряны. - ---- - -### **Вопрос 19:** Что такое break condition? - -**Ответ:** -TX держится в LOW дольше чем длительность кадра. -Используется для ресета некоторых устройств (например, загрузчиков MCU). - ---- - -### **Вопрос 20:** Как обнаружить линии с шумом? - -**Ответ:** - -- Нестабильные фронты - -- Ошибки паритета - -- Framing errors - -- Анализ сигнала на осциллографе - - ---- - -# 🔹 **6. Диагностика и тестирование** - -### **Вопрос 21:** Как протестировать UART линию? - -**Ответ:** - -- Проверить сигнал осциллографом - -- Запустить loopback тест - -- Отправить известную последовательность и сравнить - -- Проверить разные baud rates - -- Тестировать передачу больших массивов данных - -- Проверить стресс/нагрузку - - ---- - -### **Вопрос 22:** Что такое loopback? - -**Ответ:** -Соединение TX → RX, чтобы проверять передачу/приём на одном устройстве. +# 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. Анализ сигнала на осциллографе ---