Problem bei Nokia 3310 Display macht mich fertig!

Gast #1228658
Lesenswert?

Hallo!

Ich versuche schon sehr lange ein Nokia 3310 Display mit einem Pic 
anzusteuern! Ich habe auch schon sehr viele Informationen zu diesem 
Thema gefunden! Doch leider klappt es nicht.

Mein Display arbeitet einfach nicht und ich weiß einfach nicht warum!

Habe ich vielleicht irgendetwas im Code übersehen dass falsch sein 
könnte??
1
#include<18F4680.h>
2
#use delay (clock=20000000)
3
#fuses HS, NOWDT, NOPROTECT, NOLVP
4
#include<stdlib.h>
5
#include<stdio.h>
6

7
void main (void) {
8
   //int i;
9
   // configure SPI
10
   // SMP  CKE  D/A  P  S  R/W  UA  BF
11
   //  0    0    0   0  0   0    0   0
12
   #bit SSPSTAT_CKE = 0xb.6
13
   // WCOL  SSPOV  SSPEN  CKP  SSPM3  SSPM2  SSPM1  SSPM0
14
   //  0      0      1     0     0      0      0      1
15
   // SSPM3-SSPM0: 0000 -> Master Mode; Tosc/16
16
   // SSP Enable Bit: 1
17
   #bit SSPCON1_CKP = 0xb.4
18
   
19
   SSPCON1_CKP = 0;
20
   SSPSTAT_CKE = 0;
21
 
22
   setup_spi(spi_master|SPI_CLK_DIV_16);   
23
   
24
   //Display reset
25
   output_high(PIN_C4); // RES  
26
   delay_ms(5);
27
   output_low(PIN_C4); // RES  
28
   delay_ms(20);
29
   output_high(PIN_C4); // RES  
30
   
31
   output_low(PIN_D3);  // Chip enabled
32

33
   output_low(PIN_D2);  // D/C -> DIsplay mode
34
   spi_write(0x21);     
35
   spi_write(0xC8);     
36
   spi_write(0x06);     
37
   spi_write(0x13);     
38
   spi_write(0x20);
39
   spi_write(0x0C);
40
   
41
   output_high(PIN_D2);  // D/C -> DIsplay mode
42
   
43
   spi_write(0xFF);
44
   spi_write(0x00);
45
   spi_write(0xFF);
46
   spi_write(0x00);
47
   spi_write(0xFF);
48
   spi_write(0x00);
49
   spi_write(0xFF);
50
   spi_write(0x00);
51
   spi_write(0xFF);
52
   spi_write(0x00);
53
   spi_write(0xFF);
54
   spi_write(0x00);
55
   
56
   while(true) { 
57
   }
58
}

Die Schaltung habe ich so aufgebaut, wie es im Internet sehr sehr oft zu 
finden ist:
PIN
1 -> 3,3V
2 -> SCLK
3 -> SDI
4 -> D/C
5 -> SCE
6 -> GND
7 -> Vout
8 -> RES
(bei jedem PIN vom Display max.3,3V -> durch Spannungsteiler)

Ich habe schon alle Lötstelle des öfteren überprüft und auch mit dem 
Messgerät die Verbindungen überprüft, aber ich finde keinen Fehler!

Kann es sein, dass das Display beim anlöten beschädigt worden ist?
also ist das Display darauf sehr empfindlich (war nicht ganz einfach die 
Drähte anzulöten da ich nicht einen so feinen lötkolben habe)

Habe auch noch ein Display von einem Nokia5110 zuhause aber das 
funktioniert mit diesem Code auch nicht (habe den 9tn PIN 
berücksichtigt; PIN6 auf V+ -> interner Oszillator)

aja die beiden DIsplays funktionieren, also das vom 5110 funktioniert 
mit Sicherheit immer noch! und das vom 3310er hat, bevor ich die Drähte 
angelötet habe, auch funktioniert (jetzt kann ich es ja nicht mehr in 
das handy einbauen und testen)

Ich hoffe mir kann jemand helfen und danke schon im Voraus!

mfg dewe
Gast #1228677
Lesenswert?

So habe jetzt mal den SPI Takt umgeändert, funktioniert leider immer 
noch nicht. also setup_spi(setup_spi(spi_master|SPI_CLK_DIV_64)

was ich noch vergessen habe, der Kondensator der von Vout auf Masse geht 
hat einen Wert von 4,7µF! Müsste auch passen, da im Datenblatt steht, 
dass mindenstens ein 1µF Elko verwendet werden muss.

mfg
Persönliche Seite #1229223
Lesenswert?

Versuch auch mal ein paar delays mehr, hier treten auch sehr hohe 
Frequenzen auf, die dein Aufbau mit Widerstandsteilern nicht kann.

   output_high(PIN_C4); // RES
   delay_ms(5);
   output_low(PIN_C4); // RES
   delay_ms(20);
   output_high(PIN_C4); // RES

delay_ms(20); //hier

   output_low(PIN_D3);  // Chip enabled

delay_ms(20); //hier

   output_low(PIN_D2);  // D/C -> DIsplay mode

delay_ms(20);  //und hier

   spi_write(0x21);
   spi_write(0xC8);

Welche Werte verwendest du in den Spannungsteilern?

Grüße,

Peter
Gast #1231282
Lesenswert?

Hallo,

Hab leider kein Oszilloskop.

Ich habe 2 3310 Displays(LPH7977), beide funktionieren, wenn ich das 
eine Display verwende funktioniert mein code (aber auch nicht richtig, 
denn der Vout Kondensator braucht nach abschalten der Spannung sehr 
lange bis er entladen ist, und erst dann funktioniert das display 
wieder), beim anderen tut sich gar nichts, sollte aber funktionieren ist 
ja das selbe!
Ich versteh das ned!! diese Displays bringen mich noch zur 
verzweiflung!! aber wir werden den fehler schon finden!!*g*

mfg

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren