Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 21/02/2021, à 13:44

jba

Resolu- forcer débit non standard sur port série

Bonjour

je cherche à communiquer avec une carte électronique grâce à une liaison série (rx, tx, gnd) à l'aide d'un convertisseur usb/db9
la carte communique à 31250 bauds, débit non standard.
Malheureusement, je cherche depuis plusieurs jours des infos pour forcer ce débit dans les différents outils existants sans succès.
j'ai essayé minicom, picocom, moserial, putty, serialclient ...).
Je suppose donc qu'il y a un fichier de config qui n'autorise que les débit standards mais je n'ai rien trouvé de tel pour le moment.
Quelqu'un pourrait-il me confirmer ? quel serait ce fichier ?
merci
jba

Dernière modification par jba (Le 06/03/2021, à 18:54)

Hors ligne

#2 Le 21/02/2021, à 14:02

Nasman

Re : Resolu- forcer débit non standard sur port série

As tu essayé gtkterm ?
Je l'avais utilisé pour communiquer avec une liaison série et je crois que l'on pouvait spécifier le débit et les protocoles de parité & co.


PC fixe sous Bionic 64 bits et portable avec Focal 64 bits

Hors ligne

#3 Le 21/02/2021, à 16:06

jba

Re : Resolu- forcer débit non standard sur port série

merci pour ta réponse.

oui:
gtkterm -p /dev/ttyUSB0 -s 31250

message d'erreur:
Unknown rate: 31250 baud
May not be supported by all hardware

cette vitesse étant celle utilisée par les équipements Midi, il doit bien y avoir un moyen de la forcer....

Hors ligne

#4 Le 21/02/2021, à 16:17

MicP

Re : Resolu- forcer débit non standard sur port série

Bonjour

Regarde bien la notice de ton appareil,
pour une communication RS232, il n'y a pas que la vitesse à configurer
il y a aussi le nombre de bits, la présence ou pas du bit de parité et la présence ou pas de bit(s) de stop

=======
Ça serait peut-être plus facile pour ceux qui lisent et essayent comprendre
et éventuellement ceux qui pourraient apporter une aide ou/et témoigner de leur expérience
s'ils avaient les références de la carte avec laquelle tu veux communiquer en RS232
et quels sont les USB IDs de l'adaptateur USB<-> RS232

Pour les USB IDs de l'adaptateur, il suffit de le connecter à ta machine
et de nous transmettre le retour de la commande suivante :

lsusb

Dernière modification par MicP (Le 21/02/2021, à 16:23)

Hors ligne

#5 Le 21/02/2021, à 17:06

jba

Re : Resolu- forcer débit non standard sur port série

Oui d'accord mais le message d'erreur concerne bien la vitesse et il apparait bien avant l'envoi d'un quelconque message.

je ne crois pas qu'il s'agissent de RS232 au sens de la norme, mais plutôt une communication série assez basique qui utilise seulement les pins Rx TX et Gnd, les messages de config codés sur 8 bits.

la carte est celle ci:
https://fr.hobbytronics.co.uk/usb-host-midi

et les indications pour la configurer:
----------------------------------------------
So, in order to get into command mode you must do the following.
1. Boot up the board without a USB MIDI device attached
2. Send two consecutive dollar characters "$$" in the first 10 bytes of serial data. If $$ is not received within the first 10 bytes, a reboot is needed to try command mode again.

The following Commands are available. Connect the board/chip to a suitable serial connection at 31250 BAUD and a Terminal program. The Help screen and configuration settings can only be made when there is no MIDI device attached.
------------------------------------------------

