Журнал РАДИОЛОЦМАН, октябрь 2015
Boris Landoni
Open Electronics
Работа с платой расширения GPIO
Работать с платой расширения GPIO Shield мы будем под управлением ОС Raspbian, используя удаленный доступ в терминальном режиме, поэтому предварительно на Raspberry Pi необходимо включить поддержку SSH (Secure Shell) и SCP (Secure Copy) с правами Root-пользователя. В качестве примера рассмотрим обращение к АЦП по интерфейсу I2C.
Подключите плату расширения к разъему GPIO Raspberry Pi и включите питание (Рисунок 4).
![]() |
|
Рисунок 4. | Внешний вид сборки для тестирования платы расширения GPIO Shield. |
Теперь необходимо активировать модули управления I2C и SPI (в мире Windows называемые драйверами) или какой-либо один из них, в зависимости от ваших потребностей. Сами модули управления скомпилированы в ядре ОС Raspbian как внешние. Для использования этих модулей их нужно удалить из «черного списка» скрытых модулей и добавить в набор модулей, известных ядру. Для этого в текстовом редакторе Nano откройте конфигурационный файл, содержащий скрытые модули, с помощью команды:
nano/etc/modprobe.d/raspi-blacklist.conf
Удалите название модулей I2C и SPI из списка или закомментируйте соответствующие строки с помощью знака «#». Затем нажмите Ctrl+X (выход) и Y (подтверждение сохранения изменений).
Теперь нам нужно выполнить загрузку указанных модулей, интегрировать их в ядро ОС и убедиться в том, что они работают. Сделать это можно двумя способами. Первый – это ручная загрузка модулей управления в командной строке, но при этом они остаются активными лишь до выключения питания. При следующей загрузке Raspberry Pi модули нужно снова загружать соответствующей командой. Второй способ – автозагрузка требуемых модулей при запуске ОС. В этом случае они будут доступны приложению сразу после загрузки ОС. Второй способ необходим, если вы планируете автономную работу системы.
Для первого способа используется команда modprobe. Просто введите (для загрузки модуля управления I2C):
modprobe i2c-dev
Проверить загрузку и активацию модуля можно с помощью команды, отображающей все подключенные модули Ismod. Ввиду того, что в Linux все (или почти все) представлено в виде файлов, в директории /dev можно увидеть подключенные файлы для устройств i2c-0 и i2c-1. Для выгрузки управляющего модуля используйте команду:
modprobe -r i2c-dev
Для автозагрузки модулей управления необходимо изменить конфигурационный файл /etc/modules, который содержит список драйверов для автозагрузки. Открываем файл в текстовом редакторе:
nano /etc/modules
и добавляем строку:
i2c-dev
Нажимаем Ctrl+X и Y для сохранения изменений.
Для работы с устройствами I2C необходимо установить пакет i2c-tools, предоставляющий функции проверки работы устройств I2C, для чего вводим команду
apt-get install i2c-tools
и добавляем пользователя pi (Root-пользователь по умолчанию в Raspbian) в группу i2c командой:
adduser pi i2c
Для активации новых параметров перезагружаем (именно перезагружаем, не выключая питания) Raspberry Pi командой reboot.
После перезагрузки ОС и удаленного подключения по SSH проверяем доступность микросхемы АЦП по шине I2C с помощью команды:
- для Raspberry Pi rev.1:
i2cdetect -y 0
- для Raspberry Pi rev.2:
i2cdetect -y 1
В качестве ответа на эту команду вы получите в терминале таблицу шестнадцатеричных адресов, в которой адрес 0x68 и будет идентифицировать АЦП.
Для чтения данных (шестнадцатеричные значения двух байтов) аналого-цифрового преобразования в канале 1 используем команду:
- для Raspberry Pi rev.1:
i2cget –y 0 0x68 0x88 w
- для Raspberry Pi rev.2:
i2cget –y 1 0x68 0x88 ww
В этой команде второй параметр указывает, какую шину I2C необходимо опрашивать, третий – адрес устройства на шине для чтения (0x68), четвертый обозначает номер аналогового входа, с которого мы хотим получить данные измерений, последний параметр (w) сообщает, что нам нужны все байты преобразованного значения.