Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Wielokanałowy pomiar niskich napięć poprzez ADC

jfizyk 15 Jan 2012 04:36 2820 3
NDN
  • #1
    jfizyk
    Level 1  
    Szanowni Państwo!

    Przedstawiam się i dziękuję forumowiczom

    Jako nowy uczestnik forum witam wszystkich Uczestników :D :D :D i przede wszystkim dziękuję, że mogłem przez wiele lat korzystać z Państwa wiedzy i doświadczenia. Jestem od wielu lat elektronikiem, mam Ojca krótkofalowca, który w ten temat niestrudzenie mnie wprowadzał za co Mu również w tym miejscu serdecznie dziękuję.
    Jak wspomniałem, od wielu lat, jako użytkownik "read only" korzystam z Państwa głębokiej wiedzy na forum, za co serdecznie dziękuję. Mam trochę styczności z chińskim rynkiem elektroniki i mogę śmiało powiedzieć, że wielu chińskich konstruktorów może jedynie pomarzyć o wiedzy i umiejętnościach jakie wielu z Państwa tu posiada. Myślę, że pod tym względem polska myśl techniczna ma się czym poszczycić i utarty schemat jakoby w Chinach potrafili wszystko, a tutaj nic - można śmiało włożyć między bajki. Jest to raczej kwestia wielkości zamówień i sztucznego, odgórnego zduszenia rodzimego rynku elektronicznego.
    Będąc przy głosie powiem jeszcze, że w wielu przypadkach dyskutanci z niniejszego forum nie zdają sobie sprawy, jak wiele ich dyskusja może pomóc i nakierować innych, którzy nawet po kilku latach odszukują temat. Nieraz czytałem stwierdzenia, że wypowiedź niewiele wnosi i aby zamykać temat, a dla mnie akurat ta wypowiedź była rozwiązaniem poważnego problemu. Dlatego jeszcze raz dziękuję wszystkim, z których wiedzy mogłem korzystać i mam nadzieję, że nieraz moja skromna wiedza też się komuś przyda.


    Moja przetwornica DcDc step-down

    Opisuję tu mój układ (bo może komuś się przyda) oraz, w dalszej części miałbym kilka pytań.

    Wykonuję którąś już wersję przetwornicy DcDc step-down. Przetwornica z napięcia wejściowego 21 V do 34 V ma dawać ok. 19 V i ma zasilać do 8 rzędów diod LED Power (na schemacie są narysowane tylko 4 rzędy)

    Wielokanałowy pomiar niskich napięć poprzez ADC

    Prąd w żadnym z rzędów nie może przekroczyć 700 mA i sterując tym napięciem wyjściowym ~ 19 V można uzyskać ok. 700 mA w każdym rzędzie. Fluktuacje prądów w gałęziach są niewielkie, nie przekraczają 10 mA, bo LED-y w gałęziach są identyczne.
    Głównym moim problemem jest jak najprostszy sposób pomiaru tego prądu do 700 mA w 7-8 gałęziach jednocześnie za pomocą mikrokontrolera.

    W pierwszych próbach używałem procka Atmega48PA. Końcówki oporników pomiarowych RN – PM1 ... PM4 dołączałem bezpośrednio na wejścia Atmeg-i: ADC0... ADC3 i mierzyłem ich napięcie. Prąd Irn = 700 mA przez opornik Rn = 0,3 ohm dawał napięcie ok. Urn = 0,21 V na wejściu ADC. Włączałem napięcie Vref na wewnętrzny wzorzec Atmeg-i – 1,1V. Moje napięcie Urn miało więc ok. 1/5 maksymalnego na ADC i pomiar w przetworniku 10 bitowym stawał się 8 bitowy. Dodatkowo, pomimo względnie stałego prądu Irn dwa, a nawet 3 bity przetwornika (bit 0 – 2) dawały fluktuacje tak, że pomiar zrobił się 6-ścio bitowy. To już bardzo mało zważywszy na to, że PWM Atmeg-i sterujący pośrednio pracą konwertera (tego nie ma na schemacie) musi być-10 bitowy, bo przy mniejszej rozdzielczości widać miganie diod LED.

    Zatem muszę dążyć do zwiększenia dokładności pomiaru ADC niskiego napięcia w wielu kanałach i jeśli można - chciałbym prosić o sugestie jak to można zrealizować.

    Wzmacniacz operacyjny w analogowym torze ADC procesorów

    Oczywiście nie jest tak, że rzucam pytanie na forum i czekam, aż ktoś za mnie rozwiąże problem. Interesują mnie raczej Państwa doświadczenia.
    Ja widzę następującą drogę. Otóż są procesory, które mają analogowy wzmacniacz sygnału w torze ADC. Poniżej przedstawiam zrzut z pdf-a procesora Attiny261A.

    Wielokanałowy pomiar niskich napięć poprzez ADC

    Ten procek jest dla moich celów „za mały”, bo ja jeszcze potrzebuję z 12 pinów do innych celów, ten zaś ma 20 nóżek, 11 odchodzi na ADC i zostaje niewiele. Jest za to dobrą ilustracją, bo również tor PWM ma dobrze rozbudowany.
    Na Attiny261A można by uzyskać 7 wejść o wzmocnieniu x20 i 4 wejścia o wzmocnieniu x8. Wzmocnienie x8 byłoby tu najlepsze. Widać, że procek ma tzw. GAIN AMPLIFIER, na który przekierowuje się sygnały z ADCn.

    Policzmy krótko: max napięcie Vref 1,1V na wyjściu wzmacniacza obsłuży max napięcie wejściowe na ADCn Vwej(x8) = 0,1375V. Przy prądzie Irn = 700 mA trzeba by użyć 2 oporników 1206: 0,39R i moc wydzielana na każdym z nich to ok. 50 mW. A zatem ze wzmacniaczem „GAIN AMPLIFIER” wszystko by się ulepszyło: mniejsze napięcie pomiaru to mniejsze straty na opornikach pomiarowych (zmniejszają sprawność przetwornicy tylko o 0,75%), to z kolei mniejsze ciepło, które pewnie wypacza pomiar. Zarazem rozciągnięcie zakresu pomiaru prawie na max zwiększa dokładność pomiaru – u mnie 5-cio krotnie.

    Myślałem też nad zewnętrznymi wzmacniaczami operacyjnymi, ale to dodało by skomplikowania układu, trzeba by ustawiać opornikami wzmocnienie układu, miejsce na płytce, robocizna montażu itd., choć jeśli byłby jakiś 8 kanałowy wzmacniacz operacyjny to to można by rozważyć.

    Zatem pozostaje wybór odpowiedniego procka. Jest to problem, bo mało z nich ma wzmocnienie na 8 kanałach. Np. Atmega32 tylko ma 3. Znalazłem jednak fajny procek ATXmega16A4. On z tego co widzę może obsłużyć 7 kanałów, bo 8 musi być pinem „negative”. Jest tam ustawiane wzmocnienie x2, x4, x8, x16, x32, x64.

    Wielokanałowy pomiar niskich napięć poprzez ADC

    A więc nieźle i jestem pod jego wrażeniem. Acha – ma ADC 12 bit-owe !!! i niesamowitą szybkość (widziałem jak ktoś zrobił na tym niezły oscyloskop). Na dodatek może robić całą masę innych, fajnych rzeczy, a kosztuje w TME 15,40 zł netto.

    Czy procesory PIC mają wzmacniacze w ADC ?

    Natomiast rozglądałem się też w procesorach PIC i tam bardzo mnie zainteresowała rodzina 16 bitowa PIC24. I tak np.:

    PIC24F04KA201-I/SS 20 pin, za 6,85 zł netto;
    PIC24FJ64GA004T TQFP44 , za 10,00 zł netto;

    W takich cenach to bywają Attiny, a tu widzę, że w PIC są 3 zegary 16 bitowe i cała masa akcesoriów. Co do toru ADC, to w PIC24 tak to jest urządzone:

    Wielokanałowy pomiar niskich napięć poprzez ADC

    I tu jest właśnie główna przyczyna mojego postu: na rysunku widać, że sygnały z „AN” przechodzą do DAC poprzez wzmacniacz różnicowy „S/H”, który w pdf jest nazywany „A/D sample/hold amplifier”.
    [http://ww1.microchip.com/downloads/en/devicedoc/39881b.pdf]
    Czy jest to rzeczywiście wzmacniacz ?. Z jednej strony dalej w pdf-ie nie ma nigdzie żadnej wzmianki o wzmocnieniu wzmacniacza, tak jakby go nie było. Z drugiej strony nie chce mi się wierzyć, że w Attiny tyle lat temu stosowano takie wzmacniacze, a w takich wypasionych PIC-ach by ich nie było wcale ?
    Stoję zatem przed wyborem procesora i wszelkie Państwa rady będą mi wielce pomocne.

    Pytania w skrócie

    Pyt1) Czy procesory PIC mają wzmacniacze operacyjne w torze ADC ? Czy może inne procesory NXP, ST mają w tym względzie dobre rozwiązania ?

    Pyt2) Czy metodą pomiaru niskich napięć na ADC może być zmniejszanie napięcia Vref aby skrócić zakres ? Czy to stabilne rozwiązanie ? (w Atmega48PA gdy Vref < 0,7V to pomiary wariują)

    Pyt3) Czy zmniejszanie fizycznych napięć i zwiększanie wzmocnień w ADC (np. x16, x32) nie wprowadzi dużych szumów i do jakich wzmocnień warto się już nie zbliżać ?

    Pyt4) Czy są może lepsze metody pomiaru niskich napięć od podanych przeze mnie ?

    Pyt5) Czy w ATXmega (3,3V) można uzyskać wyjściowe napięcia na portach I/O 5V poprzez jakiś otwarty kolektor („Totem-pole with Pull-down” ?) (bo w PIC o tym czytałem, że można)

    Dziękuję.
  • NDN
  • #2
    excray
    Level 40  
    jfizyk wrote:
    Dodatkowo, pomimo względnie stałego prądu Irn dwa, a nawet 3 bity przetwornika (bit 0 – 2) dawały fluktuacje tak, że pomiar zrobił się 6-ścio bitowy.

    Ten prąd wcale nie jest "względnie stały". Zasilasz całość z przetwornicy impulsowej i na dodatek jako jedyną filtrację stosujesz szeregowo podłączony kond 1u z opornikiem 22R, a pomiar wykonujesz bezpośrednio na opornikach ograniczających i dziwisz się że masz skoki napięcia.
    Sygnał pobierz z oporników ograniczających ale nie bezpośrednio pod piny ATMegi tylko przez filtr RC 47kom i 220nF.
  • NDN
  • #3
    Fredy
    Level 27  
    Czemu na wyjściu nie dasz większego elektrolita ? Tak jak pisze mój przedmówca - tam jest ostra sieczka, więc jakakolwiek kontrola prądu tak zdeformowanego będzie skazana na porażkę. Nawet jak wzmocnisz to napięcie n-razy to i tak otrzymasz wynik który będzie pływać n-razy więcej.
    I jeszcze jedno - poszukaj takich układów jak multpleksery analogowe (przełączniki analogowe). Możesz wtedy programowo wybierać punkt pomiarowy, włączać go na wejście ze wzmocnieniem i mierzyć.
  • #4
    tmf
    Moderator of Microcontroller designs
    ad 2. Nie możesz. Dla każdego procesora Vref ma określoną, minimalną wartość, zwykle jest to nie mniej niż 1,1-2,4V. Co więcej ze względu na budowę ADC w ATMega rozdzielczości lepszej niż 2mV bezpośrednio nie uzyskasz.
    ad 3. Oczywiście wprowadzi, w nocie jest to nawet określone. Dla 10-bitowego ADC zastosowanie wzmacniacza powoduje utratę około 2 bitów. W dodatku samo wzmocnienie ma też pewien zakres tolerancji. Tu XMega jest góra bo masz DAC i możesz sobie to fajnie skompensować.
    ad 4. Tak. Zastosować dedykowane to takiego sterowania scalaki. Są gotowe drivery do LED z regulowanym prądem.
    ad 5. Z tego co pamiętam to XMega nie ma wyjść 5V tolerant, problemem jest zabezpieczenie wejść przeciwko ESD. Z drugiej strony po co ci 5V?