 |
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
g.ergaver Član

Pridružen-a: Ned 27 Feb 2011 8:12 Prispevkov: 35 Aktiv.: 0.20 Kraj: Ajdovščina
|
Objavljeno: Ned Apr 10, 2011 8:31 am Naslov sporočila: LPC2138 in KS0066 BC2004A series VER.01 |
|
|
Živjo!
Imam težave z inicializacijo ks0066 kontrolerja v LCD modulu BC2004A 20x4 vrstični display. Uporabljam 4 bitni mode.
Ugotovil sem, da mi je LCD skuril že dva pina DB7, kjer pošlje busy signal.
Enkrat sem DB7 že prelotal na drugi pin, ki sem ga imel za rezervo, sedaj ga bom še na zadnjega, če še tega skurim je konec zgodbe, moram prelotat celoten LPC2138.
Najprej bi najbrž bilo pametno zalotat večji zaporedni upor s procesorskega pina na LCD modul. Sedaj ga imam 220 Ohm, razmišljam bolj o kiloohmih. Zacinil bom kar 10kOhm zaporedno.
Zanima me, če je inicializacija v redu. Vem, da je controller kompatibilen s hitachijevimi kontrolerji. Vendar, pa je v datasheetu v zadnji vrstici najbrž napaka, saj manjka '1' pri entry mode, pa še zadnje vrstice ni ze priži LCD modula.
Hvala za pomoč.
Lp ,Gregor
Opis: |
|
 Download |
Ime datoteke: |
display20x4_BC2004A_series_VER.01.pdf |
Velikost datoteke: |
659 KB |
Downloadano: |
3 krat |
Opis: |
|
 Download |
Ime datoteke: |
gpio.c |
Velikost datoteke: |
3.64 KB |
Downloadano: |
3 krat |
Opis: |
|
 Download |
Ime datoteke: |
gpio.h |
Velikost datoteke: |
4.11 KB |
Downloadano: |
0 krat |
|
|
Nazaj na vrh |
|
 |
g.ergaver Član

Pridružen-a: Ned 27 Feb 2011 8:12 Prispevkov: 35 Aktiv.: 0.20 Kraj: Ajdovščina
|
Objavljeno: Ned Apr 10, 2011 9:15 am Naslov sporočila: |
|
|
Še to.
LCD imam vezan preko IDC kabla dolžine cirka 50cm na uC in DB7 ima interni pull-up upor 25kOhm.
Morda so problemi tukaj s timingi, bi moral delati vse skupaj bolj počasi. Ker bo hočem pisati, informacija za pisanje ne pride še do LCD-ja, ko na uC-ju že spremenim pine na izhodne. Takrat ga najbrž skuri????
Hvala za odgovor.
Lp, Gregor
|
|
Nazaj na vrh |
|
 |
matjazkariz Član


Pridružen-a: Sre 03 Nov 2004 18:09 Prispevkov: 1026 Aktiv.: 4.32
|
Objavljeno: Ned Apr 10, 2011 9:29 am Naslov sporočila: |
|
|
Da ti ne bo več kurlo portov, daj na linije upore 2k2 +. Drugače pa glede nedelovanja preveri datasheet LCDja. Če je HD44780 kompatibilen, lahko poskusiš z že miljonkrat spisanimi rutinami, na primer tistimi Keil-a, ki jih dobiš zraven kakšne njihove razvojne plošče ali pa jih snameš na netu.
_________________ LP, Matjaž |
|
Nazaj na vrh |
|
 |
g.ergaver Član

