Go Down

Topic: Reset soft possible sur HD44780 (Read 3620 times) previous topic - next topic

bluemax2001

Bjr,

Est il possible de lancer un reset soft de l'arduino vers le mini LCD HD44780 avec l'IDE1.0 ?

J'ai un petit bug dans mon affichage et il me faudrait pouvoir faire un reset juste sur le HD44780.
(ou hard)

merci pour tout aide

Artouste


Bjr,

Est il possible de lancer un reset soft de l'arduino vers le mini LCD HD44780 avec l'IDE1.0 ?

J'ai un petit bug dans mon affichage et il me faudrait pouvoir faire un reset juste sur le HD44780.
(ou hard)

merci pour tout aide


bonjour
a ma connaissance il n'y a pas de reset soft equivalent au reset hard (OFF/ON) géré directement sur les 44780

Il faut initialiser/gérer dans le bon ordre et dans le bon timing les registres impactés par le reset Hard

SesechXP

Salut,

Pas mieux qu'Artouste. Mais ne serait-il pas plus simple de corriger le bug ?
Julien - www.idreammicro.com

skywodd

Bonjour,

Pas de reset software dans les écrans compatible HD44780, uniquement un reset hardware lors de la mise sous tension.


Pas mieux qu'Artouste. Mais ne serait-il pas plus simple de corriger le bug ?

+1 c'est quoi le bug en question ?
Des news, des tutos et plein de bonnes choses sur http://skyduino.wordpress.com !

bluemax2001

Je pense avoir mis un câble trop long pour déporter sur un autre boitier mon LCD d'où une perte de l'affichage (affichage incompréhensible) au bout de quelques jours.

Je vais être obligé de ramener l'arduino au plus proche du LCD pour limiter les parasites.

Pour le reset hard, vous placeriez un interrupteur sur le 5v du HD44780 ou ailleurs ? Il faudrait peut-être aussi couper le signal allant vers le LCD en plus du 5V ?

Artouste


Je pense avoir mis un câble trop long pour déporter sur un autre boitier mon LCD d'où une perte de l'affichage (affichage incompréhensible) au bout de quelques jours.

Je vais être obligé de ramener l'arduino au plus proche du LCD pour limiter les parasites.

Pour le reset hard, vous placeriez un interrupteur sur le 5v du HD44780 ou ailleurs ? Il faudrait peut-être aussi couper le signal allant vers le LCD en plus du 5V ?

L'important est surtout de regler le bug hard
mais sinon et avec une rapide reflexion, pour gerer du reset hard par arduino de 44780, j'utiliserais un BS170 (ou approchant) pris sur GND  avec la gate commandée par un pin de l'arduino.
mais ça fait quand meme un peu usine à gaz  8)

bluemax2001

un simple interrupteur ne semble pas suffisant ?

SesechXP

Ce que propose Artouste permet de réinitialiser le LCD par l'Arduino, pas par une intervention humaine. Après si tu veux intervenir tu peux tout à fait utiliser un interrupteur...

++
Julien - www.idreammicro.com

skywodd

Ya que moi que ça perturbe cette histoire de bug graphique due à la longueur du câble ?

Parce que dans le pire des cas il suffirait de faire un montage 5v -> 12v ---- 12v -> 5v et la distance ne serait plus un probléme.
Des news, des tutos et plein de bonnes choses sur http://skyduino.wordpress.com !

Artouste


Ya que moi que ça perturbe cette histoire de bug graphique due à la longueur du câble ?

Parce que dans le pire des cas il suffirait de faire un montage 5v -> 12v ---- 12v -> 5v et la distance ne serait plus un probléme.

Bonjour skywodd
je ne suis pas sur que ce soit une solution simple et viable
tu propose de translater/detranslater tous les signaux en 5/12V sur la longueur ?
déjà on ne connais pas la longueur
on ne connait pas non plus quel est le cable utilisé pour le déport (blindé ou pas ?) .

je penche plus pour un cable mal adapté, qui choppe de temps en temps la "merdouille environnementale"   :smiley-mr-green:
ce qui impacte aleatoirement les registres et/ou commande.






al1fch

#10
Jul 27, 2012, 12:48 pm Last Edit: Jul 27, 2012, 11:29 pm by al1fch Reason: 1
Bonjour

-comme cela a été déjà dit sur ce fil la coupure et le rétablissement de l'alimentation ne suffisent pas à réinitialiser les afficheurs à HD44780, il faut réenvoyer toute la séquence de 'configuration'. (Un reset hard  mets  dans un état initial non configuré qui se manifeste en général par une ligne entière de pavés noirs)

Quote
Il faudrait peut-être aussi couper le signal allant vers le LCD en plus du 5V ?
Pour moi c'est plus que  recommandé vu que les notices des HD44780 et équivalents indiquent dans les "limites absolues" que les tensions d'entrée ne doivent pas excéder VCC de plus de 0,3V.  Franchir cette limite est une 'prise de risque'... roulette russe ... selon marque et modèle de l'afficheur.  Une entrée à 5V et Vcc nul, ça dépasse de loin la limite indiquée . Certains afficheurs s'en remettent , d'autres ne pardonnent pas la moindre 'infraction' !!

Les  afficheurs alphanumériques peuvent également , suite à des  'parasites' dans les signaux de commande,(la "merdouille environnementale" !!),  se trouver  dans un état où ils ne répondent plus à la séquence  soft d'initialisation.

