Toutes mes CNC ont tournées sous LinuxCNC via une sortie DB25 sur de vieux Pentium 4 et tout mon matériel pilotable par LinuxCNC fonctionne en DB25, mes boitiers drivers, mon triptéron, quelques robots, etc. De fait la DB25 est devenue la norme dans mon labo. Le dernier Pentium en fin de vie vient de me lâcher et j'ai du trouver une solution de rechange sans être obligé de tout recâbler. J'ai opté pour la version LinuxCNC tournant sous Raspberry PI et il a fallu réfléchir à un convertisseur GPIO/DB25. En outre les drivers TB6600 que j'utilise fonctionnent en 5vcc alors que le GPIO du PI fonctionne en 3.3v, j'ai du implémenter des convertisseurs de niveaux sur la carte.
Le port DB25:
Le port GPIO du PI:
Le schéma de la carte convertisseur, elle collationne les infos step, dir et origine pour les 3 axes. A noter que toutes les entrées (origines, palpeur, A/U) sont câblées en direct par straps sur les connecteurs et ne passent pas par des convertisseurs.
L'implantation.
La carte convertisseur enfichée sur le port GPIO
Le principe de définition des pins d'entrées ou sorties se fait à partir d'un masque, plus d'explications ici
ou ici, dans notre configuration il faut rajouter cette ligne dans le fichier .hal:
loadrt hal_pi_gpio dir=27152376 exclude=0
Les pins concernées sur la DB25 sont celles-ci:
pin1 A/U
pin2 step X
pin5 dir Y
pin6 step Y
pin7 step Z
pin8 dir Z
pin10 origine X
pin11 origine Y
pin12 palpeur
pin14 step X
pin15 origine Z