!!! SORRY MUSS DIP-204-4 HEISSEN !!! Hallo, ich versuche seit 2 Tagen ein Display DIP204-4 mit Hardware-SPI (ATmega128) in Betrieb zu nehmen. Ich habe zwar schon etliche Berichte über das Display hier und über Google gelesen, aber irgend wie komme ich gerade nicht mehr weiter.... * Lötbrücke am Display ist auf SPI umgelötet * Kontrast mit externem Poti ist eingestellt * Displaybeleuchtung ist eingeschaltet * SPI-Takt ist 230 kHz (mit Oszi überprüft) * Reset (low) ist 25 ms lang (mit Oszi überprüft) * Zeit zwischen den Befehlen ist 2ms (wird mit Zähler gemacht, der im 1ms-Interrupt auf Null zurück zählt - mit Oszi überprüft) Hier die Inhalte des SPI-Registers SPCR: * SPIE = 0 * SPE = 1 * DORD = 1 * MSTR = 1 * CPOL = 1 * CPHA = 1 * SPR1 = 1 * SPR0 = 0 Ich habe schon alle möglichen Initialisierungen probiert (die vom Datenblatt des KS0073, welche vom Internet, Initialisierung 3 x gesendet, ...) aber auf dem Display wird kein Testbuchstabe angezeigt. Keine Ahnung warum. Die SPI-Signale sehen mit dem Oszi gut aus. Auch die Reihenfolge der Daten ist korrekt (mit Oszi üerprüft). Die 2ms Wartezeit zwischen den Bytes sollte ja kein Problem darstellen, oder? Ich habe mal den Quellcode angehängt. Ich hoffe es hat jemand eine gute Idee....
Hat das Ding kein CS (Chip-Select)? Wenn doch wie wird der angesteuert?
CS wird in der Funktion "SPI_master_transmit" geschaltet. habe es aber auch schon versucht, dauerhaft auf Low zu legen. Hat leider nichts gebracht!
@Torben: hab ich schon gemacht und bin nicht weiter gekommen. Irgend etwas muß ich übersehen haben...
Hm, ich sehe Unterschiede in der Initalisierung und jeweils CMD, DATA Startbyte. Ich kenne die Register nicht aus dem Kopf, aber änder die mal ab zum testen. Arbeitet dein Mirocontroller wirklich mit 1kHz Takt, weil sonst deine Warteschleifen nicht die nötige Zeit abarbeitet. Einige Befehle benötigen gewisse Ausführungszeiten (Ausführungszeiten stehen im Datenblatt). Sollte dein /CS Pin immer auf Low Pegel liegen musste gerne mal das ganze System reseten. Nachdem du den /CS Port auf Low Pegel hast solltest Du eine kurze Pause einfuegen.
das Problem ist gelöst! Das Display zeigt endlich einen Test-Text an! Ich habe im Internet noch einen weitern C-Code gefunden, mit dem ich dann das Problem lokalisieren konnte: 1. das Startybte war falsch. Da es vom Low-Byte ausgehend gesendet wird, muß es "spiegelverkehrt" definiert gewesen. 2. das /CS (Slave select) wurde nach jedem Byte auf High geschaltet. Das muß die ganze Zeit anliegen, bis die 3 Byte (Startbyte + 2 x Datenbyte) gesendet sind.
Hallo Martin, ich habe leider gerade einen gleichen Tread aufgemacht. Habe aber deinen Tread in der Suche vorher nicht gefunden :o( Eine Frage zum CS!! Kann man das CS nicht auch auf Masse legen? Kannst du das mal probieren? Gruß Marcel
wenn man nur das Display am SPI-Bus hat, dann schon. Ich betreibe daran aber zukünftig noch eine SD-Karte. Ich glaube die Initialisierung habe ich auch etwas geändert. Kann es aber gerade nicht genau sagen wie, da meine SD-Karte etwas spinnt, auf der ich die Daten von meinem Entwicklungsrechner kopiert habe. Den C-Code habe ich bei www.avrfreaks.net gefunden.
Noch eine Frage, sieht dein SOF auch so aus wie auf meinem Oszi-Bild? 5x 1 dann 3x 0. Danke für deine Antwort!!
Hier Auszüge aus: http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=30421&highlight=ks0073 #define COMMAND 0b00011111 // Command start byte #define WRITE_DATA 0b01011111 // Write Data start byte => 5xHigh und 3xLow wäre als Startbyte für die Kommandos OK. Schau Dir mal den Quellcode auf der Seite der AVR-Freaks an, dann siehst Du auch, mit welcher Initialisierung das Ganze gehen muß... Bei mir hat es zumindest geklappt. Wie hoch ist die SPI-Taktfrequenz? Sieht nach 1MHz aus. Ist laut Datenblatt glaub erlaubt, ich würde diese mal zum Testen reduzieren.
Super, danke erst mal für die Hilfe!!!!!!!! Werde mir die Seite ma reinziehen :) Dir viel Glück beim Fehlersuchen mit der SD Karte gg Grüße, Marcel
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.