Communiquer avec la Fox Board G20 par USB

230 views
Skip to first unread message

jonathanP

unread,
May 10, 2012, 4:39:06 AM5/10/12
to groupe-de-discussion-autour-...@googlegroups.com
Bonjour,

Je suis nouveau dans le monde de la Fox Board G20 et plus généralement dans le monde du linux embarqué.

Je cherche actuellement à communiquer avec la Fox par usb. Je vais vous expliquer un peu le contexte. Je suis entrain de développer un programme sur la carte et un autre programme sur un pc(windows xp) le tout en C. Je cherche à faire dialoguer ces deux programmes via le port usb device de la G20. J'ai un peu regardé du coté du site de acmesystem, la solution du gadget serial driver et l'api linux/usb_gadget.h, cependant avant d'aller plus loin, et c'est d'ailleur pour cela que je viens poster dans ce groupe de discussion, je voudrais savoir si l'un d'entre vous pourrait me confirmer que c'est bien cette voie qu'il faut emprunter ou sinon me donner une autre voie à étudier. ( Si vous avez eu l'occasion de le faire je vous serais reconnaissant si vous partagiez vos codes, exemples, et idées sur le sujet que ce soit coté pc que coté board). En effet d'une part je cherche une façon d'envoyer des données vers la board et de la board vers le pc et d'autre part le moyen de réceptionner les messages sur la board et le pc.

je vous remercie d'avance pour vos réponses.

jonathanP

unread,
May 15, 2012, 3:05:47 AM5/15/12
to groupe-de-discussion-autour-...@googlegroups.com
Bonjour,

Il n'y a personne sur le groupe français ? Je donne un peu plus de détails le programme sur la fox est chargé de piloter la fox tant dit que le programme sur l'ordinateur indique au programme sur la fox ce qu'il veut. En gros c'est l'équivalent d'un client / serveur mais via USB. Quelqu'un aurait t'il une suggestion ?

herve.mt

unread,
May 15, 2012, 3:45:51 AM5/15/12
to groupe-de-discussion-autour-...@googlegroups.com
Le meilleur moyen c'est d'essayer !
Pour moi ça à fonctionné parfaitement entre minicom sous linux et la foxboard
Pense bien à installer le fichier linux-cdc-acm.inf

Pour la la programmation en C, il y a tellement longtemps que je n'ai plus programmé, que je risquerais de te donner des informations fausses.

Si tu as des soucis tu peux toujours me contacter. je programme de péférence sous CodeBlock (compatible linux et windows)

@+

Yoann "Semtex" Menelet

