Einen schönen guten Tag alle miteinander,
ich habe folgendes Problem:
Ich habe mir ein EA-DOGM-132S-5 (Grafikdisplay 132x32) besorgt und gemäß
datenblatt angeschlossen. Das ganze läuft komplett mit 3.3V.
Mein Ziel ist erstmal das Teil dazu zu bewegen, irgendwelche Pixel
anzeigen zu lassen. Da sämtliche Informationen und Code-Beispiele in C
verfasst sind oder aber sofort nach Problemlösung keine Infos mehr
verbreitet werden, komme ich nicht weiter.
Seid ihr so gut, schaut in meinen Quelltext und weißt mich auf Fehler
hin?
3.3V
ATMEGA8 mit internen 8MHz
DOGM132-5:
CS1B dauerhaft low (direkt an GND)
A0 an PB 1
RESET an PB0
SI an PB3(MOSI)
SCL an PB5 (SCK)
verwendete Kondensatoren WIMA MKS-2 1µF gemäß "LOW-POWER"Beschaltung
[1]S.4
Datenblätter:
[1] http://www.lcd-module.de/pdf/grafik/dogm132-5.pdf
[2] http://www.lcd-module.de/eng/pdf/zubehoer/st7565r.pdf
QUELLTEXT:
siehe Anhang
Besten Dank im voraus, Timmo
Hi
>CS1B dauerhaft low (direkt an GND)>A0 an PB 1>RESET an PB0>SI an PB3(MOSI)>SCL an PB5 (SCK)
Und was hängt an PB2? Das ist das SS-Pin. Und wenn das Eingang und offen
ist, schaltet sich früher oder später der Mastermode ab. Entweder als
Ausgang schalten oder wenn Eingang auf H legen.
>ldi temp1, (1<<SPE) | (1<<MSTR) | (1<<CPOL)
Da brauchst du nur SPE und MSTR setzen.
MfG Spess
>Und was hängt an PB2? Das ist das SS-Pin. Und wenn das Eingang und offen>ist, schaltet sich früher oder später der Mastermode ab. Entweder als>Ausgang schalten oder wenn Eingang auf H legen.
-> DDR als Ausgang für PB5,3,2,1 und 0 gesetzt
>>ldi temp1, (1<<SPE) | (1<<MSTR) | (1<<CPOL)>Da brauchst du nur SPE und MSTR setzen.
-> erledigt
leider keine Besserung
>>Mess mal die Spannung an Pin32 (VOUT). Da sollten etwa so 10..11V
anliegen.
~~ 8,5V gegen GND
liegts an den Kondensatoren?
>>Warum nimmst du da teure Folien-Kondensatoren? 1µ Keramik reichen
... weil ich nur die (neben ELKO) in 1µF da hatte
Bestellung für Kerko ist raus
>>Probier am Anfang mal eine Reset-PAuse für das LCD:>>Also so was:>>cbi DOG_Port, DOG_Reset>>rcall wait1ms>>sbi DOG_Port, DOG_Reset
ist bereits drin mit
1
DOG_INIT_RESET:
2
sbi DOG_PORT, DOG_RESET ;eig. Überflüssig da schon HIGH
3
rcall delay50us
4
cbi DOG_PORT, DOG_RESET
5
rcall delay1ms (<==auch andere Zeiten versucht)
6
sbi DOG_PORT, DOG_RESET
7
rcall delay1ms
zu den Kondensatoren => wenn die Kerkos da sind, löte ich alles auf ne
Lochrasterplatine. Nicht dass da der Kontakt zu einem C fehlerhaft
ist...
Läuft zu Testzwecken gerade auf einem Steckbrett...
Einstellungen für das SPI soweit OK?
Habe das Problem gelöst.
Nachdem die Kerkos ankamen, gleich alles die Chance genutzt und sauber
auf Platine gelötet. Anschließend angeschlossen und die Ernüchterung,
daran lag es nicht.
Alles von vorn, Code durchgesehen und Schritt für Schritt durchgegangen.
Ende vom Lied, ich hab in einer Schleife auf SPI-Ready-Flag gewartet,
welches jedoch zuvor nicht gesetzt werden konnte, da vorher nie Daten
das Haus verlassen haben.
Für alle die, die ein ähnliches Problem bekommen sollten, hab ich den
funktionierenden Code angefügt.
Besten Dank an alle und weiterhin alles Gute,
Timmo