Коротка відповідь
Ні, ви (майже) цього не робите. Насправді навпаки - ви повинні налаштувати їх не на 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.