LCD RD,WR piny

Všetko čo sa týka mikropočítačov + Sekcia Arduino

Moderátori: psichac, Moderátori

Používateľov profilový obrázok
dexter117
Stály člen
Stály člen
Príspevky: 142
Dátum registrácie: 11 Okt 2011, 18:57
Vek: 29

LCD RD,WR piny

Príspevok od používateľa dexter117 » 18 Júl 2012, 23:26

Ahojte , mam problem rozchodiť RGB TFT Display modul , úspešne sa mi podarilo rozchodiť monochromatický grafický display ale na tomto mi niečo chýba a to pin E teda určený na prepis dát z Db0 - DB7 pinov do RAM pamäte displeja a naopak.
som si však istý že principialne to bude niečo úplne iné ako jednoduchý grafický displej.

Display model : HY32D
Controller : SSD1289

piny:
GND
+5V
D0-D15
RS
CS
RD
WR
RESET




Zaujíma ma ako preniesť dáta z Db0 - Db 15 do vnútornej pamäte a ako pri tom využijem piny RD a WR .Celkom som sa pozeral aj po článkoch ale asi som dosť nechápavý :)
ak mi niekto z vás dokáže poradiť budem vam vdačný :D
0

Používateľov profilový obrázok
jaromir
Power user
Power user
Príspevky: 4538
Dátum registrácie: 08 Júl 2011, 00:00
Vek: 40

Re: LCD RD,WR piny

Príspevok od používateľa jaromir » 20 Júl 2012, 15:32

Datasheet radica... nic?

Skus si ho stiahnut a dozvies sa toto:
1, Do displeja sa zapisuje pri CS signale aktivnom a datach na zbernici DB0..15 (log. 0) zostupnou hranou signalu WR
2, Z displeja sa cita pri CS signale aktivnom (log. 0) zostupnou hranou signalu WR, data mas potom na zbernici DB0..15
3, Maximalne napajacie napatie je 3,6V. 5V ho pravdepodobne usmazi
4, Caka ta vela prace. Obsluha tohto TFT-cka je podstatne zlozitejsia nez nejakeho trivialneho displeja s HD44780, okrem toho potrebujes vediet ako nastavit interne registre. Pokial to nie je v datasheete (co vacsinou v cinskych datasheetoch nebyva), zacina to byt ta skutocna zabava.

Zelam vela stastia :)
0

Používateľov profilový obrázok
dexter117
Stály člen
Stály člen
Príspevky: 142
Dátum registrácie: 11 Okt 2011, 18:57
Vek: 29

Re: LCD RD,WR piny

Príspevok od používateľa dexter117 » 20 Júl 2012, 17:53

Dakujem za pomoc, :D
pri klasických GLCD ho stačilo spustit inštrukciou a už som aj mohol zobrazovať

tento displej ma napajanie 5v zrejme bude mať vnútorný stabilizátor
to ale znamená že musim konvertovať logické úrovne z 5v na 3,6v ? :?
0

Používateľov profilový obrázok
jaromir
Power user
Power user
Príspevky: 4538
Dátum registrácie: 08 Júl 2011, 00:00
Vek: 40

Re: LCD RD,WR piny

Príspevok od používateľa jaromir » 20 Júl 2012, 18:00

Ukaz datasheet displeja alebo nieco, inak neviem o com debatujeme :)
0

mato3000
Power user
Power user
Príspevky: 9767
Dátum registrácie: 04 Jan 2009, 00:00
Bydlisko: BA

Re: LCD RD,WR piny

Príspevok od používateľa mato3000 » 20 Júl 2012, 20:32

no toto neni ani náhodou klasický GLCD, možno by nebolo zlé ak by si uviedol aj MCU aké chceš používať, aby nevznikol zbytočný omyl.
Prílohy
SSD1289.pdf
(803.74 KiB) 114 stiahnutí
0

Používateľov profilový obrázok
dexter117
Stály člen
Stály člen
Príspevky: 142
Dátum registrácie: 11 Okt 2011, 18:57
Vek: 29

Re: LCD RD,WR piny

Príspevok od používateľa dexter117 » 21 Júl 2012, 13:10

Rád by som použil PIC 18f4550 alebo ktorýkolvek iný PIC ktorý má dosť vývodov. Bohužial sa však obávam že nebude dosť rýchli na jeho obsluhu ale v podstate mi ide len o pochopenie princípu samotného displeja aj keby mu zobrazovanie obrazovej plochy trvalo 5 sekúnd tak mi to nevadí :) . Potom by som keďtak prešiel na inú architektúru MCU ... :D
0

Používateľov profilový obrázok
jaromir
Power user
Power user
Príspevky: 4538
Dátum registrácie: 08 Júl 2011, 00:00
Vek: 40

