Fórum témák

» Több friss téma
Fórum » LCD probléma
 
Témaindító: Szergely, idő: Júl 6, 2006
Témakörök:
Lapozás: OK   4 / 16
(#) Gettobike hozzászólása Dec 13, 2006 /
 
Senkinek nincs ötlete?
(#) source2 válasza Gettobike hozzászólására (») Dec 13, 2006 /
 
hi

hány PINes csatija van?, nekem is EL fóliás háttérvilágításos is van, olyan barnás a kijelző, csak sajna nicns inverterem, aztán nem tom működtetni.
LCM-5xxx vagy valmi ilyesmi a kódja, de szerintem szabványos lábkiosztása van asszem húsz lába vna az enyémnek. sajna nicns rajtuk vezérlő, szóval elég nehézkes képet megjeleníteni ,de nekem is tervbe van véve az életrekeltése, ha lesz belőle valami szólok.

üdv.
(#) Gettobike válasza source2 hozzászólására (») Dec 13, 2006 /
 
Hello. 4 csatlakozó van rajta. Egy 15, egy 13, egy 4 és egy 3 tűs csatlakozó. Rengeteg ic van rajta: 22db M52299, 1db LA5316, 1db TA75902F, 1db MB654824 (ez lehet a proci), 2db 74HC244A, és egy 4053BF. Este töltök fel róla képet. Ennek a fóliája 200-240Vról üzemel. (persze nem hálózatról )
(#) Prinner hozzászólása Márc 18, 2007 /
 
Van egy kis problémám kar. LCD ügyben, a segítségeteket kérném:
Szóval olyan progit akarok írni, ami vizsgál busy flag-et, ami röviden annyit tesz, hogy ha RS=0, és R/W=1, akkor, megnézi, hogy DB7 mikor vált 1-ről 0-ra, és utána jöhet a következő utasítás.

Az első kérdésem az, hogy mennyi késleltetés legyen az adatkiküldés+engedélyezés és az olvasás közt.
A HD44780 adatlapján ezt 3,18us-nak írták (1/270kHz), az eddigi tapasztalatom szerint ez kevés lesz, mivel egy karakterküldésre elvileg 30-40us-ot kell várni (nekem valamiért 100us-ot kellet várnom )

A másik, hogy az LCD szimulátor nem akarja kirakni a busy flag-et:http://www.geocities.com/dinceraydin/djlcdsim/djlcdsim.html
Úgy próbáltam, hogy kiírtam egy karaktert, aztán rs0, rw1, de a db7 változatlan maradt, csak rinyált amikor az enable-t cseszegettem R/W közben.
(#) Prinner hozzászólása Márc 18, 2007 /
 
A fenti hsz.-emben linkelt LCD szimulátor szerintetek tud busy flag-et ellenőrizni?
Mert szerintem nem. Ugyanezen az oldalon megtalálható utasítás szerint:

Checking the Busy Flag

To check the state of the busy flag and read the address counter

-Set R/W Pin of the LCD HIGH(read from the LCD)
-Select the instruction register by setting RS pin LOW
-Enable the LCD by Setting the enable pin HIGH
-The most significant bit of the LCD data bus is the state of the busy flag(1=Busy,0=ready to accept instructions/data).The other bits hold the current value of the address counter.
*This is a 1-micro-second instruction.

Ezzel az utasítással is hibaüzenetet írt ki...
(#) Prinner hozzászólása Márc 20, 2007 /
 
Senki???
(#) andrewforest hozzászólása Márc 21, 2007 /
 
Hello
Nekem is lenne egy problémám... Egy 1×16-os kijelzőre csak az első 8 karaktert tudom kiirni, a többi nem is látszik... Valakinek van ötlete mi lehet a gond?
(#) szabi83 válasza andrewforest hozzászólására (») Márc 21, 2007 /
 
(#) andrewforest válasza szabi83 hozzászólására (») Márc 21, 2007 /
 
Már annyit próbálkoztam vele, hogy kezdem azt hinni hogy esetleg valami hardwares gyári hiba okozza...
(#) szabi83 válasza andrewforest hozzászólására (») Márc 21, 2007 /
 
nekem nincs semmi zárlat meg ilyesmi, szal a HW jó.

te milyen környezetben használod az LCD-t?

és milyen PIC-cel?

(#) andrewforest válasza szabi83 hozzászólására (») Márc 21, 2007 /
 
gyárira gondoltam, utolag kijavitottam... én AVR-t használok, assemlyben, most probapanelon van összedugva az egész...
(#) andrewforest válasza andrewforest hozzászólására (») Márc 21, 2007 /
 
Ha a kontrasztot feljebb veszem addig, hogy a nem kijelzett négyzetek is látszódjanak oldalrol, akkor is csak az elsö 8 kocka látszik, utána semmi sem... szoval mintha az a része halott lenne az LCD-nek... aztán lehet hogy tévedek.. (remélem igen )
(#) eSDi válasza andrewforest hozzászólására (») Márc 21, 2007 /
 
Lehet már valahol leírták, vagy tudjátok is....
De az 1x16 Karakteres LCD valójában 2x8 karakteres vezérlésű... Szerintem itt kellene kezdeni a programban a hibakeresést...
(#) Dudus válasza eSDi hozzászólására (») Márc 21, 2007 /
 
És az első 8 után a címzés ha jól emlékszem nem folytatólagos....
(#) andrewforest válasza eSDi hozzászólására (») Márc 21, 2007 /
 
hű erröl még nem hallottam... köszönöm szépen a választ, hozzá is látok a korrigáláshoz!
(#) Dudus válasza andrewforest hozzászólására (») Márc 21, 2007 /
 
A második 8-as blokk $40H-címen kezdődik....
(#) andrewforest válasza Dudus hozzászólására (») Márc 21, 2007 /
 
És akkor 1 vagy két soros LCD-ként kell kezelni?
(#) szabi83 válasza szabi83 hozzászólására (») Márc 21, 2007 /
 
no elővettem a 84A-s eredetit,
és ezeket:
http://www.piclist.com/techref/piclist/weedfreq8x2LCD.htm
http://www.chipcad.hu/download/f84tof62x.pdf

valami alakult, de még nem jó :rinya:
(#) Dudus válasza andrewforest hozzászólására (») Márc 21, 2007 /
 
Mintha 2-soros lenne...

A 9. karakternél hozzá kell adni a címhez 37H - t

és akkor 40H-ra kerül a 9. karakter, ami a 2. sor 1. karaktere.
(#) andrewforest válasza Dudus hozzászólására (») Márc 21, 2007 /
 
Működik :vigyor2: Köszönöm szépen a sigitséget!!!
(#) szabi83 válasza szabi83 hozzászólására (») Márc 21, 2007 /
 
(#) Prinner válasza szabi83 hozzászólására (») Márc 21, 2007 /
 
Nálam egy 16f877a hajtja meg a dem16216-os 2X16 K.-es LCD-t, és még busy flag nélkül is inicializási gondok vannak. Így csinálom:

-tápfesz be, 26ms várakozás
-0010 => 4bit
-Várakozás 1,6ms
-10XX => 2sor, 5X7 karakterfelbontás
-Várakozás 1,6ms
-Várakozás 26ms
.
.
. (ez 3-szor lefut)
-0000
-1111 ;Kilelző be, kurzor aláhúz, villog
-0000 ;Kijelző törlés
-0001

Ezt a szekvenciát a szimulátorral való próbálkozás alapján írtam. Először azt hittem, hogy tökéletes, mert amikor ICSP-vel felraktam a progit, akkor ment.
Viszont amikor csak simán rádugom a tápfeszt akkor gyönyörűen izzik a felső sor. Csak kb. 25-30 MCLR reset után műxik rendesen, mert vagy nem csinál semmit, vagy telekrakja hülyeséggel az első sort.

A HD44780 (42.o) adatlapján lévő "4-bit interface" névre hallgató inicializálásra nem csinál semmit az LCD, sem a szimulátorban, sem a valóságban.
Úgyhogy megvan a véleményem az "intelligens LCD modulról".
Most írom a busy flag-es szubrutint, de nemtom mekkora időzítés legyen a két félbájt kiküldés közt, a sima rutinba 1,6ms-et raktam a karakterkiküldésben is, mert 40us-ossal nem ment (mert gondolom félbájtonként nem rak ki busy flag-et).
Nincs semmi ötlet busy flag időzítés, és inic. -ra???
(#) Dudus válasza Prinner hozzászólására (») Márc 21, 2007 /
 
Én itt tanultam meg LCD-t kezelni...

http://www.avrbeginners.net/
(#) Prinner válasza Dudus hozzászólására (») Márc 21, 2007 /
 
Hmm... Itt először nem kapcsolják be az alsó sort, csak a második utasításra. Előszedem az ICSP-t, mindjárt kipróbálom .
(#) gtk válasza Prinner hozzászólására (») Márc 28, 2007 /
 
Szia!

En is sokat kinlodtam regebb amig rendesen mukodott minden a HD44780 alapu kijelzokon.

Vegul sikerult egy jobb drivert osszehozni (avr,C) .
lcd driver
Amire erdemes odafigyelni az INITnel:
-4 ,vagy 8 bites modban van.A ket modot nem szabad osszekeverni.
Amit tapasztaltam:
-hogy HD44780 alapu kijelzok nem mind egyformak az idozitesekben.Sot kozel sem egyformak!
- egyik kijelzom sem az adatlap szerinti idozitest kivanta,hanem sokkal tobbet.
-A toggle_E a legkritikusabb ido.
-a tobbi a forrasban
(#) Prinner válasza gtk hozzászólására (») Márc 28, 2007 /
 
Sajnos semmivel sem lett jobb azóta, pedig szinte minden összegoglezott doksi és progi alapján már megpróbáltam rá init írni.
Csak egy esetben működött: amikor a tápfesz ráadásától 15-20s után adom ki a parancsot! Persze már gyanús, hogy az LCD-vel van probláma. Így valszeg ki kell próbálni másikkal is. Sajnálom a mostanit mert egész szép piros háttérvilágítású inverz megjelenítésű lcd.

Nem tudok c-ben progizni, így az általad belinkelt forrást még nem tudtam értelmezni. Nem tudnál nekem segíteni ebben? Csak nagy vonalakban kellene tudnom, hogy milyen időzítéseket és parancsokat ad ki inicializáláskor.
(#) Slope válasza Prinner hozzászólására (») Márc 29, 2007 /
 
Én is nyűglődtem egy ilyen LCD-vel, csak az kék-inverz volt. Végül felhagytam az időzítésekkel, és inkább az LCD-től kérdem meg, hogy kész van-e... Azóta jól működik.
(#) gtk válasza Prinner hozzászólására (») Ápr 3, 2007 /
 
Nem olvastam at az egesz topicot.
Az LCD adatlapja megvan?Ez alapjan irtad a drivert?
Mint mar emlitettem HD44780 alapu chippel szerelt 3 LCD kijelzom sem ugyanazokat az idozeiteseket kivanja!

Atnezem a C forrast,hogy hogy van az INIT es majd irok.
(#) gtk válasza Prinner hozzászólására (») Ápr 3, 2007 /
 
Probaltam pseudoban leirni.

LCD_PORT: LCD_DB4-DB7 ig, RS es E(nable)

//INIT kezd:

LCD_PORT ra kiir 0-t.
var > mint 40ms

//4 bites mod
DB5 = 1
toggle_Enable
DB5 = 1
toggle_Enable

DB7 = 1 (vagyis ket soros modba valtas,5X8 font)
toggle_Enable
var tobbet mint 39us

//kijelzo ki,curzor ki,blink ki
LCD_PORT = 0
toggle_Enable
DB7 = 1
toggle_Enable
var tobbet mint 39us


//kijelzo torles
LCD_PORT = 0
toggle_Enable
DB4 = 1
toggle_Enable
var ~1.6 ms-t

//init vege!

TOGGLE_ENABLE -rol megjegyzesek:

a toggle_enable pulzus szellesseg (H level) minimum 230ns
Nehany HD44780 alapu kijelzonel ahogy nekem mukodott:
KS0065: ~25us, DEM16102SYH-PY: ~50us, HD44780: ~550 us
(#) Prinner válasza gtk hozzászólására (») Ápr 3, 2007 /
 
Köszi!
A progit az LCD adatlapja szerint kezdtem el írni, de természetesen az időzítések túl rövidek voltak.
Például:
Karakterküldés esetén 40us-ot ír, de nekem 100us lett a megfelelő.
Következő: »»   4 / 16
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