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

Mikroprocesorowy miernik ESR kondensatorów elektrolitycznych

Steryd3 13 Lut 2014 22:35 36312 74
  • #31 13 Lut 2014 22:35
    Doctore.
    Poziom 18  

    Jaką funkcje pełni LED1 skoro jest schowany?

    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz pendrive 32GB.
  • Katalog Megger
  • #32 14 Lut 2014 06:31
    Steryd3
    Poziom 32  

    W obudowie mieszka pająk i oświetlam mu mieszkanie :D
    A serio -do niczego. Używałem jej podczas uruchamiania ale finalnie z niej zrezygnowałem.

  • #33 14 Lut 2014 16:30
    Doctore.
    Poziom 18  

    Czy PC0 ma być podłączone do PD6 i PC1 do PD7?

  • #34 14 Lut 2014 18:17
    Steryd3
    Poziom 32  

    Doctore. napisał:
    Czy PC0 ma być podłączone do PD6 i PC1 do PD7?

    Poprawiony schemat (bez nadmiarowości omówionych w tekście) znajduje się w pliku eagla do pobrania. Jedyny pin który trzeba z tych czterech podłączyć to PC0 czyli ADC0. Reszta to wspomniane nadmiarowości które nie przeszkadzają jak są, ale kompletnie zbędne.
    Jeżeli ktoś chce pisać własny program i dokładnie powielić zasadę działania miernika mkII (czyli zastosować identyczną jak tam metodę przetwarzania analogowo-cyfrowego) to może sobie je zostawić natomiast z punktu widzenia mojego wsadu do kości to części zbędne.

  • #35 15 Lut 2014 12:18
    2291468
    Użytkownik usunął konto  
  • Katalog Megger
  • #36 24 Lut 2014 19:36
    aneuro
    Poziom 16  

    Steryd3 napisał:
    Przyczyną takiego podejścia do przetwarzania analogowo-cyfrowego w pierwotnym układzie był zapewne fakt, iż wspomniany mikrokontroler Zilog’a nie był wyposażony w wewnętrzny przetwornik ADC.

    Właśnie przegryzłem się przez... pierwsze strony tej oryginalnej dokumentacji ESR Meter MK2 i chcesz powiedzieć, że te kombinacje alpejskie tam robione pod ten komparator to tylko dlatego, że nie mieli ADC i można je sobie darować? :D
    Jak tak to pięknie, bo mam akurat płytkę uruchumieniową pod ATTiny85 (też 10bit ADC zwykle przełączam go programowo na 8MHz z 1MHz BOD ustawionymi w fusach podczas programowania), wykonaną w mojej najnowszej technologi SMA (Sourface Mount Art) - bo nie chce się mi jej wiercić i zrobiłem dolnymi ścieżkami do góry w mirror i są na tyle grube że wszystko tam mogę przylutować i łatwo testować będzie prototyp bez odwracania ;)
    Mikroprocesorowy miernik ESR kondensatorów elektrolitycznych
    Generalnie wyświetlacza nie potrzebuję, bo przez I2C sobie poradzę, tylko zastanawia mnie co tak ogólnie jest robione w programie podczas tej opcjonalnej kalibracji i czy innymi oprnikami nie dałoby radę jej zrobić?
    Steryd3 napisał:

    W razie potrzeby miernik został „obdarzony” również procedurą kalibracji. By dokonać takowej należy wyposażyć się w 3 rezystory o rezystancji 5,1 Ω 51 Ω i 510 Ω oraz zworę z miedzianego przewodu (0 Ω). Oczywiście rezystory powinny cechować się tolerancją minimum 1% a czym ich wartość będzie bliższa podanym wartością tym lepiej.

    Z tego co widzę, tylko firmware udostępniasz.
    Szkoda, bo by się sprawdziło w teorii Twoją koncepcję, czyli widząc kod źródłowy, a tak to trochu nie chce mi się tego deasemblerować :D
    Może uda się po swojemu to oprogramować na ATTiny85 w C oczywiście i dopasować do płytki którą już w wielu projektach używałem i mam na niej możliwość podpięcia pod AVREF napięcia odniesienia-zwykle TL431I tam wkładam jak chcę mieć w miarę stabile temperaturowo napięcia odniesienia od 2.495V.
    Zawsze to lepiej chyba powinno być niż poleganie na VCC 5V albo wbudowanym, no chyba że te Atmega8 mają jakieś przyzwoite.
    Jaki jest sens tej kalibracji opcjonalnej, jak napięcie odniesienia będę miał wpisane do programu i wkompilowane pod konkretną płytkę?
    Bo ile dobrze rozumiem, potrzebujemy mierzyć w tym mierniku ESR w praktyce napięcia <1V na ADC?
    Na ile tam ADC clock masz ustawiony w tym Atmega8?

    Fajna sprawa jeśli faktycznie bez tej zabawy z komparatorem i tylu niepotrzebnych tranzystorów co w oryginale jako tako działa ten miernik ESR, bo ostatnio bombarduję pikami napięcia akumulator w desulfatorze na podobnej płytce PCB co wrzuciłem i ATTiny85 sobie nieźle radzi.
    To mały potwór w DIP8 wielkości 555 :arrow:

  • #37 24 Lut 2014 20:15
    Steryd3
    Poziom 32  

    aneuro napisał:
    chcesz powiedzieć, że te kombinacje alpejskie tam robione pod ten komparator to tylko dlatego, że nie mieli ADC i można je sobie darować?

    W zasadzie tak. AVRy też mają komparatory i można wykonać podobną sztuczkę jak w pierwotnym projekcie ale i mają ADC więc nie ma po co-pisałem już o tym.
    aneuro napisał:
    Zawsze to lepiej chyba powinno być niż poleganie na VCC 5V albo wbudowanym, no chyba że te Atmega8 mają jakieś przyzwoite.

    Nie do końca pojmuje logiczny sens tego zdania ale mogę stwierdzić, iż napięcie odniesienia na poziomie ok. 2,5V przy tym doborze elementów nie ma prawa bytu- mierzone napięcia wykraczały by poza zakres.
    aneuro napisał:
    zastanawia mnie co tak ogólnie jest robione w programie podczas tej opcjonalnej kalibracji i czy innymi oprnikami nie dałoby radę jej zrobić?

    W procedurze kalibracyjnej nic wielkiego nie jest robione. Po przyłączeniu kolejnych określonych rezystancji zapisywane są wartości ADC dla zakresów które mają je w granicach- czyli np. dla rezystora 5,1Ω wartość ADC dla wyjść prądowych operujących w zakresie 0-5Ω i 5-50Ω. Wartości te umieszczane są w EEPROM i na ich podstawie obliczane są współczynniki a i b w równaniu prostej która służy przeliczeniu ADC na wynik ESR.
    Co do wartości rezystorów stosowanych do kalibracji...wybrałem wartości bliskie krańcom zakresów (lepiej oprzeć prostą na daleko oddalonych od siebie punktach) ale wybór mógł paść na nieco inne wartości. Wartości tych nie można zmienić bo są zaszyte w program- ja oczywiście mogę bo dysponuje źródłem.
    Jak już pisałem -kodu C nie udostępniam ale idea jest nieskomplikowana więc średnio wprawnemu programiście powinno się udać ją zaimplementować.

  • #38 24 Lut 2014 21:09
    aneuro
    Poziom 16  

    Steryd3 napisał:
    napięcie odniesienia na poziomie ok. 2,5V przy tym doborze elementów nie ma prawa bytu- mierzone napięcia wykraczały by poza zakres.

    Być może nie do końca zrozumiałem i zasugerowałem się tym 0.7V diody w tranzystorze-może się wyjasni jak się schemat zobaczy.

    Steryd3 napisał:
    Wartości tych nie można zmienić bo są zaszyte w program- ja oczywiście mogę bo dysponuje źródłem.

    A tam, jak wiadomo jakie to są wartości, to... można je znaleźć i zmienić... w HEXie, no ale to wymaga deasembleracji i chwili czasu, żeby bez kodu źródłowego RISCowy program zrozumieć ;)

    Steryd3 napisał:

    Jak już pisałem -kodu C nie udostępniam ale idea jest nieskomplikowana więc średnio wprawnemu programiście powinno się udać ją zaimplementować.

    Generalnie programiści programują zwykle mając przygotowane specyfikacje wymagań, a tutaj to bardziej reverse engineering, bazując na schemacie i opisie oryginalnym, bo instrukcja obsługi Twojego programu nic nie mówi o zastosowanych algorytmach.

    Tak czy inaczej trzeba będzie w takim razie jeszcze kilka razy przeczytać oryginalną dokumentację, bo z opisu tego projektu tutaj bez kodu źródłowego, albo deasembleracji nie ma szans poznać szczegółow działania Twojego miernika.

    Na szczęście znam asembler AVRów więc nie powinno być problemu podglądnąć co tam pokombinowałeś ;)

    Tylko 5kB zajmuje ten program? Maleństwo-mój do prostownika jest większy ;)
    Cytat:
    5028 2014-02-24 21:52 esr.bin


    Nie myślałeś o tym, żeby go spolszczyć?
    Przecież wystarczy tylko zmienić te kilka bajtów-do tego nie potrzeba kodu źródłowego nawet...
    Cytat:

    00000020 |......ESR meter |
    00000030 |by pE.v 1.0 28.0|
    00000040 |1.2014.RANGE . |
    00000050 |0-5 . 5-50 . 5|
    00000060 |0-600.ESR = . |
    00000070 | OL . . Co|
    00000080 |nnect inputs . a|
    00000090 |nd press ZERO . |
    000000a0 |Connect 5.1 . .|
    000000b0 | and press ZERO |
    000000c0 |. Connect 51 . |
    000000d0 |. and press ZERO|
    000000e0 | .Connect 510 . |
    000000f0 | . and press ZER|
    00000100 |O

    Mogę go sobie spolszczyć w razie jakbym nie poradził sobie z oprogramowaniem swojego miernika?

  • #39 25 Lut 2014 06:23
    Steryd3
    Poziom 32  

    Temat spolszczenia... myślałem, że mam już go za sobą. U mnie miernik już działa w formie mnie zadowalającej więc nie planuje tworzyć wersji językowych. Osobiście uważam, że mimo, iż nasza ojczysta mowa jest piękna w Mickiewiczowskich strofach to jednak elektronikę i informatykę opanował j. angielski i niech tak może zostanie. Ale to moje prywatne zdanie i nikogo nie zmuszam do podzielania go. Z resztą- angielskiego w tym mierniku jest tyle co kot napłakał.
    Nigdy nie przypuszczałem, że mój skromny hex spotka się z pojęciem reverse engineering- bardzo mi to pochlebia:-) Gorąco dopinguje tej inicjatywie mając równocześnie nadzieję, iż kolega podzieli się ze mną kodem bym mógł porównać czy była skuteczna:-)
    Już na samym początku tej mozolnej drogi muszę kolegę delikatnie naprowadzić - to co kolega wyłuskał i pokazuje nam w cytacie to tylko komunikaty na wyświetlacz które oprócz roli informacyjnej nie mają wpływu na wartości rezystancji kalibracyjnych. Dodatkowo by ułatwić koledze zadanie mogę powiedzieć, że bogato używałem zmiennych typu float co powinno koledze całą zabawę uczynić jeszcze bardziej interesującą.
    Szczerze mówiąc- po lekturze oryginalnego projektu i moich spostrzeżeń jego dotyczących algorytm jest gotowy. Rozgryzanie go z assemblera jest zadaniem mozolnym, niewiele wnoszącym i wg. mnie stratą czasu. Ale zabronić tego nie mogę-różne ludzie mają hobby:-)

  • #40 25 Lut 2014 09:07
    aneuro
    Poziom 16  

    Steryd3 napisał:
    Już na samym początku tej mozolnej drogi muszę kolegę delikatnie naprowadzić - to co kolega wyłuskał i pokazuje nam w cytacie to tylko komunikaty na wyświetlacz które oprócz roli informacyjnej nie mają wpływu na wartości rezystancji kalibracyjnych.

    Niektórzy forumowicze pytali o możliwość polskiej wersji językowej, więc może podpowiem, że wystarczy ten plik *.hex z tego projektu zamienić na *.bin w jednej linijce korzystając z GNU GCC AVR:
    Cytat:
    $ avr-objcopy -I ihex esr.hex -O binary esr.bin

    i w edytorze typu UltraEdit czy jakimkolwiek innym, uważając żeby nadpisać tylko tekst i nie poprzesuwać bajtów obok (sprawdzić rozmiar pliku po edycji i ew. binarnie porównać-prosty program to załatwia) po prostu nadpisać te komunikaty swoim tekstem i już miernik będzie z nami po naszemu gadał, no bo czasami ktoś woli bardziej zrozumiały i łopatologiczny komunikat widzieć :D
    Mikroprocesorowy miernik ESR kondensatorów elektrolitycznych

    Jak to jest prosta rzecz to po co robić z tego jakieś wielkie firmware i chować źródło do szuflady, jak i tak jak ktoś bedzie chciał to i tak sobie zobaczy jak to jest zrobione.
    Tak czy inaczej nie mam zwyczaju wrzucać firmware z internetu na własne urządzenia bez przejrzenia kodu wcześniej, bo już widziałem projekty na tym forum gdzie można było znaleźć ograniczone czasowo wsady i po 1h pracy prostownika na wyświetlaczu koledzy, którzy zrobili taki projekt dostawali komunikat "Demo" i żeby było śmieszniej numer telefonu był też zaszyty we wsadzie na AVRa :D
    Oczywiście autor tego "wynalazku" nie raczył powiadomić wcześniej, że to jest wersja ograniczono czasowo, dlatego zdeasemblerowałem sobie ten jego program i zdezaktywowałem to idiotyczne demo ;)

    Steryd3 napisał:

    Dodatkowo by ułatwić koledze zadanie mogę powiedzieć, że bogato używałem zmiennych typu float co powinno koledze całą zabawę uczynić jeszcze bardziej interesującą.

    Biblioteka matematyczna do takiego prostego projektu-to chyba coś Ci się przypadkiem dolinkowało albo masz za dużo SRAM na tym Atmega8 - 1024B ;)
    Ja mam 512B SRAM i 8KB flash na ATTiny85, myślę że obejdzie się bez bibliotek matematycznych a zakres chyba wolę zwykłym potencjometrem ustawiać, bo nadrukuje się skalę i zawsze szybko można przekręcić gałkę, a nie bawić się z guziczkami i wpatrywać w menu wyświetlacza.

  • #41 25 Lut 2014 09:39
    Steryd3
    Poziom 32  

    aneuro napisał:
    Tak czy inaczej nie mam zwyczaju wrzucać firmware z internetu na własne urządzenia bez przejrzenia kodu wcześniej

    Dokładnie -myślę tak samo. Dlatego proponuje każdemu by napisał samemu swój własny firmware wg. własnych preferencji. Nie jestem fanem opracowywania tzw. "kitów" -opis konstrukcji jest raczej przedstawieniem ogólnej koncepcji i jakimś tam przetarciem szlaku. Są jednak osoby które nie chcą lub nie potrafią napisać programu a chcą dysponować takim urządzeniem więc w odpowiedzi na ich prośby pliki umieściłem. Mogę tylko zapewnić, że nie jest to wersja DEMO w jakikolwiek sposób ograniczona czasowo czy funkcjonalnie. Oczywiście mogą tam wystąpić jakieś błędy i niedociągnięcia jednak do tej pory nie zauważyłem takowych. Powód dla jakiego nie udostępniam kodu jest dość prosty-nie mam zamiaru odpowiadać na dziesiątki pytań typu: "co robi ta linijka", "czemu nie zrobiłeś tego tak" albo zmagać się z wypowiedziami : "to jest napisane nieoptymalnie" czy " ja to robię lepiej". Poza tym jeżeli człowiek pisze kod poświęcając swój czas nie chce by ktoś później np. czerpał jakieś zyski z jego pracy (choć w tym przypadku mało bym się tego obawiał).

  • #42 25 Lut 2014 12:02
    aneuro
    Poziom 16  

    Steryd3 napisał:
    Oczywiście mogą tam wystąpić jakieś błędy i niedociągnięcia jednak do tej pory nie zauważyłem takowych.

    Zyski i tak ktoś może czerpać już z samej idei, ale osobiście nie jestem fanem patentów, bo to spowalnia rozwój i tylko prawiczkom robotę daje, bo są przykłady wynalazców którzy resztę swojego życia poświecili na obronę swojej genialności, ale często ludzie mają niezaleznie podobne pomysły i żaden urząd nie rozstrzygnie kto był pierwszy a wygra tylko ten kto więcej kasy zapłaci i znajdzie lepszych prawiczków, czyli bez sensu.
    Jak nie chcę żeby ktoś miał to co ja to po prostu tego nie publikuję ze szczegółami.

    Akurat tutaj nie ma potrzeby specjalnie analizowania całego kodu linijka po linijce, tylko co najwyżej sprawdzić, czy jakiś pomyłek nie ma w samym wyliczaniu tej rezystancji i sprawdzenie tej koncepcji z oryginałem , bo to trudno zauważyć na pracującym urządzeniu a tak to ktoś może zauważyć jakiś błąd i to poprawić i mamy lepszy program.
    Wcale nie potrzeba przecież całego programu publikować.

    W przypadku testowania akumulatorów oczywiście kilka metod wyznaczania rezystancji wewnętrznej znalazłem w tym metodą impulsowego obciążania tutaj Uniwersalny tester baterii i akumulatorów i w przypadku testowania tych kondensatorów chyba podobnie to działa, w sensie też mamy generator i badamy odpowiedź kondensatora na impuls prądu o specjalnie dobranych parametrach.
    O ile w przypadku testowania akumulatora sprawa jest prosta i nawet metodą techniczną można to Rw oszacować, to w przypadku testowania kondensatorów bardziej delikatnie to trzeba zrobić, żeby być w stanie bez wyciągania z układu to zrobić i starać się nie zalączyć ewentualnych bramek tranzystorów przy napięciu > ok. 0.6V ;)
    Dlatego myślałem, że tutaj nie więcej jak 1V potrzebujemy mierzyć, bo nie będzie na tym kondensatorze więcej jak 0.6V podczas pomiaru ESR tym miernikiem w układzie.
    No ale to jeszcze do doczytania.


    Więc sam algorytm Rw~(U0-U1)/I w przypadku testowania baterii jest ogólnie znany i to jak sobie to ktoś oprogramuje, to już drugorzędna sprawa-co najwyżej kwestia przyjętych uproszczeń i dokładości uzyskiwanych wyników.

    Dlatego przy pomiarze ESR widząc formułę jaka została tutaj wykorzystana można próbować oszacować jaki błąd takiego pomiaru jest i jak się nam wyświetla to ESR to nie mamy tutaj +/- ile to jest, a tolerancja, rząd wielkości błędu przy danej metodzie czasami ma znaczenie przy wyborze sposobu przeprowadzenia pomiaru.
    Odczyt ADC w mikrokontrolerze na różne sposoby może być robiony i z tego co widziałem neiktóre testery baterii mają funkcję średniej ruchomej i inne bajery, więc jak udostępniasz tylko firmware bez algorytmu wyliczenia pokazywanego ESR, to tak naprawdę nie wiadomo jakich dokładności się spodziewać i jaki wpływ na to co się wyświetla mają elemnty w ukladzie w tym samo napięcie odnisienia -jakie używasz. VCC zakłócane przez PWM czy zewnętrzny AVREF, czy może redukujesz szumy podczas tych pomiarów ADC?
    Bez takich informacji taki projekt można traktować tylko jako ciekawostkę.
    Frum elektroniczne jest po to moim zdaniem, żeby możliwie jak najlepiej poznać zastosowane rozwiązania, bo jak się kupuje coś w sklepie to jest czarna skrzynka i tam to oczywiste, że nie wiadomo jak coś działa, ale jak coś składam sam, to lubię tak dobrać sobie elementy żeby dostać założone dokładności, bo na wyświetlaczu można wyswietlić wszystko i on pokaże cokolwiek, a od sposobu pozyskiwania danych i sposobu ich obróbki, zależy to co się z tego wyliczy i wtedy dopiero można dyskutować i porównywać np. tą koncepcję tutaj z oryginalnym miernikiem ESR bez ADC na komparatorze ;)

  • #43 25 Lut 2014 12:50
    Steryd3
    Poziom 32  

    Po pierwsze - chwilami wydaje mi się, iż kolega nie przestudiował dokładnie wątku od początku:D
    Uwagi ogólnie kolega stawia słuszne ale nie do końca w tym przypadku. Po pierwsze miernik ESR to nie miernik rezystancji wewnętrznej ogniwa. Są pewne analogie w schemacie zastępczym kondensatora elektrolitycznego który tu przytaczam do modelu Thevenina ale pojemność to nie SEM -jej do zera raczej podczas pomiaru nie da się rozładować(a w każdym razie nie o to chodzi). Proszę dokładnie przeczytać opis działania miernika ESR mkII, przeglądnąć jego schemat i mój schemat (oba w dużej części się pokrywają). Kolega np. ciągle zastanawia się dlaczego mimo, iż dioda ogranicza zakres napięcia na badanym kondensatorze do swojego napięcia przewodzenie(ok. 0,6V) to nie wystarcza 2,5V napięcia na ADC. Ano nie wystarcza bo po drodze jest wzmacniacz na 2 tranzystorach (skopiowany z pierwotnego projektu) który to napięcie wzmacnia. Ciągle pytasz jakie używam napięcie odniesienia-zerknij na schemat. AREF wisi na kondensatorze więc nie jego, napięcie 2,5V jest za małe- co jeszcze zostaje??
    Nie przeprowadzałem analizy wrażliwościowej na torze analogowym oraz nie badałem wpływu zmian temperatury na układ-przyznaje się. Ale drobiłem procedurę kalibracyjną która w dużej części niweluje te braki. Co do szumów-pomiar jest uśredniany z 16 pomiarów.
    Proszę przeczytać dokładnie cały wątek wraz z oryginalnym projektem ESR mkII a później pytać o niejasności. Ja wiem, że niektóre informacje nie są wprost ale...nie wszystko musi być "kawa na ławę".

  • #44 25 Lut 2014 13:38
    aneuro
    Poziom 16  

    Zapomnialem, że tam jest to wzmocnienie zanim coś zmierzymy-myślałem że to też wyeliminowałeś jakoś ;)
    A tego całego wzmocnienia -u Ciebie mierzonego w Atmega8 na pinie 23 PC0 ADC0 - (chyba jest ono na mniej więcej 20x zrobione- na stronie 2 z oryginalnej dokumentacji do + komparatora to podłączone) nie można by sobie darować i właśnie podpiąć pod zewnętrzny AVREF jakieś napięcie odniesinia o małym napięciu, np. 1.25V jakieś, albo jeszcze jakieś mniejsze o połowę-bo chyba na DigiKey widziałem <1V nawet?
    Jak tam jest wzmocnienie 20x i Vref ADC masz na VCC, czyli 5Vmax, to by wychodziło, że maksymalne napięcie przed wzmocnieniem jakie mierzymy w okolicy 0.25V można się spodziewać na tym testowanym kondensatorze?
    Nie sprawdzałem jeszcze jakie maksymalne może wchodzić w oryginalnym ukladzie do tego +komparatora-czy to też jest 5Vmax po wzmocnieniu sygnału <0.3V ?

    Nie chce mi się trochu tego "pająka" do wzmacniacza impulsów z testowanego kondensatora robić, dlatego kombinuję, czy nie obeszło by się bez niego, skoro mamy możliwość wykonywania pomiarów ADC z użyciem zewnętrznego AVREF :D
    U Ciebie go nie ma, ale jak mam standardowo TL431I np. na 4.21V skonfigurowany, bo to 2.495V to jest w tym przypadku minimum, ale bez problemu mogę wstawić tam 1.25Vref.

    Poza tym, właśnie podglądam Twój schemat z początku wątku i zastanawia mnie dlaczego wstawiłeś tutaj tranzystory w źródłach prądowych podpiętych do próbnika o 8x mniejszym prądzie kolektora, czyli zamiast PNP BC328 i NPN BC338 z ok. 800mA, te BC557 i BC547 u Ciebie mają z tego co sprawdzałem Icmax: 100mA?
    Akurat takie miałeś, czy według Ciebie w oryginale (podałem linka w którymś poście) nieco na wyrost je wstawili, albo takie w tym ich kit'ie jak do produkcji to zlecali po prostu to się lepiej kalkulowało?

    Nie za słaby ten Q5 BC557, bo chyba przy jednym z zakresów pomiarowych 50mA przez R10 100 Ohm płynie przy 5V zasilania, dlatego ten oryginalny BC328 z Icmax: 800mA wydaje mi się lepszy, bo ze sporo większym zapasem.
    To samo ten Q2 -do rozładowywania chyba -u Ciebie NPN BC547 ma Icmax: 100mA tylko, podczas gdy w oryginale jest Q6 BC338 z Icmax: 800mA ?

    Akurat te z Icmax: 800mA często do prostych driverów mosfetów daję, więc od razu to mi się rzuciło w oczy :D

  • #45 25 Lut 2014 15:39
    Steryd3
    Poziom 32  

    Znów w rozumowaniu kolegi diabeł tkwi w szczegółach.
    Na początek-czy słyszał kolega o problemach z napięciem odniesienia a ATmega8 ?? Posiadają one błąd konstrukcyjny.
    Kolejna kwestia-nawet gdyby go nie było to proszę zerknąć jakie minimalne napięcie można podać na Vref -ja popatrzyłem i wyszło na to że 2V.
    Kończąc już temat "czy można pozbyć się wzmacniacza" odpowiedź brzmi nie.
    Nawet gdyby ATmega8 mogła mieć 1V napięcia odniesienia to przy-jak to kolega sam oszacował- max 0,25V na wejściu okazało by się, iż pokrywa kolega 1/4 zakresu napięcia wejściowego co przy max 10-bitowej rozdzielczości i tak nie najlepszego przetwornika w AVR'ach stanowi niebywałą rozrzutność. Rozdzielczość pomiaru wynosiła by wtedy w najlepszym razie 8 bitów.
    Co do tranzystorów -ma kolega rację-takie miałem w szufladzie. Nie mniej jednak w niczym to nie przeszkadza a ma tą zaletę, że zmniejsza ilość typów zastosowanych elementów w układzie. Jak kolega słusznie spostrzegł prąd w najgorszym przypadku dla tych tranzystorów to 50mA co stanowi połowę dopuszczalnej wartości tego tranzystora. Dodatkowo ten prąd płynie tylko przez 8µs (tyle jest wysterowana baza -przez kolektor jest to jeszcze krócej) a przez kolejne 492µs nie płynie. Sprawia to, iż tranzystor nie ma nawet szans się podgrzać.

  • #46 25 Lut 2014 18:32
    aneuro
    Poziom 16  

    Jak Atmega8 ma wadę konstrukcyjną to przecież można użyć innego mikrokontrolera, który jej nie ma.
    No prawdę mówiąc nie miałem potrzeby Atmega8 pakować do swoich projektów.
    Kilka ATTiny85 pracujących równolegle i komunikujące się poprzez I2C dają sobie świetnie radę ;)

    Cytat:
    ATTiny85 ADC Voltage Reference
    The voltage reference for the ADC (VREF) indicates the conversion range for the ADC. Single ended channels that exceed VREF will result in codes close to 0x3FF. VREF can be selected as either VCC, or internal 1.1V / 2.56V voltage reference, or external AREF pin. The first ADC conversion result after switching voltage reference source may be inaccurate, and the user is advised to discard this result.

    Akurat używałem tam tego wewnętrznego 1.1V-do odczytów temperatry z wbudowanego czujnika jest wymagane przełączenie na to napięcie referencyjne, ale jak widać tak naprawdę to mierzymy wtedy napięcia na wewnętrznym czujniku temperatury <0.5V, więc póki co nie przekreślam tego pomysłu w przypadku ATTiny85.
    Mikroprocesorowy miernik ESR kondensatorów elektrolitycznych

    Atmega8 faktycznie nie ma 1.1Vref tylko ma 2.56Vref wbudowane.

    Kwestia sprawdzenia jakie odczyty bedą takich bardzo niskich napieć za pomocą tego ADC ATTiny85.
    Przecież ten pomiar ESR to raczej orientacyjny charakter ma z tego co widzę w oryginalnej dokumentacji miernika Mk.2.

    Pozotało w zasadzie tylko odgadnąć jak w oryginalnym mierniku ilość tych zliczonych impulów według tego algorytmu poniżej jest przeliczana na wartość zmierzonej rezzystancji w Ohm, no bo chyba przecież nie wyświetlają tylko ilości tych zliczeń z wyjścia komparatora ;)
    Mikroprocesorowy miernik ESR kondensatorów elektrolitycznych
    Napięcie liniowo rośnie w tempie 20V/s jak się przeliczy to co podają, czyli 10mV/500us.
    Czyli w czasie 0.0125 sekundy na kondensatorze z którym to porównują będzie właśnie 0.25V, co daje tylko 25 zliczeń o okresie 500us :|
    0.25V x 20 = 5V i więcej na ADC już też nie zmierzymy z AVREF 5V nawet...
    Przy 0.5V byłoby to 50 impulsów ale 10V a zasilanie 5V mają, więc póki co nie mam pomysłu, ale schemat miernika ESR prototypowy pod ATTiny85 na I2C już się rysuje ;)

    To jakaś wielka tajemnica, jak mając już odczytaną wartość z ADC z tym wzmocnieniem i wiedząc, że ładujemy ten testowany kondensator prądem z zakresu 0.5mA lub 5mA lub 50mA jak to się przekłada na to co jest wywietlane w Twoim mierniku?

    Bo w zasadzie, tylko tego przejscia ze zliczonych impulsów komparatora lub odczytu ADC na wartość rezytancji w Ohm jakoś nie widzę w oryginalnym projekcie i opisie w tym wątku, a w sumie chyba dobrze by było wiedzieć co się tak naprawdę wywietla na tym mierniku ESR i skąd to się bierze ;)

    ADC= Vin*1024/Vref według datasheet Atmela. Mamy też częstotliwośc impulsów f: 2khz czyli okres T: 500u no i czas załączenia 8us czyli wypełnienie 1.6%, rozładowanie testowanego kondensatora w pozostałym okresie.
    No i prąd ładowania ograniczony do I: 0.5mA lub 5mA lub 50mA .

    Cytat:

    Q= C * V
    I= dQ/dt= C* dV/dt


    Według Ciebie ESR= ??????????

  • #47 25 Lut 2014 19:54
    Steryd3
    Poziom 32  

    Nie bardzo mi się chcę analizować z kalkulatorem kolegi wypociny i analizę oryginalnego projektu (wydaje mi się, iż z tym liniowo narastającym napięciem było troszkę inaczej niż kolega to przedstawia) ale mniejsza z tym. Widzę, że będę musiał przedstawić koledze zasadę działania tego miernika przy okazji zapoznając go z magią elektrotechniki(właściwie maleńkim jej wycinkiem).
    Zacznijmy od tego jak wygląda model kondensatora elektrolitycznego na który tak rozpaczliwie usiłuję się powołać. Jest to szeregowe połączenie pojemności C o wartości takiej jaką kondensator posiada i szeregowo do niej podpiętej rezystancji ESR.
    Mikroprocesorowy miernik ESR kondensatorów elektrolitycznych

    Teraz wspomniana odrobina elektrotechniki(która to przewinęła się już między wierszami zaraz na początku debaty nad tym projektem).
    Trzeba przypomnieć sobie(a może i przyswoić po raz pierwszy) analizę stanu nieustalonego w obwodzie RC.
    Mikroprocesorowy miernik ESR kondensatorów elektrolitycznych
    (narysowałem jak umiałem)
    Na rysunku przedstawiłem schemat analizowanego obwodu wraz z wykresami jak niektóre wielkości zaznaczone na schemacie zmieniają się w czasie po zamknięciu klucza w chwili t0.
    Najważniejszy dla omówienia zasady działania miernika ESR jest ostatni czerwony wykres prądu. Widać z niego, że w chwili t0+ rozładowany kondensator stanowi zwarcie(prąd w obwodzie zależy od E i wartości R -czyli tak jak gdyby pojemności po drodze nie było), a po określonym czasie(często mówi się o 6 stałych czasowych) gdy jest już naładowany stanowi dla prądu rozwarcie co objawia się tym, iż prąd w obwodzie spada do prawie zera.
    Metoda stosowana w moim mierniku ESR opiera się na analizie spadku napięcia na ESR w chwili czasu zaraz po zamknięciu klucza. Teraz wystarczy zobaczyć, iż nasz badany kondensator ładowany jest z 5V przez jakiś znany rezystor (klucz stanowi tu tranzystor). W pierwszej chwili czasu gdy kondensator stanowi zwarcie tworzy się nam dzielnik napięcia złożony z tego naszego fizycznego rezystora oraz szukanego ESR. Dlatego, że wartość rezystora w stosunku do badanego ESR jest dużo większa można przyjąć, iż jest to źródło prądowe. Wychodzi więc na to, że ESR jest równy otrzymanej amplitudzie 8µs impulsu zmierzonego na kondensatorze przez prąd źródła z którego korzystamy.

  • #48 25 Lut 2014 22:18
    aneuro
    Poziom 16  

    Steryd3 napisał:
    Wychodzi więc na to, że ESR jest równy otrzymanej amplitudzie 8µs impulsu zmierzonego na kondensatorze przez prąd źródła z którego korzystamy.

    Tyle że amplituda w woltach nie jest rezystancją w omach ;)
    Poza tym dalej nie mamy wzoru jak przejść z ilości impulsów na ESR w oryginalnej metodzie z komparatorem.
    Tam jest napisane, że liczba tych impulsów jest wprost proporcjonalna do ESR kondensatora.
    No i tylko nie do końca jasne chyba jak długo wyjście komparatora jest wysokie-podczas całych 8us?
    Bo to przekłada się na to co i kiedy mierzyć bez komparatora na ADC.
    Przez cały czas załączenia impulsu (8us) mierzysz to napięcie na ADC i uśredniasz, czy szukamy maximum średniej wartości w całym 500us okresie?
    Gdyby był oscylogram z pracy tego miernika jak wysyła te impulsy to pewnie by to było widać ;)

    No bo rola tego kondensatora pomocniczego ładowaanego liniowo w wersji bez ADC jest już oczywista-po prostu im więcej czasu mija tym większe napięcie jest na tym referencyjnym rosnącym liniowo i zwyczajnie jak już jest wyższe niż ta amplituda napięcia od ESR to już komparator przestanie w stan wysoki przechodzić i faktycznie ta ilość impulsów będzie proporcjonalna to tej amplitudy - ESR.
    Tylko właśnie gdyby to na oscyloskopie zobaczyć to by było widać jak długo jest w stanie wysokim ten komparator- praktycznie całe 8us, czy mniej?
    Bo rozładowanie chyba dużo szybsze będzie bo nie widzę żadnego ograniczenia poza tymi kondensatorami 47uF i 100nF, dlatego może ma sens tam ten BC338 z Icmax: 800mA i raczej takie tam wstawię jak w oryginale.

    Bo jak bardziej widoczne będzie z jakimi częstotliwościami potrzebujemy tutaj mierzyć na ADC, no to już może być pomocny ten dokument w celu optymalizacji sposobu próbkowania tego ADC i oszacowania ew. ograniczeń użycia ADC no i wyciśnięcia tak dużo jak tylko się da podczas tych pomiarów tutaj:
    AVR121: Enhancing ADC resolution by oversampling - doc8003.pdf

    Jestem strasznie ciekawy jak z tym ADC tutaj pokombinowałeś i na jakiej częstotliwości masz próbkowanie i w jakich momentach tych impulsów testujących, że aż chyba zobaczę w tym wsadzie jak to ADC skonfigurowałeś ;)

  • #49 26 Lut 2014 06:21
    Steryd3
    Poziom 32  

    aneuro napisał:
    Tyle że amplituda w woltach nie jest rezystancją w omach :wink:

    Oczywiście dlatego jest tam słowo klucz "przez" czyli sugerujące dzielenie. Bo i tutaj prawo Ohma obowiązuje.
    aneuro napisał:
    Tam jest napisane, że liczba tych impulsów jest wprost proporcjonalna do ESR kondensatora.

    I pisze bardzo dobrze- bo proporcjonalny nie oznacza taki sam. Liczba impulsów na wyjściu komparatora reprezentuje amplitudę impulsów napięcia na kondensatorze. W starym projekcie mierzyli ją po prostu inaczej niż ja i tyle różnic.
    aneuro napisał:
    napięcie na ADC i uśredniasz, czy szukamy maximum średniej wartości w całym 500us okresie?

    Mierzę amplitudę tych szpilek (16 kolejnych szpilek) i liczę z tego średnią. Przetwornik jest wyzwalany w odpowiednim momencie by jego próbkowanie nastąpiło podczas impulsu.
    Co do oscylogramów...nie robiłem prób z komparatorem więc nie mam takich oscylogramów. W dokumentacji mkII są narysowane przebiegi jak to wygląda więc nie wiem w czym jest problem.
    Co do ADC -było przetaktowane bardziej niż radzi nota katalogowa. Ale dotarłem do danych, że w wyniki moich operacji tracę ok. 0,5 LSB dokładności więc nie płakałem zbyt mocno. W pewnym momencie żałowałem, iż nie wsadziłem tam STM32F0(z uwagi na lepsze właściwości przetwornika właśnie) ale jakoś i AVR dał radę.

  • #50 26 Lut 2014 11:23
    aneuro
    Poziom 16  

    Steryd3 napisał:
    Mierzę amplitudę tych szpilek (16 kolejnych szpilek) i liczę z tego średnią. Przetwornik jest wyzwalany w odpowiednim momencie by jego próbkowanie nastąpiło podczas impulsu.

    Atmega8 z tego co widzę ze schematu masz z kwarcem 16Mhz i z tego co się zorientowałem nie ma na Atmega8 możliwości zmiany programowo w trakcie działania programu częstotliwości tego zegara systemowego (w ATTiny przez zmianę CLKPR zwykle na początku programu przestawiam sobie domyślny clock 1Mhz na 8Mhz).
    Na 16Mhz masz zegar systemowy o ile się nie mylę.
    Z tego by wychodziło, że to ADC inicjujesz tutaj na 500kHz (bo mamy wtedy 16Mhz/32) i pod przerwaniem czekasz na wynik zleconej konwersji ?
    Cytat:

    2aa: 3e 9a sbi 0x07, 6 ; 7 ADMUX|= (1<<REFS0 ); // REFS1: 0 -> AVcc with ext cap on AREF
    2ac: 86 b1 in r24, 0x06 ; 6 ADCSRA default 0x00
    2ae: 8d 68 ori r24, 0x8D ; 141 10001101
    2b0: 86 b9 out 0x06, r24 ; 6 ADCSRA|= (1<<ADEN) | (1<<ADIE) | (1<<ADPS2) | (1<<ADPS0); ADPS2..0: 101 -> 32 division factor between the XTAL frequency and the input clock to the ADC -> 16Mhz/32= 500kHz ADC clock
    2b2: 08 95 ret

    Oczywiście zwykły deasembler tak ładnie tego nie komentuje, ale wystarczy zobaczyć datasheet z kodami hex rejestrów Atmega8, no i już wiadomo co się tutaj wyprawia :D

    Bo właśnie się zastanawiałem, jakim cudem mierzysz te amplitudy, jak wychodzi na to że konwersja ADC podpięta pod przerwanie 15
    Cytat:
    1c: 8f c0 rjmp .+286 ; 0x13c int vec 15 0x00E ADC ADC Conversion Complete

    i chyba nie używasz free running, bo nie jest podczas inicjacji ADC ustawiony ten bit,
    wtedy czas konwersji ADC będzie przy częstotliwości zegara ADC 500kHz i 13 cyklach potrzebnych na normalną konwersję ADC mamy jej czas przy takich ustawieniach ADC: 38.461kHz, czyli 26us, co by oznaczało, że sam impuls trwa 3x krócej niż czas jaki jest potrzebny na dokonanie konwersji ;)

    To takie polowanie trochu na trafienie w tą amplitudę to przypomina, ale sprytnie-jakoś trzeba sobie radzić jak nie używamy analogowego komparatora, tylko ADC.

    Chyba tutaj zlecasz tą konwersję ADC i Timer1 pracujący w trybie CTC korygujesz,
    bo to jedyne miejsce w programie chyba, gdzie ustawiasz bit ADSC w rejestrze ADCSRA ;)




    Cytat:

    23e: 36 9a sbi 0x06, 6 ; 6 ADCSRA|= (1<<ADSC); Start conversion
    240: 8a e0 ldi r24, 0x0A ; 10
    242: 90 e0 ldi r25, 0x00 ; 0 0x0A00 = 2560
    244: 9b bd out 0x2b, r25 ; 43 OCR1AL= 0x00
    246: 8a bd out 0x2a, r24 ; 42 OCR1AH= 0x0A


    Zastanawiam się nad zrobieniem takiej sztuczki, bo widziałem jak w desulfatorze Desulfator - urządzenie do naprawiania akumulatorów gość mierzył amplitudy napięcia na akumulatorze bombardowanego pikami wysokiego napięcia przy PWM 5% ok. 1.2kHz i za pomocą szybkiej diody D2 1N4148 i kondensatora C6 10nF zwyłym miernikiem podłaczonym do tego C6 jak na schemacie poniżej :D
    Mikroprocesorowy miernik ESR kondensatorów elektrolitycznych
    W podobny sposób mierzyłem szpilki na mosfecie, który był przepięciami od trafo maltretowany podczas uruchamiania i testów mojego prostownika, zwykłym chińskim miernikiem bez funkcji Max.

    Może podobną sztuczkę by zrobić tutaj i wtedy nie trzebaby kombinować, żeby trafić z pomiarem ADC w tą amplitudę?
    Ciekawe, czy uda się zmierzyć coś sensownego jak w podobny sposób będę "łapał" te amplitudy z miernika ESR, bo wtedy wystarczy podpiąć zwykły chiński miernik, a AVR na początek tylko do generowania tych impulsów o odpowiednich parametrach ;)

    BTW: te diody D3 i D4 (1N4148 u Ciebie If 200mA) w oryginale są 1N4002 (100V 1A w piku 30A) i chyba powinny być na jakieś większe prądy przygotowane bo to ma być jeden z elementów zabezpieczenia przed podłączeniem tej zabawki przypadkiem pod naładowany kondensator-źródło napięcia DC, więc tam może spory prąd przepłynąć zanim kondensatory zablokują to zewnętrzne DC ;)

  • #51 26 Lut 2014 13:35
    Steryd3
    Poziom 32  

    Ogólnie tak to działa jak to opisałeś:)

    aneuro napisał:
    Może podobną sztuczkę by zrobić tutaj i wtedy nie trzebaby kombinować, żeby trafić z pomiarem ADC w tą amplitudę?

    Może i można by ale po co skoro udało się opanować problem. Ogólna koncepcja jest taka, że co można zrobić programistycznymi zabiegami to trzeba nimi zrobić-sprzęt kosztuje a linijki kodu nie. Szczerze to mnie nie chciało się kombinować bardziej z ustawianiem relacji czasowej pomiędzy rozpoczęciem szpilki prądu a rozpoczęciem konwersji nie mniej jednak dało się to zrobić. Gdybyś prześledził jak wygląda proces przetwarzania przetwornika z sukcesywną aproksymacją w AVR to widać tam, że owszem-konwersja trwa długo ale sam moment próbkowania sygnału już nie - a to ten właśnie moment musi zgodzić się czasowo ze szpilką. Sama konwersja może być zakończona długo po całej akcji ze szpilką -to już nie ma znaczenia kiedy byle odbyło się to przed szpilką kolejną.
    Co do koncepcji z miernikiem i układem RC do zapamiętania wartości szczytowej... koncepcja mogła by zadziałać ale niestety trzeba by ją pewnie wzbogacić o jakieś buforowanie i inne rzeczy.
    Ogólnie są inne koncepcje pomiaru ESR -nawet bardziej prawidłowe niż tutaj zastosowana które dają się dużo łatwiej opanować na drodze analogowej.
    Co do tranzystorów o których była ostatnio mowa ...jak najbardziej można zastosować coś na większy prąd. Myślę, iż nawet koncepcja z jakimś MOSFEtem mogła by się tu nieźle sprawdzić.

  • #52 26 Lut 2014 20:16
    aneuro
    Poziom 16  

    Z tą diodą 1N4148 i kondensatorem do wyłapywania tych amplitud, nieco się zagalopowałem, bo tutaj są sporo mniejsze napięcia przy tym pomiarze ESR <5V a u mnie by były nawet <0.5V więc... spadek na diodzie 1N4148 w okolicy 0.5V jak sobie zmierzyłem przed chwilą w podobnym wynalazku podpiętym do akumulatora no niestety u mnie kompletnie nie będzie działał jak bez wzmacniacza bym to próbował robić, a tak jak tutaj za wzmacniaczem nawet, to te 0.5V/5V to 10% i raczej nie do przyjęcia.

    Pozostaje polować sprytnie na te amplitudy w wersji z ADC ;)
    Zobaczę czy mi się uda bez wzmacniacza coś sensownego zmierzyć, bo dzięki temu schemat miernika ESR póki co uprościł mi się do kilku elementów i jutro pewnie to potestuję :arrow:

    Update: Trafiłem jeszcze na projekt takiego podobnego miernika ESR
    Kaspars's ESR Meter
    Na podobnej zasadzie działa, tyle że chyba nie ma możliwości wyboru zakresu.
    Za to co ciekawe przed wejściem sygnału z mierzonego kondensatora do mikrokontrolera zrobili tą sztuczkę z szybką diodą i kondensatorem 100nF do wychwytywania tych amplitud.
    Opornik 1M rozadowuje ten kondensator.
    Nie sprawdzaem na jakich częstotliwociach to chodzi, ale jest kod źródłowy na PIC'a więc warto też zobaczyć to podejście.
    Notabene impulsy są generowane ...praktycznie driverem używanym często przy sterowaniu mosfetów, gdzie potrzebujemy szybko przeładować pojemność bramki.
    Miernik ESR na bazie Mk.2 wydaje się być bardziej uniwersalny i zerowanie oraz odcięcie zasilania na jednym przycisku jest sprytnie i fajnie w oryginale zrobione ;)

  • #53 02 Maj 2014 18:37
    Steryd3
    Poziom 32  

    W związku z pytaniem na priv
    na schemacie jest pomyłka...potencjometr w mojej konstrukcji w obwodzie wzmacniacza którego wartość na schemacie wynosi 200Ω w rzeczywistości ma 500Ω
    a wyregulowany jest na ok 325Ω.
    Przepraszam za błąd. Co prawda przy pewnym samozaparciu z pewnością za pomocą funkcji auto kalibracji i przy maksymalnie skręconym potencjometrze 200Ω układ powinien dać się skalibrować.

  • #54 18 Maj 2014 08:56
    76375
    Użytkownik usunął konto  
  • #55 18 Maj 2014 12:46
    Steryd3
    Poziom 32  

    Jedyne wymagania jakie musi spełniać ten kondensator (kondensatory) to takie by był to był kondensator bipolarny (czyli bez określonej polaryzacji podłączenia). Nie może być to np. zwykły kondensator elektrolityczny czy kondensator tantalowy. Sama pojemność tego kondensatora nie jest kwestią krytyczną- kilka µF w tą lub tamtą nie robi większej różnicy.

  • #56 19 Maj 2014 05:35
    76375
    Użytkownik usunął konto  
  • #57 19 Maj 2014 06:04
    Steryd3
    Poziom 32  

    Płytka ze zdjęć istotnie posiada błędy-nie jest to odkrycie bo o tym pisałem i to w pierwszy głównym poście:

    Steryd3 napisał:
    Co do wzorów płytek- płytka zawierała pewne błędy oraz nadmiarowość(o której wspomniałem) tak więc z oczywistych względów także nie udostępniam.


    Płytka działa bo została naprawiona za pomocą noża, kabelka i lutownicy.
    Pomyłki się zdarzają więc nie ma się nad czym zastanawiać. Jeżeli ktoś twierdzi inaczej to znaczy, że niewiele działał w tej dziedzinie (a i inne dziedziny techniki nie są od nich wolne).

  • #58 19 Maj 2014 12:56
    76375
    Użytkownik usunął konto  
  • #60 02 Wrz 2015 19:16
    witko1
    Poziom 9  

    Witam
    Zrobiłem sobie ten miernik, ale zmniejszyłem znacznie płytkę PCB. Całość działa znakomicie.
    Obudowa drukowana w drukarce 3D. Potrzebne pliki wrzucam do archiwum.
    Pozdrawiam.

    Mikroprocesorowy miernik ESR kondensatorów elektrolitycznych Mikroprocesorowy miernik ESR kondensatorów elektrolitycznych Mikroprocesorowy miernik ESR kondensatorów elektrolitycznych Mikroprocesorowy miernik ESR kondensatorów elektrolitycznych Mikroprocesorowy miernik ESR kondensatorów elektrolitycznych Mikroprocesorowy miernik ESR kondensatorów elektrolitycznych

    Załączniki:
  Szukaj w 5mln produktów