www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

LPC2138 in KS0066 BC2004A series VER.01

 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> ARM arhitektura
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
g.ergaver
Član
Član



Pridružen-a: Ned 27 Feb 2011 8:12
Prispevkov: 35
Aktiv.: 0.20
Kraj: Ajdovščina

PrispevekObjavljeno: Ned Apr 10, 2011 8:31 am    Naslov sporočila:  LPC2138 in KS0066 BC2004A series VER.01 Odgovori s citatom

Ž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



display20x4_BC2004A_series_VER.01.pdf
 Opis:
datasheet LCD modula

Download
 Ime datoteke:  display20x4_BC2004A_series_VER.01.pdf
 Velikost datoteke:  659 KB
 Downloadano:  3 krat


gpio.c
 Opis:
c datoteka

Download
 Ime datoteke:  gpio.c
 Velikost datoteke:  3.64 KB
 Downloadano:  3 krat


gpio.h
 Opis:
h datoteka

Download
 Ime datoteke:  gpio.h
 Velikost datoteke:  4.11 KB
 Downloadano:  0 krat

Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
g.ergaver
Član
Član



Pridružen-a: Ned 27 Feb 2011 8:12
Prispevkov: 35
Aktiv.: 0.20
Kraj: Ajdovščina

PrispevekObjavljeno: Ned Apr 10, 2011 9:15 am    Naslov sporočila:   Odgovori s citatom

Š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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
matjazkariz
Član
Član



Pridružen-a: Sre 03 Nov 2004 18:09
Prispevkov: 1026
Aktiv.: 4.32

PrispevekObjavljeno: Ned Apr 10, 2011 9:29 am    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
g.ergaver
Član
Član



Pridružen-a: Ned 27 Feb 2011 8:12
Prispevkov: 35
Aktiv.: 0.20
Kraj: Ajdovščina

PrispevekObjavljeno: Ned Apr 10, 2011 9:35 am    Naslov sporočila:   Odgovori s citatom

Ž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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
g.ergaver
Član
Član



Pridružen-a: Ned 27 Feb 2011 8:12
Prispevkov: 35
Aktiv.: 0.20
Kraj: Ajdovščina

PrispevekObjavljeno: Ned Apr 10, 2011 10:59 am    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
matjazkariz
Član
Član



Pridružen-a: Sre 03 Nov 2004 18:09
Prispevkov: 1026
Aktiv.: 4.32

PrispevekObjavljeno: Ned Apr 10, 2011 5:18 pm    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
g.ergaver
Član
Član



Pridružen-a: Ned 27 Feb 2011 8:12
Prispevkov: 35
Aktiv.: 0.20
Kraj: Ajdovščina

PrispevekObjavljeno: Ned Apr 10, 2011 7:56 pm    Naslov sporočila:   Odgovori s citatom

Ž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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
matjazkariz
Član
Član



Pridružen-a: Sre 03 Nov 2004 18:09
Prispevkov: 1026
Aktiv.: 4.32

PrispevekObjavljeno: Ned Apr 10, 2011 8:26 pm    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
g.ergaver
Član
Član



Pridružen-a: Ned 27 Feb 2011 8:12
Prispevkov: 35
Aktiv.: 0.20
Kraj: Ajdovščina

PrispevekObjavljeno: Pon Apr 11, 2011 6:27 am    Naslov sporočila:   Odgovori s citatom

Živjo!

Dober predlog, vendar žal šarma trenutno nimam pri sebi. Confused
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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
g.ergaver
Član
Član



Pridružen-a: Ned 27 Feb 2011 8:12
Prispevkov: 35
Aktiv.: 0.20
Kraj: Ajdovščina

PrispevekObjavljeno: Pon Apr 11, 2011 6:56 am    Naslov sporočila:   Odgovori s citatom

Ž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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
g.ergaver
Član
Član



Pridružen-a: Ned 27 Feb 2011 8:12
Prispevkov: 35
Aktiv.: 0.20
Kraj: Ajdovščina

PrispevekObjavljeno: Pon Apr 11, 2011 8:52 am    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
matjazkariz
Član
Član



Pridružen-a: Sre 03 Nov 2004 18:09
Prispevkov: 1026
Aktiv.: 4.32

PrispevekObjavljeno: Pon Apr 11, 2011 9:10 am    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
g.ergaver
Član
Član



Pridružen-a: Ned 27 Feb 2011 8:12
Prispevkov: 35
Aktiv.: 0.20
Kraj: Ajdovščina

PrispevekObjavljeno: Pon Apr 11, 2011 9:22 am    Naslov sporočila:   Odgovori s citatom

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 Smile

Lp, Gregor
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> ARM arhitektura Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Stran 1 od 1

 
Pojdi na:  
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