La réponse courte
Non, vous (presque) pas. C'est en fait l'inverse - vous devez les configurer non pas pour être GPIO mais pour servir leur objectif spécial. La seule exception concerne les broches UART. De plus, les broches I²C sont en quelque sorte spéciales.
Broches UART
Les broches UART sont utilisées par le noyau pour la console. Vous devrez configurer le système pour ne pas les utiliser si vous souhaitez qu'ils soient disponibles pour votre usage:
- éditer
/boot/cmdline.txt
et supprimer console=ttyAMA0,115200
et kgdboc=ttyAMA0,115200
paramètres
éditez /etc/inittab
et commentez (mettez le #
caractère devant) la ligne:
T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100
redémarrez votre RaspberryPi
Maintenant, les broches ne doivent pas être utilisées par le système et vous pouvez les utiliser
Broches I²C
Les broches I²C sont équipées de résistances de rappel 1,8 k intégrées. Ils ne peuvent pas être désactivés. Cela limite l'utilisation de ces broches dans certaines situations (mais peut être pratique dans d'autres).
Solutions complémentaires
Si vous manquez de broches GPIO, vous pouvez parfois facilement étendre son nombre en utilisant du matériel supplémentaire (mais simple). Pour la sortie par exemple, vous pouvez utiliser shift registers
ou I²C I/O expanders
(aussi appelé `expandeurs de bus I²C), à la fois facilement à acheter et à utiliser. Vous pouvez trouver un exemple de son utilisation ici .
PFC8574
(ou similaire de cette famille) sont si populaires qu'il existe un module de noyau prêt à l'emploi qui gère toutes les communications pour vous ( il n'est pas activé dans le noyau RaspberryPi officiel, vous devrez compiler votre propre noyau pour l'utiliser ). Le module est appelé gpio_pcf857x
, à condition que vous l'ayez chargé modprobe
(avec les pilotes I²C) et que vous ayez la puce connectée au I²C
bus, vous pouvez l'activer comme ceci:
echo pcf8574 0x27 > /sys/class/i2c-adapter/i2c-0/new_device
où pcf8574
est le nom réel de votre puce (ce module peut gérer quelques puces différentes comme pca967x
et max732x
) et 0x27
son adresse I²C
(vous pouvez configurer l'adresse de la puce lors du câblage).
Cela créera des entrées dans le /sys/class/gpio/
répertoire qui vous permettront de les utiliser de la même manière que les autres ports GPIO dans RaspberryPi, à condition que vous utilisiez l' sys
interface (par exemple wiringPiSetupSys()
dans le câblagePi). Malheureusement, le RPi.GPIO
module de Python ne prend pas en charge ce mode, il ne pourra donc pas utiliser ces broches avec cette bibliothèque. Les broches auront des chiffres élevés comme 248-255 ou similaire.
Remarque: PCF8574
est sinking current
- il peut fournir un puits de disque (accepter à l'état bas) jusqu'à 20 mA, mais il ne peut fournir que 0,1 mA à l'état élevé. Cela signifie que vous allez généralement l'utiliser en logique inverse, c'est-à-dire +3.3V -> LED -> RESISTOR -> PCF8574_PIN
.