DIP204-4 mit Hardware-SPI (ATmega128)

OP #1100421
!!! 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....
Angehängte Dateien:
Gast
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.
OP
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
OP
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.
OP
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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.