Norme RS232 et Prog JDM
Répondre à la discussion
Affichage des résultats 1 à 14 sur 14

Norme RS232 et Prog JDM



  1. #1
    Mkala

    Bonjour a tous !

    Tout d'abord, je recherche la documentation officielle pour la norme RS232 de nos cheres interfaces serie de PC.
    Si je dis officielle, c'est que personne n'est d'accord sur les niveaux : certains disent +-3V à +-12V, d'autres +-5V a +-12V d'autres memes jusqu'a +-24V.
    De plus il doit y avoir plusieurs versions de RS232, je m'interesse qu'a celle des PC. Mais bon, depuis le premier ordi la norme doit avoir un peu change ? Vous avez des infos ???



    En ce qui concerne la deuxieme question, c'est un peut liee.
    Les progs de type JDM convertissent dans un premier temps les signaux RS232 en TTL grace a des diodes zeners. Jusque la, rien de derangeant.
    Ce qui l'est plus, c'est pour ce qui est des datas : on envoie du +5V pour un 0 (okay, si la norme RS232 est +-3V c'est bon, si c'est +-5V c'est limite) mais pour l'autre on envoie 0V ! Ce qui est un etat indefini pour du RS232 non ? ou alors j'ai loupe une case ?


    Ce que je voudrais faire, c'est un prog. de pics le plus universel possible, en gardant la simplicite et le faible cout du JDM mais en etant sur de la compatibilite avec le plus grand nombre de PC possible (la compatibilite avec les pics etant deja grandement amelioree avec un convertisseur DC/DC qui genere le fameux Vpp de 13V tant sujet a probleme sur les JDM "standard").

    Bref, si qqn a de la doc sur le RS232 ou sur le fait que le 0V -normalement etat indefini - envoye par le JDM fonctionne tres bien; merci de m'eclairer

    -----

  2. #2
    Jack
    Modérateur
    salut,

    je n'ai pas de références précises pour la RS232C, mais d'après un bouquin (Transmissions et réseaux ) la RS232C définie par l'EIA est équivalente à la norme ISO 2110 pour la partie mécanique (le connecteur), CCITT V28 pour la partie électrique et V24 pour l'aspect fonctionnel.

    Pour le problème qui te concerne, la norme V28 dit que la tension doit être comprise entre +3V et +25V pour un 0 logique et -3V à -25V pour un 1.

    Maintenant, chacun peut bricoler la liaison pour des raisons de simplification de l'interface, mais pour ce qui est de la compatibilité, si on ne respecte pas la norme, celà entraîne des tas d'incertitudes comme le prouvent tes questions.

    Pour savoir pourquoi 0V est interprété comme un 1, il faudrait voir la partie électronique du JDM que je ne connais pas.

    A+

  3. #3
    Bigonoff

    Salut
    -------

    Tu veux être compatible?
    Alors, évite le JDM, on n'a que des ennuis avec ce programmateur.
    Déjà, il tire sa tension de programmation (13V) du port série. Alors, si ton PC est dans la norme, mais ne sort pas 13V, tu est déjà mal embarqué.
    Pour info, pas mal de portables sortent -5V/+5V, donc ça ne marchera tout simplement pas.

    Pour d'autres, les tensions sont limites par rapport à celles nécessaires pour certains modèles de PICs, et donc tu te retrouve avec un programmateur qui fonctionne avec un 16F84, mais pas avec un 16F84A (cas classique).

    J'ai reçu des centaines de mails d'utilisateurs qui rencontraient des problèmes avec le JDM.


    A+
    Bigonoff
    Vive l'Internet libre

  4. #4
    Mkala

    Salut Jack !

    Tout d'abord merci pour ces infos. Comme tu as l'air de connaitre ces interfaces, ca fait environ depuis quelle generation de PC que la norme en est a RS232c ? 386 , 486, avant encore ou c'est plus rescent ?

    Oui c'est vrai on peut bricoler et etre limite.. mais un jour avec un cable un peu trop long ou ou un PC un peu moins tolerent et on se retrouve avec une impossibilite de programmer... ce que je veux eviter.

    Pour ce qui est de ce 0V interprete comme un 1, en fait ca ne vient pas du JDM : c'est lui qui envoie ce 0V (ou le +5V) au PC par le bias d'un buffer 74125 alimente en 5V.
    Voici le shema si tu veux :

    http://echapatte.free.fr/Electroniqu...DM_Prog_V1.zip




    Salut Bigonoff !

    Je sais que tu as beacoup d'experiences avec les PICs et tout ce qui tourne autours, on avait d'ailleurs parler des debuts de ce prog JDM dans ce topic :

    http://forums.futura-sciences.com/viewtopic.php?t=1036

    Tu m'avais dit que le probleme de ce type de programmeur venait du faite que VPP etait pris sur la RS232, et que sur les pics necessitant vraiment 13V ca ne fonctionnait pas. Pour resoundre le probleme, une alimentation est utilisee et le +13V du VPP est genere a partir de la, donc pas de cosomation sur l'interface serie ce qui evite tout ces probs. Le pic dispose donc d'une tension ideale pour la programation et des flancs le plus raid possible permettant de descendre le I/O delay au minimum (sur mes pc en tous cas).

    Le prog JDM me semble un bien car il est simple, trop simple dans ca version de base. Mais en creant VPP independament de l'interface RS232 et en respectant les normes de cette derniere (ce que j'essaie de faire ici) je pense qu'on peut en faire un bon programmer le plus universel possible, meme s'il devient evidement un peu plus complexe.

    Si tu as une idee pour ce 0V interprete comme un "1" par IC-Prog, ca m'interesse


    En tous les cas mercis pour vos reponses

  5. A voir en vidéo sur Futura
  6. #5
    Jack
    Modérateur
    je viens de regarder ton schéma, mkala.

    Les 74HC125 n'inversent évidemment pas le signal issu du PC.

    A mon avis, c'est tout simplement le soft d'autoprogrammation du PIC qui fait l'inversion des signaux entrant et sortant. Cela évite du coup un max232, ce qui n'est pas si bête.

    Ce qui me tracasse tout de même, c'est comment le PC va interpréter le signal provenant de la broche 8 de la DB9 lorsque la tension est nulle.

    A+

  7. #6
    Bigonoff

    Salut
    -------

    Effectivement, en relisant, je me rappelle.
    Ton programmateur n'est donc plus un JDM, puisqu'il est modifié pour corriger ses défauts

    Pour le sens des niveaux (inversion ou pas), le paramétrage s'effectue dans IC-Prog, c'est lui qui gère les éventuelles inversions.

    Concernant le 0V, c'est une liberté prise par le concepteur du programmateur, qui sait, comme la plupart des bricoleurs sur PC, qu'au niveau de l'interface RS232 de l'immense majorité des PC, la tension de 0V n'est pas du tout indéterminée. C'est du aux CI utilisés pour réaliser l'interfaçage.

    Ce n'est pas parcequ'un PC traite le 0V avec un niveau précis qu'il ne répond pas à la norme. La norme prévoit : indéterminé entre -3V et +3V, autrement dit, on fait ce qu'on veut entre -3V et +3V sans être en contradiction avec la norme.

    Etant donné les CI utilisés, il se fait qu'en pratique, le 0V n'est pas du tout indéterminé sur les PC.

    Autrement dit, pour respecter la norme :

    - Le PC doit envoyer des signaux supérieurs à 3V ou inférieurs à -3V
    - Il doit traiter de façon correcte les niveaux reçus dans cette gamme de tension
    - Il fait "ce qu'il veut" pour toute tension reçue entre -3V et +3V, ce qui est effectivement le cas.

    Seul problème qui risque de se poser, c'est qu'un niveau de 0V reçu risque de ne pas être interprêté correctement sur un PC qui a un comportement différent dans cette plage de tension, mais c'est relativement rare.

    L'auteur de la réalisation a donc pris une petite liberté concernant la norme.

    Du reste, il est bien connu que le JDM (dans sa version de base) pose pas mal de problèmes sur certains PC. Il est fort possible que ceci en soit une raison supplémentaire.

    A+
    Bigonoff
    Vive l'Internet libre

  8. #7
    Mkala

    Jack => Oui ce sont just des buffers, pas d'inversion. Mais ce n'est pas un probleme, il n'y a pas d'inversion et pas besoins de la gerer (meme que IC-Prog est parametrable a ce sujet).


    Le probleme vient des niveaux. En effet, l'idee est louable d'essayer d'eviter le Max232, mais il faut voir si ca ne diminue pas trop la compatibilite avec certains PC, ce qui est plus primordial a mon gout (oui c'est sympa d'economiser qqes €, mais c'est moins sympa si le prog maille sur la moitie des PC).


    Et bien ce signal a la pin 8 de la DB9 est bien ce qui me tracasse ! (je dois pas ecrire tres clairement, c'est un peu ce que je demande depuis le debut ) Quand je suis a 5V, oki c'est un 0 logique, mais lorsque je suis a 0V ???



    Bigonoff =>

    Oui en fait tu as raison, ce n'est plus vraiment un JDM, il en reprends juste les signaux de programation (et le nom dans IC-prog)

    Oui pour les inversion c'est ok.

    Sinon pour ce 0V c'est fort interessant ce que tu me dis. Ce serait donc le PC qui interprete un 0V comme un 1 logique (normalement obtenu grace a une tension inferieure a -3V) ? Ce ne serait donc pas IC-Prog qui dit interprete un signal soit disant "indetermine" (dans la norme RS-232) comme un 1 logique ?


    Poursuivons. Pour rendre ce "JDM+" le plus compatible possible, je met un Max 232 qui renvoie env +/-10V. IC Prog interprete ce -10V comme il interpretait 0V aupparavent ?
    De plus je dipose de 2 buffers d'entres, qui me convertissent mes +/- 10V en TTL 0-5V (sur le PIC pour Clock & Data). Il me manque un buffer, mais une adaptation avec une zener peut me combler ce manque, et avec ca je drive le transistor qui commande Vpp. Plus de 74HC125, un Max232 a la place et ca devrait etre une merveille ?

  9. #8
    invitec902b497

    salut à tous,

    pour la question de quand date la RS232 sur les PC : il y avait des cartes RS232 sur les premier IBM PC (proc 8086) mais c'était en option (comme tout à cette époque là ). Le prog JDM, ça marche pas mal, à condition de faire un test sur platine avant de monter un C.I. : ca permet de tester si la sortie du PC assure l'alim ou non. Mais si tu as besoin de déplacer ton montage, il risque de ne pas fonctionner sur certains PC et il a très peu de chance de fonctionner sur un portable (on a le même problème avec des programmateurs industriels mais pour d'autres type de proc).

    Bon courage

  10. #9
    Pierrre

    Bonjour
    Je dois vraiment avoir du bol car mon JDM fonctionne sur 3 PC differents et sur un portable compac P120...
    la seule modif: une resistance de 100 ohms entre la pin 5 (Vss du pic ) et la "masse " du prog (evite pb de latch up du pic)

    A+

  11. #10
    Mkala

    Ben tant mieux si ca marche

    Mais c'est un peu une sorte de soucis ce prog si on tire l'alim sur la RS232...
    Ca depend des interfaces evidement, mais aussi des Pics que tu programmes : Bigonoff l'a explique plus haut, certains sont plus sensibles que d'autres.

  12. #11
    Bigonoff

    Salut
    -------

    Sinon pour ce 0V c'est fort interessant ce que tu me dis. Ce serait donc le PC qui interprete un 0V comme un 1 logique (normalement obtenu grace a une tension inferieure a -3V) ? Ce ne serait donc pas IC-Prog qui dit interprete un signal soit disant "indetermine" (dans la norme RS-232) comme un 1 logique ?
    Oui, tout à fait. IC-prog, il ne sait rien faire d'autre que d'interpréter le niveau que lui envoie le PC : il considère un "0" comme un "0" ou comme un "1" selon qu'on lui a indiqué qu'il doit inverser ou pas, c'est tout.

    En fait, si tu analyse avec un petit programme ce que tu lis sur une ligne du port RS232 et que tu places une alim sur la dite ligne, tu vas constater qu'en démarrant de -3V tu auras un niveau "1" et qu'en arrivant à +3V tu auras un niveau "0". Il est évident qu'entre les deux, tu vas avoir un "point" de commutation, point qui peut être "flou" selon la norme. Par exemple : -1V donne '1', -0,5V donne '0', 0V donne '1' etc.
    Il se fait qu'avec l'électronique de la majorité des PC, le basculement s'effectue avec une tension supérieure à 0V. Autrement dit, sous 0V, tu liras un niveau "1", et au dessus de, disons 1V ou 2, tu liras un niveau "0". C'est uniquement une question d'électronique du circuit d'entrée, c'est plus facile à concevoir comme ça, et c'est pour ça que ça fonctionne.

    IC-Prog ne peut pas mesurer la tension d'entrée sur la ligne, et donc ce n'est pas lui qui décide quellles tensions vont être reconnues comme "0" et quelles tensions pour "1".

    Poursuivons. Pour rendre ce "JDM+" le plus compatible possible, je met un Max 232 qui renvoie env +/-10V. IC Prog interprete ce -10V comme il interpretait 0V aupparavent ?
    Oui, tout à fait. C'est la bonne façon théorique de procéder. Comme ça, plus de zones d'incertitudes, et ça va parfaitement fonctionner, puisque tu restes strictement d'application dans la norme.
    De plus je dipose de 2 buffers d'entres, qui me convertissent mes +/- 10V en TTL 0-5V (sur le PIC pour Clock & Data). Il me manque un buffer, mais une adaptation avec une zener peut me combler ce manque
    Oui. En entrée, c'est simple de convertir du +- 10V en 0-5V, avec une résistance et une zener. Faire le contraire, c'est le rôle du max. A part que le signal va être inversé (-10V va donner 0V, donc "0", +10V va donner 5V, donc "1".) Evidemment, on peut inverser avec un transistor, mais IC-prog est justement paramétrable à ce sujet (inversion des signaux possibles séparément).

    mais une adaptation avec une zener peut me combler ce manque, et avec ca je drive le transistor qui commande Vpp. Plus de 74HC125, un Max232 a la place et ca devrait etre une merveille ?
    Tout à fait. Et quand tu auras fait ça, tu auras transformé ton JDM de base en un programmateur correct, certes plus compliqué, mais qui fonctionnera sur tous les PC et sur tous les PICs.
    Alors, tu auras compris pourquoi certains programmateurs sont plus compliqués que d'autres

    A+
    Bigonoff
    Vive l'Internet libre

  13. #12
    Mkala

    Salut Bigonoff !

    Ha oki pour l'interface RS232 ! Oui je comprends, comme entre -3 et +3V c'est pas defini, le composant est libre de faire ce qu'il veut donc d'accepter un 0V comme un "1" logique.

    Yes, pour ce point de commutation, j'ai essaye sur mes PC et il se trouve dans les 1.6-7V (teste avec IC-Prog voir si la case "Data" se cochait).

    Tu aurais un petit soft tout simple qui affiche l'etat des lignes sur une RS232 ? J'ai cherche sur le net et suis tombe sur un qui marchait pas (prob avec 2000 ? ) et plusieurs qu'il fallait compiler...



    Oui une fois un VPP genere par une alim externe et une interface qui respecte les normes, ca nous fait un programateur correct !
    Oui je comprends pourquoi certains sont plus compliques que d'autres
    Mais il y a des montages qui deviennent trop compliques... en eletronique, plus c'est simple mieux ca marche (comme a bcp d'autres places d'ailleurs). Mais il faut bien sur respecter les normes ! Et pour le JDM ce n'est pas du tout le cas... (ma fois il a le merite d'etre tres simple).


    Encore merci Et si tu as un petit soft qui traine ca serait sympa !

    A+

  14. #13
    Bigonoff

    Salut
    ------

    Ha oki pour l'interface RS232 ! Oui je comprends, comme entre -3 et +3V c'est pas defini, le composant est libre de faire ce qu'il veut donc d'accepter un 0V comme un "1" logique
    Oui, tout à fait, tu as tout compris.

    Tu aurais un petit soft tout simple qui affiche l'etat des lignes sur une RS232 ?
    ARf, ça, je n'ai pas, sinon je te l'aurais passé avec plaisir.
    Il faudrait faire un bout de code avec visual basic.

    A+
    Bigonoff
    Vive l'Internet libre

  15. #14
    Mkala

    Oki !

    Dommage pour le soft parce que ca peut etre fort pratique...

    Faudra que je demande a qqn de m'en faire vite un une fois !

    Alors a+ et merci pour ton aide

Discussions similaires

  1. Norme d'algèbre, norme subordonnée
    Par invitea87a1dd7 dans le forum Mathématiques du supérieur
    Réponses: 4
    Dernier message: 27/10/2006, 15h33
  2. problème avec prog JDM
    Par inviteaf756aac dans le forum Électronique
    Réponses: 1
    Dernier message: 11/08/2006, 07h39
  3. reglage du prob du prog JDM
    Par invitee335123b dans le forum Électronique
    Réponses: 10
    Dernier message: 17/05/2006, 21h30
  4. problème avec prog. jdm
    Par invite25a714b9 dans le forum Électronique
    Réponses: 2
    Dernier message: 08/06/2005, 14h42
  5. problème avec prog. jdm
    Par invite25a714b9 dans le forum Matériel - Hardware
    Réponses: 0
    Dernier message: 06/06/2005, 20h37
Découvrez nos comparatifs produits sur l'informatique et les technologies.