Go Down

Topic: Arduino Leonardo problème de compilation/uploading sous linux (Read 5939 times) previous topic - next topic

ArduiBear

Bonjour,

Petite question (hé oui encore...). Comment puis-je mettre à jours ma librairie rx/tx? Ayant l'IDE 1.0.1 je pensais qu'elle le serait mais même si le CDC pour le port série fonctionne bien désormais j'ai des problèmes de synchronisation sur les ports Tx/Rx. En effet j'ai l'impression que la vitesse de communication effective ne correspond pas à la vitesse souhaitée.
Cela peu venir en effet de la librairie si celle-ci n'est pas à jours.

Question parallèle : où puis-je trouver les fichiers ioctl? Car j'aimerais justement vérifier leur contenu.

Encore merci!

68tjs

Il y a une discussion à ce sujet sur le site de développement de l'IDE arduino
http://code.google.com/p/arduino/issues/list
Issue 14

Je n'ai pas compris si une décision a été prise.
Si Rx/Tx sont toujours fournies par l'IDE arduino dans la version Linuxarduino elles devraient être "cohérentes" avec le reste de l'IDE chargé chez arduino.
Si elles ne sont plus fournies c'est à partir de ta distribution que tu dois les mettre  à jour.

Excuse moi si tu as déjà donné la réponse mais quelle est ta distribution ?

skywodd


Comment puis-je mettre à jours ma librairie rx/tx?

Il suffit d'aller chercher la dernière version du driver à la source :
http://rxtx.qbang.org/wiki/index.php/Main_Page


Question parallèle : où puis-je trouver les fichiers ioctl? Car j'aimerais justement vérifier leur contenu.

Les fichiers ioctl sont des fichiers bas niveau du kernel linux, tu n'as rien à aller toucher dedans :smiley-eek:
Ce sont des fichiers critiques qui permettent la gestion trés bas niveau du matériel.
http://www.kernel.org/doc/man-pages/online/pages/man2/ioctl.2.html
Des news, des tutos et plein de bonnes choses sur http://skyduino.wordpress.com !

ArduiBear

#18
Jul 16, 2012, 01:38 pm Last Edit: Jul 16, 2012, 01:46 pm by MikeLarson Reason: 1
Bonjour à tous.

Désolé de ne répondre que maintenant mais je n'avais pas internet.

Pour ma distribution il s'agit d'un Xubuntu 11.10 (désolé je me suis trompé ^^)

Je voulais aller voir les fichiers ioctl non pas pour les modifier mais pour voir si la division clock processeur est juste (afin d'obtenir un temps réel non décalé).

Merci pour vos réponses je regarde ça dès ce soir et je vous tiens au courant!!!

Bonne journée à tous.

Mike

ArduiBear

Petite remarque : quand j'utilisais l'arduino UNO je n'avais pas de problème avec rx/tx (pour la même distribution. C'est vraiment le passage au nouvel IDE (1.0.1) pour Leonardo qui fait que ça ne marche plus. De plus j'utilisais l'API "NewSoftSerial" qui a été implanté à l'IDE désormais sous le nom (SoftSerial). Cependant quand je chercher a créer une instance "SoftSerial mySerial" il me crache dessus à la compilation. Le .h et .cpp sont bien présent dans le /librairies mais bon...

Je ne m'y suis pas forcement attardé mais je me dit que ça pourrait venir de là?

skywodd


Cependant quand je chercher a créer une instance "SoftSerial mySerial" il me crache dessus à la compilation. Le .h et .cpp sont bien présent dans le /librairies mais bon...

C'est pas "SoftSerial" mais "SoftwareSerial" ;)
Des news, des tutos et plein de bonnes choses sur http://skyduino.wordpress.com !

ArduiBear

Oui oui pardon j'écris mes remarques de tête (sans avoir le code devant les yeux) mais c'est bien ça que je voulais dire ^^.

Dans le doute je revérifie mon code ce soir, mais si le problème vient de là.....   :smiley-mr-green:

skywodd


Dans le doute je revérifie mon code ce soir, mais si le problème vient de là.....   :smiley-mr-green:

Comme on dit :
"Stupid errors are allways stupid"
:smiley-mr-green:
Des news, des tutos et plein de bonnes choses sur http://skyduino.wordpress.com !

ArduiBear

Bonjour à tous! Désolé pour le temps écoulé mais je n'étais pas dans les parages.

Alors le problème de compilation est corrigé (stupid error....). Mais cela ne résouds pas mon problème de communication RX/TX, je n'arrive toujours pas à communiquer via ce port série de m****!!!  :smiley-mr-green:

Je vais refaire des tests dans la semaine pour voir si les trames que j'envoi (et que je reçoit de l'autre coté) correspondent bien à ce que j'attends (normalement oui car avec le Uno ça marchait très bien). J'en profiterais pour voir si la fréquence de communication est bien celle attendue (9600 bauds) car la dernière fois j'avais eu un gros doute (malheureusement je n'avais pu gardé l'oscilloscope assez longtemps pour m'en assurer).