Re: LCD RD,WR piny

Príspevok od používateľa jaromir » 21 Júl 2012, 13:12

Hlavne napis detaily toho displeja. Podrobny datasheet alebo aspon kde si ho kupil.
Inak tento thread nema zmysel.
0

Používateľov profilový obrázok
dexter117
Stály člen
Stály člen
Príspevky: 142
Dátum registrácie: 11 Okt 2011, 18:57
Vek: 29

Re: LCD RD,WR piny

Príspevok od používateľa dexter117 » 21 Júl 2012, 13:40

iný datasheet ako už priložil mato3000 som bohužial nenašiel, mal som ten istý.
Display som kúpil na Ebayi
ak by niekto potreboval link :
http://www.ebay.com/itm/3-2inch-320x240 ... 3a6b327efe
iné detaily displeja ako sú uvedené v datasheete neviem :?
0

Používateľov profilový obrázok
jaromir
Power user
Power user
Príspevky: 4538
Dátum registrácie: 08 Júl 2011, 00:00
Vek: 40

Re: LCD RD,WR piny

Príspevok od používateľa jaromir » 21 Júl 2012, 14:12

No vidis, myslim ze je to podobny displej ako som pouzil tu https://picasaweb.google.com/1118907411 ... apperTest1
Ja tam mam navyse SD kartu, na riadenie som pouzil PIC32.
To napajanie 5V je asi mozne, ale nevidim tam nikde level convertor, takze budes musiet bud urobit konverziu 5/3V alebo rovno MCU napajat z 3,3V. Ja by som siel jednoznacne tou druhou cestou.

Caka ta pomerne dost zabavy. Na to, aby displej bol schopny nieco zobrazovat, treba mu po resete nastavit asi tri tucty registrov. Samozrejme k tomu treba mat najprv rozhodene read/write rutinky. Na webe sa daju najst nejake priklady ako na to, pokojne si stiahni nejaky kod pre AVR/ARM/Arduino/cokolvek, prepis mu low-level read/write rutinky tak aby sedeli na tvoj HW.
0

Používateľov profilový obrázok
dexter117
Stály člen
Stály člen
Príspevky: 142
Dátum registrácie: 11 Okt 2011, 18:57
Vek: 29

Re: LCD RD,WR piny

Príspevok od používateľa dexter117 » 21 Júl 2012, 17:18

to je pekná práca. Ani SD kartu a ani ten displej sa mi zatial nepodarilo rozchodiť :D
nenapadlo ma dať na VDD 3,3v, zdá sa to rozumné .
Tak sa pustím do práce ...
dakujem za pomoc :) . keby niečo nešlo tak sem ešte napíšem .
0

mato3000
Power user
Power user
Príspevky: 9767
Dátum registrácie: 04 Jan 2009, 00:00
Bydlisko: BA

Re: LCD RD,WR piny

Príspevok od používateľa mato3000 » 21 Júl 2012, 20:31

Jaromír, ten modul na 6tej fotke čo máš pripojený je nejaká externá Flash ?
0

Používateľov profilový obrázok
jaromir
Power user
Power user
Príspevky: 4538
Dátum registrácie: 08 Júl 2011, 00:00
Vek: 40

Re: LCD RD,WR piny

Príspevok od používateľa jaromir » 21 Júl 2012, 20:36

Nie, je to bluetooth modul, ktorym komunikujem s bluetooth GPS prijimacom - z neho beriem data o polohe a polohu zobrazujem na mape v 8-mich zoom leveloch kdekolvek na uzemi SR :)
0

mato3000
Power user
Power user
Príspevky: 9767
Dátum registrácie: 04 Jan 2009, 00:00
Bydlisko: BA

Re: LCD RD,WR piny

Príspevok od používateľa mato3000 » 21 Júl 2012, 20:41

aha, už som si všimol tú anténku
0

Používateľov profilový obrázok
dexter117
Stály člen
Stály člen
Príspevky: 142
Dátum registrácie: 11 Okt 2011, 18:57
Vek: 29

Re: LCD RD,WR piny

Príspevok od používateľa dexter117 » 24 Okt 2012, 19:51

