Prise de tête sur RS485 [Forums - HC12 et S12]
Prise de tête sur RS485 [Forums - HC12 et S12]
Pseudo Pass se souvenir de moi     Créer un compte
ARTICLES et TELECHARGEMENTS ~ FORUMS ~ LIENS  
 
             
 
Recherche
 
   
 

Parcourir ce sujet :   1 Utilisateur(s) anonymes



(1) 2 »


Prise de tête sur RS485
Accro
Inscrit:
29/08/2006 10:42
De cambrai
Messages: 658
Hors Ligne
Bonjour à tous,je suis de retour....avec une grosse prise de tête.

Je travail actuellement sur un ensemble de cartes dialoguant par un bus RS485, pour les tests, j'ai deux cartes strictement identiques reliées.
Coté code, une base elle aussi identique (utilisant les mêmes fichiers sources pour les 2 projets) à une seule différence, l'une est en esclave et l'autre en maitre.
Les choses se passent ainsi, le maitre envoie un message à l'esclave, si celui-ci est bien reçu il lui répond par un accusé de réception.

Pour les besoins du test, l'envoie est placé dans une boucle infinie qui compte le nombre d'envois réussis et le nombre d'échecs (le maitre envoie plusieurs fois son message jusqu’à réception de l'accusé avec une tempo entre 2).

Lorsque je met le code "maitre" sur la carte "A", et le code "esclave" sur la carte "B", tout va pour le mieux dans le meilleur des monde (jusqu'à 300000 trames + les AR réussies en 60 secondes à presque 1MBaud et presque 900000 trames à 3.5MBaud!!!). Hier soir j'en étais là, le plus heureux au monde largement au dessus de ce que j'attendais.

Ce matin je reprend les codes, je relance et paf ça marche pas, ou du moins super lentement, maxi 38KBaud et tout juste 12000 trames en 60 secondes.
Et là gros brassage, panique à bord (aurai-je trop bu hier, ou alors était-ce un rêve?). Bref les heures passent, et je réalise que j'ai inversé les codes entre les 2 cartes...je remet dans la même conf et ça fonctionne de nouveau comme la veille!!! Pour m'assurer je refais plusieurs inversions de code, du câble, des programmateurs...rien n'y fait, dans un sens ça gaz, dans l'autre ça merdoie bien.

Pourtant dans un sens comme dans l'autre, les deux cartes doivent recevoir et émettre, j'ai vérifié les soudures, le câblage, aucun court-circuit constaté....

Si vous avez une idée je suis preneur, parce-que là j'en ai plus...
A bientôt et bonne fin d'année à tous.
Maverick

Posté le : 29/12/2011 14:37
Transférer la contribution vers d'autres applications Transférer


Re: Prise de tête sur RS485
Pilier de la communauté
Inscrit:
23/10/2005 11:40
De Aix les Bains (73)
Messages: 1918
Hors Ligne
Salut

Quelle forme ont tes trames aller et d'accusé de réception ? ce sont des trames genre modbus avec identifiant, type de trame, contenu et checksum où des trames toutes cons avec 2-3 datas toujours pareils ?

Comment sont alimentées tes 2 cartes ? Même alim ? y a t-il un 0v clairement identique sur les deux cartes ?

L'horloge sur les deux cartes est elle bien la même ? quartz ou horloge interne pas trimée du tout du tout ?

Posté le : 29/12/2011 14:51
Mieux vaut marcher dans la bonne direction que courir dans la mauvaise
Transférer la contribution vers d'autres applications Transférer


Re: Prise de tête sur RS485
Accro
Inscrit:
29/08/2006 10:42
De cambrai
Messages: 658
Hors Ligne
Edit: les 2 cartes sont à base de XDP512 et les drivers RS485 sont de chez Maxim : MAX485E avec une résistance de 120ohm à chaque extrémité du bus.

Le cablage comprend : 5V, ligne A, ligne B, 0V
Les deux cartes sont programmée et alimenté par USBDM.
Toutes deux utilisent un quartz, l'init est la même (même fichier source)

Les trames sont composée ainsi:

Octet de start: 0xFF
Octet d'identification de l’émetteur
Octet d'identification de la carte devant traiter la trame
Octet d'instruction : soit l'AR soit l'instruction demandant l'AR pour le cas présent
Octet contenant la longueur des données à venir (0 dans le cas présent)
Checksum

Posté le : 29/12/2011 14:52
La perfection est atteinte non pas lorsqu'il n'y a plus rien à ajouter, mais lorsqu'il n'y a plus rien à retirer....
(A de St EXUPERY)
Transférer la contribution vers d'autres applications Transférer


Re: Prise de tête sur RS485
Accro
Inscrit:
29/08/2006 10:42
De cambrai
Messages: 658
Hors Ligne
Bon y'a du mieux, désormais avec le même code (hormis un qui envoie des trames en "continu" et l'autre qui attends) dans un sens, en 60 secondes j'envoie 300000 trames toutes réussies, dans l'autre il n'en envoie que à peine 20000, soit 15 fois moins...y'a de quoi se tirer une balle dans le cpu....