unread,
May 15, 2012, 3:55:18 AM5/15/12
to groupe-de-discussion-autour-...@googlegroups.com
Si tu veux vraiment le faire par USB, oui c'est le seul moyen.
La carte fox branchée par USB doit simuler un port série (c'est encore plus vrai avec le port USB debug). 
Une fois branchée par USB, va faire un tour dans le /dev de la carte fox et cherche un "ttyUSB" ou un truc du genre, c'est comme ça que Linux met ses ports série virtuels en général. Après en C, il faut écrire dans /dev/ttyUSB comme si tu écrivait dans un fichier, (ça tombe bien on est sous Linux et tout est fichier :) ).

En espérant t'avoir mis sur la bonne voie.

Baudouin MARTIN

unread,
May 15, 2012, 4:02:38 AM5/15/12
to groupe-de-discussion-autour-...@googlegroups.com
Bonjour,

pour communiquer entre une foxboard et un PC, on ne peut pas le faire directement en USB. Il y a 2 solutions. Soit passer par un kit USB-série qui te permet de voir un port série depuis ta foxboard ou depuis ton PC, soit de passer par le réseau (à mon avis le meilleur moyen) mais pour la prog c'est un peu plus compliqué. J'espère être clair.

BM

Christian Doelhoffs

unread,
May 15, 2012, 3:56:14 AM5/15/12
to groupe-de-discussion-autour-...@googlegroups.com
Bonjour,

Je cherche une solution similaire depuis longtemps sans solution à ce jour. Mais je n'ai pas de solution à te donner.

J'ai fais des recherche autour libusb intégré dans un code en C. Je butte sur le file transfert précisément.

Je suis toujours intéressé par toute information complémentaire.

Bien à toi,

Christian

jonathanP

unread,
May 15, 2012, 4:53:10 AM5/15/12
to groupe-de-discussion-autour-...@googlegroups.com, baudoui...@gmail.com
oui effectivement ce serait plus simple par le réseau. Cependant j'ai une contrainte, je suis obligé de passer par le port USB de la fox

jonathanP

unread,
May 15, 2012, 5:02:18 AM5/15/12
to groupe-de-discussion-autour-...@googlegroups.com, christian...@channelcommunications.be
Moi aussi j'avais un peu cherché autour de libusb, cependant j'ai vu sur le site de acmesystem qu'il parlait linux/usb_gadget.h et sur le site http://www.linux-usb.org/gadget/ il y a un sous paragraphe qui parle de liaison série et donc qui pourrait être utilisé comme l'a mentionné Yoann "Semtex" Menelet

jonathan PERCY

unread,
May 15, 2012, 4:45:16 AM5/15/12
to groupe-de-discussion-autour-...@googlegroups.com
Je te remercie de ta réponse. Donc sur ma machine xp, je n'ai qu'à écrire sur ma sortie com relié à la fox et lire les données dans ce fichier ? Et pour répondre à l'ordinateur écrire dans ce fichier et écouter mon port sur la machine xp. Ais-je bon ?

Yoann "Semtex" Menelet

unread,
May 15, 2012, 5:44:42 AM5/15/12
to groupe-de-discussion-autour-...@googlegroups.com
En fait, il te faut trouver un driver ttyUSB pour la carte fox, (donc pour une debian ARM).
Pour moi, le meilleur moyen serait de passer par le port debug (un petit module à 4/8 € je crois) qui lui simule déjà un port série via micro USB (et donc te créé le fameux /dev/ttyUSB sur lequel tu va devoir taper dans le code).

bolay.co

unread,
May 15, 2012, 5:50:25 AM5/15/12
to groupe-de-discussion-autour-...@googlegroups.com
Bonjour,

pour information et pour confirmer ceci:
RS-232 communications sur Linux - http://papers.mpastell.com/serial.pdf

pour paramétrer le port:
stty -F /dev/ttyUSB0 9600

pour envoyer des données (dans un terminal):
echo -n -e 'Un message' > /dev/ttyUSB0

pour recevoir une donnée (dans un autre terminal):
cat /dev/ttyUSB0

Finalement, je conseille de prendre un adaptateur de chez FTDI (http://www.ftdichip.com/)
car les drivers sont très bien écrits et surtout disponibles sur tous les OS.
Je pense que le câble USB Null Modem (http://www.ftdichip.com/Products/Cables/USBtoUSB.htm)
devrait faire l'affaire.

Sylvain Bolay

Yoann "Semtex" Menelet

unread,
May 15, 2012, 6:56:57 AM5/15/12
to groupe-de-discussion-autour-...@googlegroups.com
Bien vu le coup du USB->USB qui simule un port COM des deux côtés :)
C'est effectivement une solution, vu qu'un Linux comme un Windows détecte très bien ce genre de matos (déjà testé).

Bon code (ça sera COMX sur Windows et /dev/ttyUSBX) sur la FOX).
Par contre, pourquoi ne pas passer par un dongle Bluetooth ? Ça s'utilise comme un port Série, et ça t'évite le câble USB :)

Antonio Galea

unread,
May 15, 2012, 8:34:18 AM5/15/12
to groupe-de-discussion-autour-...@googlegroups.com
2012/5/15 Yoann "Semtex" Menelet <yoann....@gmail.com>:
Moi, je prefere utilizer la porte USB device comme ethernet - c'est
le moyen le plus simple que je connais. Sur la Fox:

modprobe g_ether

et apres voilà, tu obtiens une porte reseaux:

ifconfig usb0 192.168.100.100

