www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Nokia 3310 Display arbeitet nicht


Autor: Elektrikser (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Elektrikser (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hat sich erledigt. Der Reset-Kondensator war zu klein. Habe ihn durch
einen 100nF ersetzt.

Gruß Elektrikser

Autor: Nils (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.