Posté le : 29/12/2011 17:07
La perfection est atteinte non pas lorsqu'il n'y a plus rien à ajouter, mais lorsqu'il n'y a plus rien à retirer....
(A de St EXUPERY)
Transférer la contribution vers d'autres applications Transférer


Re: Prise de tête sur RS485
Pilier de la communauté
Inscrit:
27/09/2005 18:26
Messages: 794
Hors Ligne
Salut Maverick,

Effectivement, sacré épine que tu as là !

A priori si coté code et coté carte tout est symétrique, alors ça devrai gazzer.... Moi je vérifierai la bonne connexion des résistances de terminaison, des deux cotés, et des résistances de polarisation du bus RS485.

Quel longueur de câble entre les deux cartes ? Réduit a quelques 20 ou 30 cm pour commencer.

Et enfin un petit check au niveau logiciel par rapport à l'Ack et à la facon de comptabiliser les trames (je vois des identifiants etc etc dans ce que tu écris)....

A+
Joël

Posté le : 29/12/2011 18:30
En Savoie, on a pas de pétrole, mais on a des Diots !
Transférer la contribution vers d'autres applications Transférer


Re: Prise de tête sur RS485
Pilier de la communauté
Inscrit:
27/09/2005 18:26
Messages: 794
Hors Ligne
Salut Maverick,

Effectivement, sacré épine que tu as là !

A priori si coté code et coté carte tout est symétrique, alors ça devrai gazzer.... Moi je vérifierai la bonne connexion des résistances de terminaison, des deux cotés, et des résistances de polarisation du bus RS485.

Quel longueur de câble entre les deux cartes ? Réduit a quelques 20 ou 30 cm pour commencer.

Et enfin un petit check au niveau logiciel par rapport à l'Ack et à la façon de comptabiliser les trames (je vois des identifiants etc etc dans ce que tu écris)....

A+
Joël

Posté le : 29/12/2011 18:30
En Savoie, on a pas de pétrole, mais on a des Diots !
Transférer la contribution vers d'autres applications Transférer


Re: Prise de tête sur RS485
Pilier de la communauté
Inscrit:
23/10/2005 11:40
De Aix les Bains (73)
Messages: 1918
Hors Ligne
Re

La R de 120ohm me parait peu importante vu la longueur de la ligne de com, à priori courte vu que tout est posé sur un bureau...

Je suis intrigué par "Le cablage comprend : 5V, ligne A, ligne B, 0V" associé à "Les deux cartes sont programmée et alimenté par USBDM" il y a deux alims 5v qui se baladent et se marchent l'une sur l'autre.

as tu relevé où bloquent tes trames ? identifiant pas bon? checksum pas bon ? ack qui n'arrive pas ?...

Posté le : 29/12/2011 18:36
Mieux vaut marcher dans la bonne direction que courir dans la mauvaise
Transférer la contribution vers d'autres applications Transférer


