Forum Linux.embarqué linux communication via adaptateur ftdi

Posté par  .
Étiquettes : aucune
0
14
déc.
2012

Bonjour tt le monde

j'ai une question sur la communication via un adaptateur ftdi,

actuellement j'ai un système qui utilise deja un adaptateur ftdi (usb-->rs484) donc les pilotes ftdi sont présent et fonctionnel!!!
maintenant je veux monter un deuxième adaptateur sur une deuxième sortie usb vu qu'il existe 3.

le problème c'est que le premier adaptateur je peux le mettre sur n'importe quel sortie usb' y a pas de problème il continue a communiquer sans erreur, donc je me dis si je rajoute un autre adaptateur ca va mélanger la communication entre le premier et le deuxiemme.

en résumé: comment associer un numéro de sortie usb a un adaptateur???

merci d'avance pour vos retour

  • # heu...

    Posté par  . Évalué à 1.

    Quant tu branche un adaptateur USB sur un host il se voit attribuer par l'usb une adresse usb unique sur ce host.
    Donc pour le system chaque périphérique peut se différencier par host.num/device.adresse.
    Au niveau linux, le driver/module va lui assigner un identifiant (inode) dans /dev
    Le premier adaptateur branché aura une identification de type /dev/ttyUSBS0 et dans le cas de branchement du second il sera créer /dev/ttyUSBS1 pour indiquer un deuxieme port série.
    Pour savoir qui est qui du premier ou du deuxieme il existe des infos que tu peut obtenir via dmseg ou dans /proc/bus/usb/devices, le but de d'identifier le numéro de série de chaque adaptateur.
    Ensuite tu peut écrire des règles mdev/udev pour que ton système assigne le numéro souhaité à chaque adaptateur.

    • [^] # Re: heu...

      Posté par  . Évalué à 0.

      ok merci pour ton retour,

      j'avais envisagé ce cas, ca va être ttyUSB1, merci de me confirmer j'étais pas sure de ca,

      et dans mon programme de communication en C comment je précise, sur quel port envoyé la donné destinée au second convertisseur???

      et enfaite une autre question, quand le deuxième sera reconnu en tant que ttyUSB1 je dois reprendre la commande "mknode" pour charger son fichier??

      merci encore pour ton retour!!

      • [^] # Re: heu...

        Posté par  . Évalué à 2.

        note que tu peux forcer un /dev/xxx en creant la regle qui va bien avec udev

        c'est comme cela que tu peux avoir plusieurs cartes reseaux, utilisant le meme pilote sur une machine mais qu'elles ont toujours le meme ethX apres un reboot.

      • [^] # Re: heu...

        Posté par  . Évalué à 1.

        Si tu créer une règle udev/mdev dans ton programme tu écriras toujours vers /dev/USBS1 pour parler avec ta seconde interface. A moins d'avoir un kernel 2.4 tu ne devrais pas avoir à utiliser mknode.
        http://reactivated.net/writing_udev_rules.html

        • [^] # Re: heu...

          Posté par  . Évalué à 0.

          bon honnêtement, j'ai pas trop compris ce que vous voulez dire…dsl
          pour mon kernel c'est 2.6.
          donc, actuellement le premier adaptateur peut etre connecté sur n'importe quel entrée USB ca fonctionne toujours!!!
          si je veux mettre un deuxiemme adaptateur je doit spécifier la communication dans udev c ca??

          • [^] # Re: heu...

            Posté par  . Évalué à 0.

            je sais pas si c'est normale mais j'ai pas de udev sur mon system!!!!!

            c'est normale????

          • [^] # Re: heu...

            Posté par  . Évalué à 1.

            donc, actuellement le premier adaptateur peut etre connecté sur n'importe quel entrée USB ca fonctionne toujours!!!
            si je veux mettre un deuxiemme adaptateur je doit spécifier la communication dans udev c ca??

            caca aussi, en essayant de changer l'ordre des mots des commentaires précédents :

            À chaque fois que tu vas rajouter un adaptateur, un nouveau device sera créé dans /dev.
            Tu peux "commander" cette création en l'associant à l'identifiant unique de chaque matériel que tu branches sur ton bus usb. Et donc mettre une étiquette verte sur un de tes adaptateurs et le piloter avec ./vert -fais truc

            Tout ça est géré par Udev, qui te permet d'écrire des règles pour donner un ordre à tes devices quand ils sont identiques, les nommer ou faire le café.

            Si maintenant le but est que ton programme soit portable, il va falloir qu'il interroge /dev, /proc, /sys etc. et demande par exemple à l'humain quel device il doit adresser.

            http://wiki.debian.org/udev

            Tu as besoin de la commande lsusb, de parcourir /dev, /proc, /sys (pour voir ce qu'il s'y passe), de créer un fichier supplémentaire dans /etc/udev/rules.d/ou_autre/ma_regle, de la commande tail et de vim, évidemment.

            Dans tous les cas, tu peux oublier mknode.

          • [^] # Re: heu...

            Posté par  . Évalué à 2.

            Le premier adaptateur branché sera toujours nommé /dev/ttyUSBS0, si tu en branche un second il sera toujours /dev/ttyUSBS1.
            Si c'est le seul branché peut importe ou tu le branche ce sera toujours /dev/ttyUSBS0.
            Donc les logiciels acutellement l'utilisant ne font qu'utiliser /dev/ttyUSBS0 sans ce demander ou il est branché.

            Le soucis c'est :au démarrage de la machine avec deux adaptateur, qui sera considéré comme le premier branché ? Il faut le spécifier.

            C'est le but udev faire une règle qui diras au système "tel device, tel numero de série" doit être USBS0 et "tel device, tel numero de série" c'est USBS1. Forcement les deux numéro de série des produits sont différent.

            C'est normal sur un système embarqué de ne pas avoir udev , puisque il faut qu'il soit dans busybox. Et au passage il s'agiras du petit fere d'udev qui est mdev
            http://wiki.gentoo.org/wiki/Mdev

            • [^] # merci

              Posté par  . Évalué à 1.

              bonjour dsl pour le retard mais merci bcp a toi le breton c'est plus claire pour moi

              pour le moment je travail sur autre chose mais je mettrais ca en oeuvre des que possible et je vous tien au courant

              en tout cas grand merci c'été tres claire !!

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.