hm, seltsam. Da ich jetzt unsicher bin wie du das mit negativ meinst probier das mit dem Reset halt andersrum ( low, high, low) kommt mir aber komisch vor..
Sendet dein PIC wirklich was auf SPI??
deine beschaltung sollte eigentlich korrekt sein, damit habe ich das display damals (mit einem atmega auch in gang bekommen.
vielleicht kannst du von http://www.microsyl.com/nokialcd/nokialcd.html etwas abgucken.
konkret helfen kann ich leider nicht, weil ich von PICs keine ahnung habe.
gruesse
hm, seltsam. Da ich jetzt unsicher bin wie du das mit negativ meinst probier das mit dem Reset halt andersrum ( low, high, low) kommt mir aber komisch vor..
Sendet dein PIC wirklich was auf SPI??
wenn das geändert ist sieht der code eigentlich fuktionstüchtig aus.Code:... setup_spi(spi_master|SPI_H_TO_L|SPI_CLK_DIV_4); output_low(PIN_D3); // Chip select <--- low aktiviert das lcd //Display reset ...
sollte es dann immer noch nicht funktionieren:
1. liegt es vielleicht am spi modus, der sollte auf CPOL = 0, CPHA = 0 eigenstellt sein.
2. liegt es an der versorgungsspannung z.b. wenn die spannung einbricht wegen der spannungsteiler.
eventuell mal die ganze hardware auf max. 3,3 volt laufen lassen und auf spannungsteiler verzichten, vorausgesetzt der pic kann auch bei dieser spannung arbeiten.
Hallo
soo habe jetzt mal die änderung im code gemacht. funktioniert leider immer noch nicht.
Ich weiß nicht ob der pic wirklich etwas über SPI sendet. kann ich das testen??
@hansen : der pic läuft leider nicht mit 3,3 V betriebsspannung.
was meinst du mit CPOL und CPHA??
mfg
beim pic heisst das anscheinend CKP & CKE und die müssen beide auf null im entsprechenden register sein.was meinst du mit CPOL und CPHA??
(SPI_L_TO_H | SPI_XMIT_L_TO_H) ??
hallo
habe jetzt die beiden Bits CKE und CPE auf 0 gesetzt und es funktioniert wieder nicht.
code schaut jetzt folgendermaßen aus: (nur die main)
also ich habe jetzt nochmal die Spannungen an den Spannungsteilern gemessen und keine Spannungseinbrüche feststellen können.Code:void main() { // configure SPI // SMP CKE D/A P S R/W UA BF // 0 0 0 0 0 0 0 0 #bit SSPSTAT_CKE = 0xb.6 // WCOL SSPOV SSPEN CKP SSPM3 SSPM2 SSPM1 SSPM0 // 0 0 1 0 0 0 0 0 // SSPM3-SSPM0: 0000 -> Master Mode; Tosc/4 // SSP Enable Bit: 1 #bit SSPCON1_CKP = 0xb.4 SSPCON1_CKP = 0; SSPSTAT_CKE = 0; //int i; setup_spi(spi_master|SPI_H_TO_L|SPI_CLK_DIV_4); output_low(PIN_D3); // Chip select //Display reset output_high(PIN_C4); // RES delay_ms(5); output_low(PIN_C4); // RES delay_ms(10); output_high(PIN_C4); // RES output_low(PIN_D2); // D/C -> Command mode spi_write(0x21); // function set: extended instruction set spi_write(0xC8); // mittlerer Kontrast spi_write(0x06); // Temp. Ausgleich spi_write(0x13); // bias 1:48 spi_write(0x20); // function set: normal instruction set spi_write(0x0C); // display control set normal mode output_high(PIN_D2); // D/C -> DIsplay mode spi_write(0xFF); spi_write(0x00); spi_write(0xFF); spi_write(0x00); spi_write(0xFF); spi_write(0x00); while(true) { } }
Am SCK und SDO habe ich eine Spannung von 3,1V müsste stimmen oder??
Vdd 3,4V
RES 3,1V
D/C 3,1V
und am Vout (von dem pin geht der Elko auf Masse) habe ich 2,1V
mfg
das display kann daten über das spi interface mit maximal 4mhz bearbeiten, du hast aber das spi auf 20mhz/4 eingestellt... also den teiler noch erhöhen.
ok, du stellst ckp und cke auf null aber setup_spi(... SPI_H_TO_L...) überschreibt die werte doch wieder mit dem wert den SPI_H_TO_L darstellt.Code:... SSPCON1_CKP = 0; SSPSTAT_CKE = 0; //int i; setup_spi(spi_master|SPI_H_TO_L|SPI_CLK_DIV_4); ...
sehe ich das so richtig?
laut der tabelle die ich gefunden habe ist SPI_H_TO_L gleich ckp=1 und cke =1.
http://www.fernando-heitor.de/compon...g6469/#msg6469
hallo
ja stimmt du hattest recht, war ein blödsinn von mir.
Jetzt habe ich noch folgendes geändert: setup_spi(spi_master|SPI_CLK_DIV_16);
dann habe ich das Programm in den pic gespielt und ausprobiert.
das display hat genau das angezeigt was es sollte.
Sooo und dann habe ich die spannungsversorgung unterbrochen und wieder angelegt und jetzt tut sich nichts mehr!! jetzt wird der display controller kaputt sein, das display tut gar nix mehr!!
oder kann das noch andere gründe haben??
mfg
ich bins nochmal.
Das Problem hat sich gelöst. ein schlechter KOntakt an der Versorgung vom LCD.
Vielen dank das ihr mir geholfen habt. Das Display funktioniert einwandfrei!!
Nochmal danke!!
mfg
Jetzt werd ich bald wahnsinnig!!
Das Display hat eine zeitlang super funktioniert!! und dann wollt ichs nochmal einschalten und jetzt tut sich schon wieda nichts, obwohl ich am code nichts geändert habe.
Jetzt habe ich mir schon gedacht das es an der 3,4V Vdd Versorgung liegt, weil im Datenblatt steht max. 3,3V. Joo und jetzt der Controller kaputt ist. kann das sein oder sollten 3,4V eh kein Problem darstellen??
mfg
Lesezeichen