Linux CNC Configuration: Brochage du GPIO

une des notions importantes de la config linuxCNC est la notion de masque pour la description des entrées/sorties du GPIO du RPI.

les 40 broches du GPIO du RPI sont composées de 2 broches de 5V , 2 broche de 3,3V , 8 broches de masse (ground) et 28 broches configurables en entrées/sorties. sur un raspberry PI 4B , la répartition des broches est comme ci dessous:

la première chose a faire avant de rentrer dans la configuration soft de LinuxCNC est de définir la façon dont vont être utilisées les broches GPIO du RPI pour s’interfacer avec la partie hard aval (drivers, moteurs pas a pas, switchs fin de course , broche d’usinage, etc …).

a partir du brochage retenu , va etre calculé un masque de definition pour le fichier HAL tel que defini dans la doc Linux CNC pour le driver ‘ hal_pi_gpio’ :

http://linuxcnc.org/docs/stable/html/drivers/hal_pi_gpio.html

Choix d’affectation du brochage GPIO et masque resultant:

pour faciliter le travail sur les 2 versions (CNC 3 axes et CNC 4 axes) , la config a ete choisie pour l’affectation des broches en version 4 axes (qui peut le plus peut le moins).

les broches d’envoi de signaux (Dir, Step, démarrage broche) sont des broches de sortie OUT , les broches de Switchs limite , probe et autres organes divers sont des broches d’entrées IN.

les broches 27 et 28 (GPIO 0 et GPIO 1) sont réservées pour certains protocoles de communication donc non disponible en entrée/sortie GPIO

les broches 3 et 5 (GPIO 2 et GPIO 3) etant a un niveau logique haut 3V pour le protocole de communication I2C , elles ne seront pas utilisées et configurees en entrées disponibles ainsi que la broche 7 (GPIO 4).

le masque résultant a utiliser dans le fichier HAL de configuration est donc :

loadrt hal_pi_gpio dir=27152376 exclude=0

pour ceux intéressés , ci dessous au format compressé RAR, le tableur format Libre office qui permet de faire le calcul en fonction des broches que l’on souhaite utiliser: