Nokia 3310 Display arbeitet nicht

Gast #105568
Lesenswert?
• ▲
▼
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
Gast #674263
Lesenswert?
• ▲
▼
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;
}

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

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.