Pytanie: Jak mogę dokonać pomiaru wartości analogowej, jeśli w moim systemie pozostało tylko jedno GPIO na FPGA/mikrokontrolerze?
Odpowiedź: Zamiast przetwornika analogowo-cyfrowego można zastosować przetwornik napięcia na częstotliwość.
Ponieważ zapotrzebowanie na funkcje pomiarowe staje się coraz bardziej powszechne w nowoczesnych aplikacjach medycznych, fitness i innych rozwiązaniach Internetu Rzeczy (IoT), konieczne jest opracowywanie prostszych interfejsów z mniejszą liczbą linii wejścia i wyjścia i mniejszymi rozmiarami urządzeń. Gęstość urządzeń podłączonych do jednego mikroprocesora lub układu FPGA stale rośnie, podczas gdy przestrzeń aplikacji - a w rezultacie liczba styków I/O - może być ograniczona. W idealnym świecie wszystkie aplikacje miałyby swój własny układ ASIC, zapewniający małe zintegrowane rozwiązanie. Opracowanie ASIC jest jednak czasochłonne i bardzo kosztowne, a dodatkowo nie zapewnia elastyczności, która pozwalałaby na wprowadzanie zmian w systemie lub wykorzystywanie go do innych celów. W rezultacie coraz więcej aplikacji korzysta z mikrokontrolerów lub układów FPGA w małych obudowach, aby opracowywanie produktów odbywało się w terminowy i opłacalny sposób.
W tym artykule zajmiemy się konwerterem temperatury na częstotliwość, który może zapewnić dokładne wyniki pomiaru temperatury przy użyciu tylko jednego pinu GPIO. Pokażemy także, w jaki sposób można dostosować przetwornik napięcia do częstotliwości do różnych zastosowań w czujnikach.
Czemu warto stosować takie rozwiązanie?
Niektóre wartości zmiennych środowiskowych, takich jak temperatura, wilgotność i ciśnienie barometryczne, są z natury bardzo wolno zmienne - i nie zmieniają się wystarczająco szybko, ani ich pomiary nie wymagają wystarczająco dokładnych rozdzielczości - aby uzasadnić stosowanie przetworników analogowo-cyfrowych (ADC) i związane z tym względy projektowe.
Większość przetworników ADC wymaga szybkiego, dokładnego generowania oraz synchronizacji zegara, stabilnego napięcia odniesienia, bufora tego napięcia o bardzo niskiej impedancji wyjściowej oraz analogowego zespołu obwodów wejściowych, mogących poprawnie wysterować wejście tego układu, zanim będzie mógł on zostać skwantyzowany i wykorzystany przez system cyfrowy. W przypadku pomiaru temperatury otoczenia dyskretne rozwiązanie może wykorzystywać termistor w mostku Wheatstona, którego napięcie wyjściowe byłoby następnie wzmacniane przez wzmacniacz pomiarowy, a następnie podawane do ADC.
Ta konstrukcja jest bardzo skomplikowana i wymaga więcej przestrzeni na płytce drukowanej, mocy i cykli obliczeniowych niezbędnych do implementacji w systemie, w którym pomiar może być wymagany tylko raz na np. 15 sekund.
Jakie alternatywne rozwiązanie pomiarowe można zastosować mierząc napięcie analogowe?
Rozwiązaniem jest przetwornik napięcia na częstotliwość, taki jak układ LTC6990 firmy Analog Devices. Musi on być skonfigurowana w trybie oscylatora sterowanego napięciem (VCO), który może być wykorzystywany do pomiaru napięcia analogowego bez wykorzystania ADC. W tym przykładzie AD8494 – precyzyjny wzmacniacz termopary – jest skonfigurowany jako czujnik temperatury otoczenia, którego napięcie wyjściowe służy jako wejście do przetwornika LTC6990, w wyniku czego powstaje łańcuch sygnału pozwalający na konwersję temperatury na częstotliwość sygnału. Układ taki zaprezentowano na rysunku 1.
Jak przekonwertować wejście temperaturowe na wyjście częstotliwościowe?
Obecnie wiele nowoczesnych urządzeń elektronicznych wymaga pokładowego systemu monitorowania temperatury. Metoda konwersji sygnałów analogowych na sygnały modulowane szerokością impulsu lub sygnały cyfrowe jest dobrze udokumentowana. Jeśli jednak rozwiązanie pomiarowe wymaga ADC, istnieją wady związane z kosztem, dokładnością i szybkością działania takiego systemu. Zazwyczaj im dokładniejszy jest pomiar, tym droższe rozwiązanie.
Obwód ten zaprezentowany na rysunku 1 zapewnia tanie, wszechstronne i łatwe w implementacji rozwiązanie, którego dokładność może się różnić w zależności od potrzeb danego systemu pomiaru temperatury.
AD8494 jest precyzyjnym wzmacniaczem termoparowym, ale może być również stosowany jako czujnik temperatury otoczenia. Wzmacniacz termoparowy konwertuje napięcie z termopary (generowane na skutek efektu Seebecka) na napięcie proporcjonalne liniowo do temperatury. W tym celu musi dokonywać tzw. kompensacji zimnego złącza. W tym celu układ ten mierzy swoją temperaturę. W momencie, gdy wejścia są zwarte ze sobą i do masy, napięcie Seebecka mierzone przez układ jest zerowe, a co za tym idzie - układ kompensacji zimnego złącza na wyjściu wzmacniacza podawać będzie napięcie proporcjonalne do temperatury tego złącza, czyli samego układu.
Napięcie wyjściowe ze wzmacniacza jest definiowane jako:
$$V_{OUT} = T_{otoczenia} \times \frac {5 mV} {^\circ C}$$ (1)
W tym obwodzie stosuje się zasilanie jednobiegunowe, (–VS = masa - 0 V), a więc na styk REF układu AD8494 należy przyłożyć napięcie przesunięte względem masy, aby podnieść napięcie wyjściowe nad ziemią, nawet jeśli temperatura otoczenia jest ujemna.
Napięcie wyjściowe czujnika temperatury VOUT wyniesie zatem:
$$V_{OUT} = T_{otoczenia} \times \frac {5 mV} {^\circ C} + T_{offset}$$ (2)
W trybie VCO układu LTC6990 częstotliwość sygnału wyjściowego opisana jest zależnością:
$$F_{OUT} = \frac {1 MHz - (\frac {R_{SET}} {R_{VCO} + R_{SET}} \times V_{CTRL}) \times \frac {MHz} {V}} {N_{div}}$$ (3)
Jako że napięcie wyjściowe z AD8494 jest napięciem VCTRL dla LTC6990, równanie 2 można podstawić pod VCTRL w równaniu 3, a dobierając RSET = RVCO otrzymamy następującą równość opisującą częstotliwość wyjściową z układu:
$$F_{OUT} = \frac {1 MHz - (\frac {1} {2} ( T_{otoczenia} \times \frac {5 mV} {^\circ C} + T_{offset} )) \times \frac {MHz} {V}} {N_{div}}$$ (4)
Teraz można przekształcić równanie 4 tak, aby uzyskać równość na temperaturę otoczenia. W ten sposób uzyskujemy równanie 5:
$$T_{otoczenia} = \frac {-2 \times (( F_{OUT} \times N_{div}) - 1 MHz) - (V_{offset} \times 1 MHz)} {0,005 MHz}$$ (5)
Okej, mam wyjście częstotliwościowe. Jak to jest przydatne?
Piękno wyjścia częstotliwościowego polega na tym, że można użyć pojedynczego pinu GPIO, aby uzyskać pomiar z czujnika. Jeżeli zastosowany jest obwód licznika synchronicznego z rysunku 2, wówczas zbocze narastające zegara będzie zawsze obecne na jego wejściu CLK_IN. Jeśli sygnał FOUT z LTC6990 zostanie użyty jako zegar wejściowy, licznik będzie zwiększał się za każdym razem, gdy zostanie wykryte zbocze narastające w linii FOUT, tworząc licznik okresów sygnału.
Jeśli odstęp czasowy między każdym pomiarem jest stały, wówczas można policzyć liczbę okresów w danym przedziale czasowym, a częstotliwość można określić albo za pomocą matematyki zmiennoprzecinkowej, albo tabeli przeglądowej zaimplementowanej w układzie. Dzieląc czas akwizycji TA przez liczbę zliczonych okresów, otrzymujemy okres FOUT. Odwrotność tej zależności daje równanie 6:
$$F_{OUT} = \frac {Ilość okresów} {T_{akwizycji}}, F_{OUT} \geq \frac {2} {T_{akwizycji}}$$ (6)
Przykładowy kod Verilog (poniżej) pokazuje funkcję, której można użyć do zliczenia okresów za pomocą pojedynczego wejścia GPIO na module FPGA. Im dłuższy okres akwizycji, tym dokładniejszy będzie pomiar. W przypadku poniższego kodu, 16-bitowy licznik służy do zapewnienia dodatkowej rozdzielczości. Zakłada się również, że logika, która kontroluje czas akwizycji pomiaru, jest wykonywana na wyższym poziomie w architekturze układu FPGA.
System wykazuje liniową zależność między temperaturą otoczenia i częstotliwością wyjściową, jak pokazano na rysunku 3. Widać tam także jak wysoką dokładnością charakteryzuje się ten system. Wykres zaprezentowany na rysunku 4 pokazuje z kolei błąd systemu pomiarowego.
Podsumowanie
W tej aplikacji omówiono nowy typ przetwornika temperatury na częstotliwość. Zapewnia on dokładną i niedrogą metodę pomiaru temperatur. Jeśli temperatura przekracza zakres przemysłowy (od 40°C do 125°C), na wejściach wzmacniacza można zainstalować termoparę.
Chociaż to rozwiązanie może nie zapewniać bardzo wysokiej rozdzielczości pomiaru temperatury, to w aplikacjach, w których dopuszczalny jest błąd w przybliżeniu ± 2°C, zapewnia on tani i prosty interfejs do pomiaru tej wartości.
Samą koncepcję zastosowania przetwornika napięcie-częstotliwość można dostosować do pomiaru innych typów wyjść przetwornika analogowych, bez potrzeby stosowania układu ADC.
Źródło: https://www.analog.com/en/analog-dialogue/raqs/raq-issue-169.html
Odpowiedź: Zamiast przetwornika analogowo-cyfrowego można zastosować przetwornik napięcia na częstotliwość.
Ponieważ zapotrzebowanie na funkcje pomiarowe staje się coraz bardziej powszechne w nowoczesnych aplikacjach medycznych, fitness i innych rozwiązaniach Internetu Rzeczy (IoT), konieczne jest opracowywanie prostszych interfejsów z mniejszą liczbą linii wejścia i wyjścia i mniejszymi rozmiarami urządzeń. Gęstość urządzeń podłączonych do jednego mikroprocesora lub układu FPGA stale rośnie, podczas gdy przestrzeń aplikacji - a w rezultacie liczba styków I/O - może być ograniczona. W idealnym świecie wszystkie aplikacje miałyby swój własny układ ASIC, zapewniający małe zintegrowane rozwiązanie. Opracowanie ASIC jest jednak czasochłonne i bardzo kosztowne, a dodatkowo nie zapewnia elastyczności, która pozwalałaby na wprowadzanie zmian w systemie lub wykorzystywanie go do innych celów. W rezultacie coraz więcej aplikacji korzysta z mikrokontrolerów lub układów FPGA w małych obudowach, aby opracowywanie produktów odbywało się w terminowy i opłacalny sposób.
W tym artykule zajmiemy się konwerterem temperatury na częstotliwość, który może zapewnić dokładne wyniki pomiaru temperatury przy użyciu tylko jednego pinu GPIO. Pokażemy także, w jaki sposób można dostosować przetwornik napięcia do częstotliwości do różnych zastosowań w czujnikach.
Czemu warto stosować takie rozwiązanie?
Niektóre wartości zmiennych środowiskowych, takich jak temperatura, wilgotność i ciśnienie barometryczne, są z natury bardzo wolno zmienne - i nie zmieniają się wystarczająco szybko, ani ich pomiary nie wymagają wystarczająco dokładnych rozdzielczości - aby uzasadnić stosowanie przetworników analogowo-cyfrowych (ADC) i związane z tym względy projektowe.
Większość przetworników ADC wymaga szybkiego, dokładnego generowania oraz synchronizacji zegara, stabilnego napięcia odniesienia, bufora tego napięcia o bardzo niskiej impedancji wyjściowej oraz analogowego zespołu obwodów wejściowych, mogących poprawnie wysterować wejście tego układu, zanim będzie mógł on zostać skwantyzowany i wykorzystany przez system cyfrowy. W przypadku pomiaru temperatury otoczenia dyskretne rozwiązanie może wykorzystywać termistor w mostku Wheatstona, którego napięcie wyjściowe byłoby następnie wzmacniane przez wzmacniacz pomiarowy, a następnie podawane do ADC.
Ta konstrukcja jest bardzo skomplikowana i wymaga więcej przestrzeni na płytce drukowanej, mocy i cykli obliczeniowych niezbędnych do implementacji w systemie, w którym pomiar może być wymagany tylko raz na np. 15 sekund.
Jakie alternatywne rozwiązanie pomiarowe można zastosować mierząc napięcie analogowe?
Rozwiązaniem jest przetwornik napięcia na częstotliwość, taki jak układ LTC6990 firmy Analog Devices. Musi on być skonfigurowana w trybie oscylatora sterowanego napięciem (VCO), który może być wykorzystywany do pomiaru napięcia analogowego bez wykorzystania ADC. W tym przykładzie AD8494 – precyzyjny wzmacniacz termopary – jest skonfigurowany jako czujnik temperatury otoczenia, którego napięcie wyjściowe służy jako wejście do przetwornika LTC6990, w wyniku czego powstaje łańcuch sygnału pozwalający na konwersję temperatury na częstotliwość sygnału. Układ taki zaprezentowano na rysunku 1.
Jak przekonwertować wejście temperaturowe na wyjście częstotliwościowe?
Obecnie wiele nowoczesnych urządzeń elektronicznych wymaga pokładowego systemu monitorowania temperatury. Metoda konwersji sygnałów analogowych na sygnały modulowane szerokością impulsu lub sygnały cyfrowe jest dobrze udokumentowana. Jeśli jednak rozwiązanie pomiarowe wymaga ADC, istnieją wady związane z kosztem, dokładnością i szybkością działania takiego systemu. Zazwyczaj im dokładniejszy jest pomiar, tym droższe rozwiązanie.
Obwód ten zaprezentowany na rysunku 1 zapewnia tanie, wszechstronne i łatwe w implementacji rozwiązanie, którego dokładność może się różnić w zależności od potrzeb danego systemu pomiaru temperatury.
AD8494 jest precyzyjnym wzmacniaczem termoparowym, ale może być również stosowany jako czujnik temperatury otoczenia. Wzmacniacz termoparowy konwertuje napięcie z termopary (generowane na skutek efektu Seebecka) na napięcie proporcjonalne liniowo do temperatury. W tym celu musi dokonywać tzw. kompensacji zimnego złącza. W tym celu układ ten mierzy swoją temperaturę. W momencie, gdy wejścia są zwarte ze sobą i do masy, napięcie Seebecka mierzone przez układ jest zerowe, a co za tym idzie - układ kompensacji zimnego złącza na wyjściu wzmacniacza podawać będzie napięcie proporcjonalne do temperatury tego złącza, czyli samego układu.
Napięcie wyjściowe ze wzmacniacza jest definiowane jako:
$$V_{OUT} = T_{otoczenia} \times \frac {5 mV} {^\circ C}$$ (1)
W tym obwodzie stosuje się zasilanie jednobiegunowe, (–VS = masa - 0 V), a więc na styk REF układu AD8494 należy przyłożyć napięcie przesunięte względem masy, aby podnieść napięcie wyjściowe nad ziemią, nawet jeśli temperatura otoczenia jest ujemna.
Napięcie wyjściowe czujnika temperatury VOUT wyniesie zatem:
$$V_{OUT} = T_{otoczenia} \times \frac {5 mV} {^\circ C} + T_{offset}$$ (2)
W trybie VCO układu LTC6990 częstotliwość sygnału wyjściowego opisana jest zależnością:
$$F_{OUT} = \frac {1 MHz - (\frac {R_{SET}} {R_{VCO} + R_{SET}} \times V_{CTRL}) \times \frac {MHz} {V}} {N_{div}}$$ (3)
Jako że napięcie wyjściowe z AD8494 jest napięciem VCTRL dla LTC6990, równanie 2 można podstawić pod VCTRL w równaniu 3, a dobierając RSET = RVCO otrzymamy następującą równość opisującą częstotliwość wyjściową z układu:
$$F_{OUT} = \frac {1 MHz - (\frac {1} {2} ( T_{otoczenia} \times \frac {5 mV} {^\circ C} + T_{offset} )) \times \frac {MHz} {V}} {N_{div}}$$ (4)
Teraz można przekształcić równanie 4 tak, aby uzyskać równość na temperaturę otoczenia. W ten sposób uzyskujemy równanie 5:
$$T_{otoczenia} = \frac {-2 \times (( F_{OUT} \times N_{div}) - 1 MHz) - (V_{offset} \times 1 MHz)} {0,005 MHz}$$ (5)
Okej, mam wyjście częstotliwościowe. Jak to jest przydatne?
Piękno wyjścia częstotliwościowego polega na tym, że można użyć pojedynczego pinu GPIO, aby uzyskać pomiar z czujnika. Jeżeli zastosowany jest obwód licznika synchronicznego z rysunku 2, wówczas zbocze narastające zegara będzie zawsze obecne na jego wejściu CLK_IN. Jeśli sygnał FOUT z LTC6990 zostanie użyty jako zegar wejściowy, licznik będzie zwiększał się za każdym razem, gdy zostanie wykryte zbocze narastające w linii FOUT, tworząc licznik okresów sygnału.
Jeśli odstęp czasowy między każdym pomiarem jest stały, wówczas można policzyć liczbę okresów w danym przedziale czasowym, a częstotliwość można określić albo za pomocą matematyki zmiennoprzecinkowej, albo tabeli przeglądowej zaimplementowanej w układzie. Dzieląc czas akwizycji TA przez liczbę zliczonych okresów, otrzymujemy okres FOUT. Odwrotność tej zależności daje równanie 6:
$$F_{OUT} = \frac {Ilość okresów} {T_{akwizycji}}, F_{OUT} \geq \frac {2} {T_{akwizycji}}$$ (6)
Przykładowy kod Verilog (poniżej) pokazuje funkcję, której można użyć do zliczenia okresów za pomocą pojedynczego wejścia GPIO na module FPGA. Im dłuższy okres akwizycji, tym dokładniejszy będzie pomiar. W przypadku poniższego kodu, 16-bitowy licznik służy do zapewnienia dodatkowej rozdzielczości. Zakłada się również, że logika, która kontroluje czas akwizycji pomiaru, jest wykonywana na wyższym poziomie w architekturze układu FPGA.
Kod: Verilog
System wykazuje liniową zależność między temperaturą otoczenia i częstotliwością wyjściową, jak pokazano na rysunku 3. Widać tam także jak wysoką dokładnością charakteryzuje się ten system. Wykres zaprezentowany na rysunku 4 pokazuje z kolei błąd systemu pomiarowego.
Podsumowanie
W tej aplikacji omówiono nowy typ przetwornika temperatury na częstotliwość. Zapewnia on dokładną i niedrogą metodę pomiaru temperatur. Jeśli temperatura przekracza zakres przemysłowy (od 40°C do 125°C), na wejściach wzmacniacza można zainstalować termoparę.
Chociaż to rozwiązanie może nie zapewniać bardzo wysokiej rozdzielczości pomiaru temperatury, to w aplikacjach, w których dopuszczalny jest błąd w przybliżeniu ± 2°C, zapewnia on tani i prosty interfejs do pomiaru tej wartości.
Samą koncepcję zastosowania przetwornika napięcie-częstotliwość można dostosować do pomiaru innych typów wyjść przetwornika analogowych, bez potrzeby stosowania układu ADC.
Źródło: https://www.analog.com/en/analog-dialogue/raqs/raq-issue-169.html
Fajne? Ranking DIY
