Что такое I2C
Последовательный протокол обмена данными IIC (также называемый I2C – Inter-Integrated Circuits, межмикросхемное соединение) использует для передачи данных две двунаправленные линии связи, которые называются шина последовательных данных SDA (Serial Data) и шина тактирования SCL (Serial Clock).
В сети есть хотя бы одно ведущее устройство (Master), которое инициализирует передачу данных и генерирует сигналы синхронизации. В сети также есть ведомые устройства (Slave), которые передают данные по запросу ведущего. У каждого ведомого устройства есть уникальный адрес, по которому ведущий и обращается к нему. Адрес устройства указывается в паспорте (datasheet). К одной шине I2C может быть подключено до 127 устройств, в том числе несколько ведущих. К шине можно подключать устройства в процессе работы, т.е. она поддерживает «горячее подключение».
i2c интерфейс
Настройка I2C на Orange Pi Zero
По умолчанию порт I2C на Orange Pi Zero не настроен и для того что бы вклчить I2C на Orange Pi Zero. Нужно сделать следующее: отредактировать файл /boot/armbianEnv.txt, добавив значение i2c0 для параметра overlays, пример: overlays=usbhost2 usbhost3 uart1 uart2 i2c0
Подробнее можно почитать тут: https://docs.armbian.com/User-Guide_Allwinner_overlays/
Так же устанавливаем i2c-tools из репозитория:
sudo apt-get install i2c-tools
В i2c-tools входят следующие утилиты:
i2cdetect — для определения устройств, подключенных к шине i2c
i2cget — для чтения данных из регистров подключенных устойств
i2cset — запись данных в регистры подключённых устройств
что бы просмотреть устройства надо запустить:
i2cdetect -y 0
в результате мы получим список подключенных устройств:
вывод i2cdetect