Testa Nokia 3310 display

Lysdioder, Optiska sensorer, Fiberoptik, Displayer, Lasrar, Optiska kopplare
tgr
Inlägg: 726
Blev medlem: 10 maj 2006, 09:17:07
Ort: Mölndal

Testa Nokia 3310 display

Inlägg av tgr »

Hej,

Jag handlade mig en display till Nokia 3310 på ebay för att de sägs vara smidiga att arbeta med.
Dock har jag nu suttit några dagar och försökt få igång den utan att lyckas. Eftersom den är köpt på ebay så kanske man inte kan lita 100% på att den är hel. Därför undrar jag om någon har tips på hur jag kan testa att den lever och konstatera att det är jag är dålig ;) Displayen visar altså inget alls. Ingen skillnad på om den är inkopplad eller ej. Kan det vara nån kontrastgrej? Som jag förstått det sitter backlight i telefonen och inte i displayen.

Jag använder en ATmega168 och har hittat ett lib som borde fungera. På kommentarerna verkar det som att folk fått igång displayen.
nokia-3310-pcd8544-driver
Jag har kopplat enligt hans schema och dubbelkollat att allt är kopplat rätt. Enligt databald och forumposter så förstår jag det som att displayen endast vill ha 3.3V och inte 5V som det står i hans schema och därför har hela min labbplatta 3.3V för det fungerar avr:en på ändå.

Jag kör min ATmega168 på intern 8MHz medan han verkar kört sin ATmega8 på 4MHz. Kan det vara boven i dramat?

Nedan kommer den koden jag använder. Har även en lysdiod som blinkar för att få något livstecken ur min avr och den blinkar på som den ska. Kompilering ger inga fel eller varningar. Bifogar inte libfilerna om ni inte vill ha dom. Har inte gjort några ändringar där.

pcd8544.h

Kod: Markera allt

/* LCD Port */
#define LCD_PORT                   PORTB
#define LCD_DDR                    DDRB

/* ATMega8 port pinout for LCD. */
/* 0.2.6 bug, fixed */
#define LCD_DC_PIN                 PB0  /* Pin 0 */
#define LCD_CE_PIN                 PB2  /* Pin 2 */
#define SPI_MOSI_PIN               PB3  /* Pin 3 */
#define LCD_RST_PIN                PB4  /* Pin 4 */
#define SPI_CLK_PIN                PB5  /* Pin 5 */
main.c

Kod: Markera allt

#include <avr/io.h>
#include <util/delay.h>
#include <avr/pgmspace.h>
#include "pcd8544.h"

void ioinit(void);

int main(void) {

	ioinit();

	LcdInit();
	LcdClear();
    LcdFStr(FONT_1X,(unsigned char*)PSTR("Test"));
	LcdUpdate();

    _delay_ms(1000);
    LcdContrast(0x00);
    LcdUpdate();
    _delay_ms(1000);

    //display string
    LcdClear();
    LcdGotoXYFont(1,1);
    LcdFStr(FONT_1X,(unsigned char*)PSTR("Test"));
    LcdGotoXYFont(1,2);
    LcdFStr(FONT_1X,(unsigned char*)PSTR("Goto Test"));
    LcdUpdate();

    _delay_ms(5000);

	while(1) {
		PORTD = 0x00;
		_delay_ms(1000);
		PORTD = 0x80;
		_delay_ms(1000);
	}

	return(0);
}

void ioinit (void) {
    //1 = output, 0 = input
    DDRD = 0b11111111; //All outputs
}