magistrala(e)

witam

mam pytanie zwiazane z budowa magistrali mam do dyspozycji 8-mio bitowa szyne , byc moze uda mi sie jeszcze wygospodarowac dwie linie I/O chce miec mozliwosc zapisywania slowa (8b) w wiecej niz jednym urzadzeniu podlaczonym do mojej magistrali wykombinowalem to sobie tak ze na poczatek na moja magistrale bedzie wystawiany adres i zatrzaskiwany w zatrzasku przechowujacym dane ten zatrzask bedzie odpowiedzialny za wybranie konkretnego urzadzenia raczej za pomoca sygnalu CE dla kazdego z urzadzen - mozna inaczej - wystawiac adres i tak jak w PC-cie na magistrali ISA,dekoder adresu na karcie sprawdzi czy wystawiony na szyne adres zgadza sie z jego adresem ale mi nie jest potrzebna taka ilosc urzadzen.Wystarczy w zupelnosci 16 sztuk co moge zrealizowac za pomoca dekodera 4 na 16 w momencie kiedy juz zostanie ustalony adres na ta sama magistrale wystawie dane i jak dane juz beda gotowe to zatrzasne w konkretnym ukladzie wyjsciowym.Faze pracy mojej magistrali (adres/dane) zamierzam ustalac jedna z dodatkowych linii I/O,zatrzasniecie danej kolejna obie magistrale (adres/dane) przewidziane tylko jako wyjsciowe czy w tym co sobie obmyslilem sa jakies zasadzki ?

z gory dzieki za opinie

Reply to
n_o_m_a_d
Loading thread data ...

Dnia Thu, 18 Nov 2004 00:55:43 +0100, neuron napisał(a):

szeregowe to pewnie ze wzgledu na ilosc sciezek,rozmiary polaczen miedzy plytkami jakies inne powody? mi na przyklad szeregowa magistrala nie pasuje bo jak chce zmienic jeden bit w slowie to zmienie ten jeden bit a w magistrali szeregowej musze wepchnac wszystkie osiem,jak nie mam odczytu stanu wyjscia a program gdzies zawiedzie i nie bedzie wiedzial w jakim stanie sa wyjscia to sie moze calosc rozjechac dobrze mysle ?

Reply to
n_o_m_a_d

Uzytkownik "n_o_m_a_d" snipped-for-privacy@dla.spamerow.xx> napisal w wiadomosci news:1cxk7lh4vr2cl$.1j0ocn1i1hqoa$. snipped-for-privacy@40tude.net...

Kiedys produkowalem taki sterownik z kilku pakietow i/o - magistrala to bylo

8 linii i od razu 8 linii adresowych (razem z zasilaniem tasiemka 20 z zaciskanymi wtykami). a na pakiecie bylk przelacznik wybierajacy linie. Calym ''sterownikiem'' magistarali byl ls345 i ls138 a na pakietach zatrzaski 573 / 574. Chodzilo toto w maszynach i nie bylo problemow. Tyle ze odczyt/zapis we/wy odbywal sie cyklicznie non stop tak wiec jesli by nawet zatrzasnieta zostala jakas lewa wartosc na wyjscia to po kilku milisekundach byla zastepowana nowa. Jednak gdybym dzisiaj mial to zrobic od nowa to zastosowalbym magistrale szeregowe - lancuchy rejestrow szeregowo / rownoleglych lub ekspandery i2c

wojtek

formatting link

Reply to
neuron

Dnia Thu, 18 Nov 2004 01:20:31 +0100, neuron napisał(a):

[...]

widze ze wszystko idzie jednak w strone magistrali szeregowej juz teraz wiem ze bede musial sie zmiescic na 8-miu a nie 10-ciu bitach czyli z adresami jeszcze mi wyjdzie bez problemu ale dane bede juz ladowal "na dwa razy" zastanawiam sie nad zmiana calego pomyslu do gory nogami - jeszcze moge calosc bedzie podwieszona na szyne ukladu ft245 a ft245 wpiety w USB stad sie biora moje ograniczenia rozmiaru szyny teraz widze ze mozna bylo calosc zrobic jeszcze inaczej zamiast ft245 kupic ft232 pod port szeregowy podlaczyc jakis uP ktory by sie zajmowal czytaniem/pisaniem z portow juz jego zmartwieniem by bylo co i jak pisac albo co skad czytac wtedy pecet gadal by z uP i zlecal jakies rzeczy do zrobienia huh calosc zaczyna sie komplikowac :)

Reply to
n_o_m_a_d

Nie wiem co ma byc podwieszone na tej twojej magistrali - u mnie byly to wejscia 24v i wyjscia przekaznikowae -a wszystko dzialao w nienajlepszych warunkach dlatego ZAWSZE NON STOP czytalem/pislaem stan we/wy pakietow do ich odpowiednikow w ramie a wlasciwy program operowal na virtualnych bitach. Dodatkowo bity wejsciowe byly filtorwane na okolicznosc jakichs smieci. Jesli w wyniku zaklucenia jakis pakiet wyjsciowy ''zlapal'' jakas wartosc to natychmiast zostala ona zastapiona nowo poprawna wartoscia zanim przekaznik wogole pomyslal zeby ruszyc kotfice :)

Tak wiec daj magistrale szeregowa procedury czytaj_wszystko i pisz_wszystko, podepnij je pod jakis zegar a ty bedziesz sobie manipulowal bajtami w ramie :) wojtek

formatting link

Reply to
neuron

Taki pomysl jak podales jest dosyc marny, bo co bedzie jesli ci sie rozjedzie synchronizacja pomiedzy bajtem adresu i danych? Musialbys to tak sprytnie obmyslec, zeby ten protokol sie sam synchronizowal i np. po serii bezsensownych danych wracal to stanu prawidlowego. Naspisz jakiej predkosci oczekujesz? Mo moze prosciej to rzeczywiscie zrobic dajac po obu stronach jakies male procki (cos w stylu ATTiny) konwertujace rownolegle podawane dane na postac szeregowa i z drugiej strony odwrotnie. Czyli dla twojej aplikacji istnienie szeregowego interfejsu byloby zupelnie przezroczyste. Dodatkowo procki moglyby korzystac z bardziej zaawansowanego protokolu i jakiejs kontroli bledow. A wystawienie przez nie CE do aktywacji modulu to juz no problem. Alternatywa moze byc zaprogramowanie jakiegos CPLD specjalnie do tego celu.

Reply to
T.M.F.

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.