Digital Discovery – generator przebiegów cyfrowych i analizator stanów logicznych pod ręką
Generator przebiegów cyfrowych
Krótki przegląd przyrządów zintegrowanych w niewielkim pudełku Digital Discovery rozpoczynamy od generatora przebiegów cyfrowych. Urządzenia tego typu są niezastąpione w zaawansowanym badaniu urządzeń cyfrowych. 16 kanałów, to typowy parametr spotykany w wielu podobnych rozwiązaniach, i w większości przypadków wystarczający.
Z charakteru przyrządu wynika, że wszystkie przydzielone do niego linie są ustawiane w tryb wyjściowy. Taka definicja jest jednak zbyt ogólna, konieczne jest jeszcze uściślenie konfiguracji poprzez wybranie opcji w kolumnie „Output”. Są to: PP – Push Pull (możliwe stany to 0 lub 1), OD – Open Drain (0 i Z), OS – Open Source (1 i Z) i TS – Three State, gdzie Z jest stanem wysokiej impedancji. Konfiguracją domyślną jest TS. Przed uruchomieniem generatora konieczne jest zdefiniowanie rodzaju wyjść i przypisanie im linii dostępnych w Digital Discovery (z zakresu DIO24…DIO39). Przyrząd może generować do 16 niezależnych przebiegów cyfrowych („Signal”). Linie mogą być też podzielone i pogrupowane na szyny („Bus”) o dowolnej szerokości, ale łączna szerokość wszystkich szyn i linii niezależnych nie może być większa od 16. Ciekawą opcją jest też symulacja tablicy zawierającej dane zapisane pamięci stałej („ROM Logic”), tak jak czasami realizuje się np. dekodery adresowe itp. Opcje „Sinal” i „Bus” są dość oczywiste, zatrzymajmy się więc na chwilę na „ROM Logic”. Rozpatrzmy przykład dekodera wskaźnika 7-segmentowego. Definiowanie odpowiadającej mu tablicy polega na przypisaniu linii adresowych (np. DIO32…DIO35) oraz linii danych (np. DIO24…DIO30) (rys. 5a). Następnie należy wypełnić wszystkie pola opisujące możliwe kombinacje adresów i odpowiadające im stany wyjściowe dekodera (rys. 5b). Dla wygody użytkownik może nadać własne nazwy poszczególnym sygnałom. W przykładzie linie sterujące nazwano tak, jak zwykle są opisywane segmenty wskaźnika 7-segmentowego. Opcja „ROM Logic” nie działa samodzielnie. Aby na wyjściach pojawiły się stany zapisane w tablicy prawdy, konieczne jest podanie rzeczywistych sygnałów na wejścia adresowe. Na potrzeby symulacji można na przykład zdefiniować 4-bitową szynę generującą adresy, dbając o to, by tak uzyskiwane stany były podawane na wejścia dekodera. Efekt symulacji przedstawiono na rys. 6. Użytkownik określa typ szyny wybierając jeden z predefiniowanych: constant, number, clock, pulse, random, custom, binary counter, Gray counter, Johnson counter, walking 1, walking 0 i decimal counter. Na uwagę zasługuje typ użytkownika (custom) pozwalający na projektowanie własnych sekwencji cyfrowych składających się maksymalnie z 32768 taktów. Trudno wyobrazić sobie ręczne wpisywanie tylu stanów. Oprogramowanie pozwala na import danych w formacie CSV lub TXT. Krótsze sekwencje z powodzeniem mogą być definiowane we wbudowanym edytorze. Umożliwia on wprowadzanie stanów za pomocą myszki na wykresie czasowym lub przez wpisanie poszczególnych stanów w tabeli wyświetlanej obok wykresów (rys. 7).
b)
Analizator stanów logicznych i protokołów
Elektronicy nie dysponujący analizatorami stanów logicznych zmuszeni są do pomiarów układów cyfrowych za pomocą oscyloskopu. Są to na tyle uniwersalne przyrządy pomiarowe, że posługując się nimi całkiem sporą grupę problemów związanych z układami cyfrowymi można rozwiązać. Bariera pojawia się, gdy zachodzi konieczność jednoczesnej analizy wielu linii cyfrowych. Pomijając specjalne konstrukcje, oscyloskopy są produkowane jako urządzenia najwyżej czterokanałowe, tymczasem analizator stanów logicznych Digital Discovery pozwala na badanie aż 24 kanałów. Zainteresowanie analizatorami stanów logicznych może też wynikać z możliwości analizy protokołów stosowanych w popularnych szeregowych interfejsach komunikacyjnych i magistralach równoległych. Funkcja ta jest często nierozerwalnie związana z tym typem przyrządu. Trzeba podkreślić, że jest ona implementowana również w oscyloskopach, ale nadal ten temat jest traktowany bardzo komercyjnie. Producenci oscyloskopów, owszem, dają użytkownikom możliwość analizy protokołów, ale funkcja ta często jest dodatkowo płatna. Analizator Digital Discovery ma wliczoną w cenę analizę protokołów: Bus, SPI, I2C, UART, CAN, I2S, 1Wire oraz interfejsu Custom, którego algorytm pracy jest opisany w skrypcie pisanym przez użytkownika. Faktem jest jednak, że opcje płatne są zazwyczaj opracowane lepiej i pełniej. Jako przykład można podać opcje wyzwalania zdarzeniami występującymi w interfejsie UART. Program WaveForms 2015 pozwala ustawić wyzwolenie tylko po wykryciu bitu startu, stopu lub konkretnej danej. Brak jest wyzwalania od błędu ramki czy błędów parzystości. Widocznie autorzy oprogramowania doszli do wniosku, słusznego skądinąd, że kontrola parzystości praktycznie nie jest już stosowana. Nie można jednak milczeniem pominąć faktu, że wyzwalanie typu „Value” (czyli wykryciem konkretnej danej) w interfejsie SPI działa tylko dla danej otwierającej blok odbieranych danych (bezpośrednio po uaktywnieniu linii SS). Analizator protokołu SPI nie dekoduje też danych do formatu ASCII.
Wyzwalanie, to jedno z ważniejszych zagadnień związanych z analizatorem stanów logicznych. Można powiedzieć, że odpowiednio dobrany typ wyzwolenia umożliwia wręcz obserwację konkretnej sekwencji stanów występujących na liniach cyfrowych badanego urządzenia. W WaveForms 2015 nie jest z tym najgorzej, ale też nie ma szału. Oprócz prostych typów wyzwalania zboczem i stanem mamy jeszcze grupę „Pulse” dokładającą wyzwolenia typu „Glitch” (zakłócenie impulsem krótszym od zadanego czasu), „Timeout” (brak zbocza po upływie określonego czasu), „More” (wykrycie impulsu dłuższego od zadanego czasu), „Lenght” (wykrycie impulsu o zadanej długości z uwzględnieniem wprowadzonej histerezy). Na to wszystko nakładają się wyzwalania typu „None” (akwizycje rozpoczynają się jedna po drugiej bez sprawdzania jakiegokolwiek warunku), „Auto” (sprawdzany jest warunek wyzwolenia, ale jeśli po określonym czasie nie występuje, akwizycja jest uruchamiana i dalej urządzenie pracuje jak w trybie „None”) i „Normal” (akwizycja jest inicjowana tylko po wykryciu warunku wyzwolenia). Zdecydowanie brakuje wyzwolenia od określonego stanu wybranych linii traktowanych łącznie, nie mówiąc już o określonej sekwencji czasowej. Dobrym pomysłem jest natomiast sygnalizacja wyzwalania diodą LED. Można mieć tylko wątpliwość czy nie dobrano zbyt dużej jasności świecenia.
W programie WaveForms 2015 bardzo dobrze rozwiązano skalowanie i pozycjonowanie przebiegów wyświetlanych na ekranie. Podstawę czasu wybiera się z listy umieszczonej w górnym prawym rogu ekranu, można też wprowadzić precyzyjną wartość liczbową. Dodatkowo, parametry te są zmieniane przez rozciąganie i przesuwanie skali czasu za pomocą myszki. Szkoda, że nie można globalnie rozciągać w pionie wszystkich wykresów. Jeśli komuś na tym zależy, musi każdy przebieg skalować indywidualnie. Czynność ta przy wyświetlaniu 24 kanałów i typowej rozdzielczości ekranu jest raczej konieczna (rys. 8).
Porty I/O
Porty I/O to bardzo przydatne narzędzie w pracach serwisowych, konstrukcyjnych, jak również symulacjach urządzeń elektronicznych. Linie DIO24…DIO39 zamieniają się w wyprowadzenia wirtualnych przełączników, przycisków chwilowych, bargrafu, slidera i wskaźnika 7-segmentowego. Uzyskuje się więc różnorodne pod względem funkcjonalnym, a jednocześnie typowe elementy wejść/wyjść systemów cyfrowych. W zestawie znajdują się przyciski i przełączniki 2- i 3-pozycyjne ustawiające przypisane do nich linie w stan niski, wysoki lub wysokiej impedancji.
Protocol
Protocol – tak nazwano specyficzne narzędzie przeznaczone do testowania komunikacji między urządzeniami wykorzystującymi do tego celu popularne interfejsy szeregowe: UART, SPI i I2C. Protocol jest wirtualnym interfejsem użytkownika, który w oknach dialogowych widzi treść transmitowanych komunikatów nie zagłębiając się w szczegóły związane z analizą przebiegów występujących w liniach transmisyjnych. Okno dialogowe zmienia swój wygląd w zależności od typu badanego interfejsu. Po przypisaniu linii przyrządu Digital Discovery liniom interfejsu i określeniu parametrów transmisji możliwe jest wysyłanie danych umieszczonych w polu nadajnika, albo wysłanie ich z pliku zapisanego na dysku. Dane odbierane przez interfejs trafiają natomiast do okna odbiornika (rys. 10). W tym samym oknie zostają umieszczone również dane nadawane, jeśli włączono opcję „Tx Echo”. Narzędzie Protocol ma jeszcze jedną, bardzo przydatną w praktyce cechę pozwalającą symulować konkretne urządzenia lub podzespoły elektroniczne wykorzystujące interfejsy komunikacyjne. Do symulacji potrzebny jest skrypt, w którym użytkownik implementuje protokół stosowany w testowanym urządzeniu (rys. 11). Transmisję ogranicza długość bufora (16 kb). Jeśli przesyłany blok danych jest dłuższy, musi być dzielony na części. Programiści Digilenta opracowali przykładowe skrypty dla kilku popularnych czujników i pamięci Flash.
Script
Na podobnej zasadzie działa narzędzie, które autorzy nazwali Script. Jest to wirtualne stanowisko pomiarowe wykonujące automatycznie rozkazy zapisane w specjalnie opracowanym skrypcie. Można w ten sposób zmieniać położenie przełączników, pozycję slidera, sterować lampkami kontrolnymi itd. Jeśli użytkownik ma w planie wykonanie serii pomiarów składających się z powtarzających się, tych samych czynności, użycie skryptu może znacznie skrócić czas pracy i uprościć wykonywane zadania. W trybie „Debug” wszystkie polecenia są wykonywane krokowo.
Zasilacz
Chwilę uwagi należy poświęcić zasilaczowi występującemu jako niezależny blok funkcjonalny. Jest on przeznaczony do zapewnienia kompatybilności napięciowej z urządzeniami cyfrowymi dołączanymi do Digital Discovery. Standard napięciowy jest ustawiany płynnie suwakiem dostępnym w oknie dialogowym tego przyrządu, może też być wybierany z listy. Zarówno na suwaku, jak i na liście wyróżniono pozycje odpowiadające typowym standardom układów cyfrowych, a więc: 1,2 V, 1,5 V, 1,8 V, 2,5 V i 3,3 V. Napięcie zasilające porty cyfrowe jest wyprowadzone na jedno z gniazd Digital Discovery, ale użytkownik noże je niezależnie wyłączać. Regulowane są ponadto: wydajność prądowa wyjść cyfrowych w zakresie 2…16 mA oraz parametr „Slew rate” (Fast, Slow, Quiet). Wewnętrzne rezystory podciągające są dołączane do VCC, GND lub „wiszą w powietrzu”.
Co dalej?
Firma Digilent istnieje od kilku lat. Można powiedzieć, że rozpoczynała od jednego urządzenia, dzisiaj ma w ofercie kilka własnych przyrządów pomiarowych, płytki ewaluacyjne dla układów FPGA i zestawy elementów do eksperymentów elektronicznych, liczne akcesoria przydatne w warsztacie elektronika. Jest obecna w sieci na Facebooku, prowadzi blog z atrakcyjnymi pomysłami nadsyłanymi przez czytelników i gotowymi projektami. Własne Forum umożliwia wymianę doświadczeń pomiędzy specjalistami, prowadzenie konsultacji, zgłaszanie problemów ze sprzętem itp.
Flagowym wyrobem Digilenta jest Analog Discovery 2, do którego obecnie dołączył Digital Discovery. Można powiedzieć, że oba te przyrządy w dużym zakresie wypełniły listę urządzeń produkowanych przez większość znanych i dużych producentów, do której należą: oscyloskopy, generatory arbitralne i analizatory stanów logicznych/analizatory protokołów. Digilent oferuje uproszczone wersje takiej aparatury wykonywane jako przystawki USB do komputerów. Jest to świadomy wybór wynikający z maksymalnego uproszczenia obsługi i minimalizacji kosztów. Pozostają jeszcze dwie grupy urządzeń, którymi Digilent jeszcze się nie zajmował: arbitralne zasilacze laboratoryjne i analizatory widma. Gdyby przyrządy takie pojawiły się kiedyś w ofercie tej firmy, byłby to niewątpliwie przełom w branży elektronicznej. Bariera technologiczna może być jednak trudna do pokonania. Jaki będzie dalszy kierunek rozwoju tej firmy? Czas pokaże.