ds89c420 i LCD



Masz problem? Zapytaj na forum elektroda.pl

Poprzedni Następny
Wiadomość
Spis treści
From: "lipciu" <lipciu_at_nospam_wp.pl>
Subject: ds89c420 i LCD
Date: Wed, 21 Aug 2002 08:52:10 +0200


czy jest mozliwa ingerencja w instrukcje lcd tak by dzialala ona wolnie? ...

podlaczylem szybkiego dallasa (ma mnoznik x1 zamiast 12) ... chce docelowo
taktowac dallasa na 50MHz ale teraz mam go podlaczone tylko do 16MHz .... do
LCD i wyswietla mi krzaki ... instrukcja cls poprawnie kasuje lcd ... ale
jak probuje napisac jakies slowo to zamiast 5 znakow na ekranie widnieja 3
calkowicie inne znaki

dalem to wszystko w petli by co 2 sekundy wpisywalo to samo slowo ... i
znaki na ekranie cyklicznie zmieniaja sie ...

jaki jest najprostrzy sposob na poprawe sytuacji ... czy ktos z grupowiczow
napisal moze wlasna funkcje "lcd" pod bascoma dzialajaca w asemblerze ??...
czy moze jakos inaczej probowac to rozwiazac ...jestem poczatkujacym
programista .. i tak na prawde to nigy pozadnie nie oprogramowywalem LCD
spoza Bascoma

pozdrawiam



Poprzedni Następny
Wiadomość
Spis treści
From: "lipciu" <lipciu_at_nospam_wp.pl>
Subject: Re: ds89c420 i LCD
Date: Wed, 21 Aug 2002 08:54:27 +0200


hmmmm nie napisalem ze chce to oprogramowac w bascomie 51

przepraszam



Poprzedni Następny
Wiadomość
Spis treści
From: antispam_verox_at_nospam_a4.pl (Verox)
Subject: Re: ds89c420 i LCD
Date: 21 Aug 2002 09:13:09 GMT


On Wed, 21 Aug 2002 08:52:10 +0200, lipciu napisał:
czy jest mozliwa ingerencja w instrukcje lcd tak by dzialala ona wolnie? ...

podlaczylem szybkiego dallasa (ma mnoznik x1 zamiast 12) ... chce docelowo
taktowac dallasa na 50MHz ale teraz mam go podlaczone tylko do 16MHz .... do
LCD i wyswietla mi krzaki ... instrukcja cls poprawnie kasuje lcd ... ale
jak probuje napisac jakies slowo to zamiast 5 znakow na ekranie widnieja 3
calkowicie inne znaki

dalem to wszystko w petli by co 2 sekundy wpisywalo to samo slowo ... i
znaki na ekranie cyklicznie zmieniaja sie ...

jaki jest najprostrzy sposob na poprawe sytuacji ... czy ktos z grupowiczow
napisal moze wlasna funkcje "lcd" pod bascoma dzialajaca w asemblerze ??...
czy moze jakos inaczej probowac to rozwiazac ...jestem poczatkujacym
programista .. i tak na prawde to nigy pozadnie nie oprogramowywalem LCD
spoza Bascoma

Na Bascomie sie nie znam, ale jeśli masz podłączoną linie R//W do proca, to
może czytaj po prostu flage BUSY z wyświetlacza ?


--
begin 666 signature.exe
[verox <at> a4 <dot> pl] vy 73! de SP9UOB
Proud to be 100 percent microsoft free. op. Tomek

Poprzedni Następny
Wiadomość
Spis treści
From: "Michał Wysocki" <mwsoft_at_nospam_satkabel.com.pl>
Subject: Re: ds89c420 i LCD
Date: Wed, 21 Aug 2002 12:15:14 +0200


włącz dzielnik zegara 1024 jak będziesz coś robił na LCD



Poprzedni Następny
Wiadomość
Spis treści
From: "lipciu" <lipciu_at_nospam_wp.pl>
Subject: Re: ds89c420 i LCD
Date: Wed, 21 Aug 2002 17:08:21 +0200


mozna to zrobic programowo??? czy musze zewnetrznie dzielic zegar?



Poprzedni Następny
Wiadomość
Spis treści
From: "Marek Dzwonnik" <mdz_at_nospam_message.pl>
Subject: Re: ds89c420 i LCD
Date: Wed, 21 Aug 2002 20:18:27 +0200


Użytkownik "lipciu" <lipciu_at_nospam_wp.pl> napisał w wiadomości
news:ak0ach$9r1$1_at_nospam_sunrise.pg.gda.pl...
mozna to zrobic programowo??? czy musze zewnetrznie dzielic zegar?

PDF: 89C420 UserGuide str. 58:
"The DS89C420 provides the ability to speed up or slow down the system clock
that is used internally by
the CPU. The system clock divide ratio can be configured to 0.25 (4X
multiply mode), 0.5 (2X multiply
mode), 1 (default), or 1024 (Power Management Mode) and is controlled by the
CD1:0 bits (PMR.7,
PMR.6)."

