Najlepsze narzędzia do debugowania prostych układów cyfrowych?

10

Jestem profesjonalnym programistą, który jest przyzwyczajony do luksusów zintegrowanych debuggerów. Od jakiegoś czasu eksperymentuję z platformą Arduino. Uważam jednak, że próba połączenia z takimi komponentami, jak cyfrowy czujnik temperatury Dallas DS1820, jest jak grzebanie w ciemności.

Zakładając luźny budżet w wysokości około 200 USD, jakie są narzędzia, które pomogą mi wizualizować, co się dzieje? Spojrzałem na Link Instruments MSO-19, ale szczerze mówiąc, niewiele wiem na temat różnicy między oscyloskopem a analizatorem logicznym.

Skąd mam wiedzieć, że urządzenie, które kupię, będzie w stanie mierzyć rodzaje (prostych) komponentów, których używam?

Owen Thomas
źródło

Odpowiedzi:

9

w zasadzie oscyloskop daje stopniowany odczyt napięcia na linii, podczas gdy analizator logiczny powie ci tylko, czy wynosi 0 lub „wysoki” (wartość „wysoka” może potencjalnie wynosić 5 V, 3,3 V lub 1,8 V w zależności od twój obwód). Często widzisz, że analizatory logiczne mają o wiele więcej kanałów (linii, które można odczytać jednocześnie) niż oscyloskopy z powodu wymaganej niższej rozdzielczości.

Jeśli chodzi o konkretne urządzenie, słyszałem wspaniałe rzeczy o Saleae Logic . Próbkuje przy 24 MHz; oznacza to, że sprawdza, czy napięcie na określonej sondzie jest wysokie czy niskie 24 miliony razy na sekundę. Wydaje się, że oprogramowanie posiada pewną wiedzę na temat popularnych wbudowanych protokołów w celu ułatwienia debugowania. Wyobrażam sobie, że do pracy w Arduino wystarczy 24 MHz, ponieważ maksymalna częstotliwość taktowania Atmegaxx8 wynosi 20 MHz.

Jeremy
źródło
Po pół dnia dalszych badań mogę powiedzieć, że Saleae Logic powinna mi pomóc na razie dzięki 90% moich pomysłów. Oprogramowanie wygląda na dopracowane i intuicyjne w przypadku sprzętowego „outsidera”, takiego jak ja. Widzę, jak oscyloskop byłby niezwykle pomocny, ale w przypadku prostych projektów analizator logiki USB wydaje się dobrym kompromisem.
Owen Thomas,
W The soul of a new machineTracy Kidder mówi (parafrazując), że jaskiniowcy użyli oscyloskopu, aby zobaczyć, dlaczego ogień nie chce się zapalić. :-)
stevenvh
9

to tylko dodatek do odpowiedzi penjuina, ponieważ nie mieścił się w komentarzu, a jego odpowiedź jest ogólnie poprawna. Chcę tylko wyjaśnić implikacje w jego odpowiedzi.

Bardzo ostrożnie wybieraj urządzenie pomiarowe na podstawie jego przepustowości / częstotliwości próbkowania. Urządzenie o częstotliwości próbkowania 25 MHz nie może dokładnie próbkować sygnału zegara cyfrowego 25 MHz, nawet nie może go zamknąć.

Jeśli weźmiesz sygnał zegara cyfrowego o częstotliwości 25 MHz i podasz go do zakresu o szerokości 25 MHz, zobaczysz coś zbliżonego do fali sinusoidalnej. Zakres z częstotliwością próbkowania 25 MHz prawdopodobnie wykazywałby poziom prądu stałego, ponieważ dla Nyquista najwyższy sygnał częstotliwości, jaki mógłby próbkować zakres, wynosiłby 12,5 MHz.

Fala kwadratowa zawiera częstotliwość podstawową, czyli częstotliwość taktowania, na przykład 25 MHz. Zawiera również duże nieparzyste harmoniczne, które nadają jej kwadratowy kształt, aby z dokładnością przyjrzeć się 25-MHz sygnałowi zegarowi cyfrowemu, trzeba by spojrzeć nie tylko na 25 MHz, ale 75, 125, 175, 225 itd. Jak daleko trzeba się posunąć do żądanej dokładności lub do prędkości narastania transiwera.

Chociaż jest to nieco mniej ważne, analizator logiczny jest nadal bardzo ważny. Analizator logiczny szuka „wysokiego” i „niskiego” powyżej lub poniżej pewnego progu. Jeśli pojawi się fala sinusoidalna, zobaczysz sztucznie krótkie stany wysokie i niskie oraz sztucznie długie przestrzenie między bitami. Może to być nieco zależne od architektury analizatora.