J'ai essayé de mettre à jours ma librairie rx/tx mais ça n'a rien changé (là par contre un gros doute sur la fiabilité de ma procédure de maj).

Sinon (question bête certainement), si la fréquence de communication n'est pas bonne, cela vient certainement du prescaler (ou d'une couche supérieur?), si c'est le cas comment faire pour le changer (sans devoir recoder l'ioctl qui est en pré compilé, donc non modifiable)? Existe t il une fonction bas niveau du genre "setPreScaler(...)"? Si c'est le cas où la modifier?

Je vous remercie encore une fois de votre aide et si vous remarquez que certaines de mes remarques et/ou de mes questions sont stupide dites le moi ^^ (sans m'envoyer caresser les vaches non plus :p)

Merci.

Mike

skywodd

#24
Jul 30, 2012, 08:55 pm Last Edit: Jul 30, 2012, 09:02 pm by skywodd Reason: 1

Sinon (question bête certainement), si la fréquence de communication n'est pas bonne, cela vient certainement du prescaler (ou d'une couche supérieur?), si c'est le cas comment faire pour le changer (sans devoir recoder l'ioctl qui est en pré compilé, donc non modifiable)? Existe t il une fonction bas niveau du genre "setPreScaler(...)"? Si c'est le cas où la modifier?

Il existe un utilitaire pour ça : setserial ;)
http://linux.about.com/library/cmd/blcmdl8_setserial.htm
Des news, des tutos et plein de bonnes choses sur http://skyduino.wordpress.com !

zoroastre

#25
Jul 30, 2012, 08:59 pm Last Edit: Jul 30, 2012, 09:05 pm by zoroastre Reason: 1
Yep!

C'est quoi ce lien à la mord moi le noeud...

Tu voulais parler de stty ???

Code: [Select]
stty --file=/dev/ttyUSB0 -a

@+

Zoroastre.

EDIT : Tiens !!! Le lien m'a envoyer n'importe où la première fois...La seconde semble plus à propos  XD
Gné! ;)

skywodd

#26
Jul 30, 2012, 09:04 pm Last Edit: Jul 30, 2012, 09:12 pm by skywodd Reason: 1

C'est quoi ce lien à la mord moi le noeud...

Hu ... bon j'ai mis un lien vers le man de setserial :P


Tu voulais parler de stty ???

Non je parle bien de setserial ;)

Edit: wait ... c'est setserial ou stty pour le baudrate ... c'est malin j'ai un gros doute :smiley-yell:
Edit2: les deux font le changement de baudrate (c'est pas sympa de me faire douter :P)
Exemple:
Code: [Select]
setserial /dev/ttyUSB0 baud_base 115200
Des news, des tutos et plein de bonnes choses sur http://skyduino.wordpress.com !

zoroastre

Yep!

Faut installer un paquet, non ???

Perso, moi je ne l'ai pas sous Debian netinstall...(user ou root)

Quote
philippe# aptitude search setserial
p   setserial                                                            - Contrôle de configuration des ports séries


stty est la commande par defaut.

@+

Zoroastre.
Gné! ;)

skywodd


Faut installer un paquet, non ???

Alors ça j'en sait rien, dés l'instant ou une distribution linux me passe sous la main ça devient une usine à gaz avec plein de module noyaux et de paquets installé de partout :smiley-mr-green:


stty est la commande par defaut.

Bin alors autant utilisé stty ... :smiley-mr-green:
Des news, des tutos et plein de bonnes choses sur http://skyduino.wordpress.com !

zoroastre

Code: [Select]

stty --file=/dev/ttyUSB0 19200

10° --ROOT-- - 21:21:37
root@debian-k:/home/philippe# stty --file=/dev/ttyUSB0 -a

speed 19200 baud; rows 0; columns 0; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd cs8 hupcl -cstopb cread clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany -imaxbel -iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke

11° --ROOT-- - 21:21:46
root@debian-k:/home/philippe# stty --file=/dev/ttyUSB0 9600

12° --ROOT-- - 21:22:31
root@debian-k:/home/philippe# stty --file=/dev/ttyUSB0 -a

speed 9600 baud; rows 0; columns 0; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd cs8 hupcl -cstopb cread clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany -imaxbel -iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke


J'en parle un peu ici : http://arduino.cc/forum/index.php/topic,68722.0.html

@+

Zoroastre.
Gné! ;)

Go Up