les commandes étant données en code ascii (mais j'ai aussi essayé de les envoyer en hex).

sinon pour mon convertisseur usb/db9, la commande lsusb renvoit:

Bus 003 Device 002: ID 10c4:ea60 Cygnal Integrated Products, Inc. CP210x UART Bridge / myAVR mySmartUSB light

Dernière modification par jba (Le 21/02/2021, à 17:07)

Hors ligne

#6 Le 21/02/2021, à 18:09

MicP

Re : Resolu- forcer débit non standard sur port série

Ok, merci pour le lien et l'info concernant l'adaptateur USB<->RS232
Effectivement, il n'y a que les broches Tx et Rx de connectées.
EDIT : Je n'avais parlé que de celles qui étaient utilisées pour les signaux,
mais sur l'appareil il y a aussi une masse et une connexion +5Volt

Je n'ai pas le même type de convertisseur USB<->RS232
le mien est basé sur une puce HL-340

Bus 002 Device 010: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter

et je n'ai pas d'autre appareil que mon multimètre qui malheureusement ne communique pas à cette fréquence
et pas non plus ce qu'il faudrait pour pouvoir établir un dialogue ou/et mesurer la fréquence des signaux qui seraient reçus ou envoyés.

Mais la ligne de commande suivante
qui est sensée programmer à 31250 bauds la fréquence des signaux reçus,
ne m'a pas retourné de message d'erreur :

sudo stty -F /dev/ttyUSB0 ispeed 31250

=======
Voir aussi la page man de la commande stty

man stty

=======
NOTE : Le fichier de périphérique /dev/ttyUSB0 est la propriété du compte root et du groupe dialout
ce qui fait que, s'il est question d'y accéder sans les privilèges du compte root
il faudrait que le compte utilisé fasse partie de la liste du groupe dialout
Ce qui peut être fait en lançant la ligne de commandes suivante :

sudo usermod -a -G dialout $USER

ensuite, il faudra se déconnecter de sa session
et en ouvrir une nouvelle pour que le compte utilisateur fasse effectivement partie du groupe dialout
et qu'il puisse accéder au fichier de périphérique /dev/ttyUSB0 sans avoir à utiliser les privilèges du compte root

Dernière modification par MicP (Le 22/02/2021, à 20:19)

Hors ligne

#7 Le 21/02/2021, à 18:45

jba

Re : Resolu- forcer débit non standard sur port série

je n'ai pas d'erreur non plus avec

 stty -F /dev/ttyUSB0 ispeed 31250 

ni avec

 stty -F /dev/ttyUSB0 ospeed 31250 

en revanche avec:

 stty -F /dev/ttyUSB0 31250 

j'ai le message suivant:

 stty: argument «31250» incorrect
Saisissez « stty --help » pour plus d'informations. 

et pas de message d'erreur avec par ex

 stty -F /dev/ttyUSB0 38400 

Hors ligne

#8 Le 21/02/2021, à 19:14

MicP

Re : Resolu- forcer débit non standard sur port série

Et-ce qu'après avoir lancé la première ou/et les deux premières lignes de commandes
tu es bien arrivé à communiquer avec ton appareil ?

Hors ligne

#9 Le 21/02/2021, à 19:25

jba

Re : Resolu- forcer débit non standard sur port série

malheureusement non....

Hors ligne

#10 Le 21/02/2021, à 19:30

diesel

Re : Resolu- forcer débit non standard sur port série

MicP a écrit :

Ok, merci pour le lien et l'info concernant l'adaptateur USB<->RS232
Effectivement, il n'y a que les broches Tx et Rx de connectées.

Ce n'est pas possible.

Si tu veux établir une liaison série, il te faut forcement un retour de signal (une masse, quoi...).

Amicalement.

Jean-Marie


Je déteste qu'on cherche à me faire passer pour un con, j'y arrive déjà très bien tout seul.
Le mort, il sait pas qu'il est mort ; c'est pour les autres que c'est dur.................... Pour les cons, c'est pareil.

Hors ligne

#11 Le 21/02/2021, à 19:36

jba

Re : Resolu- forcer débit non standard sur port série

diesel a écrit :

Si tu veux établir une liaison série, il te faut forcement un retour de signal (une masse, quoi...).

oui, c'était je pense un raccourci de la part de MicP

jba a écrit :

je ne crois pas qu'il s'agissent de RS232 au sens de la norme, mais plutôt une communication série assez basique qui utilise seulement les pins Rx TX et Gnd, les messages de config codés sur 8 bits.

Dernière modification par jba (Le 21/02/2021, à 19:38)

Hors ligne

#12 Le 21/02/2021, à 20:06

MicP

Re : Resolu- forcer débit non standard sur port série

…oui, c'était je pense un raccourci de la part de MicP …

Oui, j'ai ajouté un EDIT dans mon message

… je ne crois pas qu'il s'agissent de RS232 au sens de la norme,

ce sont des signaux MIDI qui transitent par les broches de l'appareil, d'où la fréquence de 31250 Bauds

…mais plutôt une communication série assez basique qui utilise seulement les pins Rx TX et Gnd, les messages de co nfig codés sur 8 bits.…

et le protocole d'échanges de messages MIDI est très strict, surtout en ce qui concerne le timing.

Attention aussi au fait que les niveaux de tension des signaux TTL (+5V, 0V) de la carte
sont très différents de ceux utilisés sur le connecteur RS232 de l'adaptateur (+12V, -12V)

=======
Je n'ai pas bien compris ce que tu comptais faire avec ce convertisseur USB<->RS232 et cet appareil
ni par quel "bout" tu l'y connectais.

Alors je n'ai répondu qu'à la demande qui était de faire en sorte de paramétrer à 31250 Bauds le débit du port série du convertisseur USB<->232

=======

Cet appareil permet de connecter un autre appareil MIDI (clavier ou autre) dont l'interface serait en USB
et de transformer le signal USB en signaux TTL qui pourront êtres connectés à un autre appareil
comme par exemple celui-ci, qui équipé de connecteurs MIDI au format DIN 5 broches

Le schéma de connexion côté TTL vers les 2 connecteurs DIN 5broches

Dernière modification par MicP (Le 21/02/2021, à 20:28)

Hors ligne

#13 Le 21/02/2021, à 21:18

jba

Re : Resolu- forcer débit non standard sur port série

je cherche à changer la configuration de cet appareil en lui envoyant la commande $$ REALTIME1 (comme indiqué au paragraphe «configuration» ) sur la pin RX (et GND) à l’aide du convertisseur usb/db9

https://fr.hobbytronics.co.uk/datasheet … 20v2_3.pdf

à ce niveau, il ne s’agit pas de midi.

Hors ligne

#14 Le 22/02/2021, à 00:51

MicP

Re : Resolu- forcer débit non standard sur port série

je cherche à changer la configuration de cet appareil en lui envoyant la commande $$ REALTIME1 (comme indiqué au paragraphe «configuration» ) sur la pin RX (et GND) à l’aide du convertisseur usb/db9

Comme  je l'écrivais plus haut, le convertisseur USB RS232 que tu as ne conviendra que si les tensions des signaux sont au niveau TTL,
et en voyant le schéma je constate qu'un régulateur alimente la puce PIC24FJ64GB002 en 3.3V à partir d'une alimentation 5V.
Les ports I/O de l'UART tolèrent des signaux de 5V mais il vaudra mieux utiliser des signaux 0V +3.3V

Les USB IDs de ton adaptateur USB<-> RS232 indiquent bien qu'il s'agit d'un circuit du type Cygnal Integrated Products, Inc. CP210x
mais assure toi bien que sur ton adaptateur, les niveaux de tension de ses signaux Rx et Tx sont bien de 0V et +3.3V
(sur certains de ces adaptateurs, il y a parfois un "jumper" à déplacer pour sélectionner les niveaux de tension des signaux)
sinon, ton montage risque de devenir un générateur d'un seul, unique dernier signal… de fumée.

Une fois bien connecté, les lignes de commande que je t'ai proposé
te permettront de paramétrer le port RS232 à 31250 Bauds
et il ne te restera plus qu'à lui envoyer les deux caractères "$$"

echo "$$" > /dev/ttyUSB0

et la commande que tu souhaites :

echo "REALTIME 1" > /dev/ttyUSB0

Mais, comme je n'ai pas de carte USB Host Board - MIDI device sous la main,
je n'ai pas pu tester et vérifier tout ça.

=======
Au cas où, il faudra essayer avec la puce FTDI FT232RL
qui semble avoir énormément plus de possibilités de réglages en ce qui concerne les vitesses de transfert.

Ectrait de datasheet FT232RL a écrit :


Baud Rate Generator - The Baud Rate Generator provides a x16 clock input to the UART Controller from the 48MHz reference clock and consists of a 14 bit prescaler and 3 register bits which provide fine tuning of the baud rate (used to divide by a number plus a fraction or “sub-integer”). This determines the Baud Rate of the UART, which is programmable from 183 baud to 3 million baud.The FT232R supports all standard baud rates and non-standard baud rates from 300 Baud up to 3 Megabaud. Achievable non-standard baud rates are calculated as follows -Baud Rate = 3000000 / (n + x)where n can be any integer between 2 and 16,384 ( = 214 ) and x can be a sub-integer of the value 0, 0.125, 0.25, 0.375, 0.5, 0.625, 0.75, or 0.875. When n = 1, x = 0, i.e. baud rate divisors with values between 1 and 2 are not possible.This gives achievable baud rates in the range 183.1 baud to 3,000,000 baud. When a non-standard baud rate is required simply pass the required baud rate value to the driver as normal, and the FTDI driver will calculate the required divisor, and set the baud rate. See FTDI application note AN232B-05 for more details.

Voir ausi : AN232B-05 BaudRates.pdf

J'ai déjà une carte USB <-> RS232 TTL équipée d'une puce PL2303,
mais après avoir lu les docs, je viens de commander une carte équipée de cette puce FTDI FT232RL "'FT232RL USB vers TTL Serial Adaptateur Module Board"
Ça va prendre du temps avant qu'elle n'arrive vu qu'elle vient de chine.

Dernière modification par MicP (Le 22/02/2021, à 04:01)

Hors ligne

#15 Le 22/02/2021, à 07:56

jba

Re : Resolu- forcer débit non standard sur port série

lorsque le convertisseur est branché en USB, une mesure au voltmètre sur la prise dB9 entre la pin3 (tx) et la pin 5 (Gnd) donne -8,53V....
argh...pas la bonne tension. mon convertisseur ne serait pas le bon. j'aurai du commencer par cela...
Mon montage n'a pas fumé. costaud le truc !
Je commande un usb/ttl de ce pas selon tes recommandations.
merci en tout cas pour ton aide, je reviendrai ici pour dire ou j'en suis...

Dernière modification par jba (Le 22/02/2021, à 09:36)

Hors ligne

#16 Le 22/02/2021, à 15:36

MicP

Re : Resolu- forcer débit non standard sur port série

Le module USB <-> TTL équipé d'un FTDI FT232RL que j'ai commandé :
1614008696.jpg

Dernière modification par MicP (Le 22/02/2021, à 17:58)

Hors ligne

#17 Le 06/03/2021, à 18:53

jba

Re : Resolu- forcer débit non standard sur port série

Bonjour

merci pour tout mon problème est resolu !
j'ai bien reçu le module FTDI FT232RL et j'ai pu enfin configuré ma carte à l'aide de gtkterm qui me permet d'avoir un retour aprés les message de configuration envoyés à ma carte USB Host Board - MIDI device. gtkterm permet de communiquer avec des vitesses non standards.
du coup mon probleme était donc matériel.
bravo en tout cas pour le diagnostique, l'aide fut précieuse.

Hors ligne

#18 Le 06/03/2021, à 20:26

MicP

Re : Resolu- forcer débit non standard sur port série

Un grand merci pour le retour, smile

(j'attends encore ma carte, mais c'est logique étant donné que la mienne a été commandée en Chine)

EDIT : Reçue 30 jours après l'avoir commandée,
elle est tout à fait conforme à la description, avec des soudures propres,
emballée dans un sachet antistatique hermétiquement soudé, et le tout dans une enveloppe papier bulle.
Pour moins de 2€ la carte avec les frais de port compris, je suis très satisfait.

=======
Content aussi que le module ait bien supporté dans ses entrées/sorties les surtensions de +- 8.5V
La diode en série entre la broche RA0 du PIC24FJ64GB002 et le connecteur RX du module a bien fait son travail.

Dernière modification par MicP (Le 30/03/2021, à 16:21)

Hors ligne