Bartek
Guest
Mon Oct 18, 2004 5:21 pm
Witam,
Przejrzałem datasheety, google i archiwum kilku grup dyskusyjnych
w poszukiwaniu chociazby kawałka kodu lub podpowiedzi jak tym
za przeproszeniem chipem sterować za pomoca '51,
(u mnie port p.0 na at89s8252).
Znalazłem kilka postów w archiwum pl.misc.elektronika o podobnym ukladzie
mt8880 z innym interfacem (do uC Motoroli), ale tam sterowanie
odbywa sie w troche inny sposob (dla tych co pamietaja ten wątek -
uklad trzeba "kopac" kombinacja 0 1 0 1 w jedno z odnóży (fi2 chyba)
zeby odbieral dane z portu '51). Ale niestety nie znalazlem zadnego
info na temat mt8888 - ten akurat owego odnóża nie posiada
....ma natomiast inne podobne ale kopanie go (czyt. podawanie kombinacji
sygnalow 1 0)
i innych podobnych nic nie daje

Celowo nie chce uzyc standardowych
odnozy szyny danych '51-ki (ALE, WR, RD) do sterowania tym scalakiem,
sa mi potrzebne do czego innego.
Probowalem przyjrzec sie timingom w datasheetach ale szczerze mowiac nie
rozumiem co autor mial na mysli, a siedze nad programem i kombinuje juz
troche czasu...
....bylbym gleboko wdzieczny za podpowiedz..
Pozdrawiam
Bartek
QmX
Guest
Tue Oct 19, 2004 5:40 am
Użytkownik "Bartek" <netopia@o2.pl> napisał w wiadomości
news:cl11ar$ph0$1@atlantis.news.tpi.pl...
Quote:
Celowo nie chce uzyc standardowych
odnozy szyny danych '51-ki (ALE, WR, RD) do sterowania tym scalakiem,
sa mi potrzebne do czego innego.
No to utrudniłeś sobie życie, bo ten scalaczek jest do tego przystosowany.
:-)
Quote:
Probowalem przyjrzec sie timingom w datasheetach ale szczerze mowiac nie
rozumiem co autor mial na mysli, a siedze nad programem i kombinuje juz
troche czasu...
Widać, że nie masz praktyki, bo te timingi nie są zbyt skomplikowane.
No i w datasheecie od MT8888, który mam jest błąd - na timingu dla zapisu
sygnał strobujący jest podany błędnie jako RD\, a powinno być WR\

. Takie
kruczki nie ułatwiają życia początkującym.
Dla przykładu odczyt:
- na początku programu (inicjalizacja) zadbaj, żeby linie WR\, RD\, CS\
miały stany wysokie, a linie D0..D3 najlepiej żeby były wejściami.
(teraz operacja właściwa:)
- wystawiasz 0 na linię CS i 0 lub 1 na RS0 (zależnie od tego czy operacja
dotyczy rejestru danych, czy kontrolnego)
- wystawiasz 0 na linię RD\ (po czasie 100ns na liniach danych D0..D3
pojawią Ci się dane - nie musisz na nic czekać, bo '51 jest duuużo
wolniejsza

)
- czytasz stany z linii danych D0..D3
- przywracasz 1 na RD\
- przywracasz 1 na CS\
To wszystko, co wg tych przebiegów musisz zrobić, żeby odczytać coś z
układu.
Zapis przebiega analogicznie, z tym, że wystawiasz dane na linie danych
przed powtórnym podniesieniem z 0 na 1 linii zapisu.
Uwagi dodatkowe:
1. Jeśli korzystasz z portu P0, jako GPIO, to pamiętaj o podciągnięciu
rezystorami jego wszystkich linii do plusa, bo to otwarty dren.
2. Jeśli sterujesz tym układem majtając bitami portów, to śmiem twierdzić,
że możesz sobie wejście CS\ na stałe podłączyć do masy (to teoria z czapki,
bo nigdy nie bawiłem się tym scalaczkiem - trzeba sprawdzić, ale IMHO
powinno działać).
3. Sugeruję podłączenie do portu P0: D0-P0.0, D1-P0.1, D2-P0.2, D3-P0.3,
RS0-P0.4, RD\-P0.5, WR\=P0.6 i ewentualnie CS\-P0.7.
Quote:
...bylbym gleboko wdzieczny za podpowiedz..
Nie ma sprawy. :-)
QmX.
Tomasz Gumny
Guest
Tue Oct 19, 2004 7:59 am
[quote:5aeb51224a]za przeproszeniem chipem sterować za pomoca '51,
(u mnie port p.0 na at89s8252).
[/quote:5aeb51224a]
Dodałeś rezystory podciągające do pinów wyjściowych P0?
[quote:5aeb51224a]Probowalem przyjrzec sie timingom w datasheetach ale szczerze mowiac nie
rozumiem co autor mial na mysli,
[/quote:5aeb51224a]
Tam nie ma wiele do (nie)zrozumienia!
TG
Bartek
Guest
Sun Oct 24, 2004 4:56 pm
Witam,
Dziękuje wam za pomoc...byla potrzebna
Ukladzik juz dziala. Pomijajšc kwestie rezystorow
podciagajacych i bledu w datasheecie (RD zamiast WR na timingach)
bylo jeszcze kilka innych drobnych niedociagniec zwiazanych z moim brakiem
praktyki...ale w koncu zadziałało :-)
Jeszcze raz wielkie dzieki.
Pozdrawiam
Bartek