Może to uniemożliwić diagnozowanie problemów związanych z różnymi trybami transmisji. Na przykład SPI ma 4 różne tryby, w zależności od tego, czy dane są poprawne na rosnących lub opadających krawędziach zegara, a także na polaryzacji danych (jest wysoki 1 lub 0?). Inne protokoły transmisji również mają ten problem (na przykład I2S i powiązane formaty audio). Jeśli nie można dokładnie określić, kiedy mają miejsce przejścia krawędzi, prawie niemożliwe jest ustalenie, czy magistrala działa zgodnie ze specyfikacją.

Zasadniczo potrzebujesz przepustowości / częstotliwości próbkowania znacznie wyższej niż zamierzona docelowa szybkość danych. Jeśli chcesz próbkować magistralę I2C o częstotliwości 40 kHz, analizator logiczny o częstotliwości próbkowania 100 MHz jest więcej niż wystarczający. Jeśli chcesz wypróbować magistralę SPI 25 MHz, musisz mieć zakres / analizator o znacznie większej przepustowości, coś blisko 500 MHz, jeśli potrzebujesz prawdziwej dokładności, a także częstotliwość próbkowania, która umożliwia pomiar w tym zakresie częstotliwości.

Tak więc urządzenie penjuin zalecane z częstotliwością próbkowania 24 MHz może zapewnić jedynie dokładny pomiar sygnałów cyfrowych, które są mniejsze niż ~ 2 MHz z szybkością zbliżania się do tej prędkości.

znak
źródło
3
masz całkowitą rację, to całkowicie wymknęło mi się z myśli. Aby lepiej zilustrować ten efekt, wprowadziłem falę kwadratową 1 kHz do mojego oscyloskopu i wykonałem zrzut ekranu wynikowej transformaty Fouriera (oś x to w zasadzie częstotliwość): i.imgur.com/lJvtD.png . Harmoniczne są powtarzającymi się pikami.
Jeremy
1
@penjuin idealna ilustracja. Aby wyjaśnić moją odpowiedź na pytanie, zalecany penjuin urządzenia prawdopodobnie bardzo dobrze poradzi sobie z ardunio, ponieważ prawdopodobnie nigdy nie będziesz musiał radzić sobie z interfejsem działającym z częstotliwością> 2 MHz z tą klasą urządzenia. Chciałem tylko upewnić się, że nie przyjmie tej zasady i niech gryzie go, jeśli później przejdzie do urządzeń / interfejsów o większej prędkości.
Mark
1
Analizator logiczny z odpowiednio skonfigurowanym zmiennym progiem zwykle zapewnia wystarczającą rozdzielczość do analizy logiki tylko przy kilku czynnikach wyższych niż częstotliwość sygnału. Problem polega na tym, że sterownik odbierający sygnał przełączy się na zero logiczne dla wartości poniżej 1,2 V (na przykład) i logiki 1 dla wartości powyżej 2,2 V (na przykład), podczas gdy analizator logiczny może przełączyć się na 1,7 V, co powoduje czas mniej precyzyjny. W wielu przypadkach częstotliwość próbkowania w obwodzie cyfrowym jest około 2-3 razy większa, aby zrozumieć, co się dzieje.
Wouter Simons,
@wouter simons uważał, aby nie pomylić przepustowości i częstotliwości próbkowania (faktycznie wyczyściłem również użycie słowa w odpowiedzi). Częstotliwość próbkowania 2x częstotliwości twojego sygnału jest absolutnym minimum do wykrycia tego sygnału. W praktyce zakresy, a zwłaszcza analizatory, często są zbyt duże. Na przykład mój zakres Tek ma przepustowość 100 MHz, ale sampluje z częstotliwością 2,5 GHz.
Mark
Świetna odpowiedź. Poszedłem dobrze za twoim postem i prawdopodobnie nadal mogę zmierzyć to, czego chcę za pomocą jednego z tańszych urządzeń. Będę zwracał uwagę na ograniczenia, odkrywając bardziej skomplikowane elementy.
Owen Thomas,
8

Jeśli planujesz pracować głównie na obwodach cyfrowych, analizator logiczny jest tym, czego potrzebujesz. Oscyloskopy wyróżniają się dokładnym pokazywaniem stosunkowo niewielu (np. 2-4) sygnałów analogowych, podczas gdy analizatory logiczne, ponieważ dotyczą one głównie wysokich i niskich, zwykle mają znacznie więcej wejść.

