Szybka ewaluacja przetworników analogowo-cyfrowych za pomocą ACE z Pythonem lub Matlabem

| Technika

Z użyciem płytek ewaluacyjnych oraz napisanego do nich oprogramowania można szybko i łatwo wypróbować możliwości i parametry wielu złożonych układów scalonych. Graficzny interfejs użytkownika (GUI) zapewnia łatwą konfigurację i korzystanie nawet poczatkującym, jednak gdy układy są złożone, przeglądanie wszystkich parametrów i listy dostępnych funkcji może stać się czasochłonne i zniechęcające. Na szczęście to zadanie można zautomatyzować.

Szybka ewaluacja przetworników analogowo-cyfrowych za pomocą ACE z Pythonem lub Matlabem

W tym artykule przedstawiono, jak rejestrować makra i korzystać z nich w środowiskach Python i Matlab w celu zautomatyzowania niektórych zadań oceny produktu bez konieczności tworzenia skomplikowanego kodu. Dla przykładowych przetworników AD7380 i AD7606C-16 zautomatyzowano całą interakcję użytkownika, tak że możliwy jest przegląd wielu różnych konfiguracji, uruchamianie dla nich procedur badań, a następnie eksport wyników. Pokazano, jakie korzyści odnosi się przy projektowaniu filtra cyfrowego z nadpróbkowaniem. Mimo że artykuł koncentruje się na układach AD7380 i AD7606C-16, informacje zawarte w tym tekście mogą również dotyczyć innych produktów i aplikacji ADI.

Płytki ewaluacyjne są standardowym uzupełnieniem nowości produktowych ADI po to, aby inżynierowie mogli szybko zapoznać się z ich wydajnością i funkcjami. Zawierają one przedmiotowy chip – na przykład przetwornik ADC – wraz z otoczeniem, takim jak źródło napięcia odniesienia, wzmacniacz, układ zegara, zasilanie. Płytki te są dostarczane z oprogramowaniem, które demonstruje osiągi i rzeczywistą wydajność. Od kilku lat platformą wykorzystywaną do tego celu jest oprogramowanie ACE.

Każdy produkt dostępny w ramach platformy ACE zawiera wtyczkę, która ułatwia konfigurację urządzenia, zapewniając dostęp do rejestrów układu za pośrednictwem GUI. I tak w przypadku ADC oprogramowanie ACE zwykle wyświetla dane źródłowe w postaci przebiegu lub histogramu i oblicza wskaźniki wydajności, takie jak SNR lub THD za pomocą FFT.

Rysunek 1 przedstawia widok układu wtyczki dla AD7380, w którym dostępnych jest kilka przycisków do szybkiej konfiguracji urządzenia: REF pozwala na wybór zewnętrznego lub wewnętrznego napięcia odniesienia, a OSC umożliwia włączenie nadpróbkowania i ustawienie jego współczynnika.

Rysunek 2 ilustruje natomiast wtyczkę dla AD7606C-16. Jest tam kilka przycisków, wyróżnionych ciemniejszym kolorem, do:

  • wyboru zakresu napięcia wejściowego dla danego kanału (symbol PGA),
  • wyboru źródła napięcia odniesienia (wew./zew.)
  • wyboru współczynnika nadpróbkowania,
  • kalibracji przesunięcia/wzmocnienia/fazy,
  • konfiguracji diagnostyki.

Oczywiście układy AD7380 i AD7- 606C-16 pokazane na rysunkach 1 i 2 są tylko przykładami, gdyż w podobny sposób można konfigurować także inne chipy, a powiązana z nimi wtyczka ACE będzie miała swoją własną kompozycję GUI. Jednak wraz ze wzrostem złożoności produktów i większą liczbą dostępnych funkcji i parametrów (na przykład do diagnostyki i kalibracji), ustawianie staje się bardziej skomplikowane i żmudne. Na szczęście ACE pozwala na zdalne sterowanie, umożliwiając ustawianie lub przemiatanie parametrów, na przykład współczynnika oversamplingu w celu znalezienia najlepszej wartości z punktu widzenia szumów.

 
Rys. 1. Widok układu wtyczki ACE dla AD7380
 
