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

wzmacniacz PT100 do zakresu 3.3V

13 Sie 2019 10:28 264 13
  • Poziom 10  
    Witam,
    próbuje wykonać wzmacniacz do czujnika PT100. Interfejs 4 przewodowy (ze względu na dokładność i uniwersalność). Ma on za zadanie mierzyć temperaturę z zakresu 0-300 stopni C z dokładnością do 1 stopnia. Odczytu na końcu ma dokonywać przetwornik 12bit w STM32F4 w trybie single ended. Po przeszukaniu kilkudziesięciu opracowań / przykładów doszedłem do wniosku, że kompensacje zera jak i dokładne przeliczenie/kalibracje zrobię programowo, natomiast co do samego wzmacniacza to jeśli dobrze rozumiem, najlepiej jest wykonać źródło stało prądowe (w moim przypadku ok, 1,25mA) i wzmacniaczem operacyjnym podbić napięcie z PT100. Wykonałem wstępny schemat (jest to jeden moduł z kilku które mają znaleźć się na płytce):
    wzmacniacz PT100 do zakresu 3.3V
    W związku z tym mam kilka wątpliwości:
    1. Czy układ lm317 nadaje się na źródło stało prądowe? w teorii powinno dać radę ale obawiam się o stabilność. Można również wykonać takie źródło w oparciu o źródło napięcia referencyjnego i wzmacniacz operacyjny.
    2. W niektórych przykładach znalazłem informacje, że wzmacniacze powinny być minimum 2. Pierwszy odejmujący a drugi wzmacniający. Nie wiem tylko w jakim celu? Dodatkowa stabilizacja? A może kwestia izolacji od uC?
    3. Sam wzmacniacz obecnie na schemacie to lm358. Nie jest idealny ale tani. Chce go docelowo zastąpić czymś dokładniejszym (np. MCP601). Może jakieś sugestie?
    4. Ostatnie ale może i najważniejsze, czy moje założenia mają jakikolwiek sens? Może zwyczajnie coś mylę.
    Za wszelką pomoc dziękuję.
  • Pomocny post
    Moderator Projektowanie
    1.
    W teorii - nie nadaje się. Czytaj datasheet LM317 - min. prąd to 5mA (10mA).
    2.
    Odejmujący stosuje się gdy chcesz przesunąć poziom napięć - np. tak aby dla 0stC, Uwy=0.
    Jeśli chcesz
    floop93 napisał:
    kompensacje zera jak i dokładne przeliczenie/kalibracje zrobię programowo

    to odejmujący nie jest konieczny, tyle że pozwoliłby na rozszerzenie zakresu Uwe dla przetwornika.
    3.
    Wszystko zależy od oczekiwanej dokładności. MCP601 jest niewiele dokładniejszy od LM358. Atrakcyjny jest OP07 ze względu na cenę, ale wymaga zasilania symetrycznego.
  • Poziom 10  
    1. Faktycznie, moja pomyłka, nie zauważyłem tego wcześniej. Między czasie szukałem już innego rozwiązania i doszedłem do czegoś takiego:
    wzmacniacz PT100 do zakresu 3.3V
    2. Wiem po co stosuje się odejmujące (do przesunięcia zera jeszcze mostek Wheatstone’a jest potrzebny) ale w tym przypadku odejmujący jest tylko i wyłącznie, żeby zniwelować rezystancje przewodów dla interfejsu 4 przewodowego. W pytaniu bardziej chodziło mi o kwestie stosowania 2 wzmacniaczy w szeregu, pierwszy odejmujący, bez wzmocnienia a drugi wzmacniający. I jeszcze zaznaczali, że muszą być 2 ale nikt nie objaśniał dlaczego. Stąd moje wątpliwości bo jeśli jestem wstanie wzmocnić wystarczająco sygnał do moich potrzeb to po co drugi? Moim zdaniem to bez sensu ale ekspertem nie jestem i dla tego pytam.
    3. Napięcia symetrycznego wolałbym uniknąć. Zapytam inaczej, czy lm358 wystarczyłby do uzyskania żądanej dokładności? może ma ktoś doświadczenie w temacie, stosował takie wzmacniacze przy podobnych aplikacjach?

    Dodano po 24 [minuty]:

    Co do wzmacniacza, MCP6022 ma dużo mniejsze napięcie niezrównoważenia na wejściu, cenowo też akceptowalny.
  • Moderator Projektowanie
    1.
    Schemat nieczytelny.
    2.
    floop93 napisał:
    przesunięcia zera jeszcze mostek Wheatstone’a jest potrzebny

    ??
    Chyba coś tu mylisz.
    3.
    floop93 napisał:
    czy lm358 wystarczyłby do uzyskania żądanej dokładności?

    To trzeba policzyć, zakładając odpowiedni schemat/układ. To już lepiej LM258 - ta sama cena, dokładniejszy, lepszy.
    Uwzględnić dokładność WO, odchyłki (tolerancje oporników), założyć najbardziej niekorzystny przypadek gdy odchyłka jednego opornika działa w jedną stronę, druga w drugą - a będzie ich więcej.
    1stC/300stC=0,3% - więc obawiam się że nie wystarczy użyć oporników 0,1% (drogie), potrzebne będą dokładniejsze - drogie i mało dostępne.
    Przykładowo jeśli 0-300stC przetwarzasz na U=0-3V to masz 10mV/K i max błąd to 10mV - a kilka mV napięcia niezrównoważenia LMx58 "zje" ci większość tego, zostawiając niewielki margines błędu na pozostałe elementy (oporniki, źródło prądowe, dryft temperaturowy - jaki zakres zmian temp. otoczenia?)
    Dlatego raczej zapomnij o LMx58 czy LMx24, seria MCP od Microchip jest znacznie lepsza i znajdziesz tam nawet (o ile pamiętam) dokładniejsze od MCP6022.
  • Poziom 10  
    1. wstawiam lepszej rozdzielczości:
    wzmacniacz PT100 do zakresu 3.3V
    2. Żeby wyzerować PT100 na wzmacniaczu odejmującym trzeba na wejście ujemne podać napięcie równe napięciu na PT100 w temp. 0, wiec stosuje się dodatkowy dzielnik co w efekcie daje nam mostek Wheatstone’a... Nic nie mylę. Oczywiście można to robić na wiele sposobów i mniej lub bardziej to modyfikować ale to jest najbardziej popularne rozwiązanie. Natomiast zgubiło się gdzieś samo pytanie.
    3. Ok, z tym, że znając błędy rezystorów kompensuje je raz w programie i tyle. Zostaje tylko kwestia dryftu źródła. Temp. pracy to ok 10-30 st. C, według noty 2,5mV w tym zakresie, co przekłada się na 1uA, co można pominąć. Dodatkowy problem stanowi wzmacniacz na masie układu, jego błąd jest 2 razy większy co oznacza 2uA, czyli dalej do pominięcia. Jak będzie w rzeczywistości to się sprawdzi. Oporniki też na tym trochę ucierpią, nie wiem nawet jak to do końca oszacować. Musiałbym już dokładnie elementy dobrać. Co do lmx58 to faktycznie jest słaby punkt, więc go zastąpię. Wspomniany powyżej MCP6022 powinien być trochę lepszy. Jeśli idea tego układu się trzyma mniej więcej kupy chyba najrozsądniej będzie go po prostu zbudować i przetestować.
  • Moderator Projektowanie
    floop93 napisał:
    znając błędy rezystorów kompensuje je raz w programie i tyle.

    Znasz błędy? - a skąd? Nawet jeśli je pomierzysz (omomierz o klasie <0,01% ?) to nic nie gwarantuje bo odchyłki danego opornika mogą się zmieniać z czasem - w granicach jego tolerancji podawanej przez producenta. I tylko tę tolerancję można uznać za pewną i przy liczeniu błędów musisz założyć jej wartość max (że taka odchyłka może mieć miejsce).
    floop93 napisał:
    Temp. pracy to ok 10-30 st. C

    Patrz błąd MCP1525, dryft temp. WO.
    Samego wzmacniacza nie rozumiem, klasyczny różnicowy ale z bardzo dziwnymi opornikami - co on ma robić? Obawiam się że jednak mylisz się co do tego mostka, różnicowy jest tu potrzebny gdyż warto
    floop93 napisał:
    wyzerować PT100 na wzmacniaczu odejmującym

    aby
    trymer01 napisał:
    pozwoliłby na rozszerzenie zakresu Uwe dla przetwornika.

    floop93 napisał:
    Natomiast zgubiło się gdzieś samo pytanie.

    Ale pytasz o coś co "ktoś gdzieś powiedział/napisał" - jak się do tego odnieść?
    Generalnie nie ma potrzeby stosowania dwóch - osobno wzm. i osobno odejmujący, na wzmacniaczu różnicowym zrobisz to samo - na jednym stopniu tylko nie w klasycznym układzie "książkowym" (dwie pary oporników - każda para jednakowe - jak u Ciebie powyżej). To nie mostek - zauważ, że dzielnik 10k/120k na we(+) zmniejsza Ci sygnał we. 13-krotnie - bez sensu. A do tego wzmocnienie samego wzmacniacza jest małe.

    Dodano po 24 [minuty]:

    Rozumiem, że diodę Zenera wstawiłeś bo obawiasz się przekroczenia 3,3V na we. przetwornika? - używając MCP zasil go Uzas=3,5V i nie potrzeba diody Zenera, która przy 3-3,3V może już "podbierać" prąd co da spadek napięcia na szeregowym oporniku i błędy Uwy.
    A sam przetwornik zapewne ma zakres Uwe większy niż Uzas czyli do 3,6V wytrzyma (sprawdzić w nocie), ma diody zabezpieczające, i dla "świetego spokoju" wystarczyłby szeregowy opornik (sprawdzić jaki jest Ibias przetwornika) ograniczający prąd tych diod - to dla Uzas =5V.
  • Pomocny post
    Poziom 15  
    Kolego floop93

    Kolega trymer01 dobrze Ci radzi, a do tego wykonaj kilka prościutkich obliczeń!
    RTD@0°C = 100 Ω
    RTD@300°C = 212 Ω zgodnie z wielomianem Callendar-Van Dusen

    Dla prądu 1mA mamy więc zmianę napięcia w zakresie 100mV...212mV czyli przyrost ok. 374uV na każdy °C
    i to bez uwzględniania nieliniowości PT100 , która w tym zakresie temperatur sama z siebie powoduje już błąd rzędu ok. 5Ω czyli 4%
    Dla osiągnięcia zakładanej precyzji nieliniowość powinna być skompensowana.

    Nie znam STM32F4 więc nie wiem jaka jest wartość wewnętrznego Uref dla przetwornika ale zakładając że Uref=2,5V będziesz przykładowo potrzebował wzmocnienia GAIN=10 aby możliwie szeroko wykorzystać zakres napięć wejściowych ADC (2,12V dla 300°C).

    Ponieważ 'offset wzmacniacza też się wzmocni' oznacza to, że aby sensownie zmierzyć przetwornikiem napięcie na PT100 offset wzmacniacza pomiarowego powinien być przynajmniej 5x, a lepiej 10x mniejszy niż wymagana rozdzielczość 374uV/°C czyli coś w granicach 25...35uV.

    W praktyce, pomiar PT100 często realizuje się stosując tzw. pomiar ratiometryczny
    W pomiarze ratiometrycznym rezystancja czujnika RTD porównywana jest do wartości rezystancji rezystora wzorcowego co pozwala uniezależnić pomiar od niestabilności źródła prądu Iref.

    wzmacniacz PT100 do zakresu 3.3V

    W tym układzie CODEmax przetwornika wynosi: CODEmax = Uref = Iref x Rref
    Natomiast wartość zmierzona przetwornikiem: CODE = GAIN x Iref x RTD
    Dzieląc stronami i przekształcając otrzymujemy:
    RTD = (CODE x Rref) / (CODEmax x GAIN)

    Ponieważ CODEmax = 4095 (dla 12-bitów) jest stałe, to głównymi źródłami błędów pomiarów będą:
    - dokładność rezystora Rref
    - dokładność wzmocnienia wzmacniacza GAIN
    - dokładność ADC czyli nieliniowość oraz offset ADC a także offset wzmacniacza - to można z powodzeniem kompensować programowo
    Jest jeszcze błąd rezystancji doprowadzeń ale jego kompensacja jest już sporo trudniejsza.


    Od strony praktycznej:
    Proste i stosunkowo dokładne źródło prądowe można zbudować w formie lustra 2xPNP i np. NPN + 2 diody
    Jako wzmacniacz proponuję instrumentacyjny INA333 (Vos≈15uV i GAINerror = ±01% - wartości średnie/typowe)
    Rref = 2kΩ 0.1% dla 1mA daje Uref = 2,0V
    Ponieważ w wyniku konwersji ADC otrzymasz praktycznie bezpośrednio rezystancję RTD to program będzie prościutki.
    Wystarczy wyznaczyć wartość RTD i porównać z tabelą temperatur - w ten sposób pokonasz nieliniowość i unikniesz przy tym złożonych obliczeń. Powinna wystarczyć tabela co 2°C i interpolacja.

    I ma to jeszcze jedną zaletę: powinno działać przy zasilaniu 3,3V, u Ciebie zasilanie 5V to absolutne minimum

    Powodzenia!
  • Pomocny post

    Poziom 9  
    Poszukaj ADS1247. TI udostępnia noty aplikacyjne.

    MAX31865 może okazać się bardziej optymalnym rozwiązaniem.
  • Poziom 10  
    trymer01 napisał:
    Znasz błędy? - a skąd?

    nie znam i nie muszę. Wystarczy zrobić kalibrację już na podstawie odczytów z ADC i wzorcowego termometru.

    trymer01 napisał:
    Patrz błąd MCP1525, dryft temp. WO.

    patrzyłem, przeliczyłem i wyszło mi na szybko, że prąd będzie skakać w bardzo niewielkim zakresie. Jutro jeszcze dokładnie postaram się przeliczyć błędy które mogę/umiem.

    trymer01 napisał:
    Samego wzmacniacza nie rozumiem, klasyczny różnicowy ale z bardzo dziwnymi opornikami - co on ma robić?

    Pierwszy przy MCP1525 to zwykły wtórnik (ma na celu odizolowanie prądowe masy źródła) drugi to natomiast klasyczny przykład wzmacniacza operacyjnego, odejmującego właśnie ;) Jak nie wierzysz to odsyłam chociażby do Wikipedii (pierwszy link jaki mi wyskoczył)
    https://pl.wikibooks.org/wiki/Wzmacniacze_operacyjne#Wzmacniacz_odejmujący

    trymer01 napisał:
    Obawiam się że jednak mylisz się co do tego mostka, różnicowy jest tu potrzebny gdyż warto
    floop93 napisał:
    wyzerować PT100 na wzmacniaczu odejmującym

    aby
    trymer01 napisał:
    pozwoliłby na rozszerzenie zakresu Uwe dla przetwornika.

    Nie do końca rozumiem ten fragment. Po pierwsze nie negowałem zalet płynących z zerowania PT100, po drugie wiem, że do tego stosuje się wzmacniacze w układzie odejmującym ale chciałem to zostawić po stronie uC. Po trzecie, jak wpiszesz "PT100 circuit" w google to mostki te właśnie obecne są na wielu obrazkach które zobaczysz w grafice... wystarczy sobie trochę rezystory poukładać w wyobraźni ;) Ale moim zdaniem rozmowa o nich dalej nie ma większego sensu ani wkładu w temat.

    trymer01 napisał:
    Ale pytasz o coś co "ktoś gdzieś powiedział/napisał" - jak się do tego odnieść?

    To jest ciekawe, bo od początku pytałem czy są jakieś przesłanki, żeby musiały być 2 wzmacniacze w szeregu (przykładowo większa dokładność czy może izolacja uC), po czym twierdzisz, że nie wiesz o co pytam a za chwile udzielasz odpowiedzi ;)
    trymer01 napisał:
    generalnie nie ma potrzeby stosowania dwóch - osobno wzm. i osobno odejmujący, na wzmacniaczu różnicowym zrobisz to samo - na jednym stopniu


    trymer01 napisał:
    zauważ, że dzielnik 10k/120k na we(+) zmniejsza Ci sygnał we. 13-krotnie - bez sensu

    Masz racje, bije się w pierś. Czeski błąd, na odwrót wpisałem wartości rezystorów, zamiast 120k powinno być 10k i na odwrót. Jak sobie to zamienisz to masz wzmacniacz odejmujący o wzmocnieniu 12-to krotnym. Odejmujący ze względu na pomijanie w takim układzie rezystancji przewodu w czujnikach z 4 przewodami.

    trymer01 napisał:
    Rozumiem, że diodę Zenera wstawiłeś bo obawiasz się przekroczenia 3,3V na we. przetwornika? - używając MCP zasil go Uzas=3,5V i nie potrzeba diody Zenera, która przy 3-3,3V może już "podbierać" prąd co da spadek napięcia na szeregowym oporniku i błędy Uwy.

    Bardzo pomocna rada, dziękuje.

    Mkrasuski napisał:
    Kolega trymer01 dobrze Ci radzi, a do tego wykonaj kilka prościutkich obliczeń

    Nigdy nie negowałem rad dawanych przez kolegę trymer01, po prostu rozmowa niepotrzebnie zbacza na inne tory. Niestety nie miałem czasu, żeby dokładnie policzyć wszystko. Obiecuje, że jutro się tym zajmę. Po za tym dziękuję za tak obszerne i pomocne wytłumaczenie zagadnienia Zwłaszcza cenne są dla mnie rady od strony praktycznej.

    Thaddy
    Znam te układy. Chciałem zrobić to taniej ze względu na konieczność podpięcia 8 czujników ale może się okazać, że ostatecznie bardziej opłaci mi się skorzystać z gotowców ;)

    Mkrasuski
    Dzięki, na pewno się przyda ;)
  • Pomocny post
    Poziom 15  
    floop93 napisał:
    Thaddy
    Znam te układy. Chciałem zrobić to taniej ze względu na konieczność podpięcia 8 czujników ale może się okazać, że ostatecznie bardziej opłaci mi się skorzystać z gotowców


    INA333 kosztuje trochę więc będzie trudno pogodzić i tanio i dokładnie budując 8 pojedynczych kanałów.

    Ze swej strony chciałbym zasugerować by użyć zewnętrzny przetwornik ADS124S08: przetwornik sigma-delta 4ksps, 24-bity z dwoma źródłami prądowymi, wzmacniaczem PGA i 12-kanałowym rozbudowanym multiplekserem na wejściu.
    Ponieważ każde z dwóch wbudowanych źródeł prądowych można tu przypisać do dowolnego kanału to 12 kanałów może obsłużyć:
    - cztery czujniki RTD 4-przewodowe
    - trzy tańsze czujniki RTD 3-przewodowe
    Przetwornik nie należy do najtańszych, kosztuje ok 60zł np. w Farnell, ale 8x (INA333 + Iref + Rref) będzie jeszcze droższe - niestety dokładność zawsze kosztuje
  • Poziom 10  
    Po chwili spędzonej przy obliczeniach, zakładając:
    - Układ po taniości, mniej więcej taki jak ostatnia wersja w moim poście (1 kanał wyniósłby ok 10 pln) (wzmacniacz MCP6022, źródło MCP1525, rezystory 0,1% 25ppm/°C)
    - Kalibracje końcową i wykorzystanie tablic z wartościami rezystancji od temperatur
    Wyszła mi dokładność rzędu ΔT=±2,2°C (±9,6 mV na ADC). Głównie wynikająca z dryftu temperatury na wszystkich elementach oraz napięcia niezrównoważenia wejść wzmacniaczy. Nie uwzględniałem samego odczytu ADC, zakłóceń czy rezystancji przewodów RTD. Bezpieczniej było by przyjąć T zmierzone na poziomie ±5°C względem rzeczywistej. Dokładając Rref i odejmowanie na wzmacniaczu można by zredukować nieco błędy wynikające z dryftu prądu ale i tak największy błąd dalej wynika ze wzmacniacza więc dużo to nie poprawi. Sam INA333 to koszt rzędu 23 pln za 1 kanał więc układ traci już zupełnie sens. Ewentualnie znalazłem MCP6V31 kóry teoretycznie powinien być znacznie lepszy od MPC a cena podobna (ma 4 kanały).

    Stosując ADS124S08 i interfejs 2-przewodowy można osiągnąć większą dokładność za ok 15-20 pln na kanał (o ile się nie mylę?)

    Podsumowując. ADS124S08 jak na razie to najlepszy kompromis cena/dokładność ale tracę możliwość korzystania z PT100 3 i 4 przewodowych. Względnie muszę poszukać wzmacniacza o lepszych parametrach ale w podobnej cenie co może okazać się niemożliwym.
  • Poziom 15  
    floop93 napisał:
    Stosując ADS124S08 i interfejs 2-przewodowy można osiągnąć większą dokładność za ok 15-20 pln na kanał (o ile się nie mylę?)

    floop93 napisał:
    ... tracę możliwość korzystania z PT100 3 i 4 przewodowych


    Dlaczego tylko 2-przewodowy?
    Przecież ADC MUX jest konfigurowalny i wystarczy kilka dodatkowych ścieżek i zworek lub DIP switch oraz zmiana w oprogramowaniu

    wzmacniacz PT100 do zakresu 3.3V

    I chyba czas aby kol. ujawnił czy projekt to jest hobby/zaliczenie czy komercyjny z już ustaloną ceną... za niską oczywiście :-)
    Bo jeśli to pierwsze, to na AliExpress:
    INA333 jest za ~1$/szt
    ADS1248 (podobny do ADS124S08 ale tylko 8 kanałów) jest za ~2$ (przy zakupie 5szt)
  • Poziom 10  
    Mkrasuski
    Trochę hobby trochę projekt komercyjny. Pracuje w stosunkowo małej firmie produkcyjnej i tworzę w niej coś na kształt "jednoosobowego działu utrzymania ruchu" ;) Parę miesięcy temu szef zamówił pięć do proszkowego malowania ale tak się stało, że ostatecznie musimy robić go sami... Konstrukcja już prawie jest więc pora na sterowanie. Muszę przedstawić szefowi jakie mamy możliwości. Jedna opcja zakłada wykorzystanie PLC a druga własny projekt na uC. Tak więc mam okazję w czasie pracy na odrobinę kreatywności i staram się tak dopracować całość, żeby po doliczeniu czasu mojej pracy nadal się to opłacało ;) Stąd ta optymalizacja... No i chce zamówić gotowe PCB więc nie mam za dużo czasu na prototypowanie a do tej pory zagadnienia związane z pomiarem temperatury traktowałem po macoszemu...

    Dzięki za ostatnie schematy, myślę, że nie ma co za bardzo kombinować i od razu zamówię ADS1248 albo ADS124S08