Test połączeń pomiędzy układami

Witajcie. Mam do napisania program testujacy połączenia pomiędzy portami dwóch układów scalonych PCA9555. Układy te posiadają 2 porty 8-bitowe in/out konfigurowane i sterowane po I2C. Jeden układ ma skonfigurowane swoje porty jako wyjście, drugi jako wejscie. Test połączeń (wykrywanie przerw w połączeniach pomiędzy U1 i U2, zwarć pomiędzy połaczeniami, zwarć do masy, itd.) polega na ustawieniu na portach wyjsciowych układu U1 określonych stanów i sprawdzania ich na portach wejściowych układu U2. Tak to wygląda:

U1 U2 Out In []------>P0>-----[] []------>P1>-----[] []------>P2>-----[] []------>P3>-----[] []------>P4>-----[] []------>P5>-----[] []------>P6>-----[] []------>P7>-----[]

Testuję w następujący sposób: w układzie U1 ustawiam na jego pierwszym pinie wyjściowym P0 stan 1, a na pozostałych P1..P7 same 0 i sprawdzam, czy na pinie wejściowym P0 układu U2 jest też 1, a na pozostałych 0. W następnym kroku testu wystawiam 1 tylko na P1, a na P0 i P2..P7 ustawiam 0 i sprawdzam, czy tylko na pinie P1 układu U2 jest 1, a na pozostałych 0. Ogólnie mówiąc, test polega na przesuwaniu jedynki na kolejnych pinach. Pytania:

1.Czy test ten jest wystarczający, żeby wykryć wszelkie błędy w połączeniach? 2.Czy jest konieczne zrobienie dodatkowego testu polegającego na przesuwaniu nie jedynki, a zera (zero zawsze jest tylko na jednym pinie, na pozostałych 1) ? 3.Czy jest sens zrobienie dodatkowego testu polegajacego na jednoczesnym wystawieniu jedynki na wszystkich portach wyjściowych U1 i sprawdzeniu, czy na wszystkich portach wejściowych U2 są też jedynki?
  1. Analogicznie czy jest sens testu z zerami na wszystkich portach?

Moim zdaniem, test z przesuwającą się jedynką jest wystarczający, może się mylę. Jeśli tak, to proszę uzasadnij swoje odmienne zdanie przykładowym błędem, którego test z przesuwaną jedynką nie wykryje, a wykryje np. test z przesuwanym zerem.

Reply to
Marek
Loading thread data ...

może się mylę.

błędem, którego

przesuwanym zerem.

Czy to jest zadanie akademickie czy opracowujesz metodę do wykrywania błędów pol.? Jeśli akademickie, to ja bym zadał pytanie inaczej: czy trzeba aż 8 kroków testu z przesuwana jedynką (zerem) czy błąd można wykryć szybciej i prościej ?

Reply to
Marek

Dnia Wed, 16 Jan 2013 08:48:52 +0100, Marek napisał(a):

Wystarczą 2 kroki: 00 i FF.

Reply to
Jacek

W dniu 2013-01-16 08:53, Jacek pisze:

Nie wykryjesz zwarć między liniami.

Michał

Reply to
Michał Lankosz

Sam opracowuję metodę testu.

Reply to
Marek

Użytkownik "Jacek" snipped-for-privacy@ola.pl napisał w wiadomości news: snipped-for-privacy@40tude.net...

Udowodnij, że wszystkie nieprawidłowości (brak połączenia, zwarcie pomiędzy liniami, zwarcie linii do masy, itd.) jesteś w stanie wykryć w ten sposób.

Reply to
Marek

W dniu 2013-01-16 10:06, Marek pisze:

Tu nie ma co udowadniać. Tak jak napisał Michał. Wystarczy zwarcie między liniami i ten test jest do niczego.

Reply to
Elektrolot

Popatrz jak działają testery CAT5.

c.

Reply to
Cezar

Użytkownik "Marek" snipped-for-privacy@fele.kuku.pl> napisał w wiadomości news:kd5kao$sgb$ snipped-for-privacy@news.task.gda.pl...

Jeśli przyjmiemy założenie, że połączenie jest wykonane zwykłym przewodem i nie występują w połączeniu zjawiska nieliniowe (spowodowane np. korozją styków, upływnościami itp.), to przesuwanie "1" jest IMHO wystarczające.

Reply to
yabba

Marek napisał(a):

Masz następujące przypadki:

1) Połączenie jest OK 2) Przerwa w połączeniu 3) Zwarcie do VCC 4) Zwarcie do GND 5) Zwarcie pomiędzy liniami

Testując metodą zerojedynkową 2 i 3 mogą dać ten sam wynik. Może też się zdarzyć, że 2 i 4 dadzą ten sam wynik. 1 i 5 na pojedyńczym bicie też mogą dawać te same rezultaty. Ale to da się wyczaić testując wszystkie możliwe kombinacje 2-ch bitów podając na port różne wartości bitów. Wniosek: 2,3 i 4 w Twoim testerze mogą być nierozróżnialne.

Reply to
Stachu Chebel