keď som ešte nevedel aké logické úrovne potrebuje HY32D - displej, tak som tam dával 5 v .
Myslíte si že som ho už definitívne usmažil ? :(

alebo toleruje 5V úrovne ?
lebo som našiel knižnice original SSD1289 ktoré som si upravil pre PIC a nereaguje na príkazy
0

mato3000
Power user
Power user
Príspevky: 9767
Dátum registrácie: 04 Jan 2009, 00:00
Bydlisko: BA

Re: LCD RD,WR piny

Príspevok od používateľa mato3000 » 24 Okt 2012, 19:57

MAXIMUM RATINGS --- 4V a 25mA, pin z MCU ti nedá viac ako 20mA - aspoň myslím. takže nejaká šanca na prežitie by tu bola :D
0

Používateľov profilový obrázok
dexter117
Stály člen
Stály člen
Príspevky: 142
Dátum registrácie: 11 Okt 2011, 18:57
Vek: 29

Re: LCD RD,WR piny

Príspevok od používateľa dexter117 » 24 Okt 2012, 20:49

Ďakujem za nádej
pic 18f4550
Maximum output current sourced by any I/O pin ....................................................................................................25 mA
kua prečo je taký silný....... :D


nemám nejakú chybu tu ?

Kód: Vybrať všetko

void LCD_WriteRAM(int LCD_RAM ) // zápis 16 bitov do GDDRAM
{
  

PORTA=0b00000000;   // RS=0, WR=0
PORTB=LCD_RAM; // zápis prvých 8 bitov -> PORTB 0~7
PORTD=LCD_RAM>>8; //zápis druhých  8 bitov -> PORTD 0~7
__delay_ms(10);       // 10ms pauza
PORTA=0b00000001;  //RS=0, WR=1  
__delay_ms(10);       //  // 10ms pauza
PORTA=0b00000000;   //  RS=0, WR=0 

}
void LCD_WriteReg(char reg, int dat) // zápis 16 bit dát "dat" do registra "REG"
{
PORTA=0b00000010;// RS=1 , WR=0
PORTB=reg;   // PORTB = číslo registra
PORTD=0;       // PORTD = 0
__delay_ms(10);
PORTA=0b00000011;// RS=1 , WR=1
__delay_ms(10);
PORTA=0b00000010;// RS=1 , WR=0
__delay_ms(10);
PORTB=dat;   // zápis prvých 8 bitov -> PORTB 0~7
PORTD=dat>>8; //zápis druhých  8 bitov -> PORTD 0~7
__delay_ms(10);
PORTA=0b00000011;// RS=1 , WR=1
__delay_ms(10);

PORTA=0b00000010;// RS=1 , WR=0


}
prosím vás, ak s tým už niekto robil , nevedel by mi niekto skontrolovať tieto podprogramy?
0

mato3000
Power user
Power user
Príspevky: 9767
Dátum registrácie: 04 Jan 2009, 00:00
Bydlisko: BA

Re: LCD RD,WR piny

Príspevok od používateľa mato3000 » 24 Okt 2012, 21:10

no v C sa nevyznám, ale toto neni rutina na ovládanie toho TFT, to je kapánek zložitejšie. ty si stále mýliš to TFT s klasickým GLCD + radič.

no a aby som ťa trochu dostal do obrazu, tak tu si poriadne kukni. je tam po dtým LCD doska s ARMom a to je vlastne radič k tomu LCD. http://www.micro4you.com/store/hy-mini-stm32v.html

to čo ty považuješ za radič je takzvaný budič skla -SSD1289. to je obvod , ktorý sa stará o zobrazenie jednotlivých bodov a na tom LCD ich je viac 8 -12 ks, ale ich nevidíš
0
Naposledy upravil/-a mato3000 v 24 Okt 2012, 21:23, upravené celkom 1 krát.

Používateľov profilový obrázok
dexter117
Stály člen
Stály člen
Príspevky: 142
Dátum registrácie: 11 Okt 2011, 18:57
Vek: 29

Re: LCD RD,WR piny

Príspevok od používateľa dexter117 » 24 Okt 2012, 21:22

neee práveže toto je oficialna inicializácia, nechcel som s tým nikoho zatažovať :D ........

Kód: Vybrať všetko

void LCD_Init(void)
{ 
  LCD_WriteReg(0x0007,0x0021);    Delay(50);
  LCD_WriteReg(0x0000,0x0001);    Delay(50);
  LCD_WriteReg(0x0007,0x0023);    Delay(50);
  LCD_WriteReg(0x0010,0x0000);    Delay(90);
  LCD_WriteReg(0x0007,0x0033);    Delay(50);
  LCD_WriteReg(0x0011,0x6830);    Delay(50);
  LCD_WriteReg(0x0002,0x0600);    Delay(50);
  LCD_WriteReg(0x0012,0x6CEB);    Delay(50);
  LCD_WriteReg(0x0003,0xA8A4);    Delay(50);                       
  LCD_WriteReg(0x000C,0x0000);    Delay(50);
  LCD_WriteReg(0x000D,0x080C);    Delay(50);
  LCD_WriteReg(0x000E,0x2B00);    Delay(50);
  LCD_WriteReg(0x001E,0x00B0);    Delay(50);
  LCD_WriteReg(0x0001,0x2b3F);    Delay(50);  //RGB
  LCD_WriteReg(0x0005,0x0000);    Delay(50);
  LCD_WriteReg(0x0006,0x0000);    Delay(50);
  LCD_WriteReg(0x0016,0xEF1C);    Delay(50);
  LCD_WriteReg(0x0017,0x0103);    Delay(50);
  LCD_WriteReg(0x000B,0x0000);    Delay(50);
  LCD_WriteReg(0x000F,0x0000);    Delay(50);  
  LCD_WriteReg(0x0041,0x0000);    Delay(50);
  LCD_WriteReg(0x0042,0x0000);    Delay(50);
  LCD_WriteReg(0x0048,0x0000);    Delay(50);
  LCD_WriteReg(0x0049,0x013F);    Delay(50);
  LCD_WriteReg(0x004A,0x0000);    Delay(50);
  LCD_WriteReg(0x004B,0x0000);    Delay(50);
  LCD_WriteReg(0x0044,0xEF00);    Delay(50);
  LCD_WriteReg(0x0045,0x0000);    Delay(50);
  LCD_WriteReg(0x0046,0x013F);    Delay(50);
  LCD_WriteReg(0x0030,0x0707);    Delay(50);
  LCD_WriteReg(0x0031,0x0204);    Delay(50);
  LCD_WriteReg(0x0032,0x0204);    Delay(50);
  LCD_WriteReg(0x0033,0x0502);    Delay(50);
  LCD_WriteReg(0x0034,0x0507);    Delay(50);
  LCD_WriteReg(0x0035,0x0204);    Delay(50);
  LCD_WriteReg(0x0036,0x0204);    Delay(50);
  LCD_WriteReg(0x0037,0x0502);    Delay(50);
  LCD_WriteReg(0x003A,0x0302);    Delay(50);
  LCD_WriteReg(0x002F,0x12BE);    Delay(50);           
  LCD_WriteReg(0x003B,0x0302);    Delay(50);
  LCD_WriteReg(0x0023,0x0000);    Delay(50);
  LCD_WriteReg(0x0024,0x0000);    Delay(50);
  LCD_WriteReg(0x0025,0x8000);    Delay(50);
  LCD_WriteReg(0x004f,0x0000);    Delay(50);
  LCD_WriteReg(0x004e,0x0000);    Delay(50);




}

a toto je na spustenie/vypnutie LCD

Kód: Vybrať všetko

void LCD_DisplayOn(void)
{
  LCD_WriteReg(0x0007, 0x0173); 
}

void LCD_DisplayOff(void)
{
  LCD_WriteReg(0x0007, 0x0000); 
}


tak ten zápis som si len tak logicky odvodil že pri Command(RS teda CD=1) prvý sa zapisuje register a druhé dáta lebo v datasheete také niečo bolo ... :?
0

mato3000
Power user
Power user
Príspevky: 9767
Dátum registrácie: 04 Jan 2009, 00:00
Bydlisko: BA

Re: LCD RD,WR piny

Príspevok od používateľa mato3000 » 24 Okt 2012, 21:24

no neni ti rady, ale ak už budeš zúfalý tak sa kukni na tú stránku a over si ten tvoj "radič" čo to vlastne je
0

Používateľov profilový obrázok
dexter117
Stály člen
Stály člen
Príspevky: 142
Dátum registrácie: 11 Okt 2011, 18:57
Vek: 29

Re: LCD RD,WR piny

Príspevok od používateľa dexter117 » 24 Okt 2012, 21:25

a potom už sú tam len také lahodné funkcie ako nakresli štvorec , čiaru , okno , kružnicu .....

Kód: Vybrať všetko

void LCD_DrawCircle(int, int Ypos, int Radius)
{
  int16_t  D;/* Decision Variable */ 
  uint16_t  CurX;/* Current X Value */
  uint16_t  CurY;/* Current Y Value */ 
  D = 3 - (Radius << 1);
  CurX = 0;
  CurY = Radius;
  while (CurX <= CurY)
  {
    PutPixel(Xpos + CurX, Ypos + CurY);
    PutPixel(Xpos + CurX, Ypos - CurY);
    PutPixel(Xpos - CurX, Ypos + CurY);
    PutPixel(Xpos - CurX, Ypos - CurY);
    PutPixel(Xpos + CurY, Ypos + CurX);
    PutPixel(Xpos + CurY, Ypos - CurX);
    PutPixel(Xpos - CurY, Ypos + CurX);
    PutPixel(Xpos - CurY, Ypos - CurX);
    if (D < 0)
    { 
      D += (CurX << 2) + 6;
    }
    else
    {
      D += ((CurX - CurY) << 2) + 10;
      CurY--;
    }
    CurX++;
  }
}
0

Napísať odpoveď
  • Podobné témy
    Odpovedí
    Zobrazení
    Posledný príspevok