Najpewniej, gdy próbujecie uruchomić przetwornik analogowo-cyfrowy (ADC) wbudowany w mikrokontroler (MCU), oscyloskop nie jest pierwszym narzędziem, po które sięgacie. Jednakże może on bardzo wyraźnie pomóc sprawdzić jak działa przetwornik. W poniższym tekście - tłumaczeniu informacji z jednego z blogów Texas Instruments - dowiemy się jak wykorzystać oscyloskop do sprawdzenia działania wbudowanego w układ ADC. Jakkolwiek prezentowane jest to na przykładzie układu C2000 Piccolo F28027, to metodykę tą wykorzystać można z dowolnym innym układem.
Precyzja czasowa ADC jest niezwykle istotna, szczególnie w systemach pracujących w zamkniętej pętli sprzężenia zwrotnego, takich jak cyfrowo sterowane zasilacze, czy systemy kontroli silników. W teorii zadanie jest bardzo proste - wystarczy skonfigurować przetwornik ADC we wnętrzu układu zgodnie z informacjami z karty katalogowej MCU... niestety nie zawsze jest to tak proste, często trudno jest zinterpretować dane z karty katalogowej jak i napisać odpowiedni program, który zrealizuje wszystkie funkcje.
W typowym systemie wzmacniacz operacyjny (rysunek 1a), lub dzielnik oporowy (rysunek 1b) steruje wejściem przetwornika. Na rysunku 1 zaprezentowano uproszczony schemat wejścia ADC - rezystancja przełącznik (RON) i pojemności - próbkująca (CH) i pasożytnicza (CP). Podczas próbkowania przełącznik SW jest zwarty, a przez ADCIN płynie prąd, który ładuje CH do poziomu równego z napięciem wejściowym. Powoduje to spadek napięcia na pinie ADCIN z uwagi na ograniczającą prąd wejściowy w układzie impedancję wyjściową źródła sygnału podawanego na przetwornik.
Dobrym zwyczajem w inżynierii jest dodanie filtra RC na wejściu układu. Zewnętrzny kondensator jest rezerwuarem ładunku dla pojemności próbkującej w układzie i pozwala na redukcję spadków napięcia na pinie wejściowym przetwornika w czasie próbkowania do poziomu uznawanego ogólnie za dopuszczalny - około 5% napięcia odniesienia. Częstotliwość graniczna tego filtra jest większa niż częstotliwość próbkowania - filtr ten nie ma pełnić rolę filtra anty-aliasingowego. O projektowania takich filtrów już sporo napisano i można poszukać odpowiedniej literatury.
Rys.1. Przetwornik ADC w TMS320F280927, sterowany przez (a) wzmcniacz operacyjny i (b) dzielnik oporowy.
Rysunek 2 pokazuje jakie są zalety korzystania z tej metody badania zachowania ADC. Można monitorować spadek napięcia na wejściu ADC, jaki obserwowany jest podczas różnych faz przetwarzania. Wybrany do tego celu układ to prosta przetwornica DC/DC sterowana przez mikorokontroler C2000. Taka aplikacja wymaga precyzyjnej kontroli i przetwarzania analogowo-cyfrowego.
Układ w takim systemie może wykorzystywać wiele wejść analogowych do sekwencyjnego mierzenia różnych napięć w systemie. Czas próbkowania, priorytet i częstotliwość próbkowania tych wejść może być różna, co powoduje, że przebiegi na każdym z kanałów będą różne i tworzyć mogą kompleksowy układ, jak pokazani na rysunku 3
Na rysunku 2 pokazano konfigurację trzech kanałów (ADCINA1, ADCINA3 i ADCINB7), które będą sekwencyjne próbkowane. Zegar przetwornika skonfigurowany jest na 25 MHz, czyli 40 ns na cykl. Czas próbkowania (tADC_SH) skonfigurowano na 12 cykli - 480 ns, a czas przetwarzania 13 cykli - 520 ns. Dzięki temu pojedyncza konwersja zajmuje jedną mikrosekundę, a przemiecenie wszystkich trzech kanałów trzy mikrosekundy.
W badanym systemie wejścia ADCINA1 oraz ADCINA3 sterowane są z wyjścia wzmacniacza operacyjnego (TLV2272-Q1), natomiast trzecie wejście z poprzez filtr RC. We wszystkich trzech kanałach usuwany jest kondensator filtrujący na wejściu przetwornika. Dzięki temu momenty próbkowania będą lepiej widoczne na ekranie osculoskopu.
Na rysunku 3 pokazano przebiegi zmierzone na wszystkich wejściach analogowych w opisywanym systemie. Mierzone były oscyloskopem Tektronix TDS5054B z sondą pasywną P5050 (typowa sonda 10x, 10 MΩ, 11.1 pF). Oscyloskop skonfigurowany był do pracy z dużą rozdzielczością, kanały sprzężone są zmiennoprądowo (AC) z wejściem, a pasmo ograniczone do 200 MHz.
Pojedyncze impulsy widoczne na przebiegu dokładnie odpowiadają czasom próbkowania i konwersji w poszczególnych kanałach. Widać także np. przełączanie multipleksera na kolejny kanał podczas próbkowania.
Dodatni impuls na oscyloskopie sugeruje, że napięcie kolejnego kanału jest większe niż poprzedniego, a ujemny impuls, że jest mniejsze i CH musi się rozładować. Wielkość, wysokość i czas trwania impulsów nie jest istotny w naszej analizie, szczególnie że sondy oscyloskopowe, jak i cały ustrój pomiarowy, zmieniają ich kształt. Aby zmierzyć je w dokładny sposób trzeba by użyć aktywnych sond oscyloskopowych z bardzo małą pojemnością wejściową.
Sukces!
Pięć minut analizowania sygnałów pozwoliło rozwiązać problem, jaki zaobserwowano na rysunku 4. Jak przeczytać można w erracie do karty katalogowej układu F28027 pierwsza próbka z serii konwersji ADC może być niepoprawna. Jednym z możliwych rozwiązań tego problemu, jest odrzucanie pierwszego pomiaru. Inną metodą jest zmiana zależności czasowych w ADC poprzez wyłączenie trybu nakładania przełączania multipleksera i konwersji oraz zmiana zegara przetwornika do nie więcej niż 30 MHz. Pierwsza próba wykorzystywała pierwsze podejście, ale docelowo wykorzystano drugie, bez zmian w kodzie, dlatego też na oscylogramie widać może być podwójną konwersję podczas pierwszego przetwarzania w serii.
Podsumowanie
Zaprezentowana technika pozwala, wykorzystując jedynie podstawowe narzędzia, iść krok dalej w zakresie projektowania i testowania wydajnych i niezawodnych aplikacjach. Dodatkowe informacje, wykorzystany kod programu i inne informacje pobrać można ze strony źródłowe (link poniżej).
Źródło: http://e2e.ti.com/blogs_/b/analogwire/archive/2017/08/17/debugging-an-integrated-adc-in-a-microcontroller-using-an-oscilloscope
Precyzja czasowa ADC jest niezwykle istotna, szczególnie w systemach pracujących w zamkniętej pętli sprzężenia zwrotnego, takich jak cyfrowo sterowane zasilacze, czy systemy kontroli silników. W teorii zadanie jest bardzo proste - wystarczy skonfigurować przetwornik ADC we wnętrzu układu zgodnie z informacjami z karty katalogowej MCU... niestety nie zawsze jest to tak proste, często trudno jest zinterpretować dane z karty katalogowej jak i napisać odpowiedni program, który zrealizuje wszystkie funkcje.
W typowym systemie wzmacniacz operacyjny (rysunek 1a), lub dzielnik oporowy (rysunek 1b) steruje wejściem przetwornika. Na rysunku 1 zaprezentowano uproszczony schemat wejścia ADC - rezystancja przełącznik (RON) i pojemności - próbkująca (CH) i pasożytnicza (CP). Podczas próbkowania przełącznik SW jest zwarty, a przez ADCIN płynie prąd, który ładuje CH do poziomu równego z napięciem wejściowym. Powoduje to spadek napięcia na pinie ADCIN z uwagi na ograniczającą prąd wejściowy w układzie impedancję wyjściową źródła sygnału podawanego na przetwornik.
Dobrym zwyczajem w inżynierii jest dodanie filtra RC na wejściu układu. Zewnętrzny kondensator jest rezerwuarem ładunku dla pojemności próbkującej w układzie i pozwala na redukcję spadków napięcia na pinie wejściowym przetwornika w czasie próbkowania do poziomu uznawanego ogólnie za dopuszczalny - około 5% napięcia odniesienia. Częstotliwość graniczna tego filtra jest większa niż częstotliwość próbkowania - filtr ten nie ma pełnić rolę filtra anty-aliasingowego. O projektowania takich filtrów już sporo napisano i można poszukać odpowiedniej literatury.

