logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[AVR][ATtiny] - podłączenie do bocznika - pomiar różnicowy

mirekk36 17 Maj 2010 11:04 9255 27
REKLAMA
  • #1 8085417
    mirekk36
    Poziom 42  
    Posty: 9195
    Pomógł: 964
    Ocena: 2289
    Witam,

    Chciałbym się upewnić jak należy podłączać wejścia ADC przy założeniu, że wykorzystuję możliwość pomiaru różnicowego w procku AVR np w ATtiny26 - do bocznika - żeby prawidłowo dokonywać pomiaru prądu.

    Słyszałem że trzeba tak jak poniżej:

    [AVR][ATtiny] - podłączenie do bocznika - pomiar różnicowy

    Czyli bez wspólnej masy - no ale wtedy niestety odczyty wartości ADC przy prawidłowych oczywiście wszystkich ustawieniach MUX i innych rejestrów - powiedziałbym, że wariują. Nawet jak dokonuję pomiaru offsetu przy MUX gdzie wybrane jest ADC0 - ADC0 to przy wyłączonym zasilaniu 12V pojawia się tam jakiś mały ofset ok 1-2, jednak gdy włączę napięcie +12V to i ten pomiar skacze sobie jak wariat przy odczycie ADC powiedzmy co 100ms. Tzn to skakanie to co chwilę niekontrolowane zmiany wartości ADC w granicach od 0 do 100 a nawet 200. Zarówno przy zwartym ADC0-ADC0 jak i przy ustawieniu MUX żeby mieć pomiar różnicowy ADC0 - ADC1

    (Tzn wiem że w ATtiny26 wejście Vneg to ADC1 czyli odwrotnie niż na rysunku - no ale rysowałem to z myślą o ATmega32 gdzie Vneg to ADC0. Na ATtiny podłączałem oczywiście prawidłowo czyli odwrotnie)


    Natomiast gdy podłączę to w wersji ze wspólną masą:

    [AVR][ATtiny] - podłączenie do bocznika - pomiar różnicowy

    tzn jest wspólna masa procka i źródła (przed bocznikiem) to już odczyty stają się jakby stabilne i udaje się już mierzyć odkładane napięcie różnicowe na boczniku. Niestety gdy np mam obciążenie 200mA i zastosuję napięcie +12V a później np +15V to niestety odczyty ADC już się sporo różnią chociaż na wejściu Vpos po dzielniku nadal jest podobne napięcie w granicach 2,2mV a na boczniku w granicach 22,4mV czyli ładnie dzieli się napięcie na dzielniku.

    Niestety moja wiedza w zakresie elektroniki analogowej pozostawia jeszcze duużo do życzenia - stąd moje pytania
  • REKLAMA
  • Pomocny post
    #2 8085607
    markosik20
    Poziom 33  
    Posty: 2261
    Pomógł: 208
    Ocena: 147
    Spróbuj tak:
    [AVR][ATtiny] - podłączenie do bocznika - pomiar różnicowy
  • #3 8085641
    mirekk36
    Poziom 42  
    Posty: 9195
    Pomógł: 964
    Ocena: 2289
    markosik20 --> tylko jak dobrać wtedy te dzielniki? tzn zakładając, że max prąd może być 5A to ten dzielnik z prawej powinien być chyba mniej więcej tak jak pisałem wcześniej R29=68K natomiast R30=5,6K

    ale jak dobrać wtedy R31 i R32 ????

    (dzięki za zainteresowanie)
  • #4 8085657
    markosik20
    Poziom 33  
    Posty: 2261
    Pomógł: 208
    Ocena: 147
    A w ogóle dlaczego chcesz robić pomiar na wejściach różnicowych? Nie wystarczy połączyć ze sobą mas (zasilacza i uC) i mierzyć napięcie na rezystorze pomiarowym?
  • #5 8085735
    Konto nie istnieje
    Konto nie istnieje  
  • #6 8085829
    michalko12
    Specjalista - Mikrokontrolery
    Posty: 3394
    Pomógł: 462
    Ocena: 321
    markosik20 napisał:
    Spróbuj tak:
    [AVR][ATtiny] - podłączenie do bocznika - pomiar różnicowy


    Też może nie działać ponieważ na ADC0 będzie napięcie ujemne względem masy
    a to jest już poza specyfikacją tego ADC

    ale jakbyś chciał to sprawdzić to możesz to policzyć w ten sposób:

    Przyjmując że R31 = R29 i R32 = R30

    Udiff = (U(R33) * R32) / (R31 + R32)

    czy jak kto woli

    Udiff = (I * R33 * R32) / (R31 + R32)
  • #7 8085923
    Konto nie istnieje
    Konto nie istnieje  
  • REKLAMA
  • #8 8085968
    michalko12
    Specjalista - Mikrokontrolery
    Posty: 3394
    Pomógł: 462
    Ocena: 321
    albertb napisał:
    Poprawka. Zgodnie z tym co pisze michalko12 Układ Markosika wymaga podpolaryzowania.


    Zdążyłem przeczytać...
  • REKLAMA
  • #9 8085980
    mirekk36
    Poziom 42  
    Posty: 9195
    Pomógł: 964
    Ocena: 2289
    markosik20 napisał:
    A w ogóle dlaczego chcesz robić pomiar na wejściach różnicowych? Nie wystarczy połączyć ze sobą mas (zasilacza i uC) i mierzyć napięcie na rezystorze pomiarowym?


    hmm po pierwsze to widziałem, że niby ktoś w necie tak zrobił właśnie i ponoć to fajnie działa. Nie udostępnił tylko kodu źródłowego no ale to dla mnie najmniejszy problem - sam bym sobie napisał byleby mieć jakiś dobry układ części analogowej z którą sam mam problemy. A chodzi mi o jak najprostsze i w miarę skuteczne rozwiązanie bez wzmacniaczy operacyjnych na zewnątrz. W załączniku PDF projektu w oparciu o który chciałem napisać sobie program.

    Tyle że jak już dłużej przy tym siedzę to okazuje się np, że kondensator 100nF od dzielnika ADC8 (pin nr.8 w ATtiny26) na schemacie jest podpięty do GND - natomiast na płytce - bo widać jej wzór - kondensator nie jest do GND tylko jakby równolegle z rezystorem 22k - więc już jakieś nieścisłości pomiędzy opisem, schematem a płytką.

    Ale teraz dopiero zauważyłem na tym ŻÓŁTYM rysunku - sposób połączenia do bocznika. Tylko czy to nie jest jakaś masakra ?????? Toż masa układu procesora poprzez wejście - (minus) do pomiaru napięcia łączy się z wejściem + (plus) dzielnika idącego do ADC8 oraz z bocznikiem po prawej stronie czyli na wyjściu. Natomiast wejście Vneg ADC9 podłączone jest przed bocznikiem (po lewej stronie) - a to przecież chyba jak nic na 100% będzie powodowało, że na ADC9 będzie napięcie ujemne w stosunku do masy procesora - co przy 5A może dać różnicę na boczniku chyba aż -1V - a tego chyba procek by nie wytrzymał .

    Czy dobrze myślę ???? o ile komuś zechce się w ogóle ten przykład analizować - bo może tak jak 80% różnych cudownych układów w necie i ten jest tylko jakąś fantasmagorią albo może jest totalnie źle przedstawiony w PDFie a w rzeczywistości gostek zrobił inaczej.

    Ja tak dużo dociekam bo przy okazji sporo się uczę na ten temat - no i jeśli miałoby to działać a zależałoby już tylko od napisania softu - to bym sobie poradził - stąd to moje zacięcie do tego układu.

    Poza tym wszystkim wydawało mi się - ale może niesłusznie, że dzięki pomiarowi różnicowemu napięć uzyskam dużo lepszą rozdzielczość właśnie w granicach zmian napięcia na boczniku przy małych prądach.
    Załączniki:
    • VAmeterLCD.pdf (330.55 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #10 8085989
    mirekk36
    Poziom 42  
    Posty: 9195
    Pomógł: 964
    Ocena: 2289
    albertb --> ten dzielnik 68K/5,6K stosowałem akurat dla ATmega32 gdzie korzystałem ze wzmocnienia x200 ale dla ATtiny26 robiłem dzielnik jak mówisz 22k/68K
  • #11 8085991
    Konto nie istnieje
    Konto nie istnieje  
  • #13 8086072
    michalko12
    Specjalista - Mikrokontrolery
    Posty: 3394
    Pomógł: 462
    Ocena: 321
    mirekk36 napisał:


    Ale teraz dopiero zauważyłem na tym ŻÓŁTYM rysunku - sposób połączenia do bocznika. Tylko czy to nie jest jakaś masakra ?????? Toż masa układu procesora poprzez wejście - (minus) do pomiaru napięcia łączy się z wejściem + (plus) dzielnika idącego do ADC8 oraz z bocznikiem po prawej stronie czyli na wyjściu. Natomiast wejście Vneg ADC9 podłączone jest przed bocznikiem (po lewej stronie) - a to przecież chyba jak nic na 100% będzie powodowało, że na ADC9 będzie napięcie ujemne w stosunku do masy procesora - co przy 5A może dać różnicę na boczniku chyba aż -1V - a tego chyba procek by nie wytrzymał .


    Przy wejściu od pomiaru prądu podane jest że napięcie może być w przedziale od 0-500mV. Minimalna wartość napięcia na pinie AVR to -0.5V więc teoretycznie ma to prawo działać i może dowodzić temu że wzmacniacz róznicowy daje sobie radę z napięciem ujemnym do tej wartości, ale i tak ten projekt jest do d... bo tak jak pisałeś przy napięciu większym niż -0,5V zacznie płynąć prąd do masy przez diodę zabezpieczająca port AVRa i wiadomo jakie skutki tego mogą być.
  • #14 8086116
    Konto nie istnieje
    Konto nie istnieje  
  • #15 8087551
    janbernat
    Poziom 38  
    Posty: 3954
    Pomógł: 468
    Ocena: 51
    Nigdzie w tym układzie nie występuje potencjał niższy niż 0 zasilania procesora.
    Jeśli układ byłby podłączony tak jak na schemacie to nie mierzył by prądu- opornik pomiarowy prądu byłby zwarty.
    Podejrzewam że autor projektu stosuje dwie "masy"- i dzielnik napięcia podpina do "masy obciążenia".
    Wtedy pomiar napięcia będzie błędny- zaniżony o spadek napięcia na oporniku
    0.1 Ohm.
    Albo nie- jeśli tę "masę" wyjściową podłączyć jako wejście Vneg do przetwornika.
  • #16 8087983
    mirekk36
    Poziom 42  
    Posty: 9195
    Pomógł: 964
    Ocena: 2289
    Ok w końcu zrobiłem taki układ do pomiaru prądu i napięcia --- i w końcu to zaczęło działać dla różnych napięć i różnych prądów. Tzn na razie testowałem z żarówką 21W i prądzik ładnie płynął 1,72A - zgodnie z multimerem.

    Czy jednak macie i do tego jakieś zastrzeżenia ???? bo jak na razie mierzy ładnie prąd od ok 15mV .... i po korekcjach błędów ADC działa to przyzwoicie i praktycznie liniowo teraz.

    [AVR][ATtiny] - podłączenie do bocznika - pomiar różnicowy

    zastanawiam się tylko jak przygotować masę na płytce. Chyba błędem będzie zalanie całej nie wykorzystanej na ścieżki powierzchni płytki masą ??? Chyba wypadałoby AGND połączyć jedną ścieżką z jednym końcem tego bocznika, a drugi koniec tej ścieżki żeby dochodził do samej nogi GND stabiliztora. I od tej samej nogi gwiaździście powinna chyba iść też masa do części cyfrowej ???
  • Pomocny post
    #17 8088101
    janbernat
    Poziom 38  
    Posty: 3954
    Pomógł: 468
    Ocena: 51
    Masę kombinujesz prawie dobrze.
    Wszystkie początki masy powinny wychodzić od minusa kondensatora w zasilaniu.
    Teraz jescze tak czy mierzysz napięcie na zasilaczu?
    To taki układ dobry.
    Bo jak na obciążeniu- to trochę fałszywy wynik.
  • REKLAMA
  • #19 8088395
    markosik20
    Poziom 33  
    Posty: 2261
    Pomógł: 208
    Ocena: 147
    A czym Twój układ różni się od poniższego?
    [AVR][ATtiny] - podłączenie do bocznika - pomiar różnicowy
    i co daje ta różnica?
  • #20 8088469
    mirekk36
    Poziom 42  
    Posty: 9195
    Pomógł: 964
    Ocena: 2289
    markosik20 --> no właśnie od tego drugiego to w zasadzie niczym się nie różni. Wczoraj w nocy jak to testowałem to już chyba się zakręciłem w tym pająku albo się dziabnąłem z masami - bo wszystko fruwa na kabelkach połączniowych i tak jak pisałem w pierwszym poście wczoraj niby też mi to źle działało.

    ale.... ale dzisiaj na spokojnie - jeszcze po dodatkowej analizie i tej dyskusji tutaj doszedłem do wniosku, że przecież to powinno działać.

    W efekcie końcowym - okazało się, że chyba właśnie kabelek na płytce stykowej zwierający bocznik z GND procka - chyba coś nie stykał no a rezystor dzielnika był nie przy nodze bocznika. Poprawiłem więc to połączenie masy, a obydwa rezystory dzielnika w zasadzie zwarłem bezpośrednio z nogami bocznika - no i ruszyło.

    Jak pisałem teraz ładnie i liniowo mierzy mi się już prądzik i napięcie. Tzn prąd sprawdzałem na razie tylko do 1,7A . Żeby sprwdzić na 5A to już będę musiał płytkę zrobić bo te połączenia na płytce stykowej i pająku są kiepskie i nawet poruszenie bocznikiem powoduje, że zmieniają się odczyty ADC.
  • #21 8088514
    markosik20
    Poziom 33  
    Posty: 2261
    Pomógł: 208
    Ocena: 147
    mirekk36 napisał:
    no właśnie od tego drugiego to w zasadzie niczym się nie różni.


    To jaki jest sens stosować w tym przypadku pomiar różnicowy?
  • #22 8088698
    mirekk36
    Poziom 42  
    Posty: 9195
    Pomógł: 964
    Ocena: 2289
    markosik20 --> no sens jest chyba taki, że:

    w przypadku zwykłego pomiaru SIngle Ended - to ja nie mam wzmacniacza sygnału a co za tym idzie spada mi drastycznie czułość (nie wiem czy się dobrze wyrażam) i w związku z tym to mogę tylko pomarzyć o pomiarze prądów od 10-15mA obojętnie jaki dzielnik bym zastosował aż do 5A

    Oczywiście w przypadku ATmega mogę liczyć tylko na wzmocnienie x10 też troszkę cienko ale stosując nadpróbkowanie hmmm nooo... można już jakiś tam amperomierz uzyskać. Natomiast w przypadku ATtiny i wzmocnienia x20 przy takim dzielniku 68K / 22K to ja już mam ładne pokrycie pomiarów spadku napięcia na boczniku od 1mV co daje właśnie przy rezystorze/boczniku 0R1 10mA. Wprawdzie to 10 do 15mA jest jeszcze mało dokładne ale już widać. A od 20mA zaczyna się już na prawdę ładny i stabilny pomiar i to do 5A bez żadnego dodatkowego przełączania zakresów itp.

    Tak mi się wydaje - ale czy dobrze? okaże się tak na 100% jak zrobię płytkę i potestuję z prądami 5A albo i więcej .... zaopatrzyłem się w komplet żarówek samochodowych ;)

    Jeśli coś źle dedukuję to mnie popraw proszę - bo poruszanie się w dziedzinie analogowej to dla mnie cały czas nowość - ale staram się łykać coś tej wiedzy na ile jestem w stanie sam to robić w tym wieku ;)
  • #23 8088771
    markosik20
    Poziom 33  
    Posty: 2261
    Pomógł: 208
    Ocena: 147
    mirekk36 napisał:
    w przypadku zwykłego pomiaru SIngle Ended - to ja nie mam wzmacniacza sygnału


    Fakt, nie doczytałem dokumentacji :cry:. Tylko z tego co widzę przy takim pomiarze rozdzielczość spada do 9bitów (przynajmniej w AT32).
  • #24 8088809
    mirekk36
    Poziom 42  
    Posty: 9195
    Pomógł: 964
    Ocena: 2289
    markosik20 napisał:

    Tylko z tego co widzę przy takim pomiarze rozdzielczość spada do 9bitów (przynajmniej w AT32).


    No dokładnie - dlatego piszę, że ATmega32 średnio się do tego nadaje. Lepsza byłaby już chyba ATmega88, która ma wewn, źródło odniesienia 1,1V więc sporo lepsza rozdzielczość jakby.

    Tak czy inaczej przy wzmocnieniu x1 zawsze będzie chyba z tym gorzej niż przy wykorzystaniu właśnie pomiaru (pseudo) różnicowego .... rozdzielczość spada do 9bitów ale nawet gorzej bo przy wzmocnieniu x10 do 8bitów a przy wzmocnieniu x200 do 7bitów, dlatego x200 to się już prawie nie nadaje chyba że dla mniejszych prądów.

    Można to nieco właśnie polepszyć nadpróbkowaniem i uśrednianiem dzięki czemu odzyskujemy po jednym czy po dwa bity w ATmega.

    Za to w ATtiny - mamy nadal rozdzielczość 10bit i przy wzmocnieniu x20 to już jest w takim układzie eldorado. Co ciekawe, nie tylko ATtiny26 - prawie każdy ATtiny ma takie właściwości - czyli lepsze niż w ATmega typowych ;)

    Docelowo chcę zrobić mały kombajnik pomiarowy napięcia, prądu i temperatury na DS18B20 oraz wyjściem sterującym np załączaniem wentylatora w zależności od histerezy temperatury. Taki ala panelik pomiarowy do zasilacza gdzie trzeba czasem chłodzić radiatory ;) ..... całość chcę i zmajstruję na ATtiny85 , który będzie sterował ładnym dużym wyświetlaczem VFD sterowanym przez RS232.

    Bez pomiaru temperatury DS18xxxx to programowy RS232 spokojnie pakuję nawet do ATiny26 (2kb flash) i chula pięknie
  • #25 8091362
    janbernat
    Poziom 38  
    Posty: 3954
    Pomógł: 468
    Ocena: 51
    Mirek- to teraz porównaj:
    ATtiny26 str.104.
    ATtiny85 str.139.
    ATMega32 str.215.
    Przy ustawieniach bitów MUX tak że wejście ADC0 jest jednocześnie na positive i negative można zmierzyć offset.
    W ATtiny26 offset dla kanałów ADC 1, 3, 5, 9
    W ATtiny85 tylko dla kanału 2.
    W ATMega32 też takie kombinacje występują- ale nic nie ma o pomiarze offsetu.
    Trzeba to sprawdzić.
    No i w ATtiny85 jest ADC4 "for temperature sensor".
    Wewnętrzny- ale jak procek blisko radiatora...
  • #26 8091547
    mirekk36
    Poziom 42  
    Posty: 9195
    Pomógł: 964
    Ocena: 2289
    janbernat napisał:
    Mirek- to teraz porównaj:
    ATtiny26 str.104.
    ATtiny85 str.139.
    ATMega32 str.215.
    Przy ustawieniach bitów MUX tak że wejście ADC0 jest jednocześnie na positive i negative można zmierzyć offset.
    W ATtiny26 offset dla kanałów ADC 1, 3, 5, 9
    W ATtiny85 tylko dla kanału 2.


    no ale ja to wszystko wiem, a z ofsetem radzę sobie nieco inaczej, jak na razie kalibruję w kilku zakresach do takiego stopnia żeby wyniki były zgodne z dobrym multimerem. Sama kalibracja programowa jest dosyć prosta.


    janbernat napisał:
    W ATMega32 też takie kombinacje występują- ale nic nie ma o pomiarze offsetu.

    jak to nie ma? jest ;) są odpowiednie ustawienia w MUX - przecież widać np ADC0 - ADC0 więc w czym widzisz problem. Poza tym nawet jak ustawiałem w kilku różnych prockach to ten ofset zwykle był niewielki i jak mówię jego eliminacja programowa to najmniejszy pryszcz.
  • #27 9045283
    przemo.t
    Poziom 27  
    Posty: 994
    Pomógł: 79
    Ocena: 30
    Witam
    Temat trochę stary ale myślę, że nie ma sensu zakładać nowego - w tym wszystko ładnie wyjaśniacie ;)

    Mam układ pomiaru prądu na atmega32, zwykły - nie różnicowy. Pomiar na ADC0.
    Rezystor pomiarowy 0.47Ohm mam wpięty w minusowej gałęzi zasilania.
    Miernik ma swoje źródło zasilania i połączony jest masą przed rezystorem pomiarowym.

    Spadek napięcia na rezystorze max 1,5V, a atmega ustawiona na Vref=VCC.

    Dlaczego jeśli nie zastosuje żadnego dzielnika napięcia na pinie pomiarowym ADC0 to Atmega mi się resetuje po zrobienia zwarcia na wyjściu zasilacza? Przy zwykłym obciążeniu (żarówka 21W) wszystko jest OK.
    Jakieś szpilki/ skoki napięcia? Jak to wyeliminować?
  • #28 9045949
    janbernat
    Poziom 38  
    Posty: 3954
    Pomógł: 468
    Ocena: 51
    Pewnie to zwarcie na przewodzie generuje zakłócenia- iskrzy.
    A wejście ADC i być może reset dostaje wtedy jakieś wysokie napięcia.
    Dzielnik tłumi- nie tylko przez rezystancję ale także przez pojemność oporników i minimalną indukcyjność.
    Daj napiecie do ADC przez opornik w szereg i kondensator równolegle do wejścia ADC.
    Albo doprowadź sygnał z opornika do ADC skrętką- nawet jak jest to kilkadziesiąt cm.

Podsumowanie tematu

✨ W dyskusji poruszono kwestie dotyczące podłączenia wejść ADC w mikrokontrolerach AVR, szczególnie ATtiny26, w kontekście pomiaru różnicowego prądu przez bocznik. Użytkownicy wymienili się doświadczeniami na temat problemów z odczytem wartości ADC, które były niestabilne przy braku wspólnej masy. Zasugerowano, że układ bez wspólnej masy może prowadzić do zakłóceń i błędnych pomiarów. Uczestnicy dyskusji omawiali również dobór dzielników napięcia oraz wpływ wzmocnienia na dokładność pomiarów. W końcu, po poprawkach w połączeniach, jeden z użytkowników uzyskał stabilne wyniki pomiarów prądu i napięcia, co potwierdził testując układ z obciążeniem.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA