Fórum témák

» Több friss téma
Fórum » T6963C grafikus kijelző
Lapozás: OK   1 / 1
(#) Thomas10100 hozzászólása Nov 3, 2005 /
 
Hali van ez a grafikus kijelzőm(talán 64x96-os). A kérdésem hogy honnét tudnák ehhez letölteni progit? vagy legalább kipróbálni hogy jó-e. A nyomtató portra már helyesen rá van kötve. De ugye progi nélkül nem csinál semmit. Valahogy ki lehetne próbálni ? 8 bites porttal kommunikál kifelé+ 4 vezérlő jel.

Kérlek segítsetek!
Köszi előre is
(#) source2 válasza Thomas10100 hozzászólására (») Nov 3, 2005 /
 
hali

a forum.lcdinfo.com (nem kell www) ott fennt van a kapcsolási rajz, a progit hozzá pedig letöltheted a www.lcdinfo.com

ha lesz időm kilinkelem
(#) source2 válasza source2 hozzászólására (») Nov 3, 2005 /
 
na itt jobb, ő rákötötte a gépre:

http://gamma.nic.fi/~jukkai/lcd/lcd.htm

Ez lehet hogy megy az LCDinfo- val is,de nem bizti

de ha van kedved még böngészhetsz itt:

http://www.skippari.net/lcd/t6963c_links.html
(#) Thomas10100 válasza source2 hozzászólására (») Nov 3, 2005 /
 
Köszi mindezeket!
De akkor még valamit had kérdezzek nem LCD ügyben.
VGA-ból RCA videójellé átalakító kapcsolás kéne amibe olcsó és kapható is az IC, mert már találtam de nem tudok bele venni IC-t.
Köszi a gyors választ!( a kijelzőre )
(#) drmogus hozzászólása Jún 4, 2008 /
 
Látom kicsit már rági a topic, de remélem azért még valakik foglalkoznak a témával.
Ami engem érdekelne: Van egy DG-24128 es FSTN LCD-m. (T6963C 240*128) Nagy kedvem nem volt kontrollere kötni, gondoltam rákötöm PC-re próbaként. Találtam egy progit, LCD Studio, asszem. LCD-t rákötöttem LPT-re, adatlapja szerint meg neten egy két rajzot áttanulmányozva. Viszont bármit csinálok, az LCD -n semmi nem jelenik meg.
Valakinek tippje? Egyébként az LCD bontott, a T6963as chip közepe enyhén púpos, de nem tápzárlatos és oszcillátora is megy. Nem 100 hogy teljesen jó.
Minden tippet előre is köszi.
(#) Steven19 válasza drmogus hozzászólására (») Jan 27, 2015 /
 
Helló! A kontraszt lábra tettél -12,4V-ot?
A hozzászólás módosítva: Jan 27, 2015
(#) don_peter válasza Steven19 hozzászólására (») Jan 27, 2015 /
 
Amire válaszoltál az egy 2008-as bejegyzés
Gondolom ez alatt a 6.5év alatt csak sikerült kitesztelnie a jó megoldást
(#) don_peter hozzászólása Ápr 8, 2015 /
 
Uraim, van egy T6963-as 240x64-es GLCD-m és maximálisan 31bájtnyi adatot tudok a CGRAM-ba elmenteni.
Karakteres részéről lenne szó..
Van rá mód, hogy ne csak 31bájtot tudjak letárolni, hanem akár sokkal többet is?
Elvileg 2kb adat tárolására alkalmas, legalább is ezt írja az adatlap.
Van esetleg ötlet vagy tapasztalat a CGRAM használatával kapcsolatban, hogy miért nem mehet a több adat egyszeri tárolása?
Gondoltam még itt arra, hogy a lapozó mérete 32bájt és ezért lehet gond, de ez azért csak légből kapott gondolat...
(#) protorg hozzászólása Ápr 26, 2023 /
 
Sziasztok ,ha még nézi valaki a topicot.
van egy t6963 as 240x128 glcd ,nem tudom elinditani.
Egy kis elmélet kéne .most igy próbálom.DE NEM

rstatus: 'status olvasas amig db0 és db1 amig nem lesz 1
rd_ = 0
wr_ = 1
ce = 0
cd = 1

TRISD = 255
ASM: btfsc db0 ';ha 0 a kov atugrasa
ASM: btfss db1 'ha 1 a kov atugras
ASM: Goto $ - 2 ';no, check again

wr_ = 1
rd_ = 1
ce = 1
Return

writedata2: '2 byte küldés a parancs elött---------------

Gosub rstatus

PORTD = datal
TRISD = 0

cd = 0
wr_ = 0
ce = 0 '12mhz kb 1.3 us ig lesz alacsony (min 80ns kell)
rd_ = 1

Gosub rstatus

PORTD = datah
TRISD = 0

wr_ = 1
rd_ = 1
ce = 1

Return
(#) don_peter válasza protorg hozzászólására (») Ápr 28, 2023 /
 
Hol tartasz a programban. Inicializálás sem működik?
Bekötést ellenőrizted az tutira jó?

Nálam az init így néz ki + csatoltam az adatlapot is:
  1. RD = 1;
  2.         WR = 1;
  3.         CD = 1;
  4.         RESET = 0;
  5.         //~1ms delay
  6.         RESET = 1;
  7.        
  8.         // 0x0780, 0x40         // Grafikus és szöveges körzetek beállításai, 8x8-as betüméretnél
  9.         // 0x0028, 0x41 // Hány bájt egy sor (40)
  10.         // 0x0000, 0x42
  11.         // 0x0028, 0x43 // Hány bájt egy sor (40)
  12.  
  13.  
  14.         // 0x0000, 0x24         // Pointer vissza
  15.         // Töröljük az összes RAM-ot az LCD-ben (8k) (64x240-es LCD-ben)
Neked nyilván a kijelző méretnek megfelelően kell az adatokat beállítani, nekem 64x240-es kijelzőm van.
A sorokban (beállítások) az első az adat, a második a cím regiszter.
A hozzászólás módosítva: Ápr 28, 2023
(#) don_peter válasza protorg hozzászólására (») Ápr 28, 2023 / 1
 
Még annyi, hogy a status az én értelmezésem szerint a következő képen működik.
Én inkább C-ben programozok, tehát abban mutatom, remélem érted a lényeget belőle:
  1. // Adatküld és parancs küldés 1 bájton (8bit)
  2. void glcd_WriteByte(int cd, int data){
  3.     int status = 0, temp = 0;
  4.     DATA = 0xFF; // Port bemenetre állítása
  5.         TRISC = 0; // Port kimenetre (vezérlő bitek)
  6.         RD = 1;
  7.         WR = 1;
  8.         CD = 1;
  9.         while(status != 0x03) {  // várakozunk az LCD-re
  10.        RD = 0;
  11.        temp = DATA; // Státusz regiszter beolvasása
  12.        RD = 1;
  13.        status = temp & 0x03;
  14.     }
  15.         TRISD = 0x00; // Kimenetre (DATA)
  16.     CD = cd; // Parancs vagy adat jelzése
  17.     DATA = data; // Küldendő adatot kitesszük portra
  18.     RD = 1;         // Olvasás tiltása
  19.     WR = 0;         // írás engedélyezve
  20.     WR = 1;         // Írás tiltása
  21. }
Kb ennyiből áll 1 byte adat elküldése. Amire fontos figyelni, hogy CD-ben határozod meg, hogy parancsot vagy adatot akarsz küldeni illetve ez csak 1 byte adat küld ki. A státusz vizsgálatánál a teljes státusz regisztert beolvassa, majd maszkólja, hogy STA1 és STA0 teljesül e. Mint az adatlap is mutatja.
Idézet:
„|STATUS|
ha igen | OK | <---- |STA0== 1 && STA0 == 1| ----> ha nem, akkor |STATUS|
|OK|”
A hozzászólás módosítva: Ápr 28, 2023
(#) protorg válasza don_peter hozzászólására (») Ápr 28, 2023 /
 
a bekötés jó,(volt egy demo prg az ki irt egy csomó karaktert de a 3.inditasután törölte magát ,meg kellene venni)
igen látom amit kuldtem

ASM: btfsc db0 ';ha 0 a kov atugrasa
ASM: btfss db1 'ha 1 a kov atugras
ASM: Goto $ - 2 ';no, check again

ez a sta 0 lábat figyeli hogy 1-e ,ha igen akkor a sta 1 lábat nézi ha 1 az is akkor megy tovább a prg.

az elméletem (de ez nem működik)

1.status ellenörzés
2.2db adat küldés
3.1db parancs küldés
ez megy is (parancsok H40,H41,H43,H22,datal = %10000001 'exor mode,H24)
H24 ez után vége.

a lcd teljesen üres a képernyün semmi még elvétve karakterek semmi.
a status byte értéke 03 ,ha auto modba kapcsolok akkor is ,és utánna a sta 2,3 kéne figyelni,de az érték 03.????
(#) protorg válasza don_peter hozzászólására (») Ápr 28, 2023 /
 
az 6..8 sorodat nem értem??
status olvasásnál nem ?
rd_ = 0
wr_ = 1
ce = 0
cd = 1
kell irni mint adat olvasás?

és 10és 12 sor ?
nem értem de kipróbálom így is.
(#) don_peter válasza protorg hozzászólására (») Ápr 28, 2023 / 1
 
Nekem ezzel a kóddal működik, persze ehhez kell az init is. Azt feljebb írtam, hogy néz ki, csak persze az LCD terület más lesz neked.

A status az RD billegtetésével fog érkezni, vagy is ha elérhető az LCD, akkor 0x03 lesz státusz regiszter értéke, utána lehet írni a kijelzőre.
A 6-tól 8-ig sorokban alapra állítom a kijelzőt, majd utána RD-t billegtetem és olvasom a portra kerülő adatot, ami a STATUS regiszter lesz. Majd, ha megkaptam a 0x03-at vagy is az STA0 és STA1-et, akkor tovább megy és kimenetre állítom az adat portot, majd ki írom a szükséges adatot, majd csak ez után engedélyezem a kijelző vezérlő lábakat.
Utóbbi fontos, ha nagyon gyors az MCU amit használsz, akkor érdemes a portra írás után várni egy picit, hogy fixen beálljon a kimenet.
(#) protorg válasza don_peter hozzászólására (») Ápr 28, 2023 /
 
igen ez az első hiba,az óra hz túl sok volt 4Mhz nél járok ez aszem jó.de még nem sikerült kiirni semmit
(#) don_peter válasza protorg hozzászólására (») Ápr 29, 2023 / 1
 
AUTO módban STA2 és STA3-at kell figyelni, vagy is
  1. ((status & 0x04)||(status & 0x08)) == 1
Az adatlap írja is, hogy ha STA2 magas, akkor olvasás aktív, ha STA3 magas akkor az írás. Mivel az esetek többségénél inkább az írást használjuk ezért autó módban a 0x08 lesz a fontos maszk.

Az adatlap 10. oldalán látható folyamatábrákat érdemes megnézned, főleg ha használod az autó módot is. Javaslom, hogy tesztelés miatt minden vezérlés után tegyél egy kis késleltetést, hátha még mindig gyors az MCU. Inkább legyél lassabb mint, hogy pont a gyorsaság miatt ne működjön elsőnek..

A teljes initet mutatom megint, hátha nem jó nálad valami:
  1. // LCD inicializálása. // glcd_init(LCD szélesség, LCD magasság, betűméret szélesség)
  2. void glcd_init(unsigned short int res_x, unsigned short int res_y, unsigned char betu){
  3.         unsigned short int counter;
  4.  
  5.         TextHome = (res_x/betu)*res_y;  // 0x0780; 8x8-as betüméretnél
  6.                                                                         // 0x0A00; 6x8-as betüméretnél
  7.  
  8.         DATA = 0xFF;
  9.         TRISC = 0;
  10.         RD = 1;
  11.         WR = 1;
  12.         CD = 1;
  13.         RESET = 0;
  14.         Delay1KTCYx(12);        //~1ms
  15.         RESET = 1;
  16.        
  17.         glcd_WriteCmd2(TextHome, 0x40);         // Grafikus és szöveges körzetek beállításai
  18.         glcd_WriteCmd2(TextArea, 0x41);
  19.         glcd_WriteCmd2(GraphicsHome, 0x42);
  20.         glcd_WriteCmd2(GraphicsArea, 0x43);
  21.  
  22.         glcd_WriteCmd2(0x0000, SetADDRPointer);         // Pointer vissza
  23.  
  24.         glcd_WriteByte(1, AutoModeWrite);       // Töröljük az összes RAM-ot az LCD-ben (8k)
  25.         for(counter = 0; counter < 0x1fff; counter++){
  26.                 glcd_WriteByteAuto(0);                  // Feltöltjük mindent nullákkal
  27.         }
  28.         glcd_WriteByte(1, AutoModeReset);
  29. }

A glcd_WriteByteAuto() függvény csak annyiban tér el a feljebb linkelt glcd_WriteByte()-tol, hogy 1 adatot fogad és, hogy a státusz vizsgálat és maszkolás 0x08-ra történik, mivel csak írni akarunk.
A glcd_WriteCmd2() függvény meg csak azt oldja meg, hogy a kapott 2byte adatot megfelelő sorrendbe küldi ki.
(#) protorg hozzászólása Ápr 29, 2023 /
 
van már 'piszok' a képernyőn,a kurzort tudom irányian és a méretét változtatni.
De valamiért nem tudok karaktert írni, és a képernyőt törölni se a txt se a grafikust.
valami az adat kiküldéssel nem kerek nekem ,mert a kurzorhoz csak egy parancs kell adat nélkül.
A CE lábat mikor vezéreled ?
DE már látom a fényt az alagút végén.
(#) protorg hozzászólása Ápr 29, 2023 /
 
megszületett a grafikát még nem próbáltam de megy ,

A hiba a orajel volt sok, és a port irásakor késleltetés kell, valamint a status olvasaskor én nem csináltam az RD ki be kapcsolást ,de csak ugy müködik .
Nagyon köszönöm a segitséget !
(#) don_peter válasza protorg hozzászólására (») Ápr 29, 2023 /
 
Nocsak örülök, akkor csak össze jött. Igen, gondoltam, hogy az időzítésen bukhat el a dolog. Azzal mindig érdemes foglalkozni, mert baromi idegesítő, hogy ha csak az a gond és napok mennek el a program hibát keresve, k9zbe meg csak az időzítéssel van gond.

Az RD billegtetése kell, mert gyakorlatilag azzal jelzed a kijelzőnek, hogy olvasni akarsz a portjáról. RD = 0, akkor jelzel hogy olvasni akarod a portot és ilyenkor a kijelző vezérlés kiteszi a portjára az adatokat. Ilyenkor várni kell kicsit, hogy beálljanak a bitek. És a vezérlőknél is illik várni picit. De ezt az adatlap pontosabban meg is határozza, hogy mikor mennyit kell várni.

A grafika pont ugyan így csak a grafikus területre kell írni. Ügyes vagy, csak így tovább.
A hozzászólás módosítva: Ápr 29, 2023
(#) protorg válasza don_peter hozzászólására (») Máj 1, 2023 /
 
szia.
még kéne egy kis segítség (az angol nem nagyon megy) az adatlapban a szöveges cím és a grafikus címet nem igazán értem.
tehát 240x128 lcd 6x8 betuvel használnám.
Mi a címe a szöveges területnek és a grafikusnak?
És az adress pointer H24 a grafikus terület 'kurzora'?
(#) don_peter válasza protorg hozzászólására (») Máj 2, 2023 /
 
Most nem vagyok gépnél, de szerintem neked a kijelződ más méretű. Ennek nézz utána mert hasva ütve nem lehet a méreteket beállítani.
(#) protorg válasza don_peter hozzászólására (») Máj 3, 2023 /
 
a címeket megfejtettem,a karakter méret is befolyásolta stb.
az adatlapon van egy olyan hogy SCREEN PEEK (11100000) ez a ... jelent és mit csinál.
A cursor pointer -nek sem látom értelmet hisz ott van a address pointer én avval pozicionálok.
(#) don_peter válasza protorg hozzászólására (») Máj 5, 2023 /
 
Én csak definícióban használom, programban sehol.
Egyébként a kurzor mutatót állítja be, de hogy pontosabban ezt mire lehetne használni azt nem tudom. Talán valami komolyabb programnál lehet értelme, de én nem használom. Szerintem egyelőre ne törődj vele.
Következő: »»   1 / 1
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem