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

Что такое 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