Hallo,
ich habe einen ATmega162 und ein 4*20 LCD Display mit KS0073
Controller. Der Anschluss erfolgt via SPI inkl. CS\. Ich versuche nun
seit Tagen das Display zum Laufen zu bekommen, jedoch ohne Erfolg.
Da ich keinen Code fuer eine reine SPI-Ansteuerung gefunden habe (nur
mit Wandler uC->SPI->Conv.->4pol-parallel->LCD), habe ich andere Codes
in C und ASM modifiziert. Leider funktioniert nichts. Ich bekomme
keinerlei Reaktion vom Display. Durch Status-LEDs weiss ich aber, dass
Daten via SPI gesendet werden.
Jetzt möchte ich gerne überprüfen, ob die Hardware überhaupt o. k. ist.
Dazu wäre ein Codebeispiel, das mit der direkten SPI-Ansteuerung
funktioniert, toll. Dann wüßte ich, dass die Software o. k. ist und
könnte nachsehen, ob vielleicht an der Hardware etwas defekt ist.
Hat also jemand eine funktionierende Routine in C oder ASM zur
Ansteuerung direkt via SPI?
Danke und tschau,
Thomas
Habe die SUB's vergessen:
Der Sprung am Ende (rjmp testz) heisst "rjmp ende"!!
delay5ms: ; 5ms Pause
ldi R22, $21
WGLOOP0_t:
ldi R23, $C9
WGLOOP1_t:
dec R23
brne WGLOOP1_t
dec R22
brne WGLOOP0_t
ret
sendspi:
out SPDR, data_4094
spil:
sbis SPSR, SPIF
rjmp spil ; jump wenn nicht fertig
nop
ret
ohne mir das jetzt alles durchzulesen: hast du die SPI-Parameter
beachtet(MSB/LSB first, CPOL, CPHA) bzw. kennst du diese vom Display
überhaupt? Taktfrequenz zu hoch? Evtl. Wartezeiten erforderlich?
Normalerweise ist SPI problemlos.
Hallo,
lt. Zeitdiagramm Datenblatt KS0073 wird MSB zuerst gesendet (Startbits
5 mal High, ...). Zu CPOL, CPHA habe ich keine Angaben gefunden, aber
das Display erkennt mit der jetzigen Konfiguration ja auch, dass es
Daten senden soll. Taktfrequenz ist niedrig genug. Wartezeiten sollten
auch ausreichend sein.
Somit weiss ich nicht mehr so recht weiter...
Thomas H.
Hallo,
also: Das Programm ist soweit fehlerfrei.
Ich habe jetzt jedoch entdeckt, dass es wohl ein Konflikt zwischen ISP
und dem SPI des uC oder LCD's gibt. Ich habe an den SPI-Port zum einen
das LCD-Display angeschlossen, als auch die ISP-Schnittstelle meines
STK500.
Wenn ich den uC neu programmiere (funktioniert immer tadellos),
funktioniert das LCD oder es zeigt nichts gutes an oder eine
Kombination zwischen Chaos und Soll-Ausgabe. Manchmal passiert es,
dass, wenn ich die Schaltung vom STK500 losloese, dass alls wie
gewuenscht funktioniert und manchmal eben nicht. Ab und zu kann ich
dann auf den AVR beim Programmieren nicht mehr zugreifen und muss erst
wieder ein paar Fuses aendern, bis es wieder klappt.
Hat jemand eine Vorstellung, ob und wie so ein SPI-ISP Konflikt
entstehen kann und warum? Eine Systematik habe ich leider noch nicht
entdeckt.
Danke und ciao,
Thomas H.