displej EADOGM128B-6 - pomoc

Fanda Kopriva info@elektronikavyvoj.cz
Úterý Duben 7 10:40:20 CEST 2009


dobry den
ted si s nim hraju
posilam svoje zapojeni piny 11,12,15,16,jsou pro mensi typ displeje 
.50-53 pro TOUCH
PWM1-3 je rizeni barevneho podsvetleni
kondenzatory jsou 1uF
napajeni 3,3V
LCDD jsou data do displeje
LCDC hodiny
LCDA adresa comand / data
LCDR reset
LCDN cipselect
s uvedenim do chodu neni zadny problem.

prikladam taky pro informaci ridici procedury .
musi se konfigurovat SPI -v procedure LCDINIT je to pro SILABS F340.
SPIF je priznak odeslani bytu pres SPI,
SPI0DAT je vystupni bufer SPI

procedury PIFC vysle comand na na SPI
                PIFD vysle data na SPI
               LCDINIT inicializuje displej
               LCDCLEAR maze displej
               LCDXY nastavi pozici pro zapis
               LCDZN nastavi pozici a vypise znak (znakova sada je 
posunuta o 32)
               LCDTXT vypise text

Je to v pascalu ,ale princip by mel byt videt

var
   lcdd  :boolean at p2.2;  {lcd data R k mosi SPI}
   lcdc  :boolean at p2.3;  {lcd clk  R k sck SPI}
   a0lcd  :boolean at p2.4; {lcd adresa}
   reslcd :boolean at p2.5; {lcd reset}
   lcdn  :boolean at p2.6;  {lcd cs}

const font1:array[0..479] of byte=(
$00,$00,$00,$00,$00,
$00,$00,$4f,$00,$00,
$00,$07,$00,$07,$00,
$14,$7f,$14,$7f,$14,
$24,$2a,$7f,$2a,$12,
$23,$13,$08,$64,$62,
$36,$49,$55,$22,$50,
$00,$05,$03,$00,$00,
$00,$1c,$22,$41,$00,
$00,$41,$22,$1c,$00,
$14,$08,$3e,$08,$14,
$08,$08,$3e,$08,$08,
$00,$50,$30,$00,$00,
$08,$08,$08,$08,$08,
$00,$60,$60,$00,$00,
$20,$10,$08,$04,$02,
$3e,$51,$49,$45,$3e, {0}
$00,$42,$7f,$40,$00,
$42,$61,$51,$49,$46,
$21,$41,$45,$4b,$31,
$18,$14,$12,$7f,$10,
$27,$45,$45,$45,$39,
$3c,$4a,$49,$49,$30,
$03,$01,$71,$09,$07,
$36,$49,$49,$49,$36,
$06,$49,$49,$29,$1e, {9}
$32,$49,$79,$41,$3e,
$00,$00,$00,$00,$00,
$00,$00,$00,$00,$00,
$00,$00,$00,$00,$00,
$00,$00,$00,$00,$00,
$00,$00,$00,$00,$00,
$00,$00,$00,$00,$00,
$7e,$11,$11,$11,$7e, {A}
$7f,$49,$49,$49,$36,
$3e,$41,$41,$41,$22,
$7f,$41,$41,$22,$1c,
$7f,$49,$49,$49,$41,
$7f,$09,$09,$09,$01,
$3e,$41,$49,$49,$7a,
$7f,$08,$08,$08,$7f,
$00,$41,$7f,$41,$00,
$20,$40,$41,$3f,$01,
$7f,$08,$14,$22,$41,
$7f,$40,$40,$40,$40,
$7f,$02,$c0,$02,$7f,
$7f,$04,$80,$10,$7f,
$3e,$41,$41,$41,$3e,
$7f,$09,$09,$09,$06,{P}
$3e,$41,$51,$21,$5e,
$7f,$09,$19,$29,$46,
$46,$49,$49,$49,$31,
$01,$01,$7f,$01,$01,
$3f,$40,$40,$40,$3f,
$1f,$20,$40,$20,$1f,
$3f,$40,$38,$40,$3f,
$63,$14,$08,$14,$63,
$07,$08,$70,$08,$07,
$61,$51,$49,$45,$43,
$00,$00,$00,$00,$00,
$00,$00,$00,$00,$00,
$00,$00,$00,$00,$00,
$00,$00,$00,$00,$00,
$00,$00,$00,$00,$00,
$00,$00,$00,$00,$00,
$00,$00,$00,$00,$00,
$00,$00,$00,$00,$00,
$00,$00,$00,$00,$00,
$00,$00,$00,$00,$00,
$00,$00,$00,$00,$00,
$00,$00,$00,$00,$00,
$00,$00,$00,$00,$00,
$00,$00,$00,$00,$00,
$00,$00,$00,$00,$00,
$00,$00,$00,$00,$00,
$00,$00,$00,$00,$00,
$00,$00,$00,$00,$00,
$00,$00,$00,$00,$00,
$00,$00,$00,$00,$00,
$00,$00,$00,$00,$00,
$00,$00,$00,$00,$00,
$00,$00,$00,$00,$00,
$00,$00,$00,$00,$00,
$00,$00,$00,$00,$00,
$00,$00,$00,$00,$00,
$00,$00,$00,$00,$00,
$00,$00,$00,$00,$00,
$00,$00,$00,$00,$00,
$00,$00,$00,$00,$00,
$00,$00,$00,$00,$00,
$00,$00,$00,$00,$00,
$00,$00,$00,$00,$00,
$00,$00,$00,$00,$00,
$00,$00,$00,$00,$00,
$7f,$7f,$7f,$7f,$7f,
$ff,$ff,$ff,$ff,$ff);