Poza tym istnieje, pochodząca jeszcze z 80C320, możliwość wydłużania cykli
dostępu do obszaru XDATA (cycle stretching):
PDF: 89C420 UserGuide str. 89:
"The DS89C420 allows software to adjust the speed of external data memory
access by stretching the
memory bus cycle. The MD2:0 bits contained in the CKCON (8Eh) SFR provide
the means to modify
the stretch value. This stretch feature allows the application to
dynamically select the minimum (fastest)
access time to each data memory peripheral device. The table below shows the
data memory cycle
stretch values and their effect on the read and write control signals
associated with the external MOVX
memory bus cycle. A stretch machine cycle always contains four system
clocks."
Ustawiając bity MD0:2 w rejestrze CKCON można rozciągnąć dostęp do pamięci o
0...10 cykli oczekiwania (po 4*tclk każdy).

Podsumowując:
Musisz zwrócić uwagę na dwie rzeczy:
HD44780 jako układ peryferyjny jest ogólnie dosyć wolny, Np. wymagany czas
trwania impulsu ENABLE: Tenable= min. 450ns.
Nie napisałeś jak masz podłączony ten LCD do procesora. Jeżeli na szynę to
możesz się ratować cyklami 'stretch'. Jeżeli na liniach portów to będziesz
musiał na czas obsługi wyświetlacza zwolnić zegar systemowy. Albo napisać
własną obsługę LCD.

Wykonanie poszczególnych operacji na HD44780 jest dosyć czasochłonne.
Zajmuje od 40us do 1.64ms (np. CLS). Przed wykonaniem nasepnej operacji
musisz się upewnić że kontroler LCD jest do tego gotowy.

MDz



Poprzedni Następny
Wiadomość
Spis treści
From: "lipciu" <lipciu_at_nospam_wp.pl>
Subject: Re: ds89c420 i LCD
Date: Wed, 21 Aug 2002 21:18:43 +0200



Użytkownik "Marek Dzwonnik" <mdz_at_nospam_message.pl> napisał w wiadomości
news:3d63d908_at_nospam_news.home.net.pl...
Użytkownik "lipciu" <lipciu_at_nospam_wp.pl> napisał w wiadomości
news:ak0ach$9r1$1_at_nospam_sunrise.pg.gda.pl...
mozna to zrobic programowo??? czy musze zewnetrznie dzielic zegar?

PDF: 89C420 UserGuide str. 58:
"The DS89C420 provides the ability to speed up or slow down the system
clock
that is used internally by
the CPU. The system clock divide ratio can be configured to 0.25 (4X
multiply mode), 0.5 (2X multiply
mode), 1 (default), or 1024 (Power Management Mode) and is controlled by
the
CD1:0 bits (PMR.7,
PMR.6)."

Poza tym istnieje, pochodząca jeszcze z 80C320, możliwość wydłużania
cykli
dostępu do obszaru XDATA (cycle stretching):
PDF: 89C420 UserGuide str. 89:
"The DS89C420 allows software to adjust the speed of external data memory
access by stretching the
memory bus cycle. The MD2:0 bits contained in the CKCON (8Eh) SFR provide
the means to modify
the stretch value. This stretch feature allows the application to
dynamically select the minimum (fastest)
access time to each data memory peripheral device. The table below shows
the
data memory cycle
stretch values and their effect on the read and write control signals
associated with the external MOVX
memory bus cycle. A stretch machine cycle always contains four system
clocks."
Ustawiając bity MD0:2 w rejestrze CKCON można rozciągnąć dostęp do pamięci
o
0...10 cykli oczekiwania (po 4*tclk każdy).

Podsumowując:
Musisz zwrócić uwagę na dwie rzeczy:
* timing na złaczu LCD.
HD44780 jako układ peryferyjny jest ogólnie dosyć wolny, Np. wymagany czas
trwania impulsu ENABLE: Tenable= min. 450ns.
Nie napisałeś jak masz podłączony ten LCD do procesora. Jeżeli na szynę to
możesz się ratować cyklami 'stretch'. Jeżeli na liniach portów to będziesz
musiał na czas obsługi wyświetlacza zwolnić zegar systemowy. Albo napisać
własną obsługę LCD.

* sprawdzanie stanu gotowości kontrolera LCD.
Wykonanie poszczególnych operacji na HD44780 jest dosyć czasochłonne.
Zajmuje od 40us do 1.64ms (np. CLS). Przed wykonaniem nasepnej operacji
musisz się upewnić że kontroler LCD jest do tego gotowy.

MDz



ja to programuje w bascomie ... instrukcja lcd pozwala mi w prosty sposob
napisac jakis tekst poprzez wpisanie np. lcd "hello" ... nie mam dostepu do
poszczegolnych linii tej funkcji wiec nie moge badac stanu gotowosci LCD gdy
chce wykorzystac te funkcje ... bardzo dobrym pomyslem jest jednak
spowolnienie procesora na czas wyswitlania ... poniewaz w tym czasie program
bedzie tylko to obslugiwac ... wiec nie ma problemu ... jak juz wyswietle co
chce i wyjde z menu to LCD mi nic nie skasuje z tego co wyswietla aktualnie
i program dalej bezdie mogl dzialac w petli ...

