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?- 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.