Forum: Mikrocontroller und Digitale Elektronik EADOGL128-6 macht Mucken! An MSP430.


von Talentix (Gast)


Lesenswert?

Hey,

als heute endlich mein EADOG-LCD kam konnte ich es kaum erwarten. Doch 
Stunden später geht immer noch nichts (abgesehen von der 
Hintergrundbeleuchtung)..
Ich betreibe das Display gemäß der Schaltskizze "Low Power", mit einer 
Einschränkung: 1µF habe ich nicht auf Lager, deswegen nehme ich dafür 
jeweils 2x470nF parallel. Laute meinem Multimeter liegen diese 
Kondensatoren allerdings deutlich unter ihrem Nennwert (meist unter 
400). Ist das schon der Knackpunkt?! Ich kann es im Moment nicht 
beurteilen, habe keine besseren da. Aus dem Bauch raus würde ich eher 
sagen dass diese C's unkritisch sind... CS1B_ habe ich fest auf Masse 
gelegt. A0 bedient P1.0 des MSP, der Reset liegt an P1.1. Gemessen 
liegen 3,2 V Vdd an.

Hier ist mein Code, ich habe mich an das Initalisierungsbeispiel 
gehalten und wollte dann einfach mal das ganze Display leuchten sehen, 
daher folgt der Befehl "Display all Points" (0xA5). Habe auch schon 
versucht in den Display RAM zu schreiben, tut sich auch nichts.
1
#include <msp430g2302.h>
2
#include <intrinsics.h>
3
4
void main (void)
5
{
6
  unsigned long i = 0;
7
8
  P1DIR |= BIT0 + BIT1;
9
10
11
  WDTCTL = WDTPW + WDTHOLD;             
12
13
  USICTL0 |= USIPE7 +  USIPE6 + USIPE5 + USIMST + USIOE; 
14
  USICKCTL = USIDIV_4 + USISSEL_2 + USICKPL;      // /16 SMCLK
15
  USICTL1  |= USICKPH;
16
  USICTL0 &= ~USISWRST;                 // USI released for operation
17
18
  P1OUT = 0;                   // LCD zuruecksetzen
19
  P1OUT = BIT1;
20
21
  for(i=0; i < 200000; ++i){} // Dem LCD etwas Zeit geben
22
23
  USISRL = 0x40;
24
  USICNT = 8;
25
26
  USISRL = 0xA1;
27
  USICNT = 8;
28
29
  USISRL = 0xC0;
30
  USICNT = 8;
31
32
  USISRL = 0xA6;
33
  USICNT = 8;
34
35
  USISRL = 0xA2;
36
  USICNT = 8;
37
38
  USISRL = 0x2F;
39
  USICNT = 8;
40
41
  USISRL = 0xF8;
42
  USICNT = 8;
43
44
  USISRL = 0x00;
45
  USICNT = 8;
46
47
  USISRL = 0x27;
48
  USICNT = 8;
49
50
  USISRL = 0x81;
51
  USICNT = 8;
52
53
  USISRL = 0x10;
54
  USICNT = 8;
55
56
  USISRL = 0xAC;
57
  USICNT = 8;
58
59
  USISRL = 0x00;
60
  USICNT = 8;
61
62
  USISRL = 0xAF;
63
  USICNT = 8;
64
65
  USISRL = 0xA5;
66
  USICNT = 8;
67
68
  for(;;){}
69
}

Noch eine Überlegung von mir war, dass der SPI-Modus nicht passt (CKPL, 
CKPH). Laut dem Datenblatt müsste CKPL gesetzt werden, denn der Takt 
iddlet dort auf High. CKPH setze ich auch, denn es scheint als wird auf 
steigender Flanke gelesen (so interpretiere ich zumindest die Skizze auf 
Seite 5 im Datenblatt). Habe aber hier eigentlich alles ausprobiert, 
ohne das es was genutzt hätte. Vielleicht gibt es auch irgendwie Ärger 
mit der Bitfolge (msb first). Wer weiß Rat?

von spess53 (Gast)


Lesenswert?

Hi

Warum nimmst du nicht die Quellen von EA?

http://www.lcd-module.de/support.html

MfG Spess

von Talentix (Gast)


Lesenswert?

spess53 schrieb:
> Hi
>
> Warum nimmst du nicht die Quellen von EA?
>
> http://www.lcd-module.de/support.html
>
> MfG Spess

Danke erstmal. Hab es mir angesehen. Die Beschreibung ist zwar für UCSI 
(was mein Modell gar nicht hat) aber meine Initialisierung dürfte dem 
aber für USI entsprechen. Die Zeile "USICTL1  |= USICKPH;" habe ich 
wieder rausgenommen, das Polaritätsbit zu setzen ist offenbar richtig, 
und msb first ist bei USI von alleine eingestellt. Habe jetzt auch die 
andere Schaltung ("Low Voltage" mit 12V am VOUT) ausprobiert, aber es 
passiert immer noch nichts. Die Schaltung habe ich mehrfach 
kontrolliert, ich glaube dass es an der Software liegt.

von Talentix (Gast)


Lesenswert?

Habe übrigens noch High-Pegel an den (laut Schaltskizze im Datenblatt 
korekterweise) nicht angeschlossenen Pins 31,29,28,27 High-Pegel 
gemessen. 30 ist low. Alle anderen Pegel passen. Es fließen -19µA von 
den Pins 34 & 35 zur 3,3V - Versorgung. Die Polarität des Stromes 
wundert mich etwas. Noch mehr wundert mich, das zum VOut, wo ich die 
höhere Spannung angelegt habe, überhaupt kein Strom fließen soll. Das 
LCD wird doch nicht etwa kaputt sein? Auf die Genauigkeit meines DMM 
kann man in dem Messbereich aber auch nicht allzuviel geben...

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.