Beaglebone Black и библиотека MCP230xx Circuit Python - PullRequest
0 голосов
/ 19 июня 2020

Я не знаю, как указать шину I2 C, потому что Beaglebone Black имеет 3x (1x недоступен через заголовок). Я хочу использовать их оба для многих различных устройств I2 C (Pin 17/18 I2C1 и Pin 19/20 I2C2)

2x I2C SCL/SDA Devices

In пример, который они упоминают здесь: https://github.com/adafruit/Adafruit_CircuitPython_MCP230xx/blob/master/examples/mcp230xx_simpletest.py

import board
import busio

from adafruit_mcp230xx.mcp23008 import MCP23008

i2c = busio.I2C(board.SCL, board.SDA)
mcp = MCP23017(i2c, address=0x21)

Они используют только mcp = MCP23017(i2c, address=0x21) для указания адреса устройства I2 C, а не специфицированной c шины. Я проверил библиотеку "busio", могу ли я сделать это там, но не смог найти правильного объявления.

РЕДАКТИРОВАТЬ: Похоже, библиотека плат делает такие вещи. Записав dir (board) в оболочке python, он перечислит все доступные контакты на черном усе.

импорт каталога платы (платы) ['CE0', 'CE1', 'I2 C', 'LED_USR0', 'LED_USR1', 'LED_USR2 ',' LED_USR3 ',' MISO ',' MISO_1 ',' MOSI ',' MOSI_1 ',' P8_10 ',' P8_11 ',' P8_12 ',' P8_13 ',' P8_14 ',' P8_15 ',' P8_16 ', 'P8_17', 'P8_18', 'P8_19', 'P8_20', 'P8_21', 'P8_22', 'P8_23', 'P8_24', 'P8_25', 'P8_26', 'P8_27', 'P8_28', 'P8_29 ',' P8_3 ',' P8_30 ',' P8_31 ',' P8_32 ',' P8_33 ',' P8_34 ',' P8_35 ',' P8_36 ',' P8_37 ',' P8_38 ',' P8_39 ',' P8_4 ', 'P8_40', 'P8_41', 'P8_42', 'P8_43', 'P8_44', 'P8_45', 'P8_46', 'P8_5', 'P8_6', 'P8_7', 'P8_8', 'P8_9', 'P9_11 ',' P9_12 ',' P9_13 ',' P9_14 ',' P9_15 ',' P9_16 ',' P9_17 ',' P9_18 ',' P9_19 ',' P9_20 ',' P9_21 ',' P9_22 ',' P9_23 ', 'P9_24', 'P9_25', 'P9_26', 'P9_27', 'P9_28', 'P9_29', 'P9_30', 'P9_31', 'P9_41', 'P9_42', 'SCK', 'SCK_1', 'SCL ',' SCLK ',' SCLK_1 ',' SDA ',' SPI ',' встроенные ',' кэшированные ',' do c ' , ' файл ', ' загрузчик ', ' имя ', ' пакет ', ' spe c ',' ap_board ',' board_id ',' Detector ',' pin ',' sys ']

Но я понятия не имею, что такое правильная адресация платы. пин для I2 C. Просто обработав вывод def inet, он выдает мне ошибку:

ValueError: No Hardware I2C on (scl,sda)=(P9_17, P9_18)
Valid I2C ports: ((1, I2C1_SCL, I2C1_SDA), (2, I2C2_SCL, I2C2_SDA))

Кажется, он распознает две линии I2 C -Bus-Lines. Но я не знаю, как решить второй вопрос.

...