W materiale testujemy zestaw ewaluacyjny EVAL-AD74412R udostępniony przez Analog Devices. Zestaw pozwala na sprawdzenie możliwości uniwersalnego czterokanałowego konfigurowalnego programowo układu AD74412R. Na płytce znajduje się złącze zgodne z Arduino, które wykorzystamy do komunikacji z układem po magistrali SPI. Zbadanie możliwości układu ułatwi interfejs USB<->SPI SDP-S i oprogramowanie, które pozwala na szybki start z konfigurowaniem układu, odczytem i zapisem danych zgodnie z przewodnikiem do zestawu EVAL-AD74412R.
Gdy zajrzymy do noty katalogowej AD74412R znajdziemy informację, że każdy kanał może pracować niezależnie od pozostałych w jednej wybranej z 6 konfiguracji:
-wejście napięciowe (standard 0-10V),
-wejście prądowe (standard 4-20mA),
-wyjście napięciowe (standard 0-10V),
-wyjście prądowe (standard 4-20mA),
-pomiar rezystancji RTD (najczęściej rezystancyjne czujniki temperatury),
-wejście cyfrowe (konfigurowalne progi i mechanizmy redukcji drgań styków).
Wbudowane przetworniki ADC i DAC ułatwiają diagnostykę, np. przy konfiguracji kanału jako wyjście prądowe mierzymy napięcie na kanale, co pozwala wykryć zwarcie, przerwę lub zmiany rezystancji w pętli prądowej.
Zastosowanie uniwersalnego układu I/O upraszcza łańcuch dostaw, gdyż dla każdego kanału sterownika stosujemy ten sam interfejs ze zminimalizowaną ilością zewnętrznych elementów dodatkowych.
Rozszerzenie ilości uniwersalnych kanałów sterownika możemy zrealizować podłączając lokalnie kasety z interfejsami AD74412R np. na magistrali SPI, lub równie łatwo na większe odległości wykorzystując Ethernet w tym jednoparowy SPE.
Programowa rekonfiguracja kanałów interfejsu I/O pozwala na zamianę, np. wyjścia sterownika na wejście bez wymiany sprzętu.
Możemy uprościć portfolio sterowników i innych produkowanych urządzeń oferując urządzenia z określoną ilością uniwersalnych kanałów np. 8/16/32, klient skonfiguruje wybrane kanały jako wejścia lub wyjścia.
Elastyczne podejście oparte o uniwersalny kanał I/O pozwala na unikanie sytuacji, gdy kupowaliśmy kasetę np. z 8 wejściami analogowymi, a potrzebowaliśmy tylko jednego takiego wejścia.
Poniżej materiał filmowy i tekstowy z prób przeprowadzonych z zestawem ewaluacyjnym ADI.
Płytkę ewaluacyjną zasilamy napięciem w zakresie 14-26.4V, interfejs SDP-S wykorzystamy do komunikacji z aplikacją na PC.
Instalujemy aplikację dostarczającą też sterowniki dla SDP-S.
Gdyby wystąpiły problemy z uruchomieniem aplikacji, to sprawdzamy, czy na komputerze jest uruchomione inne oprogramowanie korzystające z portu TCP 8000, np. wydając w Windows polecenie: netstat -ab.
Jeżeli coś nasłuchuje na porcie 8000, można sprawdzać dalej wydając polecenie: netsh http show servicestate
Jeśli inne oprogramowanie będzie wykorzystywało mechanizm HTTP Server API, to może to spowodować błąd 404 po uruchomieniu aplikacji obsługującej zestaw ewaluacyjny.
Po poprawnym skomunikowaniu płytki z oprogramowaniem zobaczymy poniższy ekran aplikacji:
Dla każdego kanału określamy tryb pracy: wejście lub RTD lub wyjście:
Oraz ustawiamy szczegóły konfiguracji kanału:
Możemy m.in. wybrać filtrowanie przydźwięku sieciowego 50Hz lub uruchomienie dodatkowego rezystora równolegle do wejścia napięciowego, ew. ograniczenie prądowe wyjścia.
Pomiary możemy obserwować jako zmiany wartości w czasie:
W sekcji diagnostyka sprawdzimy napięcia i temperaturę na płytce ewaluacyjnej:
Mamy możliwość zapisu i odczytu wartości rejestrów AD74412R, wbudowany system podpowiedzi znacząco ułatwia przygotowanie kodu sterującego układem:
Następnie możemy przygotować i przetestować sekwencję zapisów i odczytów do rejestrów, a po wykonaniu prób użyjemy jej w docelowym kodzie:
Płytka ewaluacyjna posiada wiele zworek i punktów testowych ułatwiających sprawdzanie możliwości AD74412R, szczegóły opisane są w dokumentacji. Przykładowo JP8 i JP9 pozwalają na wykorzystanie zewnętrznego napięcia odniesienia 2.5 V ADR4525. Na płytce większość układów pochodzi od ADI np. ADP2360 (zasilanie 5V), ADP1720 (stabilizator 3.3V).
W nocie katalogowej znajdziecie informacje, jak sprytnie został zbudowany uniwersalny kanał I/O, poniżej kilka schematów prezentujących, w jaki sposób zamykane są obwody napięciowe/prądowe podczas zmiany funkcji wybranego kanału.
Arduino UNO podłączymy na spodniej części płytki ewaluacyjnej.
Odłączamy interfejs USB<->SPI i uruchomimy rejestrator wartości z kanałów płytki na kartę SD oparty o Arduino UNO komunikujące się po SPI z AD74412R.
W zasobach ADI znajdziemy pliki z kodem ułatwiającym na kolejnym etapie komunikację z AD74412R po SPI z podłączonego modułu do złącza zgodnego z Arduino. Dołączamy plik "ad74412_regs.h" z definicjami rejestrów AD74412. Wykorzystamy płytkę Arduino UNO.
Docelowo spróbujemy wykonać długoterminową rejestrację wartości napięcia sieciowego poprzez podanie napięcia z wyjścia przekładnika na kanał C skonfigurowany jako wejście napięciowe. Na początek odczytamy napięcie z kanału C i wyślemy wartość pomiaru po UART, aby wyświetlić dane w konsoli.
Obserwujemy wyniki w konsoli szeregowej:
Transmisji SPI towarzyszą sumy CRC pozwalające wykryć zakłócenia na magistrali, układ nie wykona przesłanego rozkazu, gdy CRC nie będzie prawidłowe, podobnie możemy zignorować wartość pomiaru z nieprawidłową sumą CRC.
Zmodyfikujmy kod tak, aby próbkować napięcie na kanałach A, B, C i przesyłamy binarnie wyniki pomiarów po UART, celem ich zapisania na kartę SD. Na kanały A i B w ramach eksperymentu podamy sygnał z elementów piezo, być może uda się zarejestrować poziom drgań w budynku (dla drgań sejsmicznych "blaszka piezo" jest raczej zbyt mało czuła, a otoczenie budynku i np. ruch uliczny generuje silniejsze sygnały niż naturalne drgania sejsmiczne).
Odebrane po URAT dane zapiszemy na kartę SD w drugim Arduino. Dane możemy równie dobrze przesłać przez sieć LAN/WAN i zapisać na serwerze, w przykładzie posłużymy się prostszym zestawem testowym z lokalną rejestracją danych.
Poniżej efekty 24-godzinnej rejestracji wartości napięcia sieciowego. Napięcie sieciowe jest lokalnie silnie zależne od pracy urządzeń podłączonych do transformatora 15/0.4kV.
Do 5 nad ranem napięcie ma w miarę stałą wysoką wartość, od 7 ruszamy do pracy, startują ekspresy i czajniki, widać spadek napięcia, czyli zwiększoną moc odbieraną przez urządzenia elektryczne. W okolicach 10 znów spadek - być może niektórzy wstają później i robią śniadanie. Około 17 wracamy z pracy i widać ponowny spadek napięcia. Około 20 napięcie zaczyna się stabilizować, jednak nadal widoczne są zapady wartości napięcia, a także zwiększone wartości napięcia. W okolicach 23 widoczne jest uruchomienie odbiornika większej mocy - być może ktoś korzysta z tańszej taryfy nocnej?
W okolicach 12 udało się zarejestrować cykliczną pracę urządzenia większej mocy (regularne załączenia i wyłączenia), być może jakaś grzałka z termostatem w bojlerze?
Efekty rejestracji drgań mechanicznych są mniej spektakularne. Czujniki były dość przypadkowe, należałoby zastosować wzmacniacze w torze pomiarowym. Tutaj pomyślałem, że byłoby dobrze, gdyby programowalne układy I/O posiadały wewnątrz także programowalne wzmacniacze. Chociaż w przypadku standardów przemysłowych (0-10V, 4-20mA) być może nie byłoby to potrzebne?
Udało się zaobserwować, że drgania w budynku nasilają się w od około 5, a zaczynają gasnąć w okolicach 19.
Podoba mi się pomysł na programowalny, uniwersalny wielokanałowy układ I/O. Kanał urządzenia staje się konfigurowalny i uniwersalny, można zarówno uprościć ofertę sterowników, jak również ułatwić wdrożenie oraz adaptację do zmian. Kanały otrzymują dodatkowe funkcje diagnostyczne. Cyfrowa komunikacja z wielokanałowym interfejsem I/O to cecha, która zwróciła moją uwagę. Na niewielkie odległości mogę rozbudować sterownik o kolejne uniwersalne kanały. Nie muszę wybierać konkretnego typu kasety, np. wejść cyfrowych, wejść analogowych, mam do dyspozycji uniwersalne kanały w określonej liczbie. Ważna cecha to łatwe przeniesienie cyfrowej komunikacji do układu I/O na większą odległość, np. z wykorzystaniem Ethernetu. Mogę rozbudować sterownik dodając kasetę lokalnie, np. po interfejsie SPI, jak również wyniesiony na większą odległość moduł software I/O. Pakiety IP mogą być przesyłane medium miedzianym, optycznym, a ostatnio także po jednej parze (SPE - Single Pair Ethernet).
Co myślicie o uniwersalnym, wielokanałowym, konfigurowalnym programowo układzie wejść/wyjść AD74412R?
Gdzie i do jakiego rozwiązania widzicie zastosowania dla takiego układu?
[Artykuł sponsorowany]
Gdy zajrzymy do noty katalogowej AD74412R znajdziemy informację, że każdy kanał może pracować niezależnie od pozostałych w jednej wybranej z 6 konfiguracji:
-wejście napięciowe (standard 0-10V),
-wejście prądowe (standard 4-20mA),
-wyjście napięciowe (standard 0-10V),
-wyjście prądowe (standard 4-20mA),
-pomiar rezystancji RTD (najczęściej rezystancyjne czujniki temperatury),
-wejście cyfrowe (konfigurowalne progi i mechanizmy redukcji drgań styków).
Wbudowane przetworniki ADC i DAC ułatwiają diagnostykę, np. przy konfiguracji kanału jako wyjście prądowe mierzymy napięcie na kanale, co pozwala wykryć zwarcie, przerwę lub zmiany rezystancji w pętli prądowej.
Zastosowanie uniwersalnego układu I/O upraszcza łańcuch dostaw, gdyż dla każdego kanału sterownika stosujemy ten sam interfejs ze zminimalizowaną ilością zewnętrznych elementów dodatkowych.
Rozszerzenie ilości uniwersalnych kanałów sterownika możemy zrealizować podłączając lokalnie kasety z interfejsami AD74412R np. na magistrali SPI, lub równie łatwo na większe odległości wykorzystując Ethernet w tym jednoparowy SPE.
Programowa rekonfiguracja kanałów interfejsu I/O pozwala na zamianę, np. wyjścia sterownika na wejście bez wymiany sprzętu.
Możemy uprościć portfolio sterowników i innych produkowanych urządzeń oferując urządzenia z określoną ilością uniwersalnych kanałów np. 8/16/32, klient skonfiguruje wybrane kanały jako wejścia lub wyjścia.
Elastyczne podejście oparte o uniwersalny kanał I/O pozwala na unikanie sytuacji, gdy kupowaliśmy kasetę np. z 8 wejściami analogowymi, a potrzebowaliśmy tylko jednego takiego wejścia.
Poniżej materiał filmowy i tekstowy z prób przeprowadzonych z zestawem ewaluacyjnym ADI.
Płytkę ewaluacyjną zasilamy napięciem w zakresie 14-26.4V, interfejs SDP-S wykorzystamy do komunikacji z aplikacją na PC.
Instalujemy aplikację dostarczającą też sterowniki dla SDP-S.
Gdyby wystąpiły problemy z uruchomieniem aplikacji, to sprawdzamy, czy na komputerze jest uruchomione inne oprogramowanie korzystające z portu TCP 8000, np. wydając w Windows polecenie: netstat -ab.
Jeżeli coś nasłuchuje na porcie 8000, można sprawdzać dalej wydając polecenie: netsh http show servicestate
Jeśli inne oprogramowanie będzie wykorzystywało mechanizm HTTP Server API, to może to spowodować błąd 404 po uruchomieniu aplikacji obsługującej zestaw ewaluacyjny.
Po poprawnym skomunikowaniu płytki z oprogramowaniem zobaczymy poniższy ekran aplikacji:
Dla każdego kanału określamy tryb pracy: wejście lub RTD lub wyjście:
Oraz ustawiamy szczegóły konfiguracji kanału:
Możemy m.in. wybrać filtrowanie przydźwięku sieciowego 50Hz lub uruchomienie dodatkowego rezystora równolegle do wejścia napięciowego, ew. ograniczenie prądowe wyjścia.
Pomiary możemy obserwować jako zmiany wartości w czasie:
W sekcji diagnostyka sprawdzimy napięcia i temperaturę na płytce ewaluacyjnej:
Mamy możliwość zapisu i odczytu wartości rejestrów AD74412R, wbudowany system podpowiedzi znacząco ułatwia przygotowanie kodu sterującego układem:
Następnie możemy przygotować i przetestować sekwencję zapisów i odczytów do rejestrów, a po wykonaniu prób użyjemy jej w docelowym kodzie:
Płytka ewaluacyjna posiada wiele zworek i punktów testowych ułatwiających sprawdzanie możliwości AD74412R, szczegóły opisane są w dokumentacji. Przykładowo JP8 i JP9 pozwalają na wykorzystanie zewnętrznego napięcia odniesienia 2.5 V ADR4525. Na płytce większość układów pochodzi od ADI np. ADP2360 (zasilanie 5V), ADP1720 (stabilizator 3.3V).
W nocie katalogowej znajdziecie informacje, jak sprytnie został zbudowany uniwersalny kanał I/O, poniżej kilka schematów prezentujących, w jaki sposób zamykane są obwody napięciowe/prądowe podczas zmiany funkcji wybranego kanału.
Schemat blokowy AD74412R:
Peryferia układu:
Wejście napięciowe:
Wejście prądowe:
Wyjście napięciowe:
Wyjście prądowe:
Arduino UNO podłączymy na spodniej części płytki ewaluacyjnej.
Odłączamy interfejs USB<->SPI i uruchomimy rejestrator wartości z kanałów płytki na kartę SD oparty o Arduino UNO komunikujące się po SPI z AD74412R.
W zasobach ADI znajdziemy pliki z kodem ułatwiającym na kolejnym etapie komunikację z AD74412R po SPI z podłączonego modułu do złącza zgodnego z Arduino. Dołączamy plik "ad74412_regs.h" z definicjami rejestrów AD74412. Wykorzystamy płytkę Arduino UNO.
Docelowo spróbujemy wykonać długoterminową rejestrację wartości napięcia sieciowego poprzez podanie napięcia z wyjścia przekładnika na kanał C skonfigurowany jako wejście napięciowe. Na początek odczytamy napięcie z kanału C i wyślemy wartość pomiaru po UART, aby wyświetlić dane w konsoli.
Code: c
Obserwujemy wyniki w konsoli szeregowej:
Transmisji SPI towarzyszą sumy CRC pozwalające wykryć zakłócenia na magistrali, układ nie wykona przesłanego rozkazu, gdy CRC nie będzie prawidłowe, podobnie możemy zignorować wartość pomiaru z nieprawidłową sumą CRC.
Zmodyfikujmy kod tak, aby próbkować napięcie na kanałach A, B, C i przesyłamy binarnie wyniki pomiarów po UART, celem ich zapisania na kartę SD. Na kanały A i B w ramach eksperymentu podamy sygnał z elementów piezo, być może uda się zarejestrować poziom drgań w budynku (dla drgań sejsmicznych "blaszka piezo" jest raczej zbyt mało czuła, a otoczenie budynku i np. ruch uliczny generuje silniejsze sygnały niż naturalne drgania sejsmiczne).
Code: c
Odebrane po URAT dane zapiszemy na kartę SD w drugim Arduino. Dane możemy równie dobrze przesłać przez sieć LAN/WAN i zapisać na serwerze, w przykładzie posłużymy się prostszym zestawem testowym z lokalną rejestracją danych.
Code: c
Poniżej efekty 24-godzinnej rejestracji wartości napięcia sieciowego. Napięcie sieciowe jest lokalnie silnie zależne od pracy urządzeń podłączonych do transformatora 15/0.4kV.
Do 5 nad ranem napięcie ma w miarę stałą wysoką wartość, od 7 ruszamy do pracy, startują ekspresy i czajniki, widać spadek napięcia, czyli zwiększoną moc odbieraną przez urządzenia elektryczne. W okolicach 10 znów spadek - być może niektórzy wstają później i robią śniadanie. Około 17 wracamy z pracy i widać ponowny spadek napięcia. Około 20 napięcie zaczyna się stabilizować, jednak nadal widoczne są zapady wartości napięcia, a także zwiększone wartości napięcia. W okolicach 23 widoczne jest uruchomienie odbiornika większej mocy - być może ktoś korzysta z tańszej taryfy nocnej?
W okolicach 12 udało się zarejestrować cykliczną pracę urządzenia większej mocy (regularne załączenia i wyłączenia), być może jakaś grzałka z termostatem w bojlerze?
Efekty rejestracji drgań mechanicznych są mniej spektakularne. Czujniki były dość przypadkowe, należałoby zastosować wzmacniacze w torze pomiarowym. Tutaj pomyślałem, że byłoby dobrze, gdyby programowalne układy I/O posiadały wewnątrz także programowalne wzmacniacze. Chociaż w przypadku standardów przemysłowych (0-10V, 4-20mA) być może nie byłoby to potrzebne?
Udało się zaobserwować, że drgania w budynku nasilają się w od około 5, a zaczynają gasnąć w okolicach 19.
Podoba mi się pomysł na programowalny, uniwersalny wielokanałowy układ I/O. Kanał urządzenia staje się konfigurowalny i uniwersalny, można zarówno uprościć ofertę sterowników, jak również ułatwić wdrożenie oraz adaptację do zmian. Kanały otrzymują dodatkowe funkcje diagnostyczne. Cyfrowa komunikacja z wielokanałowym interfejsem I/O to cecha, która zwróciła moją uwagę. Na niewielkie odległości mogę rozbudować sterownik o kolejne uniwersalne kanały. Nie muszę wybierać konkretnego typu kasety, np. wejść cyfrowych, wejść analogowych, mam do dyspozycji uniwersalne kanały w określonej liczbie. Ważna cecha to łatwe przeniesienie cyfrowej komunikacji do układu I/O na większą odległość, np. z wykorzystaniem Ethernetu. Mogę rozbudować sterownik dodając kasetę lokalnie, np. po interfejsie SPI, jak również wyniesiony na większą odległość moduł software I/O. Pakiety IP mogą być przesyłane medium miedzianym, optycznym, a ostatnio także po jednej parze (SPE - Single Pair Ethernet).
Co myślicie o uniwersalnym, wielokanałowym, konfigurowalnym programowo układzie wejść/wyjść AD74412R?
Gdzie i do jakiego rozwiązania widzicie zastosowania dla takiego układu?
[Artykuł sponsorowany]
Cool? Ranking DIY