Наверное только ленивый не писал в блоге про подключение PCF8574 к Raspberry Pi или аналогичной плате. И мой черёд пришёл, только это будет BeagleBone Black и 2 микросхемы PCF8574.
На BeagleBone Black довольно много GPIO, но по соображениям экономии, расширяемости и удобства подключения в конечном устройстве выбор пал на PCF8574. Это простой расширитель входов-выходов на I2C. Подключение его ничем не отличается от других I2C устройств. Адрес задаётся уровнями на соответствующих выводах A0-A2.
Я использовал I2C2 на BBB, его выводы на гребёнке P9:
19 - SCLУстановим для начала i2c-tools. В Debian есть в репозиториях:
20 - SDA
apt-get install i2c-toolsДалее делаем:
i2cdetect -y -r 11 тут означает номер i2c шины начиная с 0. Т.к. их 2 на BBB, то 2 соответствует номеру 1. Файлы шины i2c находятся в /dev/i2c-0 и i2c-1. Выхлоп должен выглядеть примерно так:
0 1 2 3 4 5 6 7 8 9 a b c d e fВидим по адресам 0x20 и 0x21 находятся наши PCF8574.
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: 20 21 -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- UU UU UU UU -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
Пробуем что-нибудь записать/прочитать на Python. Потребуется модуль python-smbus. В Debian он есть в репозиториях:
apt-get install python-smbusНу и собственно пишем в микросхему с адресом 0x20:
import smbus
bus = smbus.SMBus(1) # 1 - bus number
bus.write_byte(0x20, 0x5A)
И прочитаем из 0x21
data = bus.read_byte(0x21)
И всё. На данный момент python-smbus доступен только для Python2, так что кто хочет использовать Python3 придётся писать модуль на Си самостоятельно. Кстати, на сайте i2c-tools есть и такой пример.
Чуть не забыл маленький штрих. Приведённые команды исполняются от root. Чтобы иметь доступ к i2c от простого пользователя нужно добавить пользователя в группу i2c:
usermod -a -G i2c debianТеперь пользователь debian будет иметь доступ к /dev/i2c-{0,1}. Уточните права, владельца и группу для этих файлов устройств, на других дистрибутивах они могут отличаться.
Мой Debian взят тут http://www.armhf.com/. Инструкция по прошивке образа в распаяную на плате флешку тут.
Debian использую взамен Angstrom по одной простой причине: в предустановленном Angstrom используется systemd и для управления сетью своя приблуда connman. Возникла проблема со вторым, стал разбираться - оказывается косяк известный и лечится костылём. Костыль реализуется посредством systemd. Но разбираться с этим выкидышем заоблачного ЧСВ автора желания не было. И надеюсь не придётся ближайшие годы.
In my judgment, people ought to simply invest in V-Bucks if you\\\'re a diehard Fortnite player then anyone enjoy across multiple platforms. Fortnite V-Bucks acquired in Save the World could therefore be invested in new places in Conflict Royale. salsaroc.com fortnite v bucks
ОтветитьУдалить