JTAGów bez daisy chain

Taka sytuacja: mam w systemie około 4 urządzeń programowalnych po JTAG. Ponieważ nie wszystkie muszą być fizyczne osiągalne w danym momencie, nie mogę ich połaczyć w daisy-chain.

W systemie bedzie procesor, którego zadaniem bedzie komunikacja z nimi po JTAG.

Teraz mam taki luźny pomysł: a) jtagi sa połaczone w gwiazdę b) TMS, out do wszystkich równolegle c) TCK, in do każdego osobno

Czy to ma sznase działać? Konkretnie nie wiem czy wolno mi machać drutami TMS, out tak po prostu bez machania linia TCK. Na pierwszy rzut oka nie powinno być z tym problemu, ale ... no wlasnie. Wole zapytać.

Reply to
Sebastian Biały
Loading thread data ...

W dniu sobota, 28 września 2013 19:32:11 UTC+2 użytkownik Sebastian Biały napisał:

Tyle, że będziesz musiał z każdego urządzenia wyprowadzić osobno TDO na jakiś multiplekser, albo osobnymi drutami do procka. Strasznie dużo kablarstwa się zaczyna robić. Daisy chain jest mimo wszystko najlepszy i sprawdzony.

Reply to
stchebel

Taka jest wlasnie myśl.

Nie ponieważ u mnie zamiast urządzenia może być dziura. Urzadzenia są wpinane i wypinane w sposób dowolny.

Efektem czego:

a) muszę robić zworki In<->Out b) musze w software zgadywać że nie ma N-tego układu. Cięzka sprawa, bo chyba nie da się zgadnąc *którego* brakuje.

Dlatego wole poświęcić kilka nóg więcej i mieć 1000% pewności z kim gadam.

Reply to
Sebastian Biały

Wiadomo, jak brakuje układu, to musisz pomiędzy TDI<=>TDO wpie[rzyć zworkę albo np. rezystorki 0 Ohm. O ile są to różne ukady, to soft powinien (MUSI!!) dać se radę z odczytaniem z imienia i nazwiska te które są na pokładzie , a które nie. Jeżeli są to takie same układy to poopa blada. Wtedy trza robić tak jak kombinujesz. To będzie działać.

Reply to
stchebel

Cóż, życie mnie zweryfikuje.

Ponadto, nawet gdyby to były rózne układy to master nic nie wie o ich identyfikatorach bo nie ma pojecia jak je odczytać. Wczesniej pytałem o jakiś projekt SVF Playera wlasnie dlatego, że niuanse programowania JTAG są na tyle absurdalnie skomplikwane że nie da się zrobić tego generycznie we firmware i musze ucieć do software.

Problem w tym że user końcowy może sobie wetknąć *cokolwiek* z JTAG w dziurę. Nie mam jak generycznie tego obsługiwac.

Reply to
Sebastian Biały

Nic podobnego. Master ma tu guano do rzeczy, o ile rozumiem że Master w/g Ciebie to pierwsze urządzenie w daisy-chain. Jeżeli układ jest taki: [procek]=>(TDI)=>[device_0]=>(TDO/TDI)=>[device_1]=>(TDO/TDI)...=>[device_n]=>(TDO)=>[procek] ,to z dowolnego urządzenia "gdzieś tam w środku" łańcucha jego identyfikator "przelatuje" przez kolejne i identyfikacja softwarowa jest możliwa. Tak zresztą działa np. używany przeze mnie XILINX platform cable. Cokolwiek by nie było w łańcuchu wpięte, to soft daje se radę. Tak że od strony softu Twój problem jest identyczny w daisy chain i Twoim pomyśle. Twoje rozwiązanie ma jednak tę zaletę, że jak jakiegoś urządzenia nie ma wpiętego, to nie przerywasz łańcucha TDO/TDI.

Reply to
stchebel

W dniu 2013-09-29 09:43, snipped-for-privacy@gmail.com pisze:

Podejrzewam, że raczej to co zarządza transmisją czyli interfejs i komputer z softem do programowania/debugowania.

No chyba, że to OpenOCD to mu trzeba podać plik cfg definiujący każdy tap np: jtag newtap XCF01S tap -irlen 8 -ircapture 0x01 -irmask 0x3

-expected-id 0xd5044093 i to nawet wtedy gdy nie zamierzasz pisać do tego urządzenia.

Reply to
Mario

Taka sytuacja: mam w systemie około 4 urządzeń programowalnych po JTAG.

A nie można po prostu dać rezystora pomiędzy TDI a TDO przy każdej podstawce/footprincie? Jak scalak nie będzie obsadzony, to sygnał przejdzie bypassem.

Reply to
Sylwester Łazar

To dalej utrudnia mi zgadnięcie *którego* nie ma. Co gorsza CPLDki bedą raczej identyczne i będzie ich kilka, user sobie może wypiąć dowolny z nich. Wyobraź sobie że to coś na kształt płyty głownej z kartami.

Reply to
Sebastian Biały

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.