Rys. 2. Widok układu wtyczki ACE AD7606C-16

Konfiguracja zdalnego sterowania w ACE

 
Rys. 3. Konfiguracja komunikacji z ACE

Przed uruchomieniem zdalnego sterowania w ACE należy uruchomić komunikację:

  1. Otwórz ACE i przejdź do Ustawień
  2. Przejdź do zakładki IPC Server i upewnij się, że jest włączona
  3. Upewnij się, że port jest przydzielony, najlepiej 2357.

Rejestrowanie makra i generowanie skryptów

ACE zawiera menu Macro Tools do rejestrowania poleceń konfiguracji i interakcji (odpowiedzi) układu poprzez umieszczenie ich w pliku makr. Po wygenerowaniu makra można go następnie użyć do automatycznego wywołania wszystkich zapamiętanych kroków. Poniższe punkty wyjaśniają, jak stworzyć makro:

  1. Otwórz ACE, a następnie przejdź do Narzędzia >> Narzędzia makr.
  2. Naciśnij przycisk nagrywania poleceń po prawej stronie ikony w niebieskim obszarze jak na rysunku 4.
  3. Rozpocznij pracę z układem, taką jak zmiana parametrów, wprowadzanie wartości do rejestrów, przechwytywanie danych itp. Okno poleceń będzie się stopniowo otwierać.
  4. Po zarejestrowaniu wszystkich działań/ ustawień, które mają zostać wprowadzone, naciśnij przycisk zatrzymania nagrywania makro. Okno poleceń pojawi się wtedy automatycznie.

Na przykład podczas nagrywania makra użytkownik konfiguruje współczynnik nadpróbkowania i rozdzielczość za pomocą przycisków z rysunku 2. Okno poleceń będzie wyglądać jak na rysunku 4.

 
Rys. 4. Okno poleceń i narzędzia makr

Przed wyeksportowaniem całego programu do wybranego skryptu językowego można przejrzeć wszystkie zarejestrowane kroki, a nawet pominąć/przerwać każde niechciane polecenie, jak zaznaczono na czerwono na rysunku 4. Po nagraniu pliku makra można go zapisać, a potem odtworzyć ponownie. ACE ma wbudowaną funkcję generowania skryptów, które wykonują zarejestrowane działania w wybranym przez siebie obsługiwanym języku. Tak więc, zgodnie z poprzednią listą, kolejne kroki to:

  1. Kliknij ikonę Generate po prawej stronie niebieskiego obszaru podświetlonego na rysunku 4, aby otworzyć okno generatora skryptów.
  2. Wybierz żądany język spośród C#, MATLAB lub Python i naciśnij Eksport.

Kod można następnie zaimportować do IDE. Bazując na nim, możliwe jest dodawanie innych funkcji, np. sterowania przyrządem pomiarowym do budowy zautomatyzowanego stanowiska testowego. W dalszej części tekstu Visual Studio Code lub Matlab zostaną wykorzystane do zaprezentowania, jak z użyciem płytki ewaluacyjnej wykonać analizę charakterystyki szumowej, ale wiele innych gotowych kawałków kodu do modyfikacji, przechowywania lub wizualizacji danych, można pobrać z wiki. analog.com.

Automatyzacja zadań za pomocą Pythona

 
Rys. 5. Edytor kodu wygenerowany przez ACE przy użyciu języka Python

Wygenerowany w poprzedniej sekcji plik .py pozwala na uruchamianie i powtarzanie zestawu wcześniej zarejestrowanych poleceń. Dalszą korzyścią jest możliwość edytowania tych skryptów i automatyzacja niektórych zadań. Zgodnie z poprzednim przykładem, w którym współczynnik nadpróbkowania i rozdzielczość zostały ustawione we wtyczce ACE dla AD7380, wygenerowane makro jest edytowane, co pozwala na zmianę parametrów wejściowych, jak pokazano na rysunku 6. Domyślnie te makra są nazywane execute_macro(), ale tę nazwę można zmienić na łatwiejszą do zapamiętania.

