diff --git a/Interview Question/1. Hardware Skill (I2C_SPI_UART).md b/Interview Question/1. Hardware Skill (I2C_SPI_UART).md index 5102bbe..a150c8a 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 (Inter-Integrated Circuit)** -1. **Общие вопросы и принцип работы** +1. **Общие вопросы и логика работы** 1. Шина _двухпроводная_: SDA (данные) и SCL (тактовый). OpenDrain линия + pull up резисторы. 1. Что означает Open Drain? Устройства могут только тянуть линию вниз (0), а “1” формируется резистором подтяжки. @@ -55,7 +55,7 @@ 5. Linux и I²C 1. # **UART (Universal Asynchronous Receiver/Transmitter)** -1. **Общие вопросы и принцип работы.** +1. **Общие вопросы и логика работы.** 1. Что такое UART? 1. Асинхронный последовательный интерфейс передачи данных “точка-точка" 2. Двухпроводная шина (RX, TX, GND) @@ -126,7 +126,7 @@ 2. `lsusb` 3. `dmesg | grep tty # **RS-485** -1. Общие вопросы и принцип работы +1. **Общие вопросы и логика работы** 1. Что такое RS485 и для чего применяется? 1. Дифференциальный последовательный интерфейс. 2. Предназначенный для связи на большие расстояния (до 1200 м) и многоточечной топологии (до 32 устройств). @@ -147,25 +147,48 @@ RS-232 - точка - точка. RS-485 - многоточка 5. Устойчивость к помехам RS-232 - низкая. RS-485 - высокая - 4. Какие уровни сигналов определены в RS-485? + 4. От чего зависит максимальная скорость RS-485? + 1. Длина линии. (ёмкости кабеля) + 2. Количество узлов (слейвов) + 3. Крутизны фронтов драйвера + 5. Какие уровни сигналов определены в RS-485? 1. Логическая 1: **(V_B – V_A) ≥ +200 mV** 2. Логический 0: **(V_B – V_A) ≤ –200 mV** 3. Максимальный дифференциальный сигнал: до ±6 В 4. Максимальное напряжение между линиями относительно земли: ±12…±15 В (зависит от драйвера) - 5. Что такое терминатор и зачем он нужен? + 6. Что такое терминатор и зачем он нужен? 1. **Резистор 120 Ω**, подключённый на каждом конце линии. 2. Устраняет отражения. 3. Стабилизирует линию. Снижает ошибки передачи. - 6. Можно ли ставить терминатор в середине линии? + 7. Можно ли ставить терминатор в середине линии? 1. Он должен быть только на **двух концах** шины. 2. Дополнительные терминаторы приводят к перегрузке драйвера и ухудшению сигнала. - 7. Что такое bias-резисторы (fail-safe biasing) + 8. Что такое bias-резисторы (fail-safe biasing) 1. Это пара резисторов (Pull-up на B, Pull-down на A), которые формируют устойчивый логический уровень, когда линия неактивна. 2. Типовые значения (Pull-up(down): 680-1k) Без них приемник может «дрожать» между 0 и 1 из-за шумов. - 8. Что будет, если bias-резисторы установлены на каждом узле RS-485? + 9. Что будет, если bias-резисторы установлены на каждом узле RS-485? 1. Получится слишком сильный ток смещения → возможный перегрев или некорректный уровень idle. 2. Bias ставится только **на одном узле** (обычно master). -2. Тестирование. + 10. Как устройства определяют, кто говорит в RS-485? + 1. Не определено протоколом. Регламентируется протоколом верхнего уровня (Modbus RTU и т.д.) + 11. Что будет, если два устройства одновременно начнут передавать? + 1. Возникнет коллизия: сигнал искажается + 2. CRC/паритетные ошибки. +2. **Тестирование.** + 1. Способы тестирования линии: + 1. Проверить осциллографом + 2. Логическим анализатором. + 2. Как тестировать RS-485 линию осциллографом? + 1. Дифференциальную форму сигнала (AB) + 2. фронты/спады (slew rate) + 3. отражения (ringing) + 4. уровни idle и biasing + 5. помехоустойчивость при подключённых нагрузках + 3. Как проверить работу на длинной линии? + 1. Проверка работы терминаторов. + 2. измерение ошибок CRC при передаче + 3. шумовое воздействие (индуктор, электромотор и т.п.) + 4. # **SPI** 1. Общие вопросы и принцип работы