Prezentowany miniaturowy oscyloskop stworzony został w ramach konkursu zorganizowanego przez Hackaday - "One square inch chanlenge" (wyzwanie jednego cala kwadratowego). Konkurs polegał na stworzeniu ciekawego urządzenia elektronicznego, które byłoby nie większe niż 1" x 1", czyli 25 mm x 25 mm.
Autorzy poniższej konstrukcji zdecydowali się wystartować w konkursie budując spełniający wymagania oscyloskop cyfrowy. Udało im się skonstruować układ o wymiarach nieprzekraczających jednego cala kwadratowego, który był dodatkowo wyposażony w ekran OLED.
System oparty został o mikrokontroler z rodziny PIC32MX EF. Oscyloskop ten próbkuje z prędkością 20 MSPS (milionów próbek na sekundę) wykorzystując do tego wbudowany w mikrokontroler Microchipa przetwornik analogowo-cyfrowy. Układ, by osiągnąć tak wysoką prędkość akwizycji, wykorzystuje tzw. przeplot z wielu kanałów przetwornika. Jak oceniają projektanci, udało się osiągnąć pasmo całego toru przetwarzania na poziomie około 1 MHz.
System jest relatywnie prosty. Składa się z czterech podstawowych elementów elektronicznych:
1× Microchip Technology PIC32MZ1024EFH064 - 32-bitowy mikrokontroler Microchip PIC32MZ EF
1× Electronic Assembly GmbH EA W096064-XALG – żółty wyświetlacz OLED o przekątnej 0,96”
1× Analog Devices Inc. ADG633YRUZ – potrójny przełącznik półprzewodnikowy SPDT
2× Texas Instruments TLV3541 – wzmacniacz operacyjny typu railt-to-rail o pasmie do 100 MHz.
Gotowy układ prezentuje się w ten sposób:
Po prawej stronie pokazano schemat blokowy tego miniaturowego oscyloskopu.
Projekt front-endu analogowego
Kluczowym aspektem tego rodzaju systemu jest projekt front-endu wejściowego, gdyż to on odpowiada za jakość mierzonego sygnału i finalne parametry całego urządzenia.
Po lewej stronie widzimy schemat wejścia układu. Sygnał podawany na złącze koncentryczne trafia na terminator w postaci rezystancji 1 MΩ, złożonej z dwóch oporników, które jednocześnie formują dzielnik napięcia, redukując je dziesięciokrotnie. Dzięki temu, system może bez problemu mierzyć napięcie przekraczające napięcie zasilania. System jest w stanie mierzyć sygnały o napięciu międzyszczytowym do 30 V lub amplitudzie ± 15 V.
Dalej znajduje się para diod zabezpieczających dalsze układy na wypadek podłączenia zbyt wysokiego napięcia. Diody te zwierają sygnał do masy (lub zasilania), gdy napięcie za dzielnikiem jest mniejsze od zera (lub większe od napięcia zasilania).
Warto zwrócić uwagę, że terminujący wejście dzielnik napięcia dołączony jest do potencjału VGND, a nie AGND. VGND to sygnał będący na potencjale w połowie pomiędzy masą (AGND) a zasilaniem 3,3 V_A, dzięki czemu sygnał przemienny podawany na wejście, jest wycentrowany wokół napięcia 1,65 V. Dodatkowo, warto zwrócić uwagę, że diody zabezpieczające znajdują się za dzielnikiem oporowym, więc rezystor 909 kΩ skutecznie ogranicza prąd do bardzo niskiej wartości w momencie zadziałania zabezpieczenia. Na przykład przy podaniu 100 V prąd, jaki popłynie przez opornik i diodę zabezpieczającą wyniesie nie więcej niż 100 mikroamperów - oczywiście przy założeniu, że napięcie 100 V nie doprowadzi do niebezpiecznego przebicia w innym miejscu systemu, czy też na samej diodzie.
Sygnał dalej podawany jest na sterowany wzmacniacz, który zapewnia wzmocnienie sygnału wejściowego zza dzielnika na jednym z trzech poziomów: 10 V/V, 5 V/V oraz 1 V/V. Efektywnie, w połączeniu z dzielnikiem, pozwala to pracować przy jednym z trzech wypadkowych wzmocnień sygnału: 1 V/V, 0,5 V/V i 0,1 V/V. Za sterowanie wzmocnieniem odpowiadają dwa komponenty – wzmacniacz operacyjny TLV3541 oraz przełącznik półprzewodnikowy ADG633. Op-amp wybrany został z uwagi na szerokie pasmo i dosyć wysoką prędkość narastania napięcia na wyjściu, co gwarantować powinno wysokie pasmo analogowe układu. Pasmo to jest na poziomie tego, co oferuje cyfrowa sekcja przetwarzania w oscyloskopie. Tak samo dobrane zostały przełączniki analogowe.
Na schemacie po prawej stronie widzimy uproszczony schemat sekcji wzmacniania sygnału – op-amp w konfiguracji wzmacniacza nieodwracającego. Po lewej stronie widzimy pełen schemat front-endu obecnego w oscyloskopie.
Aby ustawić wzmocnienie op-ampa na 10 V/V, czyli całkowite wzmocnienie systemu na jeden, konfigurujemy przełączniki tak, by port D1 łączył się z S1B D2 oraz D3 z, odpowiednio, S2A i S3B. W ten sposób podłączony jest R7, a odłączony R10. Układ wygląda teraz dokładnie jak ten pokazany po prawej stronie.
Analogicznie zmienić możemy wzmocnienie na 5 V/V lub, finalnie, przekształcając układ do wtórnika z jednostkowym wzmocnieniem, po prostu zwierając bez oporu wyjście z wejściem odwracającym wzmacniacza operacyjnego.
Mogłoby się wydawać, że stosowanie przełączników półprzewodnikowych, takich jak ADG633, jest idealnym rozwiązaniem w takiej aplikacji. Niestety, ich implementacja nie jest taka prosta, gdyż układy te mają kilka swoich cech charakterystycznych, których nie można pomijać. Jedną z nich jest rezystancja samego przełącznika, która bardzo często zależy od amplitudy sygnału. Na wykresie poniżej widzimy zależność rezystancji przełącznika od napięcia doń przyłożonego dla różnego poziomu napięć zasilania.
Widzimy na powyższym wykresie, że rezystancja załączonego przełącznika sięgać może nawet 240 Ω w skrajnych przypadkach. W naszym systemie na szczęście problem ten nie jest tak palący, ponieważ układ ten zasilany jest napięciem 12 V (było ono i tak potrzebne do zasilania wyświetlacza), dzięki czemu rezystancja przełączników wynosi jedynie około 45 Ω, czyli jest niższa niż błąd rezystancji wykorzystanych do konstrukcji systemu oporników (o tolerancji 1%).
Kolejnym ważnym blokiem za front-endem są przetworniki analogowo-cyfrowe (ADC). Tutaj wykorzystano przetworniki wbudowane w mikrokontroler PIC32MZ1024EFH064. Układ ten wyposażony jest w 12-bitowe ADC o sukcesywnej aproksymacji (SAR). Z uwagi na charakter działania układów SAR, każdy bit rozdzielczości więcej zajmuje więcej czasu na konwersję, czyli na przykład dla uzyskania 12-bitowej rozdzielczości pomiaru konwersja musi zająć dwa razy dłużej niż przy rozdzielczości 6-bitów. Z uwagi na to można w tego rodzaju przetwornikach osiągać kompromis pomiędzy prędkością akwizycji a jej rozdzielczością.
Moduł ADC w mikrokontrolerze taktowany jest wolniej niż rdzeń układu. W tym układzie zegar podawany do przetwornika ma częstotliwość 50 MHz. Zegar ten definiuje czas Tad jako 20 nanosekund. Wszystkie procesy realizowane w ADC mierzone są w wielokrotnościach tego okresu.
Proces przetwarzania sygnału analogowego na wartość cyfrową rozpoczyna się od sekwencji próbkowania. To bardzo prosta operacja, w ramach której przełącznik wbudowany w ADC ładuje kondensator w układzie do poziomu sygnału analogowego. Proces ładowania zajmuje chwilę (i zależny jest od impedancji źródła sygnału, dlatego odpowiedni bufor na wejściu ADC jest bardzo ważny przy przetwornikach SAR). Wzmacniacz operacyjny ma niską impedancję wyjściową, więc ładowanie jest bardzo szybkie. W naszym systemie zakładamy najkrótszy możliwy czas ładowania, czyli 3 x Tad (60 ns).
Kolejnym krokiem jest digitalizacja napięcia na kondensatorze i wyznaczenie cyfrowej wartości odpowiadającej analogowej wartości spróbkowanego napięcia. Czas tej operacji zależny jest od rozdzielczości, jaka nas interesuje. W poniższej tabeli widzimy zebrane różne wartości czasu akwizycji dla rozdzielczości 12 bitów do 6 bitów.
Aby uzyskać maksymalną prędkość akwizycji, w prezentowanym oscyloskopie wybrano tryb 6-bitowy. Daje to najkrótszy czas digitalizacji. Dodatkowo, wykorzystywany ekran ma tylko 64 piksele, czyli 2^6, więc tak czy inaczej nie dałoby się wyświetlić przebiegów dokładniej.
Całkowity czas przetwarzania wynosi zatem 3 Tad + 7 Tad, czyli 10 Tad. Oznacza to czas 200 ns, co przekłada się na próbkowanie 5 MSPS.
Aby uzyskać jeszcze wyższą częstotliwość próbkowania, autorzy konstrukcji korzystają z techniki przeplatania. Polega ona na równoległym wykorzystaniu kilku przetworników analogowo-cyfrowych, które uruchamiane są sukcesywnie po sobie, tak jak pokazano w poniższej tabelce. Dzięki temu możliwe jest osiągnięcie cztery razy wyższej częstotliwości próbkowania systemu - 20 MSPS.
Aby poradzić sobie z ogromną ilością danych płynących z przetworników – 120 Mbitów na sekundę – wykorzystano zalety, jaki daje DMA. Jest to wbudowane w mikrokontroler moduł, które pozwala na możliwość zapisywania danych z przetwornika ADC bezpośrednio w pamięci procesora, bez angażowania CPU. Dzięki temu układ może w czasie rzeczywistym pobierać te dane i wyświetlać je na ekranie.
Źródło: https://hackaday.io/project/160802-1-square-inch-20msps-oscilloscope
Autorzy poniższej konstrukcji zdecydowali się wystartować w konkursie budując spełniający wymagania oscyloskop cyfrowy. Udało im się skonstruować układ o wymiarach nieprzekraczających jednego cala kwadratowego, który był dodatkowo wyposażony w ekran OLED.
System oparty został o mikrokontroler z rodziny PIC32MX EF. Oscyloskop ten próbkuje z prędkością 20 MSPS (milionów próbek na sekundę) wykorzystując do tego wbudowany w mikrokontroler Microchipa przetwornik analogowo-cyfrowy. Układ, by osiągnąć tak wysoką prędkość akwizycji, wykorzystuje tzw. przeplot z wielu kanałów przetwornika. Jak oceniają projektanci, udało się osiągnąć pasmo całego toru przetwarzania na poziomie około 1 MHz.
System jest relatywnie prosty. Składa się z czterech podstawowych elementów elektronicznych:
1× Microchip Technology PIC32MZ1024EFH064 - 32-bitowy mikrokontroler Microchip PIC32MZ EF
1× Electronic Assembly GmbH EA W096064-XALG – żółty wyświetlacz OLED o przekątnej 0,96”
1× Analog Devices Inc. ADG633YRUZ – potrójny przełącznik półprzewodnikowy SPDT
2× Texas Instruments TLV3541 – wzmacniacz operacyjny typu railt-to-rail o pasmie do 100 MHz.
Gotowy układ prezentuje się w ten sposób:
Po prawej stronie pokazano schemat blokowy tego miniaturowego oscyloskopu.
Projekt front-endu analogowego
Kluczowym aspektem tego rodzaju systemu jest projekt front-endu wejściowego, gdyż to on odpowiada za jakość mierzonego sygnału i finalne parametry całego urządzenia.
Po lewej stronie widzimy schemat wejścia układu. Sygnał podawany na złącze koncentryczne trafia na terminator w postaci rezystancji 1 MΩ, złożonej z dwóch oporników, które jednocześnie formują dzielnik napięcia, redukując je dziesięciokrotnie. Dzięki temu, system może bez problemu mierzyć napięcie przekraczające napięcie zasilania. System jest w stanie mierzyć sygnały o napięciu międzyszczytowym do 30 V lub amplitudzie ± 15 V.
Dalej znajduje się para diod zabezpieczających dalsze układy na wypadek podłączenia zbyt wysokiego napięcia. Diody te zwierają sygnał do masy (lub zasilania), gdy napięcie za dzielnikiem jest mniejsze od zera (lub większe od napięcia zasilania).
Warto zwrócić uwagę, że terminujący wejście dzielnik napięcia dołączony jest do potencjału VGND, a nie AGND. VGND to sygnał będący na potencjale w połowie pomiędzy masą (AGND) a zasilaniem 3,3 V_A, dzięki czemu sygnał przemienny podawany na wejście, jest wycentrowany wokół napięcia 1,65 V. Dodatkowo, warto zwrócić uwagę, że diody zabezpieczające znajdują się za dzielnikiem oporowym, więc rezystor 909 kΩ skutecznie ogranicza prąd do bardzo niskiej wartości w momencie zadziałania zabezpieczenia. Na przykład przy podaniu 100 V prąd, jaki popłynie przez opornik i diodę zabezpieczającą wyniesie nie więcej niż 100 mikroamperów - oczywiście przy założeniu, że napięcie 100 V nie doprowadzi do niebezpiecznego przebicia w innym miejscu systemu, czy też na samej diodzie.
Sygnał dalej podawany jest na sterowany wzmacniacz, który zapewnia wzmocnienie sygnału wejściowego zza dzielnika na jednym z trzech poziomów: 10 V/V, 5 V/V oraz 1 V/V. Efektywnie, w połączeniu z dzielnikiem, pozwala to pracować przy jednym z trzech wypadkowych wzmocnień sygnału: 1 V/V, 0,5 V/V i 0,1 V/V. Za sterowanie wzmocnieniem odpowiadają dwa komponenty – wzmacniacz operacyjny TLV3541 oraz przełącznik półprzewodnikowy ADG633. Op-amp wybrany został z uwagi na szerokie pasmo i dosyć wysoką prędkość narastania napięcia na wyjściu, co gwarantować powinno wysokie pasmo analogowe układu. Pasmo to jest na poziomie tego, co oferuje cyfrowa sekcja przetwarzania w oscyloskopie. Tak samo dobrane zostały przełączniki analogowe.
Na schemacie po prawej stronie widzimy uproszczony schemat sekcji wzmacniania sygnału – op-amp w konfiguracji wzmacniacza nieodwracającego. Po lewej stronie widzimy pełen schemat front-endu obecnego w oscyloskopie.
Aby ustawić wzmocnienie op-ampa na 10 V/V, czyli całkowite wzmocnienie systemu na jeden, konfigurujemy przełączniki tak, by port D1 łączył się z S1B D2 oraz D3 z, odpowiednio, S2A i S3B. W ten sposób podłączony jest R7, a odłączony R10. Układ wygląda teraz dokładnie jak ten pokazany po prawej stronie.
Analogicznie zmienić możemy wzmocnienie na 5 V/V lub, finalnie, przekształcając układ do wtórnika z jednostkowym wzmocnieniem, po prostu zwierając bez oporu wyjście z wejściem odwracającym wzmacniacza operacyjnego.
Mogłoby się wydawać, że stosowanie przełączników półprzewodnikowych, takich jak ADG633, jest idealnym rozwiązaniem w takiej aplikacji. Niestety, ich implementacja nie jest taka prosta, gdyż układy te mają kilka swoich cech charakterystycznych, których nie można pomijać. Jedną z nich jest rezystancja samego przełącznika, która bardzo często zależy od amplitudy sygnału. Na wykresie poniżej widzimy zależność rezystancji przełącznika od napięcia doń przyłożonego dla różnego poziomu napięć zasilania.
Widzimy na powyższym wykresie, że rezystancja załączonego przełącznika sięgać może nawet 240 Ω w skrajnych przypadkach. W naszym systemie na szczęście problem ten nie jest tak palący, ponieważ układ ten zasilany jest napięciem 12 V (było ono i tak potrzebne do zasilania wyświetlacza), dzięki czemu rezystancja przełączników wynosi jedynie około 45 Ω, czyli jest niższa niż błąd rezystancji wykorzystanych do konstrukcji systemu oporników (o tolerancji 1%).
Kolejnym ważnym blokiem za front-endem są przetworniki analogowo-cyfrowe (ADC). Tutaj wykorzystano przetworniki wbudowane w mikrokontroler PIC32MZ1024EFH064. Układ ten wyposażony jest w 12-bitowe ADC o sukcesywnej aproksymacji (SAR). Z uwagi na charakter działania układów SAR, każdy bit rozdzielczości więcej zajmuje więcej czasu na konwersję, czyli na przykład dla uzyskania 12-bitowej rozdzielczości pomiaru konwersja musi zająć dwa razy dłużej niż przy rozdzielczości 6-bitów. Z uwagi na to można w tego rodzaju przetwornikach osiągać kompromis pomiędzy prędkością akwizycji a jej rozdzielczością.
Moduł ADC w mikrokontrolerze taktowany jest wolniej niż rdzeń układu. W tym układzie zegar podawany do przetwornika ma częstotliwość 50 MHz. Zegar ten definiuje czas Tad jako 20 nanosekund. Wszystkie procesy realizowane w ADC mierzone są w wielokrotnościach tego okresu.
Proces przetwarzania sygnału analogowego na wartość cyfrową rozpoczyna się od sekwencji próbkowania. To bardzo prosta operacja, w ramach której przełącznik wbudowany w ADC ładuje kondensator w układzie do poziomu sygnału analogowego. Proces ładowania zajmuje chwilę (i zależny jest od impedancji źródła sygnału, dlatego odpowiedni bufor na wejściu ADC jest bardzo ważny przy przetwornikach SAR). Wzmacniacz operacyjny ma niską impedancję wyjściową, więc ładowanie jest bardzo szybkie. W naszym systemie zakładamy najkrótszy możliwy czas ładowania, czyli 3 x Tad (60 ns).
Kolejnym krokiem jest digitalizacja napięcia na kondensatorze i wyznaczenie cyfrowej wartości odpowiadającej analogowej wartości spróbkowanego napięcia. Czas tej operacji zależny jest od rozdzielczości, jaka nas interesuje. W poniższej tabeli widzimy zebrane różne wartości czasu akwizycji dla rozdzielczości 12 bitów do 6 bitów.
Aby uzyskać maksymalną prędkość akwizycji, w prezentowanym oscyloskopie wybrano tryb 6-bitowy. Daje to najkrótszy czas digitalizacji. Dodatkowo, wykorzystywany ekran ma tylko 64 piksele, czyli 2^6, więc tak czy inaczej nie dałoby się wyświetlić przebiegów dokładniej.
Całkowity czas przetwarzania wynosi zatem 3 Tad + 7 Tad, czyli 10 Tad. Oznacza to czas 200 ns, co przekłada się na próbkowanie 5 MSPS.
Aby uzyskać jeszcze wyższą częstotliwość próbkowania, autorzy konstrukcji korzystają z techniki przeplatania. Polega ona na równoległym wykorzystaniu kilku przetworników analogowo-cyfrowych, które uruchamiane są sukcesywnie po sobie, tak jak pokazano w poniższej tabelce. Dzięki temu możliwe jest osiągnięcie cztery razy wyższej częstotliwości próbkowania systemu - 20 MSPS.
Aby poradzić sobie z ogromną ilością danych płynących z przetworników – 120 Mbitów na sekundę – wykorzystano zalety, jaki daje DMA. Jest to wbudowane w mikrokontroler moduł, które pozwala na możliwość zapisywania danych z przetwornika ADC bezpośrednio w pamięci procesora, bez angażowania CPU. Dzięki temu układ może w czasie rzeczywistym pobierać te dane i wyświetlać je na ekranie.
Źródło: https://hackaday.io/project/160802-1-square-inch-20msps-oscilloscope
Cool? Ranking DIY