To makro można teraz wywołać w pętli, zmieniającej wartości współczynnika nadpróbkowania i kontrolującej wartość poziomu szumów w funkcji współczynnika nadpróbkowania lub dzięki aktywacji dwóch dodatkowych bitów rozdzielczości.

 
Rys. 6. Edycja poleceń Pythona w celu zmiany parametrów wejściowych

W efekcie przykładowy kod Pythona w oparciu o wyeksportowane pliki danych odczytuje SNR zmierzony przez wtyczkę ACE i raportuje je przez monitor szeregowy. Jak pokazano w tabeli 1, nadpróbkowanie poprawia zakres dynamiczny przetwornika, ale w pewnym momencie konieczna jest aktywacja dwóch dodatkowych bitów rozdzielczości, tj. rozszerzenie konwersji do 18 bitów.

Automatyzacja zadań za pomocą Matlaba

Podobnie jak w Pythonie, wygenerowany kod można również wyeksportować do Matlaba, tworząc w tym przypadku plik .m. W tym przypadku makra są definiowane jako funkcje, ale również można je edytować, aby zmienić parametry. Poniższe przykłady dotyczą płytki AD7606C-16.

 
Rys. 7. Z użyciem pętli można zmieniać współczynnik nadpróbkowania oraz aktywować dwa dodatkowe bity rozdzielczości przetwornika

Tutaj także korzyści z użycia oversamplingu w AD7606C-16 można prosto ocenić poprzez automatyzację w ACE. Rysunek 8 pokazuje funkcję Matlaba, edytowaną w celu wpisania parametrów, takich jak przepustowość, liczba próbek, typ interfejsu (szeregowy lub równoległy), źródło napięcia odniesienia (wewnętrzne lub zewnętrzne), współczynnik nadpróbkowania, liczba linii cyfrowych lub zakres napięć wejściowych.

 
Rys. 8. Edycja parametrów wejściowych w Matlabie

Ta funkcja może być wywoływana w głównym segmencie, aby szybko uruchomić przechwytywanie danych w różnych konfiguracjach, w celu dalszego porównań, takich jak:

  • zakres dynamiczny wynikający z poziomu szumów a współczynnik nadpróbkowania,
  • szybkość konwersji w funkcji rozdzielczości,
  • wydajność przetwornika a zakres napięć wejściowych,
  • działanie przy wewnętrznym i zewnętrznym źródle napięcia odniesienia,
  • interfejs szeregowy a interfejs równoległy – właściwości.

W zależności od badanego układu można realizować wiele podobnych badań. Przykłady makr i postprocessingu danych dla AD7606C-16 można znaleźć na wiki.analog.com. Na przykład OversamplingSweep.m zmienia w pętli współczynnik nadpróbkowania i wykreśla histogram kodów dla każdej wartości. Jak pokazano na rysunku 9, im większy współczynnik nadpróbkowania, tym węższy histogram. Tabela 2 ilustruje, w jaki sposób rozkład kodów zmniejsza się przy wykorzystaniu nadpróbkowania.

 
Rys. 9. Wykres histogramów kodów pokazuje, jak parametry szumowe poprawiają się wraz ze współczynnikiem nadpróbkowania. Prosty skrypt umożliwia przeglądanie wyników dla dostępnych wartości OSR (do 256)

Podsumowanie

Platforma ACE uzupełniająca płytki ewaluacyjne jest wygodnym narzędziem pozwalającym na przyspieszenie ewaluacji układów ADI dzięki automatyzacji testów za pomocą makr i programowaniu w Pythonie lub Matlabie. Automatyzacja konfiguracji i ewaluacji umożliwia szybszą ocenę chipów i wybór optymalnego produktu w krótkim czasie.

Lluis Beltran Gil, Product Applications Engineer

 

Arrow Electronics Poland
tel. 22 558 82 66
www.arrow.com