Pridružen-a: Ned 27 Feb 2011 8:12 Prispevkov: 35 Aktiv.: 0.20 Kraj: Ajdovščina
|
Objavljeno: Ned Apr 10, 2011 9:35 am Naslov sporočila: |
|
|
Živjo!
Hvala za odgovor.
LCD init bi moral delati, saj ga uporabljam že veliko časa na sarmu. Spremeniti sem moral še krmiljenje podatkovnih linij, več v gpio.c in gpio.h.
Ta čas sem že zacinil 10kOhm upore na vse linije. Čeprav mi hudiča zganja samo DB7, ki je I/O s pull-up 25kOhm(izmerjeno). Mislim, da je težava v tem delu.
int busy_flag;
IO0DIR = IO0DIR & ~(DB7 | DB6 | DB5 | DB4); //set as input
IO0CLR = RS;
IO0SET = RW;
do
{
wait(1);
IO0SET = E;
wait(1);
busy_flag = IO0PIN & DB7;
IO0CLR = E;
wait(1);
IO0SET = E;
wait(1);
IO0CLR = E;
} while(busy_flag);//mogoče je težava tukaj
//zaradi daljših linij ca 50cm E signal, ni pripotoval do LCD-ja, ko že spremenim smer
IO0DIR = IO0DIR | DB7 | DB6 | DB5 | DB4;
|
|
Nazaj na vrh |
|
 |
g.ergaver Član

Pridružen-a: Ned 27 Feb 2011 8:12 Prispevkov: 35 Aktiv.: 0.20 Kraj: Ajdovščina
|
Objavljeno: Ned Apr 10, 2011 10:59 am Naslov sporočila: |
|
|
Zgleda, da je inicializacija stekla.
Vendar mi LCD izpisuje samo 1 in 3 vrstico na 20x4 LCD-ju.
In na njemu so čičkečačke. Init je za dve vrstici.
Naslove za vrstice sem vzel naslednje:
///LINE1: 0x00-0x13///
///LINE2: 0x40-0x53///
///LINE3: 0x14-0x27///
///LINE4: 0x54-0x67///
driver, ki piše na LCD pa je takšen (homemade) pošiljam ASCII na njega.
globalni kazalec
char *lcd_string;//globalni kazalec na niz
char niz[81]="TEST, ČE LCD ZASLON DELUJE PRAVILNO TEMP: XX.XXoC VLAGA:XXX.XX% ";//niz
lcd_string=&niz[0];
driver pa kličem v main funkciji.
void lcd_driver_1()//funkcija za prikaz niza
{
int i;
lcd_write_comm(DDRAM | 0x00);
for(i = 0; i < 20; i++) lcd_write_data(lcd_string[i]);//write first line
for(i = 40; i < 60; i++) lcd_write_data(lcd_string[i]);//write third line
lcd_write_comm(DDRAM | 0x40);
for(i=20; i < 40; i++) lcd_write_data(lcd_string[i]);//write second line
for(i=60;i<80;i++) lcd_write_data(lcd_string[i]);//write fourth line
}
Ima kdo kakšno idejo, kaj bi bilo mogoče narobe?
Lp, Gregor
|
|
Nazaj na vrh |
|
 |
matjazkariz Član


Pridružen-a: Sre 03 Nov 2004 18:09 Prispevkov: 1026 Aktiv.: 4.32
|
Objavljeno: Ned Apr 10, 2011 5:18 pm Naslov sporočila: |
|
|
A ŠARM in ta nova plata na kateri delaš zdaj, tečejo z istim clockom?
Če ne, popravi delaye.
A uporabljaš isti LCD, kot si ga na ŠARM-u?
Če daš ta LCD nazaj na ŠARM, še vedno dela?
_________________ LP, Matjaž |
|
Nazaj na vrh |
|
 |
g.ergaver Član

Pridružen-a: Ned 27 Feb 2011 8:12 Prispevkov: 35 Aktiv.: 0.20 Kraj: Ajdovščina
|
Objavljeno: Ned Apr 10, 2011 7:56 pm Naslov sporočila: |
|
|
Živjo!
Frekvenca nima kaj dosti veze. Procesor laufam na najnižji frekvenci 12Mhz, je pa res da fvpb [slovenščina je zame španska vas] tudi na 12Mhz(frekvenca periferije).
Delayi so narejeni s timerjem 1, in so 1us. Delaye lahko povečam iz 1us navzgor.
LCD ni isti, je pa kontroler kompatibilen s hitachijevem kontrolerjem, kot so seveda vsi.
Tudi init je isti, drugačni so sami DDRAM naslovi, ker na sarmu je 16x2 uporabljam pa 20x3 LCD. To je edina razlika.
Hvala za pomoč.
Lp, Gregor
|
|
Nazaj na vrh |
|
 |
matjazkariz Član


Pridružen-a: Sre 03 Nov 2004 18:09 Prispevkov: 1026 Aktiv.: 4.32
|
Objavljeno: Ned Apr 10, 2011 8:26 pm Naslov sporočila: |
|
|
Poskusi dvoje:
- Priklopi 20x4 na Šarm.
- Priklopi 2x16 iz Šarma na tvojo ploščo
Povej kaj vidiš. Če so zdaj krace na 20x4 na Šarmu, je problem v kompatibilnosti z HD.... Če pa 2x16 ne dela na tvoji plati, je pa v rutinah nekaj narobe.
_________________ LP, Matjaž |
|
Nazaj na vrh |
|
 |
g.ergaver Član

Pridružen-a: Ned 27 Feb 2011 8:12 Prispevkov: 35 Aktiv.: 0.20 Kraj: Ajdovščina
|
Objavljeno: Pon Apr 11, 2011 6:27 am Naslov sporočila: |
|
|
Živjo!
Dober predlog, vendar žal šarma trenutno nimam pri sebi.
Bom poskušal povečati delaye in pregledati init in ukaz za DDRAM, ki ga tudi spreminjam. In podatki če pravilno letijo ven.
Sporočim napredek.
Hvala za odgovor.
Lp, Gregor
|
|
Nazaj na vrh |
|
 |
g.ergaver Član

Pridružen-a: Ned 27 Feb 2011 8:12 Prispevkov: 35 Aktiv.: 0.20 Kraj: Ajdovščina
|
Objavljeno: Pon Apr 11, 2011 6:56 am Naslov sporočila: |
|
|
Živjo!
Init je po vsej verjetnosti šel skozi, saj svetijo vse štiri vrstice, vendar zaenkrat na njih ni nič prikazano, čeprav pošiljam podatke gor.
|
|
Nazaj na vrh |
|
 |
g.ergaver Član

Pridružen-a: Ned 27 Feb 2011 8:12 Prispevkov: 35 Aktiv.: 0.20 Kraj: Ajdovščina
|
Objavljeno: Pon Apr 11, 2011 8:52 am Naslov sporočila: |
|
|
Rešil zadevo.
Tako, da sem vzel drug(enak) LCD zaslon 20x4, zacinil gor IDC konektor in stisnil 16 pinski konetor in zagnal program.
LCD je začuda začel delati iz prve. Najbrž je bil problem prvotni LCD zaslon.
Hvala Matjaz za pomoč.
Lep pozdrav, Gregor
|
|
Nazaj na vrh |
|
 |
matjazkariz Član


Pridružen-a: Sre 03 Nov 2004 18:09 Prispevkov: 1026 Aktiv.: 4.32
|
Objavljeno: Pon Apr 11, 2011 9:10 am Naslov sporočila: |
|
|
To sem namreč sumil. Ko začne nekaj kurit, se po navadi ne skuri samo na eni strani. V tvojem primeru je poškodovan vsaj RB7 na prvem LCDju.
_________________ LP, Matjaž |
|
Nazaj na vrh |
|
 |
g.ergaver Član

Pridružen-a: Ned 27 Feb 2011 8:12 Prispevkov: 35 Aktiv.: 0.20 Kraj: Ajdovščina
|
Objavljeno: Pon Apr 11, 2011 9:22 am Naslov sporočila: |
|
|
Naj še omenim za ostale forumaše, da so delayi 1us več kot dovolj tudi za IDC kabel 60cm dolg. Ravnokar stestirano in deluje lepo
Lp, Gregor
|
|
Nazaj na vrh |
|
 |
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 6 dni
Powered by phpBB © 2001, 2005 phpBB Group
|