Z pewnością możesz użyć O-scope jako analizatora logiki, ale zaletą tego drugiego jest to, że łatwiej jest uzyskać „duży obraz” dzięki możliwości jednoczesnego oglądania dziesiątek sygnałów.

JustJeff
źródło
2

Jeśli chodzi o analizatory logiczne, napisałem podstawowe porównanie (stosunkowo) niedrogich:

Porównanie analizatorów logicznych na PC

Jedną rzeczą, na którą należy zwrócić uwagę w zakresie prędkości próbkowania, jest ogólna zasada, że ​​na ogół potrzebujesz co najmniej 4x szybkości transmisji danych, aby uzyskać dokładny odczyt, a nawet 10x jest lepszy. Więc jeśli chcesz monitorować sygnał 8 MHz (który możesz łatwo wygenerować na przykład z niedrogiego AVR w SPI), potrzebujesz analizatora częstotliwości próbkowania 32-80 MHz. Dotyczy to tylko przechwytywania w trybie asynchronicznym. Jeśli przechwytujesz w trybie „synchronicznym” (np. Z sygnałem zegarowym), wówczas częstotliwość próbkowania musi odpowiadać tylko częstotliwości sygnału zegarowego. Na przykład w takim przypadku synchroniczne próbkowanie 8 MHz wystarczyłoby do przechwycenia sygnału SPI 8 MHz (ponieważ ma dedykowany sygnał zegarowy).

davr
źródło
1

Posiadam MSO-19 i bardzo mi się podoba. Chciałbym, żeby miał więcej niż jeden kanał analogowy, ale działa zarówno jako oscyloskop, jak i analizator logiczny. W tej cenie myślę, że to niezły sprzęt (i działa dobrze w VMWare na OS X). O'scope pomógł mi zobaczyć, co naprawdę dzieje się w części obwodu, i nie pokazuje tylko wysokiego / niskiego stanu linii cyfrowej, jak robi to analizator logiki. Jest to znacznie dokładniejszy (i szybszy) woltomierz niż standardowy multimetr. Byłoby naprawdę miło, gdyby mógł dekodować dane szeregowe, zamiast tylko I2C i SPI…

blalor
źródło
1

Ta odpowiedź prawdopodobnie nie jest zbyt przydatna w przypadku używania ardunio, ale jest odpowiedzią na ogólne pytanie.

Bardzo często korzystam z funkcji analizatora logicznego mojego pickit2. Oczywiście jest przeznaczony do programowania PIC, ale ma także tryb 3-kanałowego analizatora logiki, którego używam cały czas do patrzenia na sygnały cyfrowe. Nadal go do tego używam, mimo że używam Cortex-M3 do moich bieżących projektów. Oczywiście jest to niezwykle prymitywne narzędzie według standardu odpowiedniego sprzętu, ale mimo to uważam je za niezwykle przydatne

Użyłem go do debugowania obwodów I2C i sygnałów wyjściowych TV, na przykład zobacz mój post tutaj

John Burton
źródło
1

Jest to całkiem fajne i naprawdę tanie: http://www.seeedstudio.com/depot/preorder-open-workbench-logic-sniffer-p-612.html?cPath=75

Ma przyzwoitą częstotliwość próbkowania i możesz wesprzeć fajny otwarty projekt HW. Wygląda na to, że wciąż jest w fazie beta, więc może nie być najlepszą rzeczą, jeśli chcesz po prostu coś podłączyć i sprawić, by działało.

AdamShiemke
źródło
Właśnie kupiłem to miesiąc temu, ponieważ przede wszystkim pracowałem z netbookiem, miałem problemy z rozmiarem ekranu mojego komputera, aby móc kliknąć przycisk „przechwytywania”, ale jeśli masz laptopa o normalnej wielkości lub komputer stacjonarny, wszystko będzie dobrze. Nie korzystałem z niego zbyt często, ale tak mi się podoba, ale cena też jest niezła!
onaclov2000,
Używam tego LA dość często, a ponieważ jest to mój pierwszy LA, prawdopodobnie używam mniej niż 50% mocy / funkcjonalności, jaką zapewnia. Porównując różne inne tanie LA, okazało się, że jest to jedno z najlepszych LA pod względem stosunku jakości do ceny. Oprogramowanie nie jest złe. W rzeczywistości uznałem, że jest całkiem dobry do moich celów. Jeśli chcesz zobaczyć, jak go użyłem, po prostu kliknij mój profil i zobacz pytania, które zadałem.
icarus74