Voor het eerst ben ik aan de slag met een grafisch display, de Nokia 5110 (LPH7366) en een Atmega32. Het LCD heeft een schermgrootte van 84 bij 48 pixels. Via internet heb ik naar info gezocht en uitgeprobeerd. Ik krijg het echter niet aan de praat.
Het LCD is als volgt aangesloten :
LCD => ATMega32
---------------
Rst => B4
Gnd => Gnd
Sce => B3
D/C => B2
Sdi => C6
Sck => C5
Vcc => 3V3
Gebruikte sourcecode :
code:
$regfile = "m32def.dat"
$crystal = 1000000 'Intern Xtal
$hwstack = 32
$swstack = 16
$framesize = 24
'Library
$lib "glcd-Nokia3310.lib" 'Nokia 5110
'Configs
Config Graphlcd = 128x64sed , Rst = Portb.4 , Cs1 = Portb.3 , A0 = Portb.2 , Si = Portc.6 , Sclk = Portc.5
'Dims
Dim I As Byte , N As Word , M As Byte
Dim Text As String * 8
'Instellen pinnen
Ddrb.2 = 1 'B2 : D/c
Ddrb.3 = 1 'B3 : Sce
Ddrb.4 = 1 'B4 : Rst
Ddrc.5 = 1 'C5 : Sck
Ddrc.6 = 1 'C6 : Sdi
Ddrd.5 = 1 'OutPut JumboLED
'Aliases
Jumboled Alias Portd.5
'-= Start programma =-
Jumboled = 1 'LED aan
Initlcd 'Initialiseer LCD
Cls 'Clear Screen
'Eerste text
Setfont Font6x8 'Selecteer font
Lcdat 2 , 16 , "Nokia-3310" 'Text
Lcdat 4 , 30 , "84x48" 'Text
Wait 2 'Wacht 2 seconden
Cls 'Clear Screen
Showpic 0 , 0 , Walker 'Afbeelding naar scherm
Wait 2 'Wacht 2 seconden
Cls 'Clear Screen
Setfont Font6x8
Lcdat 3 , 1 , "--------------"
Lcdat 4 , 22 , "1 March"
Lcdat 5 , 1 , " Saturday " , 1
Lcdat 6 , 31 , "2014"
Setfont Font12x16dig
I = 20
'-= Hoofd programma =-
Do
Incr I 'Ophogen waarde i
If I > 59 Then 'Minuut voorbij ?
I = 20 'Ja : terug naar 20
End If
Text = Str(i) 'Sla getal op in TextString / Conversie waarde naar text
Lcdat 1 , 1 , "23:" ; Text '23:xx
Jumboled = 1 'LED AAN
Waitms 500 'Wacht halve seconde
Lcdat 1 , 1 , "23 " ; Text '23 xx
Jumboled = 0 'LED UIT
If I.0 = 1 Then 'Alarm (denk ik)
Showpic 66 , 1 , Ring 'Afbeelding naar scherm
Else
Lcdat 1 , 66 , " " 'Afbeelding wissen / overschrijven
End If
Waitms 500 'Wacht halve seconde (totale wachttijd : 1 seconde)
'-- Contrast regulation
'For M = 175 To 200
' Glcdcmd 33 : Glcdcmd M
' Waitms 100
'Next
Glcdcmd 33 : Glcdcmd 200 'Normal Contrast
Loop
End
'===============================================================================
Ring:
$bgf "Ring.bgf"
Walker:
$bgf "Walker.bgf"
$include "font6x8.font"
$include "font12x16dig.font"
Het resultaat
Op het scherm is niets te zien. Ter controle gebruik ik de LED om te zien of het programma niet ergens vast loopt. Het LEDje knippert, maar het scherm blijft blank.
Ik heb daarom het volgende gedaan :
- Diverse contrast-waarden geprobeerd
- Rst aan 3V3 via een 10K Ohm en verder een 1 uF naar Gnd
- Alle data-pinnen van LCD waren via 10K naar Atmega gekoppeld. Dat heb ik inmiddels omgezet naar 470 Ohm
- Een wachttijd van 100ms voor de "initlcd" geplaatst
Kortom, ik heb diverse zaken geprobeerd, maar na 1 week aanmodderen heb ik besloten om op CO te gaan vragen naar ervaringen en tips. Deze Nokia-schermen worden redelijk vaak gebruikt voor diverse hobby-projecten. Volgens mij zijn er ook wel CO'ers mee aan het stoeien. Ik vermoed dat ik iets heel simpels over het hoofd zie. Vandaar mijn vraag : wie ziet waar het probleem ligt en kan me op weg helpen ?