Rys.1. Przetwornik ADC w TMS320F280927, sterowany przez (a) wzmcniacz operacyjny i (b) dzielnik oporowy.
Rysunek 2 pokazuje jakie są zalety korzystania z tej metody badania zachowania ADC. Można monitorować spadek napięcia na wejściu ADC, jaki obserwowany jest podczas różnych faz przetwarzania. Wybrany do tego celu układ to prosta przetwornica DC/DC sterowana przez mikorokontroler C2000. Taka aplikacja wymaga precyzyjnej kontroli i przetwarzania analogowo-cyfrowego.
Układ w takim systemie może wykorzystywać wiele wejść analogowych do sekwencyjnego mierzenia różnych napięć w systemie. Czas próbkowania, priorytet i częstotliwość próbkowania tych wejść może być różna, co powoduje, że przebiegi na każdym z kanałów będą różne i tworzyć mogą kompleksowy układ, jak pokazani na rysunku 3
Na rysunku 2 pokazano konfigurację trzech kanałów (ADCINA1, ADCINA3 i ADCINB7), które będą sekwencyjne próbkowane. Zegar przetwornika skonfigurowany jest na 25 MHz, czyli 40 ns na cykl. Czas próbkowania (tADC_SH) skonfigurowano na 12 cykli - 480 ns, a czas przetwarzania 13 cykli - 520 ns. Dzięki temu pojedyncza konwersja zajmuje jedną mikrosekundę, a przemiecenie wszystkich trzech kanałów trzy mikrosekundy.
W badanym systemie wejścia ADCINA1 oraz ADCINA3 sterowane są z wyjścia wzmacniacza operacyjnego (TLV2272-Q1), natomiast trzecie wejście z poprzez filtr RC. We wszystkich trzech kanałach usuwany jest kondensator filtrujący na wejściu przetwornika. Dzięki temu momenty próbkowania będą lepiej widoczne na ekranie osculoskopu.
Na rysunku 3 pokazano przebiegi zmierzone na wszystkich wejściach analogowych w opisywanym systemie. Mierzone były oscyloskopem Tektronix TDS5054B z sondą pasywną P5050 (typowa sonda 10x, 10 MΩ, 11.1 pF). Oscyloskop skonfigurowany był do pracy z dużą rozdzielczością, kanały sprzężone są zmiennoprądowo (AC) z wejściem, a pasmo ograniczone do 200 MHz.
Pojedyncze impulsy widoczne na przebiegu dokładnie odpowiadają czasom próbkowania i konwersji w poszczególnych kanałach. Widać także np. przełączanie multipleksera na kolejny kanał podczas próbkowania.
Dodatni impuls na oscyloskopie sugeruje, że napięcie kolejnego kanału jest większe niż poprzedniego, a ujemny impuls, że jest mniejsze i CH musi się rozładować. Wielkość, wysokość i czas trwania impulsów nie jest istotny w naszej analizie, szczególnie że sondy oscyloskopowe, jak i cały ustrój pomiarowy, zmieniają ich kształt. Aby zmierzyć je w dokładny sposób trzeba by użyć aktywnych sond oscyloskopowych z bardzo małą pojemnością wejściową.
Sukces!
Pięć minut analizowania sygnałów pozwoliło rozwiązać problem, jaki zaobserwowano na rysunku 4. Jak przeczytać można w erracie do karty katalogowej układu F28027 pierwsza próbka z serii konwersji ADC może być niepoprawna. Jednym z możliwych rozwiązań tego problemu, jest odrzucanie pierwszego pomiaru. Inną metodą jest zmiana zależności czasowych w ADC poprzez wyłączenie trybu nakładania przełączania multipleksera i konwersji oraz zmiana zegara przetwornika do nie więcej niż 30 MHz. Pierwsza próba wykorzystywała pierwsze podejście, ale docelowo wykorzystano drugie, bez zmian w kodzie, dlatego też na oscylogramie widać może być podwójną konwersję podczas pierwszego przetwarzania w serii.
Podsumowanie
Zaprezentowana technika pozwala, wykorzystując jedynie podstawowe narzędzia, iść krok dalej w zakresie projektowania i testowania wydajnych i niezawodnych aplikacjach. Dodatkowe informacje, wykorzystany kod programu i inne informacje pobrać można ze strony źródłowe (link poniżej).
Źródło: http://e2e.ti.com/blogs_/b/analogwire/archive/2017/08/17/debugging-an-integrated-adc-in-a-microcontroller-using-an-oscilloscope
Cool? Ranking DIY