Elektroda.pl
Elektroda.pl
X
AM TechnologiesAM Technologies
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Atmega - izolowane wejścia prądowe

06 Sie 2013 09:00 3138 21
  • Poziom 33  
    Witam.
    Szukam pomysłu na podpięcie do Atmegi/Xmegi co najmniej 8 izolowanych galwanicznie wejść prądowych. Wejścia typowe przemysłowe 4-20mA izolowane między sobą, a nie tylko od procesora, co dość komplikuje sprawę.
    Narzuca się najprostsze rozwiązanie, czyli wzmacniacze izolowane, ale wszystkie mi znane mimo swoich zalet są nie do przyjęcia ze względów ekonomicznych.
    Drugim pomysłem są izolowane I2C, trochę skomplikowane, ale tańsze niż wzmacniacze separowane galwanicznie.
    Ostatnim rozwiązaniem które mi przychodzi do głowy, są osobne procesory z ADC na każdy kanał i izolacja na poziomie transmisji między procesorami.
    Może znacie jakieś sprawdzone rozwiązania nadające się do tego celu?
    Piotr.
  • AM TechnologiesAM Technologies
  • Moderator Mikrokontrolery Projektowanie
  • Poziom 33  
    Witam
    Znasz jakiś który zapewni mi koło 0,1% dokładności?
    Metoda bardzo wolna w działaniu ale ciekawa i prosta w realizacji, przyznam że o tym nie pomyślałem.
  • AM TechnologiesAM Technologies
  • Poziom 40  
    Transoptor IL300 + garść elementów. Cena nie wysoka, dokładność samego IL to 0,01%.
  • Poziom 33  
    Witam
    Robi się drogo, pewnie wyjdzie koło 30zł za jedno wejście, na dodatek katalogowa liniowość to 0,5% jak dorzucimy wzmacniacze to może zmaleć do 1%, stabilność termiczna też nie zachwyca a to ma być przemysłówka, praktycznie od -10° do +50°
    Zaleta totalna izolacja wejścia.
    Wychodzi na to że najtaniej poświęcić jakiś procesor z 12 bitowym ADC na każdy kanał i izolacja na cyfrowej magistrali.
    Piotr
  • Poziom 27  
    Jeśli szybkość nie jest krytyczna, to pomysł z przetwornikami U/f jest bardzo dobry. Popatrz na karty katalogowe i noty aplikacyjne AD654 lub nowszych.
  • Poziom 33  
    Witam
    Tomek to drogo wychodzi, za połowę ceny tego przetwornika mam jakąś Atmege a może nawet Xmegę z 12 bitowym przetwornikiem, przy mniejszej dokładności nawet Attiny, po SPI mogę sobie łatwiej wywoływać poszczególne wejścia niż to jest w przypadku U/F.
    Po analizach wychodzi mi że najlepszy byłby:
    - wzmacniacz izolowany to cena jest tu zaporowa
    - przetwornik po I2C muszę poszukać takiego co ma conajmniej 8 adresów
    - procesor z ADC pracujący jako slave
    Reszta jest albo wyraźnie droższa albo zbyt skomplikowana
    Piotr
  • Poziom 27  
    Jeśli cena ma znaczenie, to proponuję "śmieciowy" LM331, który kosztuje nieco ponad złotówkę:
    http://www.tme.eu/pl/details/ka331/przetworniki-ui-uf-uu/fairchild-semiconductor/#
    w przykładowym układzie:
    http://www.seekic.com/circuit_diagram/Amplifi...rsion_circuit_to_convert_4~20MA_to_10KHZ.html
    Jeśli zliczanie częstotliwości będziesz robił procesorem, to różnice nachyleń i przesunięć możesz kompensować programowo.
  • Poziom 39  
    PiotrPitucha napisał:
    Robi się drogo, pewnie wyjdzie koło 30zł za jedno wejście, na dodatek katalogowa liniowość to 0,5% jak dorzucimy wzmacniacze to może zmaleć do 1%, stabilność termiczna też nie zachwyca a to ma być przemysłówka, praktycznie od -10° do +50°

    Są pewne granice, tzw. absurdu. Skoro wymagasz dobrej liniowości, skutecznej optoizolacji, szerokich temperatur pracy to nie licz na to, że zrobisz to za 5zł/kanał. Nawet 30zł/kanał może okazać się za mało.
    Fabryczna izolacja - a miałem rozebrane kilka modułów izolacyjnych 4-20mA - zawsze opierała się na przetwarzaniu I/f. Dodatkowo układy te przepuszczały sygnały HART.

    Pamiętać należy też, że układy wejściowe nie będą zasilane z powietrza, zatem należy im dostarczyć też napięcie zasilania. W modułach fabrycznych był to osobny transformowany kanał. Można też podebrać zasilanie z pętli, ale musisz mieć gwarancję, że pojedynczy układ wejściowy nie pobierze więcej niż 4mA. Niektóre czujniki poza zakresem 4-20mA sygnalizują też swoje stany awaryjne. Zatem jak trafi się czujnik, który w ten sposób wymusza sygnały to możesz nie mieć zasilania.

    Sam zrobiłem moduł izolacyjny 4 kanałowy oparty na IL300 z obu stron zasilany z linii - w pełni pasywny. Klasyczny układ z noty katalogowej IL300 firmy Agilent.
    W pomiarach błąd wyniósł 0,07% i to przy zastosowaniu zwykłych LM358. Niestety potwierdziła się fatalna stabilność termiczna takiego układu - jako całość. Układ był w stanie przy temperaturze Tamb ok. +65° wymusić w pętli 20mA i taki stan utrzymywał się do czasu rozłączenia pętli. Projekt na razie leży i czeka na lepsze czasy...

    Co do samej izolacji to do kompletu można dorzucić: ISO124, ISO130 Burr Brown-a, czujniki z efektem Halla od Allegro, AD204 od Analog Devices czy HCPL-7800A od Avago.
  • Poziom 33  
    Witam
    Chyba znalazłem złoty środek MCP3425, lub MCP3421, wewnętrzne stabilne źródło odniesienia, nic nie trzeba programować po stronie wejść. można podłączyć 8 przetworników na jednej linii, izolacja na I2C jest chyba dość prosta.
    Jedyny minus jeśli katalogi kłamią, ale 16 czy 18 bitów powinno spokojnie zabezpieczyć moje wymagania.
    Myślę że można się zmieścić w 15zł za kanał :D
    Pozdrawiam
  • Poziom 27  
    PiotrPitucha napisał:
    [..] izolacja na I2C jest chyba dość prosta.
    Niby prosta:
    http://www.analog.com/en/interface-isolation/...rs/products/index.html#Isolated_I2C_Isolators
    ale prostsza jest jedna linia jednokierunkowa przenosząca częstotliwość. :D
    Porównaj:
    :arrow: 8 przetworników A/C i 8 izolatorów na 3 transoptorach lub ADuM;
    z
    :arrow: 8 przetworników U/f z 1 transoptorem każdy. W czasie uruchamiania układu można zdjąć kilka punktów kalibracyjnych dla każdego kanału (przy liniowości LM331 na poziomie 0.01% powinny wystarczyć dwa punkty). Taka kalibracja uwzględnia niedokładność całego toru od tolerancji rezystora pomiarowego przez offset 4mA po nachylenie przetwarzania U/f wynikające z rozrzutu pojemności.
  • Poziom 33  
    Witam
    Ale U/f też się sam nie zrobi, jest o niebo bardziej skomplikowany od MCP, z moich doświadczeń wynika że wszystko płynie, kalibrowałem przetworniki przemysłowe o niebo lepszej klasy niż mogę wymyśleć, kalibratory muszą być o klasę lepsze niż obiekt kalibrowany, te którymi pracowałem kosztowały więcej niż dobre auto i wiem że każdy potencjometr popłynie, ponad 90% przetworników wymagało po roku rekalibracji a były to klocki trzech przodujących na rynku firm na H....
    Drogi problem jak to czytać, w I2C mam adresowane scalaki, tu albo musiałbym dodać multiplexer bo programowe czytanie na przypadkowych wejściach procesora komplikuje sprawę.
    Jeśli katalogi Microchipa mówią prawdę to o kalibracji mogę zapomnieć, wsadzam precyzyjny rezystor i po sprawie, jak dam równe 100Ω to obskoczę pomiar do 24mA.
    Czy ja pisałem coś o szybkości ? chyba nie, stałe czasowe w obiektach przemysłowych o których myślę są takie że pomiary można by spisywać ręcznie :D
    Z drugiej strony pomiar f by był dokładny musi trwać, przy 10kHz jesteśmy chyba po tej stronie bariery dla której musimy liczyć impulsy a nie mierzyć okres, przy 4kHz jesteśmy chyba na granicy, pytanie proste ile trwa zliczenie 1000 impulsów przy 4kHz?
    Odnośnie kalibracji dwupunktowej to większość czujników wcale liniowa nie jest, i tak dalej musimy coś przetwarzać, ale w pewnych punktach charakterystyki zmiana prądu o małą wartość oznacza zmianę wartości fizycznej.
    Wreszcie Hart, nie mam potrzeby się w to bawić, to znaczy nie będę z pewnością przetwarzał takich sygnałów, natomiast mój układ wpięty w szereg takiej transmisji nie będzie szkodził.
    Ktoś kto się bawił automatyką domyśli się po co w jednym pudełku chcę mierzyć tyle sygnałów naraz :D
    Pozdrawiam
  • Poziom 27  
    PiotrPitucha napisał:
    [...] U/f też się sam nie zrobi, jest o niebo bardziej skomplikowany od MCP
    Bez przesady - LM331 wystarczy uzupełnić 2..3 rezystorami i 1..2 kondensatorami. Do tego transoptor z rezystorem i jakaś przetworniczka lub isoPower.
    PiotrPitucha napisał:
    [...] wiem że każdy potencjometr popłynie, ponad 90% przetworników wymagało po roku rekalibracji
    Dlatego nie ma mowy o żadnych potencjometrach! Rezystory i kondensator powinny być stałe, stabilne, niekoniecznie precyzyjne. Chociaż zwykle są to parametry ze sobą związane...
    PiotrPitucha napisał:
    [...] jak to czytać, w I2C mam adresowane scalaki, tu albo musiałbym dodać multiplexer bo programowe czytanie na przypadkowych wejściach procesora komplikuje sprawę.
    10kHz - spokojnie programowo.
    PiotrPitucha napisał:
    [...]Czy ja pisałem coś o szybkości ? [...] Z drugiej strony pomiar f by był dokładny musi trwać, przy 10kHz jesteśmy chyba po tej stronie bariery dla której musimy liczyć impulsy a nie mierzyć okres, przy 4kHz jesteśmy chyba na granicy, pytanie proste ile trwa zliczenie 1000 impulsów przy 4kHz?
    Oczywiście odczyt częstotliwości będzie wolniejszy, ale zakładaliśmy, że szybkość nie jest krytyczna.
    PiotrPitucha napisał:
    [...]Odnośnie kalibracji dwupunktowej to większość czujników wcale liniowa nie jest, i tak dalej musimy coś przetwarzać, ale w pewnych punktach charakterystyki zmiana prądu o małą wartość oznacza zmianę wartości fizycznej.
    A/C też nie załatwi linearyzacji sam z siebie. Pisząc o kilkupunktowej kalibracji miałem na myśli tylko kompensację błędu liniowości przetwornika U/f a przy okazji przesunięcia i nachylenia wynikającego z rozrzutu wartości elementów.
    Zresztą to dotyczy również rozwiązania z przetwornikami A/C. Lepiej nie ufać tolerancji rezystora pomiarowego, dokładności źródła napięcia odniesienia, itp., tylko kalibrować programowo cały gotowy tor pomiarowy.
  • Poziom 43  
    PiotrPitucha napisał:
    Czy ja pisałem coś o szybkości ? chyba nie, stałe czasowe w obiektach przemysłowych o których myślę są takie że pomiary można by spisywać ręcznie :D

    Napisałeś takie coś:
    PiotrPitucha napisał:
    Metoda bardzo wolna w działaniu ale ciekawa i prosta w realizacji, przyznam że o tym nie pomyślałem

    co sugerowało że szukasz czegoś szybkiego.
    Warto tez dobierać procesor do rozwiązania a nie rozwiązanie do procesora.
    Jak byś użył STM32F103 pracującego na 72MHz to byś mógł mierzyć i 20kHz mierząc jego okres zamiast zliczać impulsy. I znacznie więcej niż 0.1% rozdzielczości byś uzyskał (dokładnie to 0.0278%). Dodam że świadomie piszę o rozdzielczości a nie dokładności, bo chodzi mi o to że ta metoda pomiaru częstotliwości już by nie wprowadzała znaczących błędów (schodków).
    Śmiem też twierdzić że liniowość LM331 jest o wiele większa niż MCP3425 (jak i wielu innych ADC).
    Warto zajrzeć do datasheeta jednego (strona 4) i drugiego (strona 4).
    Typowa liniowość LM331 jest znacznie lepsza niż maksymalna podana jako 0.01%.
    A dryft to typowo jakieś 25ppm/°C.
    Nieliniowość można więc pominąć a dryft da błąd dokładnie 0.1% przy zmianie temperatury o 40°C.
    Z kolei MCP3425. Wydaje się fajny bo ma napięcie referencyjne 2.048V ± 0.05% i błąd INL 10ppm.
    Ale patrzmy na charakterystyki.
    Od 0 do 40°C wzmocnienie układu PGA zmienia się o 0.1% (niezależnie z jakim wzmocnieniem pracuje, może np. "nie pracować" czyli mieć wzmocnienie = 1).
    Całkowity błąd w zależności od napięcia wejściowego (i raczej przy stałej temperaturze) wynosi 1.4mV. Co przy zakresie 2.048V daje 0.07%.
    Myślę więc że te dwa układy zapewnią podobną stabilność w układzie.
    Ograniczeniem dla LM331 jest tylko to że dla niego trzeba stabilny kondensator jeszcze. Bo sam z siebie to LM331 chyba jest dokładniejszy.
  • Poziom 27  
    W zasadzie nic nie stoi na przeszkodzie, żeby mierzyć temperaturę w obudowie i zdjąć punkty kalibracyjne dla kilku temperatur.
  • Poziom 33  
    Ciekawa dyskusja, sam kiedyś zastanawiałem się na podobnym problemem.
    Mam takie teoretyczne pytanie. Proponujecie LM331 który jest konwerterem U/F... ale autor postu chce transmitować pętlę prądową 4-20mA. Wiem że niektóre czujniki z aktywną pętlą można obciążyć max 100Ohm co daje nam min 400mV napięcia do konwersji dla LM331. Wypadałoby więc "dać" wzmacniacz operacyjny a co za tym idzie układ się komplikuje/podraża oraz rośnie nieliniowość/błąd ? Mając MCP3425 wystarczy zmienić wartość PGA.
  • Poziom 27  
    Na 100Ω dla 4..20mA spadek napięcia wyniesie 0.4..2.0V. Przy wartościach elementów z układu aplikacyjnego da to na wyjściu przebieg 400Hz do 2kHz, ale już przy 100nF wyjdzie 4..20kHz. Przy tym mniejszą pojemność łatwiej znaleźć w wersji precyzyjnej/stabilnej.
    Zresztą nie upieram się przy LM331. Prawdę powiedziawszy lepiej znam AD654, który ma wejścia "prądowe" i jest bardziej elastyczny od strony wejść, ale i droższy.