procedure pifc (covys:byte data);
begin
 lcdn:=false;a0lcd:=false; spif:=false; spi0dat:=covys;repeat  until 
spif;lcdn:=true;
end;

procedure pifd (covys1:byte data);
begin
 lcdn:=false;a0lcd:=true; spif:=false;spi0dat:=covys1;repeat  until 
spif;lcdn:=true;
end;

procedure lcdxy(lcdr,lcdx:byte);
begin
pifc($b0 or lcdr);
pifc($10 or (lcdx div 16));
pifc($00 or (lcdx and $f));
end;

procedure lcdzn(ldct:byte);
begin
               lcdxy(radek,sloupec);
unw1:=ldct;unw1:=unw1-32;unw1:=unw1*5;
pifd(font1[unw1]);
inc(unw1);pifd(font1[unw1]);
inc(unw1);pifd(font1[unw1]);
inc(unw1);pifd(font1[unw1]);
inc(unw1);pifd(font1[unw1]);
pifd(0);          
                    sloupec:=sloupec+6;                   
end;

procedure lcdinit;
begin
{Initialisation example for single supply +3.3V (bottom view)}
{(2) Display start line set 0 $40 Display start line 0  $40+line    }
{(8) ADC set                0 $A1 ADC reverse *)                           }
{(15) Common output mode select 0 $C0 Normal COM0~COM63     }
{(9) Display normal/reverse     0 $A6 Display normal   $a7 reverse         }
{(11) LCD bias set              0 $A2 Set bias 1/9 (Duty 1/65) 1/7 
$a3          }
{(16) Power control set         0 $2F Booster, Regulator and Follower on}

{(20) Booster ratio set         0 $F8 Set internal Booster to 
4x}                                                      
{                               0 
$00                                       }

{(17) V0 voltage regulator set  0 $27  Contrast set   }
{(18) Electronic volume mode set 0 $81                                  }
{                                0 $16                                }

{(19) Static indicator set       0 $AC  No indicator                     }
{                                0 $00                                   }

{(1) Display ON/OFF              0 $AF Display on                        }
{reset $e2}

    oscicn:=$83;
    SPI0CFG   := $70;
    SPI0ckr   := $5;
    SPI0CN    := $0D;
    NSSMD0:=true;           


reslcd:=false;pwod:=255;repeat dec(pwod) until pwod=0;
reslcd:=true;pwod:=255; repeat dec(pwod) until pwod=0;
pifc($E2);
pifc($40);
pifc($a1);
pifc($c0);
pifc($a6);
pifc($a2);
pifc($2f);
pifc($f8);
pifc($00);
pifc($27);
pifc($81);
pifc($16);
pifc($ac);
pifc($00);
pifc($af);
pifc($b0);
pifc($10);
pifc($00);
for pwod:=0 to 7 do begin
pifc($b0 or pwod);
pifc($10);
pifc($00);
for pwod1:=0 to 127 do begin
 if ((pwod1<2) or (pwod1>125)) then pwod2:=$ff else begin
                     if pwod=0 then pwod2:=3 else begin
                                 if pwod=7 then pwod2:=$c0 else pwod2:=0;
                                                  end;
                                                    end; pifd(pwod2);
                    end;
                    end;
end;


procedure lcdclear;
begin
for pwod:=0 to 7 do begin
pifc($b0 or pwod);
pifc($10);
pifc($00);
for pwod1:=0 to 127 do begin
 if ((pwod1<2) or (pwod1>125)) then pwod2:=$ff else begin
                     if pwod=0 then pwod2:=3 else begin
                                 if pwod=7 then pwod2:=$c0 else pwod2:=0;
                                                  end;
                                                    end; pifd(pwod2);
                    end;
                    end;

end; 

procedure lcdtxt;
begin
for pwod:=1 to ord(poms[0]) do lcdzn(ord(poms[pwod]));
end;





Ondřej Janovský napsal(a):
> Zdravim,
>
> nema nekdo s vyse jmenovanym displejem zkusenosti?
> Zapojil jsem ho podle navodu s pomocnymi kondenzatory jako nabojovou 
> pumpou. Napajeni je 3,4V .
>
> At se snazim sebevic, nejak mi s nim nejde komunikovat. Zkousim 
> inicializacni sekvenci z navodu, zkousim nahodit vsechny body do ON 
> prikazem 0xA5, ale stale zadne viditelne zmeny.
> Muze mi nekdo pomoci?
>
> Predem dekuji,
>
>     Oja
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list@list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
>
>
>   

------------- další část ---------------
Netextová příloha byla odstraněna...
Jméno: dog128.JPG
Typ: image/jpeg
Velikost: 88878 bytes
Popis: [žádný popis není k dispozici]
Url : http://list.hw.cz/pipermail/hw-list/attachments/20090407/d40b9cb3/attachment-0002.jpeg 
------------- další část ---------------
Netextová příloha byla odstraněna...
Jméno: info.vcf
Typ: text/x-vcard
Velikost: 183 bytes
Popis: [žádný popis není k dispozici]
Url : http://list.hw.cz/pipermail/hw-list/attachments/20090407/d40b9cb3/attachment-0002.vcf 


Další informace o konferenci Hw-list