Hallo, ich habe ein Nokia 3310 Display an einen ATMEGA8L angeschlossen. Anschluß des Displays wie bei www.microsyl.com. Der Treiber für das Display ist auch von dort. An den ATmega ist nur noch ein 4MHz-Quarz mit zwei 33pF Kondensatoren angeschlossen (XTAL1+2)und der Reset ist mit 100k zu + und 47pF zu Minus belegt. Betriebsspannung ist 3,3 V. Wenn ich die Schaltung einschalte habe ich oft das Problem, dass das Display zwar im Hintergrund dunkler wird, aber es zeigt keine Schrift an. Lasse ich es eine Zeit liegen und probiere es nochmal, dann habe ich mit viel Glück eine Anzeige, die absolut richtig ist. Meine Fragen: Hatte schon jemand ein Initialisierungsproblem und mußte deshalb die Verzögerungszeit verlangsamen? Ist der Reset-Kondensator nicht zu klein? (Komme aus der '51er-Programmierung) Hat jemand ein Tip für mich, was es noch sein kann? Werde solange noch weiter testen. Gruß Elektrikser
Hat sich erledigt. Der Reset-Kondensator war zu klein. Habe ihn durch einen 100nF ersetzt. Gruß Elektrikser
Ich habe mein 3310 Display ebenfalls wie auf www.microsyl.com
angeschlossen. Als Versorgungsspannung habe ich einen Spannungsteiler
der 5mA liefert. Wenn das Display mit Spannung versorgt wird, kann man
genau 3,2V messen. Einziger Unterschied bei mir ist, das ich SCE
permanent auf Masse gelegt gabe um einen Pin zu sparen. Somit ist zwar
mein Display permanent Enabled aber das ist mir egal. Leider kann ich
dem Display aber keine Zeichen entlocken. Ich habe versucht das Display
mal im inversmodus zu initialisieren, aber das Display wird nicht
schwarz. Kann das ein Problem mit der SCE Leitung sein. Darf man die
nicht permanent auf Masse legen?
Teile aus meinem Quellcode:
int main (void)
{
clrb(PORTB,PB6); //Reset auf Low
wait(); //100ms warten
setb(PORTB,PB6); //Reset auf High
wait(); //100ms warten
LcdInit();
}
void LcdInit(void)
{
SPCR = 0x53; //SPI Init Teiler/128
PORTA &= ~LCD_DC_PIN;
SPDR = 0x21;
while ( (SPSR & 0x80) != 0x80 );
SPDR = 0xC8;
while ( (SPSR & 0x80) != 0x80 );
SPDR = 0x06;
while ( (SPSR & 0x80) != 0x80 );
SPDR = 0x13;
while ( (SPSR & 0x80) != 0x80 );
SPDR = 0x20;
while ( (SPSR & 0x80) != 0x80 );
SPDR = 0x0D;
while ( (SPSR & 0x80) != 0x80 );
PORTA |= LCD_DC_PIN;
}
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.