PulseView i Sigrok – z analizatorem USBEE Ax-Pro

Całkiem dużo zmieniło się ostatnio w pakiecie Sigrok/PulseView. Dla tych, którzy nie mieli jeszcze z nim styczności: Sigrok to darmowe (i otwarte) oprogramowanie zbierające wyniki z urządzeń diagnostycznych podłączanych do komputera – np. mierników, oscyloskopów czy analizatorów logiki.  PulseView to interfejs graficzny Sigrok. Dzięki PulseView można zobrazować dane zebrane przez Sigrok. Pakiet Sigrok/PulseView obsługuje obecnie ponad 190 różnych urządzeń podłączanych do portu szeregowego czy USB. Drugie tyle jest planowane. 

Warto przyglądnąć się temu pakietowi bliżej. Stanowi ciekawą alternatywę dla oprogramowania komercyjnego lub tego załączanego do poszczególnych urządzeń –  którego jakość bywa… dyskusyjna. Co więcej – zamiast kilku osobnych programów dla Waszego oscyloskopu lub miernika – możecie użyć Sigrok/PulseView.

Tutaj wykorzystam Sigrok/PulseView do obsługi analizatora USBEE AX-Pro.

Instalacja pod linuks

Instalacja pod linuks sprowadza się do ściągnięcia i uruchomienia jednego skryptu:

Jeżeli już wcześniej ściągnęliście pakiet z gita – możecie go odświeżyć. git pobierze wtedy nowszą wersję:

U mnie wystąpił problem z biblioteką boost:

Łatwo było to naprawić:

Po tym program odpalił się bez problemów:

Instalacja urządzenia

Podłączcie urządzenie pomiarowe do komputera. W górnym menu powinniście mieć element: ‚Demo Device’. Demo Device to domyślne urządzenie – a raczej oprogramowanie go udające. Kliknijcie ten element. Otworzy się okienko wybierania urządzenia: 

W pierwszym kroku (Step 1) wybierzcie sterownik urządzenia. Dla analizatora logicznego USBee AxPro (i większości mu podobnych) wybierzcie  fx2lafw:

Teraz wystarczy przeskanować porty w poszukiwaniu urządzenia – u mnie pojawił się „CWAV USBee AX with 9 channels”:

 

Szybki test

Prosty program na Arduino wygeneruje przebieg kwadratowy:

Podłączcie analizator:

  • GND (masę) analizatora do masy Arduino,
  • Pin DCH0 z pinem D13 arduino.

Skonfigurujcie PulseView tak, żeby widoczny był tylko jeden kanał. Teraz kliknijcie przycisk: Run. 

Sygnał z portu cyfrowego pokazał się bez żadnych problemów.

Analog…?

Mój analizator posiada opcję „oscyloskopu”. Oprócz 8 kanałów cyfrowych, wyposażono go w dodatkowy kanał analogowy. Specjalna płytka umożliwia podłączenie sondy i próbkowanie sygnału analogowego. 

Gdy poprzednim razem testowałem Sigrok/PulseView – funkcja ta nie działała w ogóle. Teraz Sigrok/PulseView potrafi zbierać – i wyświetlać dane uzyskane z kanału analogowego.

Spróbujmy: na wyjściu pinu Arduin D12 dołożę prosty układ składający się z 3 kaskad RC:

Oczekuję, że układ taki wygeneruje mi sinusoidę. Układ na płytce stykowej wygląda tak:

Zmodyfikuję program na Arduino, żeby generował 10kHz na pinie D12:

Skąd wzięło się 50us (mikro-sekund)? 10kHz to 10*1000 okresów w ciągu sekundy. Każdy okres powinien więc trwać 1/(10000) sekundy, czyli 0,0001 sekundy, 0,1 ms czyli 100uS. Zakładam wypełnienie 50%, czyli sygnały wysoki i niski powinny trwać po 50uS.  

Do wyjścia z układu (za 3 kaskadą RC) podłączyłem wejście cyfrowe i analogowe analizatora.

W PulseView wybrałem 3 kanały (D0, D1 i A0). Zmieniłem ich nazwy:

  • Źródło: przebieg prostokątny z pinu Arduino  D12 na kanał cyfrowy analizatora D0
  • Pomiar cyfrowy: wyjście z kaskady podłączone do kanału analizatora D1, pomiar też cyfrowy
  • Pomiar analogowy – kanał A0 PulseView analizatora połączonegoy z sondą na wyjście zmontowanego układu.

W PulseView uzyskałem takie przebiegi:

Widać tu wyraźnie różnicę między zbieraniem przebiegu przez kanały cyfrowe i analogowe. Oczywiście w przypadku przebiegów jak taka przesunięta sinusoida  – mierzenie jej analizatorem bez opcji analogowej kompletnie mija się z celem.

Co ciekawe, uzyskany z analizatora przebieg analogowy niewiele różnił się od przebiegu zmierzonego oscyloskopem:

Dla porównania – pomiary za 1 stopniem kaskady:

Kilka wniosków

Nareszcie – Sigrok/PulseView potrafią obsługiwać sygnały z wejść analogowych!

PulseView umożliwia  dodanie „kursorów”, powiększanie i pomniejszanie wykresu itp.:

Dla przebiegów analogowych można pobawić się kilkoma ustawieniami – między innymi podziałką.  

Teoretycznie analizator umożliwia analizę z częstotliwością próbkowania do 24MHz. W praktyce granicą było 12MHz. Powyżej tej częstotliwości sigrok zgłaszał błąd i przestawał działać. Oznacza to, że możecie mierzyć sygnały o maksymalnej częstotliwości poniżej 6MHz (twierdzenie Nyquista). 

Jeżeli nie jesteście pewni, czy Sigrok/PulseView wspiera Wasze urządzenie – polecam lekturę głównej stony projektu: https://sigrok.org.

Niestety, generacja sygnału dalej nie jest obsługiwana. 

Podsumowując: projekt idzie w dobrą stronę. Obsługuje coraz więcej urządzeń i dodaje nowe opcje. Zauważyłem też, że obecna wersja jest bardziej stabilna niż poprzednie. Dobra robota!

Podyskutuj o tym tekście na facebook🙂

Przeczytaj również