📌 I2C (Inter-Integrated Circuit)
I²C (Inter-Integrated Circuit) — это синхронный двунаправленный последовательный протокол с полудуплексной передачей, разработанный Philips (ныне NXP) для связи между интегральными схемами.
Поддерживает несколько ведущих и нескольких ведомых устройств на одной общей шине.
🧠 Как работает
I²C использует две линии:
- SDA — линия данных (Serial Data)
 - SCL — линия тактового сигнала (Serial Clock)
 
Особенности:
- Все устройства подключены к одной паре линий и имеют уникальные 7- или 10-битные адреса
 - Поддержка многоведомой и многоведущей архитектуры
 - Передача состоит из: START → ADDRESS → R/W → DATA → ACK → STOP
 - Все передачи инициируются ведущим
 
Скорости:
- Standard mode: до 100 кбит/с
 - Fast mode: до 400 кбит/с
 - Fast mode+: до 1 Мбит/с
 - High-Speed mode: до 3.4 Мбит/с
 
⚙️ Где применяется
- Датчики (температуры, давления, освещённости)
 - RTC (часы реального времени)
 - EEPROM / Flash Memory
 - Аудиокодеки, контроллеры питания
 - Встраиваемые и носимые устройства
 
✅ Преимущества
- Простая реализация с минимальным количеством пинов
 - Поддержка адресации — можно использовать десятки устройств на одной шине
 - Поддерживает подтверждение получения (ACK/NACK)
 - Подходит для “hot-swap” устройств
 
❌ Недостатки
- Низкая скорость по сравнению с SPI
 - Требует подтягивающих резисторов на линии
 - Чувствительность к шумам и длине линий
 - Нет четкого стандарта для всех устройств (возможны несовместимости на уровне реализации)