⇨ MENU ⇨ BIBLIOTHEQUE ⇨ gpiolib.bbc
PROC_gpio_alt()
⇨ MENU ⇨ BIBLIOTHEQUE ⇨ gpiolib.bbc
PROC_gpio_alt()
DESCRIPTION.
La procédure PROC_gpio_alt() place une broche du GPIO en mode alternatif (SPI, I2C, UART, ...).
SYNTAXE.
PROC_gpio_alt( gpio , broche , fonction )
REMARQUES.
gpio doit être l'identifiant de la variable qui à reçue la valeur retournée par la fonction FN_gpio_setup.
broche doit être un nombre entier compris entre 0 et 30, correspondant au numéro de broche GPIO (BCM, Broadcom) qui doit être placée en fonction alternative. broche n’est pas un numéro physique d'une broche (pin 1–40) mais le numéro interne du SoC.
fonction doit être un nombre entier indiquant quelles fonction alternative sera associée à bronche. fonction peut être :
- pour les modèles Pi 2, Pi 3 et Pi 4 :
- 2, pour associer la fonction ATL5, fonctions alternatives (PWM (autres pins), debug) ;
- 3, pour associer la fonction ATL4, fonctions spéciales (horloges, signaux vidéo) ;
- 4, pour associer la fonction ATL0, interfaces principales (I2C, SPI0, UART0, PWM) ;
- 5, pour associer la fonction ATL1, interfaces secondaires (SPI1, UART1) ;
- 6, pour associer la fonction ATL2, bus parallèle / LCD ( DPI (écran parallèle) ;
- 7, pour associer la fonction ATL3, audio / flux ( 2S / PCM) ;
- pour le modèle Pi 5 :
- 0, pour associer la fonction ATL0, (GPIO standard : entrée / sortie) ;
- 1, , pour associer la fonction ATL0, (GPIO secondaire ou optionnelle) ;
- 2, pour associer la fonction ATL0, (SPI) ;
- 3, pour associer la fonction ATL0, (I2C) ;
- 4, pour associer la fonction ATL0, (UART) ;
- 5, pour associer la fonction ATL0, (PWM) ;
- 6, pour associer la fonction ATL0, (I2S / audio) ;
- 7, pour associer la fonction ATL0, (horloges / signaux spéciaux) ;
- 8, pour associer la fonction ATL0, (fonctions avancées / debug).
Note : Une fonction ALT peut être comparée à un “câble interne” dans le processeur et la broche (ALT = périphérique).
Important : avant de placer une broche dans une fonction alternative, il faut toujours la basculer en mode entrée juste avant.
En effet, sur Raspberry Pi, en particulier sur les modèles Pi 2, Pi 3 et Pi 4), chaque broche est configurée via un registre appelé GPFSEL : chaque GPIO utilise 3 bits : entrée (000), sortie (001) et les fonctions alternatives (010, 011, etc.) L'appel de la fonction PROC_gpio_out() effectue simplement un OR logique (OR=) sur ces bits, ne mettant à 1 qu'un bit mais ne remet pas les autres bits à zéro. broche pourrait alors ne pas être en mode sortie, mais être placée dean une fonction alternative invalide ou inattendue. Sur Pi 5, les registres sont différents : il active directement la sortie il n'y a pas de manipulation bit-à-bit ambiguë. En théorie, le problème est moins critique mais la règle de précaution est à conserver pour la compatibilité.
Rappel : L'appel de la fonction FN_gpio_setup est obligatoire et doit être fait avant tout autre utilisation d'une procédure ou fonction du module gpiolib.bbc.
La procédure PROC_gpio_alt() est importée depuis le module gpiolib.bbc.
EXEMPLE.
REM --- Module de la bibliothèque BBC BASIC ---
INSTALL @lib$ + "gpiolib.bbc"
kgpio = FN_gpio_setup
ki2c = 2
REPEAT
INPUT "Quel est le modele de votre Raspberry " , kmodele%
UNTIL kmodele% > 1 AND kmodele% < 6
IF kmodele% = 5 THEN
PROC_gpio_inp( kgpio , kledrouge )
PROC_gpio_alt( kgpio , ki2c , 3 ) : REM - ALT3 sur I2C
ELSE
PROC_gpio_inp( kgpio , kledrouge )
PROC_gpio_alt( kgpio , ki2c , 4 ) : REM - ALT0 sur I2C
ENDIF
END
Votre aide est précieuse pour améliorer ce site, alors n'hésitez pas à faire part de
Dans la RETROGICIEL vous trouvez des suggestions simples et classiques pour
TESTER - DÉCOUVRIR - PRATIQUER - APPROFONDIR - EXPLORER
avec un exemple de résolution à télécharger pour vous inspirer.