- LiFePO4 Speicher Test         
Ergebnis 1 bis 10 von 11

Thema: LCD Störungen nach Atmega Reset

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    02.09.2009
    Ort
    Berlin (Mariendorf)
    Beiträge
    1.023
    Hi, chrisavr1981

    Hier findest du eine kompakte Abhandlung über den HD44780 und kompatible Chips:
    http://de.wikipedia.org/wiki/HD44780
    Am Ende des Artikels ist ein Datenblatt zum fraglichen Controller verlinkt. Dort auf Seite 45+46 findest du das Ablaufschema für einen Reset per Befehl, also via Datenbus. Das sagt eigentlich alles aus, manches jedoch nur versteckt. Z.B., dass die ersten beiden Befehle auch bei 4Bit-Datenbus nur mit einem einzigen Schreibbefehl abgewickelt werden (weil es in dieser Phase noch gar keine Unterscheidung zwischen 4- und 8-Bit-Bus gibt). Und dass folglich die 0x33 als Resetcode absolute Alchemie sind, denn alles zwischen 0x30 und 0x3F erfüllt den Zweck, weil die 4 LSBits noch gar keine Wirkung haben. Es sei denn, die LSBits enthalten bereits die Steuerleitungs-Pegel, dann könnte 0x33 Sinn machen, aber eben nicht als Befehlscode im engeren Sinn, sondern sehr spezifisch auf die Zielhardware zugeschnitten.

    Prinzipiell steht also alles in den Datenblättern, was man wissen muss, um mit ihnen arbeiten zu können.

    OK, ich seh ja auch ein, dass das Datenblatt für eine scheinbar einfach gestrickte Blackbox, die nur ein paar ASCIIs anzeigen soll, schon recht umfangreich und verwirrend ist. Da sind vereinfachende Tutorials für das Erlernen der Grundfunktionen echt Gold wert. Meine Displays arbeiten nach dem Einschalten z.T. wochenlang ununterbrochen und störungsfrei ohne eine Neuinitialiserung, aber das ist eben ein anderes Szenario als deines mit den Warmstarts (also Reset am µC statt PowerUp-Resets in allen Subsystemen).

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    07.03.2011
    Beiträge
    1.899
    Zitat Zitat von RoboHolIC Beitrag anzeigen
    Und dass folglich die 0x33 als Resetcode absolute Alchemie sind, denn alles zwischen 0x30 und 0x3F erfüllt den Zweck, weil die 4 LSBits noch gar keine Wirkung haben. Es sei denn, die LSBits enthalten bereits die Steuerleitungs-Pegel, dann könnte 0x33 Sinn machen, aber eben nicht als Befehlscode im engeren Sinn, sondern sehr spezifisch auf die Zielhardware zugeschnitten.
    Alchemie ist das nicht. Wenn man das hier liest:

    Ich habe aber meinen Fehler gefunden, der genau diese Situation beschreibt:

    Your problem is that the display keeps its state during MCU reset. When cold-booting, the initial data mode is 8-bit which you immediately switch to 4-bit which reads data with a pair of EN pulses.
    When you reset the MCU, you do not know whether even or odd number of EN pulses were sent. So you have to somhow reset the display even if it does not have reset pin.
    This can be done by sending 0x33 0x33 (in 8-bit mode it will mean 4-times switch to 8-bit, in 4-bit mode it will mean once or twice switch to 8-bit). Then you can be sure that you always start from the same state.
    Then proceed with regular 0x32 (or 4-bit 0x02 if you have single 4-bit write function), 0x28 to get into 4-bit 2-line mode.
    dann sollen die zweifachen 0x33 mit der Situation umgehen, daß das LCD (z.B. nach einem Reset der CPU ohne Power On Reset des LCD) ein LOW-Nibble erwartet, der µC aber ein HIGH-Nibble schickt. Schickt man 0x30, kommt 3 ins LOW und 0 ins nächste Byte als High. das wird dann das falsche Kommando. Schicke ich dann noch mal 0x30, ist das wieder so. Schicke ich aber zweimal 0x33, bekomme ich unter allen Umständen eine 3 ins High-Nibble und schalte damit das LCD definiert in den 8-Bit Mode. Von hier kann ich dann definiert weitermachen.

    MfG Klebwax
    Strom fließt auch durch krumme Drähte !

Ähnliche Themen

  1. [ERLEDIGT] Atmega 644 & atmega8 parallel am ISP ... Reset beider atmega notwendig ..
    Von Ritchie im Forum AVR Hardwarethemen
    Antworten: 2
    Letzter Beitrag: 29.03.2013, 11:18
  2. [ERLEDIGT] I2C Bus läuft nach Kaltstart des atmega nicht aber nach reprogrammiert via ISP
    Von Ritchie im Forum AVR Hardwarethemen
    Antworten: 0
    Letzter Beitrag: 07.07.2012, 14:53
  3. Störungen bei langem Kabel zum LCD
    Von Bääääär im Forum Elektronik
    Antworten: 21
    Letzter Beitrag: 14.01.2009, 22:05
  4. Verhalten LCD am I2C nach Reset und "initlcd"
    Von highbeta im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 7
    Letzter Beitrag: 15.12.2007, 15:25
  5. Problem nach RESET
    Von bombatz im Forum Assembler-Programmierung
    Antworten: 7
    Letzter Beitrag: 12.08.2006, 11:10

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Solar Speicher und Akkus Tests