Pages: [1]   Go Down
Author Topic: Série démodulateur 1200baud 7 bits => Arduino  (Read 1514 times)
0 Members and 1 Guest are viewing this topic.
Blainville (Montreal area)
Offline Offline
Newbie
*
Karma: 0
Posts: 21
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour à tous,
J'ai réalisé un démodulateur pour récupérer les infos de téléinformations d'un compteur edf (je me suis basé sur un projet existant). Ce montage marche parfaitement, je récupère bien les trames et les infos qui m'intéressent (quand connecté à un pc).
L'objectif final est de le connecter à mon arduino (par l'intermédiaire d'un petit module radio qui fonctionne bien lui aussi).
Je rencontre un problème lorsque je connecte la sortie data (TX) du démodulateur (ou du récepteur ça revient au même), les données reçues sont incompréhensibles.
Le démodulateur sort un signal en 1200 avec 7 bits de parité, cela doit-il se spécifier au niveau de l'arduino ?

Voila le genre de sortie que j'obtiens avec l'arduino :
]a(edId>Wc>QS~BIfk9o+kE9tXq_vrDv1/wQA|
Pense pas que ça puisse aider mais pour illustrer smiley-wink

Si quelqu'un à déjà rencontré ce problème, ou peux m'expliquer plus en détails la communication série de l'arduino je suis preneur ! smiley
Merci d'avance
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 45
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Essaie de rajouter la seconde ligne pour forcer le mode 7E1.

Code:
 // initialisation du port 0-1 : 1200,7,E,1 conection téléinfo
        Serial.begin(1200);
        UCSR0C = B00100100;

Trouvé sur le post suivant : http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1267289555
« Last Edit: July 14, 2010, 01:06:43 pm by mahth » Logged

Blainville (Montreal area)
Offline Offline
Newbie
*
Karma: 0
Posts: 21
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Merci,
j'avais testé quelques lignes équivalentes, sans résultat pour celle la non plus.
J'ai regardé et testé le code fournit sur le post que tu m'as envoyé, sans plus de résultats, je ne sais plus quoi faire.
« Last Edit: July 14, 2010, 01:41:02 pm by polo_m » Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 45
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Mais ton module edf sort des signaux rs232 non ?
L'arduino elle attends des signaux TTL.

Tu as testé ton module sur un autre port com ? (pc/usb)
Logged

Blainville (Montreal area)
Offline Offline
Newbie
*
Karma: 0
Posts: 21
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Oui pour le rs232, je l'ai testé avec une prise db9 sur mon pc (avec un com to usb), aucun soucis ça marche.

Après ce sont mes débuts avec l'arduino, je pensais qu'il pouvait recevoir du rs232 sur les broches rx/tx, peux tu m'expliquer vite fait et/ou m'indiquer des ressources pour comprendre ?

Edit:Je ne comprends pas tout, le module connecté au compter me renvoie un signal en 1200 de baudrate etc. En rs232 que je peux récupérer sur mon pc dans un terminal, pourquoi l'arduino n'est pas capable de recevoir ces trames alors qu'il se connecte également au pc, qu'il est possible d'envoyer des trames etc ?
J'ai besoins de vos lumières ! smiley
« Last Edit: July 14, 2010, 04:09:41 pm by polo_m » Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 45
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Une explication sur le RS232/TTL : http://kubuntu.free.fr/blog/index.php/2010/05/13/272-liaison-serie-rs232-vs-ttl

Quand tu connecte ton arduino sur ton pc, tu as un module qui converti tes signaux rs232 venant du pc, en signaux TTL pour communiquer avec ta carte.

En gros il te faut un convertisseur pour adapter des signaux rs232 en signaux TTL.
Par exemple (le moins cher que j'ai trouvé 13$ fdpin) http://fcelectronics.mybisi.com/product/rs232-ttl-converteradapter-kit-max232-for-avrpicarmgps
« Last Edit: July 14, 2010, 04:52:41 pm by mahth » Logged

Blainville (Montreal area)
Offline Offline
Newbie
*
Karma: 0
Posts: 21
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Merci pour les infos smiley
Je vais étudier ça alors.
Un convertisseur correspond à ce qui est expliqué la ? : http://www.arduino.cc/en/Tutorial/ArduinoSoftwareRS232
« Last Edit: July 14, 2010, 05:06:00 pm by polo_m » Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 45
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

C'est exactement ca.

C'est vrai que le circuit se compose d'un chipset et de 4 condensateurs, donc facilement réalisable.
« Last Edit: July 15, 2010, 01:49:16 am by mahth » Logged

Blainville (Montreal area)
Offline Offline
Newbie
*
Karma: 0
Posts: 21
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ok parfait je vais me faire ça, merci pour ton aide !
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 6
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,

J'ai aussi monté un petit circuit dans le même but. Mais plutot que de transformer les signaux en rs232 et ensuite en ttl avec un CI MAXIM, je transforme directement en TTL. J'utilise un 6N138 et un 74LS132N. Le 74LS132N intègre quatre Trigger de Schmitt. J'en utilise 2 pour redresser le signal.

Je me suis inspiré de ce schéma :
http://www.macoda.com/index.php/Hardware:CompteurEdf

Pour rendre le signal compatible ttl, il suffit d'utiliser une deuxième fois un Trigger de Schmitt pour inverser les niveaux.

http://www.pachube.com/feeds/7286

Cdlt,
Pascal
Logged

Blainville (Montreal area)
Offline Offline
Newbie
*
Karma: 0
Posts: 21
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Intéressant !
Au niveau de la "théorie", le ttl n'est pas sensé fonctionner sous une tension plus faible (en plus d'être inversé) ?
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 6
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Depuis plus de 10 ans les PCs supportent des tensions inférieures à 12 volts pour gérer le rs232. Donc, beaucoup de circuit n'utilisent que 5 volts. Avec comme défaut, de ne pas supporter de longue distance à de très haut débit. Dans mon cas, c'est l'arduino qui alimente le trigger, donc parfaitement compatible avec lui-même. Dans tous les cas, ça marche smiley-wink
Pendant mes premiers essais, j'ai même pu éloigner le circuit d'environ 8 mètres sans problème. Et l'investissement est très faible ...

Pascal
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 45
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Merci pour l'astuce Pascal smiley.
Logged

France
Offline Offline
Faraday Member
**
Karma: 36
Posts: 3430
There is an Arduino for that
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Depuis plus de 10 ans les PCs supportent des tensions inférieures à 12 volts pour gérer le rs232.
En fait ça a toujours été le cas. C'est la norme TIA/EIA-232 qui définit les signaux et dans la norme la tension doit être supérieure à -/+3V pour que le niveau soit pris comme un 1 ou un 0.
On voit donc que l'amplitude minimum c'est 6V. Et que le signal doit être positif ou négatif centré sur 0. Entrer dans un PC avec un niveau TTL (donc une amplitude de l'ordre de 4V au maximum et pas de transition négative) c'est s'exposer à des problèmes de communication.
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 6
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Merci pour ces précisions fdufnews,
Je ne suis pas électronicien, je suis plutôt dans les réseaux ...
Le but final étant de rendre les signaux compatible avec l'arduino, et la je n'ai pas de pb de communication.
Mais ton analyse me fait poser des questions sur l'Arduino Serial,
si je regarde le schéma, je ne pense pas que l'Arduino Serial génère de tension négative avec ses deux transistors et l'alimentation est de 5v.
Juste pour brainstormé smiley  
Logged

Pages: [1]   Go Up
Jump to: