diff --git a/Interview questions.md b/Interview questions.md index 858b8c9..1e75377 100644 --- a/Interview questions.md +++ b/Interview questions.md @@ -2,12 +2,36 @@ ### ADC ### Hardware. Digital Interface -1. I2C - как работает протокол ? - 1. Шина _двухпроводная_: SDA (данные) и SCL (тактовый). - 2. Работает в режиме **master–slave**. - 3. Адресация 7 или 10 бит. Как задается адрес устройства - 4. Передача: start → address + R/W → ack → data bytes → stop. -2. I2C - как протестировать протокол ? +1. ==**I2C - Общие принципы работы** == + 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 кΩ** (зависит от скорости и ёмкости линии). + 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 + +2. ==**I2C - как протестировать протокол**== ? 1. Проверить корректность инициализации битрейта (100/400 kHz и выше). 2. Использовать **логический анализатор** для просмотра транзакций. 3. Проверять **ACK/NACK**, корректность адресации. @@ -48,10 +72,11 @@ 1. `chmod` - изменить права 2. `ls -l` - посмотреть текущие права 3. Знание rwx-битов -5. Как посмотреть устройства в Linux +5. Devices. Как посмотреть устройства в Linux 1. `/dev/i2c-* ` устройства 2. `i2cdetect` `i2cget` `i2cset` 3. Монтирование виртуальных файлов `/sys` / `/proc` + 4. 6. Daemons. Службы и демоны. 1. `systemctl status ` - статус 2. `systemctl start/stop/restart ` - управление