mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik T6963C und Data Auto Write Mode


Autor: Günter R. (galileo14)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe bei einem LCD mit dem Toshiba-T6963C-Controller festgestellt,
daß es Probleme geben kann (bzw. bei mir immer gibt), wenn man im
Data-Auto-Write-Mode Daten ausgibt, aber die eigentlichen Daten leer
sind (z.B. Null-String), d.h. wenn man dem Controller den
Data-Auto-Write-Befehl gibt (B0) und dann gleich den Auto-Reset (B2),
ohne daß dazwischen eigentliche Daten ausgegeben werden.

Dann erscheinen auf meinem Display sonderbare Zeichen, nämlich "Ä0"
(die "0" ist dabei auch noch davon abhängig, auf welche Adresse ich
das TextRAM plaziert habe - wenn man diese Adresse ändert, ändert sich
das "0"-Zeichen; das "Ä" bleibt aber immer gleich.

Kennt jemand diesen Effekt und weiß, woran es liegt?

Danke.

Günter

Autor: Werner B. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
<Mode joking=on>
 Das "Ä" ist Umgangssprachlich ein "WIE BITTE?". Das sollte (im
deutschspachigen Raum) bekannt sein.
</Mode>

Fang doch leere Zeichenstöme ab bevor die den AutoWrite Befehl gibts.

Autor: Günter R. (galileo14)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Werner:

Habe ich selbstverständlich längst getan; dennoch würde es mich
interessieren, ob es sich um ein Fehlverhalten des Controllers handelt,
wenn man dennoch B0 und B2 ohne Daten sendet, oder ob an meinem Aufbau
etwas nicht stimmt.

Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Verwendest du Delays oder die Statusabfrage?
Im Auto-Modus gelten die normalen Statusbits nicht!
Wird das B2 auch korrekt als Befehl und nicht als Daten ans Display
geschickt?

Ralf

Autor: Günter R. (galileo14)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Ralf:

Ich verwende die Statusabfrage, so, wie es das Datenblatt vorschreibt,
nämlich zunächst STA0 und STA1 für den B0-Befehl, danach STA3 für ggf.
Daten und den B2-Befehl. Die Befehle sende ich natürlich als CMD's,
nicht als Daten.

Hast Du ein solches Display und mal das beschriebene ausprobiert?

Günter

Autor: Werner B. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe ganz andere Phänomene mit dem T6963C.
Am Philips LSP2292 ( ARM7TDMI): Aus dem internen Flash läuft das
Programm mit AutoWrite, aus dem externen RAM unter uClinux nicht mehr.
Nur noch Pixel. Muss auf WRITE_INC ausweichen.
Ich kann nur auf Timingprobleme bei der Statusabfrage im zusammenspiel
mit der 16-bit breiten Anbindung des externen Ram tippen.

Autor: Günter R. (galileo14)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Werner:

Das ist interessant. Ich habe nämlich auch noch weitere Probleme mit
dem T6963C. In bestimmten Situationen erhalte ich auf dem Display eine
"0" (Null); diese bekomme ich nur weg, wenn ich in der
Schreib-Schleife eine große Zahl (genauer: 20) NOP's einschiebe. Ich
habe schon alle möglichen Variationen in den Basis-Funktionen
(LCD-Zeichen schreiben/lesen) durchgespielt, mit mehr oder mit weniger
NOP's, mit CE vor WR oder umgekehrt - hat alles nichts gebracht, nur
die 20 NOP's (immer im Zusammenspiel mit dem Data-Auto-Modus). Dabei
müßte eigentlich eine erfolgreiche Statusabfrage den Weg für weitere
Operationen ebnen - aber es ist wohl nicht so ...

Hast Du mal die beschriebene Sache getestet (Data Auto Write, dann Auto
Reset, ohne Daten dazwischen)?

Günter

Autor: Michael U. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

@galileo14:
ich habe nur mal schnell eine Zeile, die ich im Auto-Mode schreibe,
durch eine Zeile der Länge 0 ersetzt, es wird also nur noch
AUTO_WRITE_ON und danach gleich AUTO_WRITE_OFF geschickt, keine
Probleme, keine falschen Zeichen.

@Werner B.:
Timing ist irgendwie eigenartig, ich hatte das Display Memory-Mapped am
ATMEGA8515. bis 8MHz kein Problem, bei 16MHz teilweise falsche Pixel.
Laut Diagrammen hätte das Timing bei 16MHz mit einem Wait sicher passen
müssen, ging aber nicht.
2 Waits, testweise Bustreiber in allen Leitungen weil vielleicht wegen
der Kabellänge, war dem T6963C völlig egal, speziell im Textmode immer
die optisch ähnlichen Fehler.
Nun wird es eben doch per Portzugriff bedient, war nur so schön
einfach, einfach ein lds oder sts zum Display statt der Bitwackelei...

Gruß aus Berlin
Michael

Autor: Günter R. (galileo14)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, Michael,

danke. Dann funktioniert's wohl im Prinzip. Ich hab's ja gelöst,
indem ich bei Datenlänge null nichts mehr aufrufe. Aber es juckt mich
trotzdem, einen Fehler zu finden ...

Günter

Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Günter,

ich hab ein 240x128 Display, ich werd das bei Gelegenheit mal
ausprobieren, ein B0 und direkt danach ein B2,ich hoffe, ich komm am
Wochenende dazu...

Ralf

Autor: Günter R. (galileo14)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Ralf: Prima, danke schon mal .. Eilt aber nicht.  Günter

Autor: LC-HC (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, jetzt mal etwas anderes:
Ich bin im mom. auch mal wieder am basteln mit dem T6963C und 240 * 128
Grafikdisplay. Leider klappts noch nicht so ganz, obwohl ich versuche
mich erstmal mit Initialisierung und dem korrekten timing zu
beschäftigen. Hierzu hätte ich dann auch gleich eine Frage. Und zwar
ist mir der Resetvorgang nicht ganz geheuer, das Display wird per
RC-Schaltung über den RS Pin Zurückgesetzt, jedoch Funktioniert das nur
selten, bzw. wenn ich erst das Display anschalte und kurz darauf (1-3
sek) den µC. Im Datenblatt hab ich dazu nichts gefunden, außer nat. das
Resettiming.

Autor: Michael U. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

zumindest mein 240x128 scheint intern einen sauberen PowerOn-Reset zu
machen.
Ich habe allerdings Reset noch an einem Portpin dran. Die Wartezeit
nach dem Auslösen von Reset oder nach einem PowerOn-Reset, bis das
Display ready geht, ist aber ziemlich lang und sollte auch eingehalten
werden.

Gruß aus Berlin
Michael

Autor: Günter R. (galileo14)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe den LCD-Reset-Pin parallel zum Prozessor-Reset geschaltet; das
funktioniert einwandfrei. Evt. kann man ja eine kurze Wait-Schleife von
z.B. 100 ms ablaufen lassen, bevor man das Display anspricht.

Unbedingt muß man daran denken, nach der Initialisierung des T6963C
zuerst mal den Speicher des Displays (i.d.R. sind das 8K Bytes) zu
löschen (d.h. mit 0x00 zu beschreiben), denn dieser Vorgang wird vom
LCD-Reset nicht abgedeckt (das RAM im LCD-Display ist ja ein externer
Baustein zum T6963C). Andernfalls werden wirre Zeichen angezeigt.

Günter

Autor: LC-HC (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke. Nur nochmal zum Vergleich: ich schalte das Display an, warte eine

Zeit "x" ab, bis Displayintern der PowerOn Reset durchgeführt wurde
und
starte nach der Zeit "x" die Initfunktion auf dem uC ( bei der auch
nochmal resetet wird) ? Sorry, wenn ich so blöd komm, aber ich krieg´s
einfach nicht gebacken, zzzz..
Also Danke erstmal, Cya.

Autor: Günter R. (galileo14)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kommst ja nicht blöd ... Die Vorgehensweise ist okay. Wenns nicht
funktioniert, kanns ja nur in Fehlern im Init-Code liegen. Zuerst würde
ich die Basic-Level-Ausgabe-Funktion anschauen, ggf. durchsteppen, um zu
sehen, ob die Steuersignale (WR, RD, CE etc.) korrekt erzeugt werden, in
der richtigen Reihenfolge (mit dem Oszi oder einem Logiktaststift
anschauen).

Autor: LC-HC (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
All right, ich test das jetzt nochmal übers we und dann meld ich mich am
montag wieder;) Bis hierher vielen Dank für die prompte Hilfe !!

mfg,

Simon

Autor: Michael U. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich weiß nicht, ob es Dir hilft, in der Codesammlung hatte ich mal
meine Assembler-Routinen reingeworfen.
Die Grundroutinen sind die 1:1 Umsetzung des Z80-Codes aus dem
Datenblatt.
Mal schauen, ob ein Link von hier klappt:
http://www.mikrocontroller.net/forum/read-4-386899.html#new

Gruß aus Berlin
Michael

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.