dziekuje za te rejestry i fragment manuala ...ja po prostu sie gubie troszke
w tym gry musze czytac angielskojezyczna dokumentacje i o rejestrach teraz
jak to Pan mi wyszczegolnil to troche to rozumiem i wydaje mi sie ze ten
dzielnik 1024 powinien pomoc .... tak mysle poniewaz ten sam program pod
zwyklym atmelem dziala ...

LCD mam podlaczone normalnie do portu P0 .. do nozek P0.2-P0.7 ... i sa
podlaczone do D4-D7, RS i EN wyswietlacza ... a jak bascom to robi to ja juz
nie mam pojecia

pozdrawiam



Poprzedni Następny
Wiadomość
Spis treści
From: Janusz_K <Janusz_k.anty_at_nospam_um.bielsko.pl>
Subject: Re: ds89c420 i LCD
Date: Thu, 22 Aug 2002 09:44:47 +0200



that is used internally by
the CPU. The system clock divide ratio can be configured to 0.25 (4X
multiply mode), 0.5 (2X multiply
mode), 1 (default), or 1024 (Power Management Mode) and is controlled by
the
CD1:0 bits (PMR.7,
PMR.6)."

Musisz przed i po instrukcjami lcd dac wsatawkę w asm np:
$asm
SETB PMR.7
$end asm
LCD "hello"
$asm
CLR PMR.7
$End asm
Oczywiście to przykłąd bo nie wiem czy ten bit trzeba kasować czy
ustawiać
i musisz wprowadzić zamiast PMR.7 adres bitu jeżeli jest adresowany
bitowo
albo korzystać z ANL i ORL jeżeli musisz pracować na bajcie

--
Pozdr.

Janusz
PS. Uwaga z adresu usuń '.ANTY'

Poprzedni Następny
Wiadomość
Spis treści
From: "Michał Wysocki" <mwsoft_at_nospam_satkabel.com.pl>
Subject: Re: ds89c420 i LCD
Date: Thu, 22 Aug 2002 15:29:10 +0200


wystarczy pwr.6 = 1 i pwr.6 = 0
ale musisz w definicji procesora (pliki *.dat)
dopisac sobie ten rejestr
jako porcesor wybierz 80320 bo to protoplasta 420 tki



Poprzedni Następny
Wiadomość
Spis treści
From: "lipciu" <lipciu_at_nospam_wp.pl>
Subject: Re: ds89c420 i LCD
Date: Thu, 22 Aug 2002 15:55:05 +0200



wystarczy pwr.6 = 1 i pwr.6 = 0
ale musisz w definicji procesora (pliki *.dat)
dopisac sobie ten rejestr
jako porcesor wybierz 80320 bo to protoplasta 420 tki

ja juz mam te 420 w ukladzie :( raczej 320 juz nie zastosuje w tym
ukladzie ... pliki *.dat ??? widze ze coraz wiecej trzeba robic :)



Poprzedni Następny
Wiadomość
Spis treści
From: "Michał Wysocki" <mwsoft_at_nospam_satkabel.com.pl>
Subject: Re: ds89c420 i LCD
Date: Thu, 22 Aug 2002 16:10:04 +0200


ja juz mam te 420 w ukladzie :( raczej 320 juz nie zastosuje w tym
ukladzie ... pliki *.dat ??? widze ze coraz wiecej trzeba robic :)

ojjjjj
w bascomie możesz sobie wybrac definicje procesora w ustawiniach
kompilacji..........
w katalogu bascoma są pliki *.dat z tymi definicjami....
wybierz 80320 W BASCOMie!!!



Poprzedni Następny
Wiadomość
Spis treści
From: "lipciu" <lipciu_at_nospam_wp.pl>
Subject: Re: ds89c420 i LCD
Date: Thu, 22 Aug 2002 15:29:27 +0200


dzieki

PS. Uwaga z adresu usuń '.ANTY'

nie rozumiem

pozdrawiam .... jesli to zadziala to bardzo mi pomogliscie



Poprzedni Następny
Wiadomość
Spis treści
From: "Michał Wysocki" <mwsoft_at_nospam_satkabel.com.pl>
Subject: Re: ds89c420 i LCD
Date: Thu, 22 Aug 2002 16:14:08 +0200


nie rozumiem

.....
slyszałeś kiedyś o czymś takim jak spam??
a zgadnij skad się bierze emaile do rozsyłania na nie śmieci?
m.in. z grup dyskusyjnych...
a zobacz jak wygląda adres Janusza...

swoją drogą mu to zbytnio nie pomoże bo automaty do zbierania emaili są
wystarczajaco inteligentne i usuwają takie wstawki typu nospam, remove_this,
antispam itp....



Poprzedni Następny
Wiadomość
Spis treści
From: "lipciu" <lipciu_at_nospam_wp.pl>
Subject: Re: ds89c420 i LCD
Date: Thu, 22 Aug 2002 17:31:42 +0200


no odkad zaczalem tu pisywac to zauwazylem ze moje dotad czysciutkie od
reklam konto juz sie takim nie stalo :(