Forum: Mikrocontroller und Digitale Elektronik Nokia 5110 ansteuern für newbie


von ATmega32 (Gast)


Lesenswert?

Hallo,

ich beschäftige mich seit kurzem mit GLCDs.
Deshalb habe ich mir das angeblich leicht anzusteuernde "Nokia 5110" auf 
einer DIP-Adapterplatine bestellt.
Heute ist es angekommen und ich habe es auch schon erfolgreich mit 
meinem Arduino angesteuert.
Leider war der Code Beispielcode, den ich nicht verstehe.
Nun möchte ich das Display aber lieber mit meinem ATmega32 ansteuern.
Ich flashe und programmiere mit WinAVR in C. Wie stelle ich es an, das 
Display zu initialisieren und meinetwegen einen Buchstaben oder so 
auszugeben?
Das Datenblatt habe ich mir schon x-mal angeschaut, spricht aber für 
mich in Rätseln :(
Das ist übrigends das erste mal, dass ich etwas per SPI ansteuer, also 
seit bitte nicht zu hart zu mir ;)

von Matthias H. (hallamen)


Angehängte Dateien:

Lesenswert?

Ich habe so ein Display mit der angehängten Header-Datei schon 
angesteuert. Ein fertiges Programm kann ich dir leider nicht liefern 
(könnte es auch nicht testen, da kein Display bei der Hand), aber es 
sollte in etwa folgendes beinhalten:
1
lcd_init();
2
lcd_cls();
3
lcd_gotoxy(0,0);
4
5
6
// Schreib ein 'A'
7
SET_DC;
8
lcd_write(0x7C); //8bit-Maske entspricht 8 Pixeln untereinander
9
lcd_write(0x12);
10
lcd_write(0x11);
11
lcd_write(0x12);
12
lcd_write(0x7C);
13
lcd_write(0x00);

Angeschlossen gehört natürlich alles so, wie in der Header-Datei 
angegeben. Die SPI-Pins SDIN (SPI-OUT am Atmega!) und SCLK müssen 
wahrscheinlich an den Atmega32 angepasst werden (stimmt für Atmega8).

Edit: Auf auf die Pegel achten! Ich bin mir nicht sicher, ob das Display 
5V verträgt...

lg Matthias

von Gerri (Gast)


Lesenswert?

Arduino Opfertum

von ATmega32 (Gast)


Angehängte Dateien:

Lesenswert?

Hi,
danke für die Headerdatei :-)
Ich hatte zufällig noch nen ATmega8 hier rumfliegen und habs mal 
ausprobiert.
Kompilieren geht, nur auf dem Display kommt nix. Kontrast ist 
eingestellt.
Das Display kann sowohl mit 3.3 als auch mot 5v betrieben werden. Anbei 
ist der Code auf dem uC.

Schönen Dank schonmal, ATmega32

von ATmega32 (Gast)


Lesenswert?

Edit in der .h Datei ist auch ein Fehler:

//RESET   PB4
//D/C     PB2
//SDIN    PB1
//SCLK    PB0
//SCE     GND

#define RESET (1 << PB0)           //RESET=0ʱ,LCD¸´Î»
#define DC    (1 << PB1)           //DC=0_Ö¸Áî,DC=1_Êý¾Ý
#define SDIN  (1 << PB3)
#define SCLK  (1 << PB5)
#define SS     (1 << PB2)

Jetzt hab ich wenigstens nen komplett schwarzen Bildschirm...

von Thomas F. (igel)


Lesenswert?


von ATmega32 (Gast)


Lesenswert?

@igel:

hilft mir nicht weiter. Ist für AVR Studio...

von Nils S. (kruemeltee) Benutzerseite


Lesenswert?

und?

von ATmega32 (Gast)


Angehängte Dateien:

Lesenswert?

So, hab mich jetzt nochmal inig damit beschäftigt und habe mir ein 
"Ansteuerungsschema" gebastelt. Ist das so richtig?

Initialisierung:
1. CLK an, Data/Command ist 0v, SDIN ist 0V, SCE ist 0v und Reset ist 
5v.
2. Bei einer positiven Taktfalnke auf CLK wird SCE auf 0v gezogen und es 
wird 100us gewartet, bis Reset auf 0v gestellt wird.
3. Reset bleibt 5 CLK-Flanken 0v, bis es dann wieder auf 5v gestellt 
wird.
4. Es werden weitere 5 CLK-Flanken gewartet, bis SCE wieder auf 5v 
gestellt wird.


Schreibvorgang:
1. CE auf 0v setten.
2. CLK bei jedem Bitanfang auf 0V, ca. 100us warten und dann auf 5V und 
ca. 100us danach wieder auf 0v.
3. Alle 8 Bits das Data/Command-Bit bei einer 0v Flanke in CLK auf 0v, 
während das 8. Bit eingeschrieben wird.
4. Steps 2 & 3 wiederholen, bis 4032 Bits geschrieben sind.
5. Nach 4032 CE wieder auf 5v.

Fragen: Läuft nach der Transferrierrung die CLK weiter, oder kann diese 
abgeschaltet werden?

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
Noch kein Account? Hier anmelden.