LCD compatible chipset HD44780 - initialisations hasardeuses
Répondre à la discussion
Affichage des résultats 1 à 11 sur 11

LCD compatible chipset HD44780 - initialisations hasardeuses



  1. #1
    invite8dfba1e7

    LCD compatible chipset HD44780 - initialisations hasardeuses


    ------

    Bonjour à tous,

    Je viens à vous suite à un petit souci sur une carte que je viens de réaliser, et qui me pose un problème. Je n'ai pas trouvé de soucis similaires dans les forums, mais j'ai l'impression qu'il s'agit de "presque rien".

    Je m'explique : j'utilise un afficheur compatible chipset HD44780 (alphanumérique, 2*16 caractères), que je pilote avec un PIC 16F88, programmé en langage C, compilé par Hi-tech. La fonction d'initialisation du LCD est la fonction fournie dans les exemples de code avec le compilateur Hi-tech. (utilisation en mode 4 bits)

    La "particularité" de la carte est l'utilisation des broches PGC et PGD pour la programmation du pic, mais également comme bits RS et EN pour le LCD.

    Je précise que je n'ai aucun problème pour la programmation de la carte, malgré le fait que les broches PGC et PGD soient également reliées au LCD. En cas de pb, j'avais prévu d'enlever le LCD lors de la programmation.

    Le problème est tout autre, et je ne l'avais pas vu venir... Lorsque j'alimente la carte avec le pickit, elle fonctionne parfaitement.
    Lorsque elle est alimentée par une alim extérieure, pickit débranché, l'initialisation du LCD est hasardeuse : il faut parfois lancer 3 fois la routine d'initialisation, parfois beaucoup plus. (le pic, lui, fonctionne correctement. seul l'écran ne s'initialise pas)
    Si je l'alimente par une alim extérieure, pickit branché sur la carte, mais pas sur le PC, idem.

    J'ai tout d'abord pensé à des parasites sur les connecteurs PGC/PGD (reliées directement au LCD + à un connecteur pickit), mais rien dans les datasheet de pickit / expériences sur les forums ne semble aller dans cette direction. De plus, le PIC imposant un potentiel sur ces broches, j'imagine mal qu'elles puissent être parasitées.

    J'ai ensuite pensé à un problème d'alimentation ; mais l'ajout d'un 100µF chimique au niveau de l'alim, + 100nF au plus proche de l'écran n'arrange rien.

    Je suis un peu à court d'idées concernant des causes possibles de ce problèmes. Actuellement, la carte fonctionne très bien, une fois que l'écran est initialisé. J'ai ajouté un bp qui permet de lancer la procédure d'initialisation de l'écran, ainsi en appuyant quelques fois dessus, le problème est "résolu", mais ça ne me plait pas ; ce n'est pas une solution. J'ai essayé de faire une boucle à l'initialisation du LCD : lancer 100 ou 200 fois de suite l'initialisation, mais ça n'aide en rien.

    Je suis preneur de toutes les idées / retours d'expérience à ce sujet.
    Par avance, merci.

    -----

  2. #2
    invite03481543

    Re : LCD compatible chipset HD44780 - initialisations hasardeuses

    Bonjour,

    poste un schema complet de ta carte dans un premier temps, et/ou une photo de ta realisation on gagnera du temps.
    @+

  3. #3
    invite03481543

    Re : LCD compatible chipset HD44780 - initialisations hasardeuses

    Je soupconne un mauvais reset de ta carte, trop court, en tout cas plus court que le propre reset de ton afficheur, du coup tu l'initialises mal.
    Ajoute un 1mico Farad a la masse sur la pin reset pour voir, avec une resistance de 10K au +Vcc, avec une diode en parallele sur la 10K (cathode au +Vcc et anode de l'autre cote de la rsistance), cette diode permettra au condensateur d'evacuer sa charge plus rapidement de ON a OFF de ta carte.
    @+

  4. #4
    invite8dfba1e7

    Re : LCD compatible chipset HD44780 - initialisations hasardeuses

    voici un schéma. Ont été ajoutés : 100µF sur l'alim, 100nF au plus près du connecteur de l'écran entre alim et GND

    Nom : ad.jpg
Affichages : 76
Taille : 275,8 Ko

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

    Re : LCD compatible chipset HD44780 - initialisations hasardeuses

    Un schema propre et lisible en tout cas

    Attention toutefois que ton reset (diode+condo) ne soit pas branches lors de la programmation.
    Utilise un jumper qui te permette cette option de destage avec et sans ICSP.

  7. #6
    invite8dfba1e7

    Re : LCD compatible chipset HD44780 - initialisations hasardeuses

    Concernant le reset : j'ai activé le power-up timer du PIC (tempo de 70ms il me semble) et ajouté une tempo de 1seconde en début de programme, avant initialisation du LCD, et ça n'avait pas été concluant.
    Mais effectivement, je peux essayer de modifier la valeur des composants de mon schéma de reset.

  8. #7
    invite8dfba1e7

    Re : LCD compatible chipset HD44780 - initialisations hasardeuses

    Citation Envoyé par HULK28 Voir le message
    Un schema propre et lisible en tout cas

    Attention toutefois que ton reset (diode+condo) ne soit pas branches lors de la programmation.
    Utilise un jumper qui te permette cette option de destage avec et sans ICSP.
    Quelle est la raison de suppression du circuit de reset lors de la prog? Je ne l'ai pas fait, et il me semble que c'est le circuit recommandé par microchip ? cela peut-il être la raison de mon pb d'initialisation?

  9. #8
    invite03481543

    Re : LCD compatible chipset HD44780 - initialisations hasardeuses

    Sans doute, lors de la programmation avec un pickit ou autre genre ICD2 ou 3, la broche reset est egalement la broche Vpp qui peut atteindre environ 13 volts, il ne faut rien d'autre qu'une resistance branchee au +Vcc comme ta 22K, normalement 10K.
    Si tu mets une diode comme representee sur ton schema le Vpp est derive vers le Vcc donc pas correct car insuffisant pour une bonne prog.
    Tu peux mettre une diode entre la sortie de ton module de reset et l'entree reset de ton PIC (cathode vers le PIC) et raccorder la broche reset de ton ICSP directement sur ton PIC, la diode ainsi isolera le circuit de reset pendant la prog et hors prog tout rentrera dans l'ordre.
    +@
    Dernière modification par HULK28 ; 01/05/2012 à 15h19.

  10. #9
    schneiderj

    Re : LCD compatible chipset HD44780 - initialisations hasardeuses

    Citation Envoyé par HULK28 Voir le message
    Un schema propre et lisible en tout cas
    Ouin.... je sens le reproche !

    Et pourquoi ne pas ajouter une petite boucle juste après le code de l'initialisation du LCD (je crois qu'il faut environs 20 ou 30 milli secondes) ?
    C'est ce que j'ai introduit dans mon code. Ta tempo est-elle juste après cet initialisation ?

    Jean-Marie
    Dernière modification par schneiderj ; 01/05/2012 à 17h20.

  11. #10
    invite03481543

    Re : LCD compatible chipset HD44780 - initialisations hasardeuses

    En fait dans le code il faudrait plutot tester BF (Busy Flag) ce bit est le seul moyen fiable de savoir si l'afficheur est diponible ou pas, ainsi le code peut fonctionner quelque soit l'afficheur et le temps qu'il met a etre dispo pour recevoir de nouvelle commande.
    Une tempo c'est bien mais moins pro comme facon de faire

    PS: schneiderj je ne pensais pas a toi pour le schema, rassure toi j'ai vu bien pire que le tien.

  12. #11
    invite8dfba1e7

    Re : LCD compatible chipset HD44780 - initialisations hasardeuses

    Bonjour,

    Tout d'abord, merci pour vos contributions.

    J'ai fait les modifs sur le reset, ça n'a pas résolu le problème, mais si ça évite de faire des bétises lors de la programmation, tant mieux !

    En fait, j'ai trouvé mon erreur... La nuit porte conseil.
    Je pensais utiliser telle qu'elle la fonction d'initialisation fournie par Hi-tech, mais je l'avais modifiée, comme le reste des fonctions de gestion du LCD, pour utiliser 4 bits de data qui ne se suivent pas (ce qui ici, ne sert à rien ; mais j'avais fait ces modifs pour un autre projet...)

    En définissant les bits du port A utilisés par les routines, j'ai inversé poids faibles / poids forts au niveau de la routine d'initialisation (mais pas dans le reste du code).
    Du coup, au lieu d'envoyer "0011" au moment de l'initialisation (4*de suite), j'envoyais "1100".

    Le mystère est maintenant : pourquoi ça fonctionnait avec le pickit, pourquoi ça fonctionnait "parfois" avec une alim externe...

    Bref, problème résolu, c'est le plus important. La prochaine fois, je ferai gaffe en modifiant le nom de mes ports^^

Discussions similaires

  1. Aide Code en C Pic 16F88 - LCD HD44780
    Par invitec1a2f24b dans le forum Électronique
    Réponses: 6
    Dernier message: 26/10/2010, 21h08
  2. Petite question sur LCD 2*16 Chipset HD44780
    Par invitea682ef93 dans le forum Électronique
    Réponses: 6
    Dernier message: 26/06/2010, 13h06
  3. LCD hd44780
    Par invite310d6b50 dans le forum Électronique
    Réponses: 7
    Dernier message: 06/12/2007, 08h06
  4. lcd HD44780 4x20
    Par invitefc1671e3 dans le forum Électronique
    Réponses: 11
    Dernier message: 27/11/2006, 10h50
  5. LCD HD44780 ---> programme C
    Par invitea093086b dans le forum Électronique
    Réponses: 3
    Dernier message: 16/02/2005, 14h24
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...