Re: Prise de tête sur RS485
Accro
Inscrit:
29/08/2006 10:42
De cambrai
Messages: 658
Hors Ligne
Salut Joël,
Tu peux me dire pourquoi tu as attendu toute l'après-midi avant de me donner la solution!!!!!
Nan je rigole.

Pour répondre à ta proposition et ainsi "archiver" ce dépannage, je tiens à préciser que c'était pour moi la première fois que j'utilisais ce bus de communication.
Donc après avoir vérifié une nième fois les soudures (même avoir changé un driver rs485 qui n'a pas survécu, paix à son âme). Les deux cartes sont reliées par des fils torsadés, mais non blindés de environ 20cm (dans l'application finale, la distance ne devrai pas dépasser 50cm).

Les résistances de terminaisons étaient bonnes et bien soudées. Et là, le doute pourquoi parle-t-il de polarisation du bus? J'ai pas vu ça dans la doc (http://datasheets.maxim-ic.com/en/ds/MAX1487-MAX491.pdf).

Donc recherche complémentaire sur le net et paf: http://www.socomec.com/webdav/site/So ... P_hors_cata/fip_11011.pdf
Direction l'atelier, le bon casier, 2 résistances de 470ohms sous la main, nickel ça fera l'affaire, retour à l'ordi, je monte à l'arrache les 2 résistances dans le connecteur côté maitre, je relance le code dans le sens ou tout fonctionnait avant ==> RAS, pareil, ça gaz. L'interverti les codes et là, c'est le choc, ça fonctionne pareil!!!

Alors un grand merci à Joël pour ce dépannage si efficace...je vais pouvoir me remettre au développement du reste de l'application.

A+
Maverick

Posté le : 29/12/2011 18:58
La perfection est atteinte non pas lorsqu'il n'y a plus rien à ajouter, mais lorsqu'il n'y a plus rien à retirer....
(A de St EXUPERY)
Transférer la contribution vers d'autres applications Transférer


Re: Prise de tête sur RS485
Accro
Inscrit:
29/08/2006 10:42
De cambrai
Messages: 658
Hors Ligne
Pour répondre à Charly qui a écrit en même temps que moi, je n'alimente le circuit que par un seul USBDM, mais c'était pour dire que les masses étaient bien reliées (même si ça fait une boucle, je sais...).

Et sinon, c'était l'Ack qui n'arrivait pas, sauf en réduisant le baudrate.

Posté le : 29/12/2011 19:00
La perfection est atteinte non pas lorsqu'il n'y a plus rien à ajouter, mais lorsqu'il n'y a plus rien à retirer....
(A de St EXUPERY)
Transférer la contribution vers d'autres applications Transférer


Re: Prise de tête sur RS485
Pilier de la communauté
Inscrit:
23/10/2005 11:40
De Aix les Bains (73)
Messages: 1918
Hors Ligne
intéressant ce poste

j'ai passé des heures et des heures sur la RS 485 il y a quelques temps et JAMAIS je n'avais entendu parler de cette polarisation.
J'utilise par ailleurs au boulot un nombre non négligeable d'appareils avec des com RS485 et jamais je n'ai vu une doc qui parle de ca également.

Que le 0v soit bien le même ok, c'est un problème bien répandu, notamment chez ceux qui pensent pouvoir faire de la com "2 fil" sans précautions, il y a des articles et sujet dans les forums plein l'internet...mais la "polarisation"... jamais vu.

voir que ca merdoit avec 2 MAX485 (un composant loin d’être bas de gamme) placés a qq cm sur la même alim ca m'étonne tout autant.

Posté le : 29/12/2011 19:57
Mieux vaut marcher dans la bonne direction que courir dans la mauvaise
Transférer la contribution vers d'autres applications Transférer



 Haut   Précédent   Suivant
(1) 2 »



Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Powered by XOOPS© The XOOPS Project
Contacter les administrateurs

Prise de tête sur RS485 [Forums - HC12 et S12]