Użytkownik "Elektrolot" snipped-for-privacy@NOSPAMwp.pl napisał w wiadomości news:50f66ee6$0$1221$ snipped-for-privacy@news.neostrada.pl...

Jaki Michał??

Też tak myślę, stąd moja prośba do Jacka o udowodnienie, że taki test (2 kroki: 00 i FF) wystarczy.

Reply to
Marek

W dniu 2013-01-16 11:34, Marek pisze:

Michał Lankosz. Patrz kilka wpisów wyżej.

Reply to
Elektrolot

Użytkownik "Elektrolot" snipped-for-privacy@NOSPAMwp.pl napisał w wiadomości news:50f6853d$0$1313$ snipped-for-privacy@news.neostrada.pl...

U mnie w OE (news.task.gda.pl) w tym wątku nie widzę postu żadnego Michała, ale jak sprawdziłem ten wątek na tej grupie na Google, to faktycznie jest post Michała :D Widocznie są lagi między serwerami grup.

Reply to
Marek

W dniu 2013-01-16 11:22, Stachu Chebel pisze:

Kompletnie się nie zgadzam. Przesuwanie jedynki i testowanie wszystkich bitów jest jak najbardziej wystarczające. Jesteś w stanie podać chociaż jeden przykład, kiedy taki test będzie niepoprawny?

Reply to
Elektrolot

Przypadek 5: Dajesz na n-ty bit "0", następnie "1" podczas gdy na bicie n+1 z którym jest zwarty jest podane "0". Na odczycie zawsze w takim przypadku masz "0". Pytanie: czy bit n jest zwarty z bitem n+1, czy bit n jest zwarty do GND?

Reply to
Stachu Chebel

W następnym kroku stwierdzisz jaka jest przyczyna tego błędu, kiedy na bicie n+1 będzie wystawiona 1-ka, a na bicie n-tym z powrotem 0:

  1. gdy jednoczesnie na na bicie n-tym i n+1 będzie 0 lub 1, to zwarcie linii 'n' i 'n+1' 0 lub 1: bo bilansowy stan zależny od tego, czy bit wyjściowy n-ty, logicznie w układzie ustawiony na 0, mimo że 'podniesiony' do 1 z powodu zwarcia linii z bitem wyjściowym n+1 będzie w stanie wymusić stan 0, czy też bit wyjściowy n+1 (ustawiony na 1), mimo że obciążony bitem wyjściowym n-tym (ustawionym na 0) będzie w stanie wymusić stan 1 (kwestia wydajności prądowej portów wyjściowych). Tak czy tak, jeśli stany bitów n i n+1 będą zgodne, to znaczy ze jest zwarcie linii n i n+1.
2: gdy na bicie n-tym będzie 0, a na n+1 będzie 1, to bit n ma zwarcie do GND.
Reply to
Marek

W dniu 2013-01-16 12:29, Stachu Chebel pisze:

Założyłem że test ma tylko dwa wyniki: pozytywny i negatywny. Może autor się wypowie, czy chce wykrywać konkretny przypadek (zwarcia, przerwa). Wtedy faktycznie trzeba testować kombinacje wszystkich bitów na których pojawiły się stany niepoprawne, żeby stwierdzić czy jest zwarcie od innego bitu, czy do masy, czy oba zwarcia na raz.

Reply to
Elektrolot

Testowanie tego na krzemie (czy na PCB) to cała dziedzina nauki, tu jak jest 8 pinów to ja bym się nawet nie zastanawiał, tylko puścił wszystkie

256 kombinacji - program testowy napisze się szybciej niż post na grupę, a czas testu pomijalnie mały.

W praktyce istnieje jeszcze coś takiego jak zwarcie rezydencyjne (topnik, resztki miedzi, zanieczyszczania) które powoduje, że np na pinie 2 zostanie odczytane 1 zamiast 0 tylko w sytuacji gdy na pinach 1 i 3 mamy równocześnie 1.

Reply to
Michoo

W dniu 2013-01-16 13:11, Marek pisze:

A co w przypadku gdy oba bity będą zwarte do masy lub zwarte między sobą i jeden do masy? Też otrzymasz dwa zera. Chyba że ten stan też traktujesz jako po prostu zwarcie.

Najprościej zapodać wszystkie 256 kombinacji i po sprawie.

Reply to
Elektrolot

Testowanie można dalej rozbudować "ad nauseam". Możliwe jest, że na wyjściu masz coś koło VCC/2 i, w zależności od plam na słońcu, temperatury i miesiączkowania pingwinów dostaniesz albo 1 albo 0 na wyściu. Czasem test będzie ok, a w akcji układ nie będzie działał. Inna inkszość to czas propagacji. Jedna linia jest trochę krótsza, ma inną pojemność i np. jeden bit czasami przychodzi po strobe i pupa blada. Ale dla warunków stałoprądowych* zrobiłbym jak powyżej: 256 kombinacji, ewentualnie mierząc napięcia analogowo.

Waldek

  • definicja prądu stałego wg mojego kumpla: prąd stały jest wtedy, kiedy nie musisz się specjalnie martwić o wymiary elementów i długości kabli.
Reply to
Waldemar Krzok

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.