Problem ze sterowaniem ukladem MT8888 za pomoca uC.

Oct 18, 2004 3 Replies

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



U¿ytkownik "Bartek" snipped-for-privacy@o2.pl napisa³ w wiadomo¶ci news:cl11ar$ph0$ snipped-for-privacy@atlantis.news.tpi.pl...

No to utrudni³e¶ sobie ¿ycie, bo ten scalaczek jest do tego przystosowany. :-)

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.

Nie ma sprawy. :-)

QmX.

Doda³e¶ rezystory podci±gaj±ce do pinów wyj¶ciowych P0?

Tam nie ma wiele do (nie)zrozumienia! TG

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

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required