Orange Pi. Подключаем I2C интерфейс

  • Михаил
  • 8 мин. на прочтение
  • 203
  • 07 Feb 2024
  • 07 Feb 2024

Что такое I2C
Последовательный протокол обмена данными IIC (также называемый I2C – Inter-Integrated Circuits, межмикросхемное соединение) использует для передачи данных две двунаправленные линии связи, которые называются шина последовательных данных SDA (Serial Data) и шина тактирования SCL (Serial Clock).

В сети есть хотя бы одно ведущее устройство (Master), которое инициализирует передачу данных и генерирует сигналы синхронизации. В сети также есть ведомые устройства (Slave), которые передают данные по запросу ведущего. У каждого ведомого устройства есть уникальный адрес, по которому ведущий и обращается к нему. Адрес устройства указывается в паспорте (datasheet). К одной шине I2C может быть подключено до 127 устройств, в том числе несколько ведущих. К шине можно подключать устройства в процессе работы, т.е. она поддерживает «горячее подключение».

 

Логические уровни


Настройка I2C на Orange Pi Zero
По умолчанию порт I2C на Orange Pi Zero не настроен и для того что бы включить I2C на Orange Pi. Нужно сделать следующее: отредактировать файл /boot/armbianEnv.txt, добавив значение i2c0 для параметра overlays, пример: overlays=usbhost2 usbhost3 uart1 uart2 i2c0

или

sudo orangepi-config

Так же устанавливаем i2c-tools из репозитория:

sudo apt-get install i2c-tools

В i2c-tools входят следующие утилиты:

i2cdetect - для определения устройств, подключенных к шине i2c

i2cget - для чтения данных из регистров подключенных устройств

i2cset - запись данных в регистры подключённых устройств

что бы просмотреть устройства надо запустить:

i2cdetect -y 0

в результате мы получим список подключенных устройств: