wersja mobilna

Analog Discovery 2 w praktyce (4). Analizator stanów logicznych

Numer: Czerwiec/2019

W artykule opisano sposoby użycia analizatora i generatora stanów logicznych zawartych w Analog Discovery 2.

Pobierz PDF

Rysunek 1. Wybór generatora i analizatora stanów logicznych

Analog Discovery umożliwia analizę sygnałów logicznych lub ich generowanie. Do dyspozycji zostało oddane 16 niezależnych kanałów o częstotliwości próbkowania 100 MS/s (możliwa jest analiza lub generowanie sygnału o częstotliwości do 50 MHz), w standardzie CMOS 3,3 V.

Przykłady przedstawione w artykule wykorzystują moduły LogicPatterns (rysuenk 1). Patterns służy za generator sygnałów logicznych, Logic odpowiada za ich analizę. Aby umożliwić wykonanie przykładów bez dodatkowego sprzętu, będziemy wykonywać analizę sygnałów logicznych wygenerowanych przez AD2 (np. sygnał zegarowy, UART, SPI).

Analizator stanów logicznych

Na rysunku 2 przedstawiono interfejs analizatora stanów logicznych. Pojedynczy pomiar (uzyskanie ustalonej liczby próbek danych po wyzwoleniu podstawy czasu - trigger) uruchamia się za pomocą przycisku Single. Pomiar ciągły można uruchomić przyciskiem Run/Stop (1). W polu (2) ustawia się tryb akwizycji danych:

  • Repeated (podstawa czasu jest wyzwalana wraz z sygnałem synchronizacji trigger i ustawiona w punkcie 0 ms),
  • Shift (okno pomiarowe jest przesuwane wraz z podstawą czasu),
  • Screen (gdy podstawa czasu osiągnie koniec okna pomiarowego, przeskakuje na początek okna),
  • Record („nagrywanie” sygnału przy dużej skali podstawy czasu, np. pełne okno zawiera pomiar trwający 1 minutę).

Wyzwalanie podstawy czasu jest konfigurowane za pomocą pól Trigger, Source, Simple, Pulse, Protocol (3).

Rysunek 2. Interfejs graficzny analizatora stanów logicznych

Rysunek 3. Konfiguracja trybu Simple synchronizacji czasu

Rysunek 4. Konfiguracja trybu Pulse synchronizacji czasu (np.  źródło sygnału DIO0, stan wysoki przez co najwyżej 1 µs)

Rysunek 5. Dodatkowe narzędzia ułatwiające analizę pomierzonych danych

Rysunek 6. Interfejs graficzny generatora sygnałów logicznych

Rysunek 7. Edycja parametrów sekwencji sygnału logicznego

Rysunek 8. Połączenie sygnałów TX i RX

Rysunek 9. Dodanie sygnału do generatora sygnałów logicznych

Rysunek 10. Interfejs graficzny konfiguracji generowanego sygnału

Rysunek 11. Interfejs graficzny edycji sekwencji

Rysunek 12. Dodawanie sygnału, który ma być mierzony

Rysunek 13. Konfiguracja protokołu

Rysunek 14. Konfiguracja synchronizacji UART

Rysunek 15. Pomiar protokołu UART - transmisja bajtu 0x82

Trigger zawiera globalne ustawienia podstawy czasu: None (brak synchronizacji), Auto (automatyczna), Normal (konfigurowana przez użytkownika).
Source umożliwia ustawienie źródła synchronizacji: sygnały cyfrowe, oscyloskop, generator funkcyjny itd.
Simple, PulseProtocol to tryby synchronizacji sygnałami cyfrowymi:

  • Simple - prosta synchronizacja poziomem logicznym (stan wysoki, niski) lub zboczem (narastające, opadające) (rysunek 3),
  • Pulse - synchronizacja w momencie wystąpienia impulsu o podanej długości trwania (rysunek 4),
  • Protocol - synchronizacja w momencie wystąpienia transmisji zgodnej z danym protokołem (np. UART).

Podstawę czasu konfiguruje się za pomocą pól Position (pozycja punktu synchronizacji względem punktu „0”) oraz Base (rozdzielczość - czas trwania jednej podziałki, np. 5 ms/div) (4).

Dodawanie mierzonych sygnałów odbywa się za pomocą przycisku +, usuwanie za pomocą -, kliknięcie w ikonę notatnika umożliwia zmianę nazwy sygnału na definiowaną przez użytkownika, T ustawia globalny rodzaj synchronizacji w trybie single (np. zbocze narastające) (5).

W polu (6) umieszczone są mierzone sygnały. Kolumna Name zawiera nazwę sygnału, ikona notatnika pozwala na jej zmianę. Kolumna Pin zawiera nazwę mierzonego sygnału, kolumna T umożliwia indywidualne ustawienie trybu synchronizacji dla każdego sygnału w trybie Simple.

Obszar (7) zawiera pomierzone dane. W lewym górnym rogu opisany jest stan synchronizacji - Config (konfigurowanie AD2), Armed (oczekiwanie na sygnał synchronizacji), Busy (wykonywanie operacji pomiaru), Done (pomiar wykonany, wystąpiła synchronizacja podstawy czasu).

Przycisk View (powyżej (1)) umożliwia uruchomienie narzędzi pomocniczych (rysunek 5):

  • Data - wyświetla pomierzone próbki danych,
  • Event - wyświetla zdarzenia podczas analizy protokołów (np. rozpoczęcie transmisji, zapis konkretnej wartości itd.),
  • Measurements - umożliwia pomiar parametrów sygnałów cyfrowych (częstotliwość, okres, szerokość impulsu itd.),
  • Logging - zapis pomierzonych danych do pliku,
  • Cursors - pomiar odległości między dwoma punktami pomiarowymi (różnica w czasie),
  • Notes - notatki użytkownika.
Generator stanów logicznych

Na rysunku 6 przedstawiono interfejs generatora stanów logicznych. Przycisk Run/Stop (1) uruchamia generowanie sygnału. Generowany sygnał może być zsynchronizowany z innym sygnałem (2). Pole Trigger umożliwia wybranie źródła synchronizacji - np. sygnał cyfrowy, oscyloskop, generator funkcyjny. W polu Wait można ustawić opóźnienie generowania sygnału po wystąpieniu synchronizacji. Run umożliwia konfigurację czasu trwania generowanego sygnału (continuous - ciągłe generowanie sygnału). Alternatywnie można ustawić liczbę powtórzeń sekwencji sygnału logicznego (pole repeat).

Pole (3) zawiera interfejs dodawania sygnałów logicznych:

  • + dodaje sygnał logiczny,
  • usuwa sygnał logiczny,
  • ikona notatnika - umożliwia edycję nazwy sygnału oraz edycję parametrów sygnału (rysunek 7),
  • Show - ustawienie kolumn, które są widoczne w tabeli aktywnych sygnałów (np. parametry) (4).

Generowanie sygnałów logicznych odbywa się w następujących etapach:

  • Wybranie sygnału, dla którego projektujemy sekwencję sygnałów logicznych (kolumna Name), ewentualnie edycja nazwy użytkownika;
  • Kolumna Pin wyświetla pierwotną nazwę sygnału,
  • Kolumna Output umożliwia konfigurację typu wyjścia sygnału:
    • PP (push-pull - standardowe wyjście),
    • OD (open-drain - otwarty dren [równoznaczne z otwartym kolektorem]),
    • OS (open-source - otwarte źródło [równoznaczne z otwartym emiterem]).

Wyjścia OD i OS przydają się w implementacji protokołów z tzw. iloczynem na drucie, gdzie nie ma jednostki sterującej arbitrażem na magistrali, np. I2C.

  • Kolumna Type - ustawienie rodzaju sekwencji sygnału logicznego:
    • constant - stała wartość 0 lub 1,
    • clock - zegar - parametry: częstotliwość, wypełnienie (duty cycle), przesunięcie fazy,
    • pulse - impuls - parametry: stan logiczny na początku sekwencji, czas trwania stanu wysokiego i niskiego,
    • random - losowe próbki,
    • custom - sekwencja użytkownika.
  • Parameters - liczba parametrów zależna od rodzaju sekwencji.
Przykład: symulacja protokołu UART

W tym przykładzie moduł Patterns odpowie za generowanie transmisji UART (TX), a moduł Logic za analizę protokołu UART (RX):

  • Sygnał DIO 0: TX, generowanie transmisji UART,
  • Sygnał DIO 1: RX, analiza transmisji UART.

Aby móc analizować protokół UART, należy połączyć sygnał 0 i 1 (rysunek 8).

Generowanie protokołu UART - Patterns

  1. Aby dodać sygnał, klikamy ikonę + (1), następnie wybieramy DIO 0 z listy dostępnych sygnałów (2) (rysunek 9).
  2. Następnie konfigurujemy sygnał (rysunek 10):
    • Edycja nazwy sygnału - klikając w notatnik (1), zmieniamy wyświetlaną nazwę sygnału na TX (2). Fizyczny sygnał jest wyświetlany w polu Pin (3).
    • Ustawiamy typ wyjścia na PP (push-pull) (4).
    • Zmieniamy typ sekwencji na custom (użytkownika) (5).
    • Przechodzimy do trybu edycji sekwencji, klikając w notatnik (6).
  3. Edycja generowanej sekwencji.

UART jest podstawową transmisją szeregową - składa się z jednej linii danych, transmitującej 8-bitowe dane. Dane są przesyłane asynchronicznie, tzn. odstęp między danymi jest ustalany z góry, nie występuje linia zegarowa. Transmisja danych odbywa się w nastepujący sposób:

  • Bit startu (stan niski - 0),
  • 8 bitów danych (rozpoczynających się od bitu najmłodszego - LSB),
  • Opcjonalny bit parzystości (określa, czy występuje parzysta liczba „jedynek” - używany jest do kontroli poprawności transmisji, nie jest używany w przykładzie),
  • Bit stopu (stan wysoki - 1).

W przykładzie wygenerujemy transmisję UART bajtu danych o wartości 0x82 (10000010), co daje sekwencję bitów przedstawioną w tabeli 1.

Interfejs graficzny edycji sekwencji jest przedstawiony na rysunku 11.

Edycja sekwencji polega na ustaleniu wartości poszczególnych próbek:

  1. Na początku ustawiamy częstotliwość próbkowania (1) i liczbę próbek w sekwencji (2) - w przykładzie użyjemy prędkości 100 kHz i 10 próbek (tabela 1).
  2. Klikając na pola poszczególnych próbek (3), zmieniamy stan logiczny próbki. Alternatywnie można wpisać wartość poszczególnej próbki w edytorze tekstowym (4).

 

Tabela 1. Sekwencja bitów transmisji UART
Bit startu D0 D1 D2 D3 D4 D5 D6 D7 Bit stopu
0 0 1 0 0 0 0 0 1 1

Po konfiguracji sekwencji należy uruchomić generowanie sygnału (Run). Ustawienia synchronizacji sygnału: Trigger: None, Wait: none, Run: continuous.

Analiza protokołu UART - Logic
  1. Aby dodać sygnał protokołu UART, należy kliknąć ikonę + (1) i z rozwijanej listy wybrać UART (2) (rysunek 12).
  2. Po dodaniu sygnału otworzy się okno dialogowe z konfiguracją protokołu UART (rysunek 13). Należy ustawić wszystkie opcje tak jak na rysunku.
  3. Następnie należy skonfigurować wyzwalanie podstawy czasu (trigger):
  • Mode: repeated,
  • Source: digital,
  • Tryb synchronizacji: Protocol -> UART -> Break (rysunek 14).
  • Podstawa czasu: position 0, base 50 μs/div.

