Liaison série avec PIC16F873
Répondre à la discussion
Affichage des résultats 1 à 15 sur 15

Liaison série avec PIC16F873



  1. #1
    invite5aee2b41

    Talking Liaison série avec PIC16F873


    ------

    Salut à tous,

    J'essaie de mettre au point une liaison série avec PIC16F873. Celui-ci doit envoyer des ordres de lecture de fichier à un lecteur MP3. La configuration est la suivante :

    -9600 bauds
    -format 8 bits
    -pas de parité

    Après avoir configuré les registres adéquats (TXSTA, RCSTA, SPBRG etc...) je constate que le MP3 reste muet.
    Les caractères à envoyer sont les suivants :
    0x02 0xXX 0x0D. Le caractère 0xXX contient le numéro de la piste à diffuser (ex 0x01 pour le fichier 01.mp3). La documentation du lecteur MP3 impose de laisser au moins 500us entre chaque caractère.

    L'envoi de ces caractères est codé dans une routine d'interruption et je suis absolument sûr que cette routine est effectuée correctement (debuggage par print sur LCD).

    Justement, je pense que c'est ce fameux afficheur LCD qui me pose des problèmes. Comme vous le savez tous (hehe), les broches de liaison série se trouvent sur le port C (RC6 et RC7) et l'écran est lui aussi cablé sur le port C (RC0-RC4, envoi des caractères en 2x4bits). La configuration du port C se fait automatiquement dans la section #define et je me demande si ce ne serait pas cette configuration qui bloque ma liaison série.

    Malheureusement je ne possède pas d'analyseur logique pour visualiser directement se qui se passe dans mon câble.

    En résumé, pensez vous que brancher la liaison série et l'afficheur LCD peut poser des problèmes?

    Merci beaucoup pour votre aide.

    -----

  2. #2
    invite0ed50554

    Re : Liaison série avec PIC16F873

    mettre un MAX232 sur les codes a visualiser
    Télécharger la version d'essai de ZOC et après l'avoir configuré (Bauds, Bits etc) choisir l'option "display in Hex Mode" pour visualiser les codes transmis

  3. #3
    invite5aee2b41

    Re : Liaison série avec PIC16F873

    Ouais je vois.
    C'est un solution mais je crains que ceci ne m'apporte des problèmes mis en cascades. Si je fais une erreur dans le montage du max ou dans la configuration de ZOC je risque de ne pas avoir quelque chose de fiable. En tout cas je vais essayer. Sinon, je vais peut m'orienter vers un 16F877 pour que chaque périphérique ait son propre port rien qu'à lui !

    En tout cas merci FSE !

  4. #4
    invite0ed50554

    Re : Liaison série avec PIC16F873

    Si vous craignez les erreurs de montages 2 "simplifications"
    1 / mettre un MAX233 à la place du 232 : il y a des capas en moins
    2 / Utiliser un convertisseur USB/RS232 :c'est tout fait, rien à monter, mais c'est au moins 10 fois + cher. Il y a 3 fils à brancher côté PIC :GND ,Rx, Tx
    Salutations

  5. A voir en vidéo sur Futura
  6. #5
    invite5aee2b41

    Re : Liaison série avec PIC16F873

    Bon voila je viens de monter le MAX232, j'ai tout testé et ca ne donne toujours rien. J'arrive à lire les octets sur l'écran du PC donc le PIC envoie bien les données. Cependant, le lecteur ne veut touours rien savoir. Je commence à ne plus avoir de solutions.

    J'ai noté cependant que au bout d'un certain moment, le pic s'emballe. Le clignotement d'une led sur 1 secondes ne devient très imprécis, l'écran lcd commence à afficher des moitiées de mots. J'ai l'impression que le Pic perd sa référence de temps, cela peut-il provenir de l'électricité statique? J'utilise un quartz à 4Mhz, j'ai pris la précaution de le cabler aussi près que possible. En effet, si les octets ne sont plus envoyés à une vitesse stable, il est probable que le lecteur ne puisse pas les décoder. Y'a t'il moyen dans ZOC de savoir à quelle vitesse sont recues les données?

  7. #6
    invite0ed50554

    Re : Liaison série avec PIC16F873

    Un moyen pas très sérieux est d'essayer les différentes vitesses de ZOC
    + sérieux
    Si vous disposez d'un oscilloscope. faire émettre par le PIC en boucle ( le + vite possible pour le confort visuel) les codes désirés et vérifier leur conformité. Dans ce cas ne pas mettre le ZOC dans l'affaire, ZOC risque de ne pas tolérer ce flot de données

  8. #7
    invite5aee2b41

    Re : Liaison série avec PIC16F873

    Je viens de tester différentes vitesses dans zoc. Il n'y a que le 9600 qui passe correctement. Conclusion : Le PIC envoie les octets à la bonne vitesse. Le MP3 reste muet.



    Je n'ai plus tellement d'angle d'attaque pour résoudre ce problème. Ca serait dommage que ce projet se solde par un échec, j'y ai mis beaucoup de temps et d'argent, ce n'est pas pour que je rate à la dernière étape. Si ce problème est résolu, le projet est fini!!

    Pour information j'utilise le lecteur MINI MP3 de chez LOETRONIC, une des seules sociétés en Europe à proposer ce type de lecteur.

  9. #8
    monnoliv

    Re : Liaison série avec PIC16F873

    Si tu as une prise RS232 sur ton PC, construis-toi un câble série (masse, tx, rx), raccorde-le sur ton lecteur MP3, ouvre l'hyperterminal de windows (pour linux, il doit y avoir un truc du genre) et teste en envoyant des caractères. Le 0x0D correspond au retour chariot. Je ne sais pas comment tu pourras envoyer le 0x02, faut chercher.
    Le but de la manip est de voir si ton lecteur fonctionne bien et qu'il accepte les commandes conformément à la documentation.
    Peut-être que ton montage n'a rien !!!
    A+
    Ne soldez pas grand mère, elle brosse encore.

  10. #9
    invite5aee2b41

    Re : Liaison série avec PIC16F873

    C'était justement ce à quoi j'étais en train de penser. Mais au lieu d'utiliser hyperterminal j'avais l'intention d'utiliser LabWindows CVI de NSI, de faire un petit programme en C avec des fonction RS-232 spécifiques.

    Si ca ne marche pas, il faudra s'intrroger sur la bonne fonctionnalité du lecteur et de son interface série. Si ca marche, c'est que... je sais pas trop... Peut être qu'il me manque un circuit d'interface ou de mise en forme des signaux.

    Justement, dans la doc du lecteur, ils précisent (avec insistance) que les signaux doivent être TTL. Rassurez moi, le port série du pic délivre bien des signaux TTL?

    De plus, il est précisé dans la doc, que le lecteur réponds par 0xFF 0x0D quand quelque chose ne va pas, qu'il ne comprend pas la commande ou que trop de caractères sont envoyés. En effet, il faut respecter un délai de 500us entre chaque caractère. Il va falloir que j'exploite ceci plus en profondeur. Allez, on ne perd pas espoir, il faut que ca marche !

  11. #10
    monnoliv

    Re : Liaison série avec PIC16F873

    Les ports du PIC doivent être compatibles TTL (à confirmer par quelqu'un d'autre).
    Je pense que l'important dans cette compatibilité, c'est le fait que les signaux varient entre 0 (0 logique) et +5V (1 logique). Donc, surtout ne pas utiliser un MAX232.
    A+
    Ne soldez pas grand mère, elle brosse encore.

  12. #11
    invite5aee2b41

    Re : Liaison série avec PIC16F873

    Désolé Monnoliv je ne te suis plus. Pourquoi l'utilisation du MAX232 serait à proscrire?
    D'après la doc l'entrée est compatible CMOS/TTL...

  13. #12
    monnoliv

    Re : Liaison série avec PIC16F873

    Parce que si tu utilises un PIC (signaux 0-5V), comme le lecteur MP3 est compatible signaux TTL (0-5V), il ne faut surtout pas utiliser un MAX232 quand on connecte les deux ensemble.
    Par contre, j'aimerais voir si le lecteur fonctionne avec une "vraie" connexion RS232.
    A+
    Ne soldez pas grand mère, elle brosse encore.

  14. #13
    invite5aee2b41

    Re : Liaison série avec PIC16F873

    OK je vois ce que tu veux dire. IL ne faut pas mettre deux périphériques série sur le même port du PIC. Celui ci ne peut pas délivrer assez de courant pour driver deux lignes TTL. J'ai déjà eu ce problème qui m'a foutu en l'air trois mois de travail...hehe.

    Ok monnoliv, je vais tester le lecteur avec la vraie liaison série.

  15. #14
    invite5aee2b41

    Re : Liaison série avec PIC16F873

    salut à tous !

    Je reviens avec ce sujet car j'ai du nouveau.

    J'ai fait ce que tu m'as demandé monnoliv, mais le lecteur restait toujours muet. Alors j'ai reporté ce problème chez le fabricant. Celui ci m'a conseillé de verifier mes lignes à l'oscillo. Mais les lignes étaient normales et le cablage était bon.

    Mon projet est resté dans l'impasse pendant plusieurs semaines.

    Cependant, le fabricant m'a envoyé un e-mail aujourd'hui me disant qu'ils avaient effectivement du corriger un bug dans le firmware du contrôleur, notamment en ce qui concerne la vitesse de la liaison série.

    Suite à mon mail, ils ont pu découvrir qu'ils avaient commis un erreur dans leur programmation.

    Maintenant le lecteur fonctionne normalement.

  16. #15
    monnoliv

    Re : Liaison série avec PIC16F873

    Bien voilà, comme quoi l'électronique ce n'est pas de la sorcellerie
    Bravo, A+
    Ne soldez pas grand mère, elle brosse encore.

Discussions similaires

  1. liaison serie avec labview
    Par invite17adfee6 dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 15/08/2007, 21h43
  2. Liaison Serie
    Par invite0ff982b6 dans le forum Électronique
    Réponses: 0
    Dernier message: 03/06/2007, 10h53
  3. Liaison série pic18 <> PC
    Par invitedeabeaf0 dans le forum Électronique
    Réponses: 2
    Dernier message: 07/03/2007, 00h13
  4. PYTHON: liaison série
    Par invite52346c65 dans le forum Logiciel - Software - Open Source
    Réponses: 13
    Dernier message: 05/12/2006, 13h44
  5. Multiplexeur de liaison serie ...
    Par Seb.26 dans le forum Électronique
    Réponses: 59
    Dernier message: 24/09/2006, 01h48
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...