Je propose donc une procédure  "reset hard sécurisé + initialisation soft" :
-mettre en entrée toutes les pins les pins du micro allant vers l'afficheur,
-puis couper l'alim par un petit mosfet en série , comme indiqué par Artouste, (PMOS sur Vcc ou NMOS sur GND)
-remettre ensuite l'alim afficheur après une petite temporisation,
-réinitialiser les pins du micro dédiées à l'afficheur et enfin envoyer la séquence complète d'initialisation

Tout ceci bien entendu ne fait que 'compenser le bug', l'idéal serait de l'éliminer.

Impossible de proposer des solutions de déport sans connaitre la distance et l'environnement (relais électromécaniques ? électro aimants ? moteurs à CC ?...)

68tjs

Question :
Est ce que tous les fils de liaisons sont identiques ?
Dans identique j'inclus aussi la longueur et pas seulement le diamètre du fil ou la couleur de l'isolant.
Si la conception du 'low cost' compatibles HD44780 est de piètre qualité il se peut que les temps de transit à l'intérieur du CI n'aient pas été pris en compte, le CI peut aussi être sensible au temps de monté dans la phase d'initialisation.
Sont-il blindés ? -> le fait de les organiser en toron que l'on entortille avec un fil relié d'un coté à la masse de l'arduino et laissé en l'air de l'autre améliore-t-il le "bug" ?

bluemax2001

J'ai voulu déporter la partie Arduino de ma domo sur un autre boitier en dissociant la partie LCD.
- Donc en gros dans le boitier du LCD et ma prise RJ45, environ 15cm de fil.
- Dans le boitier Arduino et le RJ45, environ 10cm de fil
- et entre les deux RJ45 j'ai mis un câble RJ45 plat qui malheureusement n'est pas blindé.

Résultat, le LCD affiche des conneries au bout de quelques jours 24h/24 7j/7.

Donc, je vais ramener l'arduino domo à coté du LCD et réduire au maxi la longueur des fils.

Au cas où cela ne serait pas suffisant, même si je pense que cela sera bon, je pensais mettre un interrupteur  sur le 5V mais cela ne devrait pas être suffisant car il me faut attaquer le signal.
Mais, quel signal prendre sur le HD44780 (8 fils y compris 5V et gnd)?

Où il aurait fallu mettre dans le sketch un On / Off du LCD si possible ?

al1fch

#13
Jul 28, 2012, 08:45 pm Last Edit: Jul 28, 2012, 10:06 pm by al1fch Reason: 1
Bonsoir bluemax2001

je te propose de hierarchiser les choses et de remettre à plus tard , si impératif, cette histoire de reset de l'afficheur lcd (non que ce soit impossible, mais parce que c'est , à mon avis,du bidouillage à éviter sauf cas extrème...)

Quote
et entre les deux RJ45 j'ai mis un câble RJ45 plat qui malheureusement n'est pas blindé.

tu as donc 25cm + un cable RJ45 plat, longueur 5m ? 10m ?
On dirait que ton afficheur alphanumérique à 6 'belles antennes'.
Il fait ce qu'il reçoit de l'Arduino OU ce que captent les fils.
Dès que la tension sur le fil Enable monte et franchit brièvement  2,5V l'afficheur prend en compte ce qui se trouve sur le bus de données de 4 fils (caractère à afficher ou commande).
Les 6 signaux sont d'égale importance et participent , à leur façon, au fonctionnement de l'afficheur.
Soit tu rappoches les deux boitiers et revois le câblage de manière à rendre le système beaucoup moins sensible,
Soit  tu travailles en déport avec une solution de liaison appropriée à la distance de déport voulue et à l'environnement : Lcd I2C et I2Cprolongé,  LCD Série et RS422.....
Dans ces deux cas, avec un câblage adapté le reset de l'afficheur ne devrait pas être nécessaire, du moins pas plus souvent que le reset de la carte Arduino !

Si tout cela échoue (ce serait bien surprenant) il sera temps d'envisager un 'pansement' permettant un reset sûr de l'affichage sans reset de l'Arduino. ça nécessitera quand même de relancer un "lcd.begin()", chose que tu fais certainement au niveau du setup() et non de loop(). La coupure de la seule alim de l'afficheur ne me paraissant pas sûre pour l'afficheur je ne proposerais que des solutions plus lourdes assurant la déconnexion ou la mise en haute impédance des 6 signaux : E, RS et les 4 Datas. Ce sera donc relativement lourd ... et à éviter !

Tu travailles en '6 fils' donc en mode 'Bus 4 bits'.
Après un reset Hard l'afficheur est en mode 8 bits. Pour cette raison et pour d'autres aspects de la configuration la séquence complète d'initialisation réalisée par lcd.begin() est indispensable. Pour retrouver son mode d'avant' c'est donc reset hard+initialisation soft. Avec ça l'afficheur serait OK ... mais vide... il faut recharger ensuite le contenu de l'affichage (Ram effacée)

bluemax2001

Merci pour votre aide et toutes les informations utiles.

Je vais refaire mon boitier principale pour inclure les deux arduino (domo + téléinfo). On verra si besoin ou non d'une suite à donner.
Normalement, le mieux serait de tout mettre dans un boitier acier...

Go Up