Po konfiguracji klikamy przycisk Run, uruchamiając akwizycję danych. Jeżeli wszystkie ustawienia zostały wykonane poprawnie, na ekranie powinniśmy ujrzeć transmisję bajtu 0x82 (rysunek 15).

Jakub Wiczyński

Pozostałe artykuły

Sieć telefonii komórkowej 5G (3). Od teorii do praktyki budowania urządzeń

Numer: Czerwiec/2019

Wydaje mi się, że większość inżynierów elektroników miała do czynienia z urządzeniami radiowymi przede wszystkim jako ich użytkownicy. To znaczy, konstruowali co prawda urządzenia transmitujące dane z użyciem fal radiowych, ale korzystając z jakichś gotowych rozwiązań i co najwyżej dodając do urządzenia antenę z oferty dystrybutorów. Ale ci, którzy choćby otarli się o zagadnienia związane z antenami nadawczo-odbiorczymi ...

Środowisko projektowe STM32CubeIDE

Numer: Czerwiec/2019

Pisanie oprogramowania od zawsze wymagało przynajmniej dwu elementów: niezbędnej wiedzy i odpowiednich narzędzi. Narzędzia projektowe tak jak i mikrokontrolery przeszły od początku istnienia olbrzymie przeobrażenia. Dawno temu szczytem marzeń był kompilator asemblera z modułami linkera i bibliotekarza. Wprawny programista używający prostego edytora tekstowego i tych narzędzi potrafił pisać skomplikowane i zaawansowane programy. ...

Sieć telefonii komórkowej 5G (2). Od teorii do praktykti budowania urządzeń

Numer: Maj/2019

Wydaje mi się, że większość inżynierów elektroników miała do czynienia z urządzeniami radiowymi przede wszystkim jako ich użytkownicy. To znaczy, konstruowali co prawda urządzenia transmitujące dane z wykorzystaniem fal radiowych, jednak używając z gotowych modułów lub innych urządzeń i co najwyżej dodając do nich jakąś antenę z oferty dystrybutorów. Ale ci, którzy choćby otarli się o zagadnienia związane z antenami ...

Bezpieczeństwo funkcjonalne ARM

Numer: Maj/2019

Warunkiem wprowadzenia na rynek wielu produktów w takich branżach, jak: sprzęt gospodarstwa domowego, motoryzacja, przemysł lub medyczna, jest spełnienie wymagań prawnych potwierdzających ich zgodność z normami bezpieczeństwa funkcjonalnego. Uzyskanie certyfikatu jest jednym z warunków dopuszczenia artykułu do sprzedaży i polega na spełnieniu norm bezpieczeństwa, co czyni dany produkt bezpiecznym dla użytkowników. Producentów ...

Wyświetlacze z serii HCMS-29xx firmy Avago Technologies

Numer: Maj/2019

W artykule zaprezentowano niezbyt popularne, głównie ze względu na cenę, wyświetlacze z serii HCMS. Moduł wyświetlacza zawiera nie tylko matryce LED 5×7, ale również wszystko to, co jest potrzebne do sterowania wyświetlaniem, czyli rejestry przesuwne, wewnętrzny oscylator multipleksowania, źródła prądowe oraz obwody kontroli parametrów pozwalające, na przykład, na zmianę jasności świecenia. W ofercie firmy są moduły ...

Mobilna
Elektronika
Praktyczna

Elektronika Praktyczna

Lipiec 2019

PrenumerataePrenumerataKup w kiosku wysyłkowym

Elektronika Praktyczna Plus

lipiec - grudzień 2012

Kup w kiosku wysyłkowym