Antonio
Message has been deleted

jonathanP

unread,
May 16, 2012, 3:54:16 AM5/16/12
to groupe-de-discussion-autour-...@googlegroups.com
Je vous remercie pour toutes ces réponses, je vais regarder laquelle de ces solutions est la plus simple et la plus appropriée pour moi. Je vous tiendrai au courant de mon avancement et viendrai poster des demandes d'aide si je suis bloqué en souhaitant rencontrer le même soutien qu'actuellement.

----
jonathan

jonathanP

unread,
May 18, 2012, 10:03:46 AM5/18/12
to groupe-de-discussion-autour-...@googlegroups.com
Bonjour Ant9000,

Je suis actuellement entrain de tester la manière que tu as évoqué. Je voudrais savoir quel hôte tu as linux ou windows ? et savoir si tu pouvais communiquer quelques exemples d'utilisations ( de préférence avec un hôte windows) que ce soit du coté fox que du coté hôte.

Jonathan


Le mardi 15 mai 2012 14:34:18 UTC+2, ant9000 a écrit :

Antonio Galea

unread,
May 22, 2012, 6:29:37 PM5/22/12
to groupe-de-discussion-autour-...@googlegroups.com
2012/5/18 jonathanP <jonatha...@gmail.com>:
>
> Je suis actuellement entrain de tester la manière que tu as évoqué. Je
> voudrais savoir quel hôte tu as linux ou windows ? et savoir si tu pouvais
> communiquer quelques exemples d'utilisations ( de préférence avec un hôte
> windows) que ce soit du coté fox que du coté hôte.

Moi, j'utilize presque seulement Linux, même comme hôte.

Pour Unix, un example de communication TCP/IP en C
est ici:

http://www.linuxhowtos.org/C_C++/socket.htm

Pour Windows, je croix que ça va a fonctionner:

http://www.codeproject.com/Articles/1904/Beginning-Winsock-Programming-Simple-TCP-client

Personallement, je préfère Python:

http://ankurs.com/2009/07/a-simple-python-socket-chat-example/

pourqui n'est pas dépendant de ton hôte - même code sous
Windows, Linux et Mac.

Antonio

jonathanP

unread,
May 23, 2012, 7:37:59 AM5/23/12
to groupe-de-discussion-autour-...@googlegroups.com
Bonjour,

je te remercie pour ces exemples. Effectivement je n'étais pas sûr de pouvoir utiliser les sockets. Je vais regarder sa pour des projets personnels. Ce projet est dans le cadre d'un stage donc finalement je passe par modprobe g_serial (obligation du stage). En effet j'aurai apprécié de le faire en python mais cela doit être fait en C tout du moins sur la partie windows. Je vais surement mélanger le python et le C sur la fox.

Le dongle bluetooth aussi paraît intéressant je le garde dans un coin de ma tête pour un projet personnels.

En tout cas je vous remercie pour votre aide.

Jonathan

jonathanP

unread,
May 23, 2012, 8:26:57 AM5/23/12
to groupe-de-discussion-autour-...@googlegroups.com
Bonjour Antonio,

Je te remercie pour ces exemples. Je n'étais pas sûr de pouvoir utiliser les sockets mais en effet sa paraît censé.

Finalement j'ai opter pour le série car mon sujet de stage me l'impose. Cependant je pense que pour des projets personnels l'idée d'Antonio et du bluetooth de Yoan vont me servir je pense.

Je vous remercie pour votre aide et vous tient au courant de l'avancement du projet.


Jonathan

Le mercredi 23 mai 2012 00:29:37 UTC+2, ant9000 a écrit :

Christian Doelhoffs

unread,
May 23, 2012, 8:01:40 AM5/23/12
to groupe-de-discussion-autour-...@googlegroups.com
Bonjour Jonathan,

Ci-joint un url qui m'a permit de créer ma connexion TCP/IP avec une boîte à relais.

http://www.securitytube.net/video/22

C'est très bien expliquer et cela fonctionne.

Bàt,

Christian
Reply all
Reply to author
Forward
0 new messages