Discussion:
GPIO (CY7C65211)
Add Reply
BERTRAND Joël
2024-04-26 12:30:02 UTC
Réponse
Permalink
Bonjour à tous,

Je viens de câbler une interface USB vers RS232 + GPIO qui fonctionne
avec un composant CY7C65211.

Celui-ci est reconnu comme un thermomÚtre par le noyau Linux. J'ai donc
rajouté une rÚgle udev pour corriger cela :

KERNEL=="*", SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device",
ACTION=="add", ATTR{idVendor}=="04b4", MODE="666"
KERNEL=="*", SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device",
ACTION=="remove", TAG=="cyusb_dev"

La carte est maintenant vue comme un port série sur ttyACM?. TrÚs bien.
Mais comment accéder aux différents GPIO ? J'aimerais éviter d'utiliser
le SDK du fondeur pour faire des choses aussi simples...

Bien cordialement,

JB
didier gaumet
2024-04-26 17:50:02 UTC
Réponse
Permalink
Bonjour,

avertissement: je n'y connais absolument rien et je réponds peut-être au
moins en partie à côté de la question que tu poses

de ce que je comprends:
- la gestion GPIO du noyau linux a changé (/sys/class/gpio* ->
/dev/gpio*) et mieux vaut utiliser le nouveau système que l'ancien
- le paquet Debian gpiod propose des utilitaires de détection, prise
d'information et interaction GPIO accessibles par un shell Linux. La
bibliothèque libgpiod semble utile pour l'accès par programme.
- je crois que le paquet usb-modeswitch permet de faire ce que tu fais
avec une règle USB

Une explication de tout ça qui a l'air assez intéressante (mais j'ai
survolé en diagonale et j'y connais rien):
https://www.blaess.fr/christophe/2018/10/15/pilotage-de-gpio-avec-lapi-libgpiod-partie-1/
https://www.blaess.fr/christophe/2018/10/22/pilotage-de-gpio-avec-lapi-libgpiod-partie-2/
BERTRAND Joël
2024-04-26 19:00:01 UTC
Réponse
Permalink
Post by didier gaumet
Bonjour,
Bonsoir,
Post by didier gaumet
avertissement: je n'y connais absolument rien et je réponds peut-être au
moins en partie à cÎté de la question que tu poses
L'essentiel est de participer ;-)

Plus sérieusement, merci d'apporter un nouvel éclairage sur le sujet.
Post by didier gaumet
- la gestion GPIO du noyau linux a changé (/sys/class/gpio* ->
Je n'ai rien dans /dev/gpio ou /sys/class/gpio* qui vienne lorsque je
branche la carte en question.
Post by didier gaumet
/dev/gpio*) et mieux vaut utiliser le nouveau systÚme que l'ancien
- le paquet Debian gpiod propose des utilitaires de détection, prise
d'information et interaction GPIO accessibles par un shell Linux. La
bibliothÚque libgpiod semble utile pour l'accÚs par programme.
Je ne connaissais pas, je vais creuser de ce cÎté.
Post by didier gaumet
- je crois que le paquet usb-modeswitch permet de faire ce que tu fais
avec une rÚgle USB
En revanche, le ttyACM0 monte automatiquement. Je vois bien le
périphérique dans lsusb mais je n'arrive même pas à l'ouvrir avec le sdk
de Cypress (et ce n'est pas une question de droit, j'ai aussi essayé en
root).

J'ai écrit un bout de C qui scanne les bus USB. Il détecte bien le
04B4:0002 (et ce n'est pas du bruit de télétransmission, le résultat est
toujours le même, je n'ai pas de problÚme sur la liaison physique).
...
Indice : 023, id : 6015:0403 inaccessible
Indice : 024, id : 082D:046D inaccessible
Indice : 025, id : 2812:2109 inaccessible
Indice : 026, id : 0002:04B4 0=>0/02 1=>0/0A 2=>5/FF Cypress CY7C65211
détecté
Indice : 027, id : 6001:0403 inaccessible
Indice : 028, id : 0002:1D6B inaccessible
...

et juste plus loin, le CyOpen() me renvoie un coup de pied aux fesses... :-(

Chose surprenante, la classe (à droite des '=>') ne peut être d'aprÚs
la doc que 00, 02, 0F, FF. Je ne vois pas ce que vient faire là-dedans
un 0A...

JB

Continuer la lecture sur narkive:
Loading...