Коротка відповідь
Ні, ви (майже) цього не робите. Насправді навпаки - ви повинні налаштувати їх не на GPIO, а на їх особливе призначення. Єдиним винятком є шпильки UART. Також і шпильки I²C якось особливі.
Шпильки UART
UART штифти використовуються ядром для консолі. Вам доведеться налаштувати систему не використовувати їх, якщо ви хочете, щоб вони були доступними для вашого використання:
- редагування
/boot/cmdline.txt
та видалення console=ttyAMA0,115200
та kgdboc=ttyAMA0,115200
параметри
відредагуйте /etc/inittab
та прокоментуйте (поставте #
персонаж перед ним) рядок:
T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100
перезавантажте RaspberryPi
Тепер шпильки не повинні використовуватися системою, і ви можете ними користуватися
Шпильки I²C
На штифтах I²C встановлені вбудовані підвісні резистори 1,8 к. Вони не можуть бути відключені. Це обмежує використання цих штифтів в одних ситуаціях (але може бути зручно в інших).
Додаткові рішення
Якщо у вас не вистачає GPIO-штифтів, іноді ви можете легко розширити його номер, використовуючи додаткове (але просте) обладнання. Наприклад, для виводу, ви можете використовувати shift registers
або I²C I/O expanders
(також звані `розширювачі шин I²C), і їх легко купувати та використовувати. Ви можете знайти приклад його використання тут .
PFC8574
(або подібні з цього сімейства) настільки популярні, що є готовий до використання модуль ядра, який обробляє всю комунікацію для вас ( це не ввімкнено в офіційному ядрі RaspberryPi, для його використання потрібно буде скласти власне ядро ). Модуль викликається gpio_pcf857x
, якщо ви завантажили його modprobe
(разом з драйверами I²C) і у вас є чіп, підключений до I²C
шини, ви можете його активувати так:
echo pcf8574 0x27 > /sys/class/i2c-adapter/i2c-0/new_device
де pcf8574
ваше власне ім’я мікросхеми (цей модуль може обробляти декілька різних мікросхем, таких як pca967x
і max732x
), і 0x27
вказується його адреса I²C
(ви можете налаштувати адресу мікросхеми при підключенні до нього).
Це створить записи в /sys/class/gpio/
каталозі, які дозволять вам використовувати їх так само, як і інші порти GPIO в RaspberryPi, за умови використання sys
інтерфейсу (наприклад, wiringPiSetupSys()
в wiringPi). На жаль, RPi.GPIO
модуль Python не підтримує цей режим, тому він не зможе використовувати ці шпильки з цією бібліотекою. У штифтів буде кілька високих цифр, таких як 248-255 або подібних.
Примітка: PCF8574
є sinking current
- це може дати мийці диска (прийняти в низькому стані) аж 20mA, але він може створювати лише 0,1mA у високому стані. Це означає, що ви зазвичай збираєтесь використовувати його у зворотній логіці, тобто +3.3V -> LED -> RESISTOR -> PCF8574_PIN
.