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

Tiny13 niestabilny ADC. Czy zawsze zachowuje się w taki nieprzewidywalny sposób?

pablo666gliwice 27 Mar 2006 04:01 2280 13
REKLAMA
  • #1 2461793
    pablo666gliwice
    Poziom 14  
    Posty: 115
    Pomógł: 6
    Ocena: 38
    Zmontowalem na tym procesorku malutki woltomierz(3 cyfry) na wejsciu dalem dzielnik uklad calkujacy(opornik i kondensator) oraz wzmacniacz operacyjny jako wtornik Niestety nawet usrednione 10 pomiarow daje kasze Wynik losowo rozjezdza sie minimum o +/- 10% Mam pytanie czy ktos walczyl juz z przetwornikiem ADC w tym konkretnym procku i czy zawsze zachowuje sie on w taki nieprzewidywalny sposob? A moze jakos da sie ustabilizowac wynik przetwarzania?
  • REKLAMA
  • #2 2462637
    Andy74
    Poziom 25  
    Posty: 525
    Pomógł: 103
    Ocena: 24
    Witam!

    Cytat:

    ADC Noise Reduction Mode
    When the SM1..0 bits are written to 01, the SLEEP instruction makes the MCU enter
    ADC Noise Reduction mode, stopping the CPU but allowing the ADC, the external interrupts,
    and the Watchdog to continue operating (if enabled). This sleep mode halts clkI/O,
    clkCPU, and clkFLASH, while allowing the other clocks to run.
    This improves the noise environment for the ADC, enabling higher resolution measurements.
    If the ADC is enabled, a conversion starts automatically when this mode is
    entered. Apart form the ADC Conversion Complete interrupt, only an External Reset, a
    Watchdog Reset, a Brown-out Reset, an SPM/EEPROM ready interrupt, an external
    level interrupt on INT0 or a pin change interrupt can wake up the MCU from ADC Noise
    Reduction mode.


    Korzystasz z tego? Sprawdź - stabilność powinna się poprawić. A zasilanie dobrze odfiltrowane? Zarzuć może schematem, to pomyślimy.
  • REKLAMA
  • #3 2462655
    Nawigator
    Poziom 33  
    Posty: 1923
    Pomógł: 167
    Ocena: 160
    A jak te 3 cyfry pokazujesz światu?
    Co z napięciem referencyjnym?
    Jak pytasz to podaj wiecej szczegółów nikt u Ciebie nie był w pracowni.
    Pozdr. N.
  • #4 2462737
    Andy74
    Poziom 25  
    Posty: 525
    Pomógł: 103
    Ocena: 24
    :arrow: Nawigator Tiny 13 nie ma wejścia napięcia referencyjnego. Można wybrać wewnętrzne 1.1V, albo napięcie zasilania. Dlatego pytałem o filtrowanie zasilania. Pablo zapewne użył multipleksowanych wyświetlaczy LED z czymś w rodzaju 74164. To jest źródło dużych zakłóceń. Ale masz rację - bez dokładnego opisu sprawy możemy tylko gdybać.
    Pozdrawiam
  • REKLAMA
  • #5 2464305
    pablo666gliwice
    Poziom 14  
    Posty: 115
    Pomógł: 6
    Ocena: 38
    uzylem rejestrow przesuwnych 74595 :) i napiecia wewnetrznego 1,1V o filtracji zasilania i innych bajerach nie zapomnialem wiec sie pytam !!kto uzywal tego proca i z jakim skutkiem Gdybac se mozecie !! teorie o ufo i elvisie sobie mozecie tworzyc .. mnie interesuje praktyka!! PDFy czytam ..wasze domysly mnie nie interesują
  • #6 2464374
    Andy74
    Poziom 25  
    Posty: 525
    Pomógł: 103
    Ocena: 24
    OK. Zrozumiałem. Żegnam.
  • #7 2465299
    mzielin
    Poziom 22  
    Posty: 483
    Pomógł: 31
    Ocena: 16
    No cóż .. ja uzywam tego proca, interesuje mnie UFO, słucham Elvisa ... a przetwornik mimo to pracuje stabilnie. A co do PDF'ow - wyznaję zasadę RTFM, dopiero jak cos nie rozumiem..

    Więc się nie dziw, że nikt Ci nie pomoże.
  • #8 2465594
    pablo666gliwice
    Poziom 14  
    Posty: 115
    Pomógł: 6
    Ocena: 38
    Wiec prosze o jakies wskazowki. O ile sie rozjezdza wartosc z przetwornika od wartosci rzeczywistej? Jaki jest obwod wejsciowy? Jak zbudowac odpowiedni filtr wejsciowy? Czy zwykłe całkowanie wystarczy? Prosze podziel sie ze mna swoimi doswiadczeniami :)
  • REKLAMA
  • #9 2466364
    mzielin
    Poziom 22  
    Posty: 483
    Pomógł: 31
    Ocena: 16
    Przetwornik w ATTiny13 wg mnie chodzi gorzej niż w starej ATTiny15. Pomimo dobrej stabilizacji napięcia przez dodatkowy stabilizator równoległy :), zastosowania swego rodzaju filtu "pi" w zasilaniu i na wejściu przetwornika, nie udało mi się osiągnąć dokładności większej niż +/- 2 bitów. Nie korzystałem z wewnetrznego źródła bandgap. Najbardziej pomogło zwiększenie resystancji w filtrze wejściowym i co ciekawe ... duży odstep czasowy (50 ms) od zapisu do wewnętrznej pamięci EEPROM, pewnie wewnętrzna pompa ładunkowa coś dokłada.
    Oczywiście stosowałem zalecane środki z noty katalogowej. Ponieważ mi jeden pomiar na kilka sekund pasuje, więc troszkę zmodyfikowałem patent z noty doc8003.pdf, pisze trochę, bo Tiny ma za mało pamieci operacyjnej,ale usrednienie 32 próbek daje wymagane 10 bitów dokładności jakie chciałem osiagnąc.
  • #10 2466453
    pablo666gliwice
    Poziom 14  
    Posty: 115
    Pomógł: 6
    Ocena: 38
    Dzieki za pomoc :) Hmm wychodzi na to ze ten procek to szmelc .. W sumie czego sie mozna spodziewac za 2zl Ok zmiana pytania Jaki inny procek mialby 10bitowy ADC, nie kosztował wiecej niz ten tinek i stabilnie przetwarzal ?
  • #11 2468900
    mzielin
    Poziom 22  
    Posty: 483
    Pomógł: 31
    Ocena: 16
    Polecam ATTiny26, wiekszy, ale dzieki rozdzieleniu zasilania jest stabilniejszy. Zrobiłem na nim miernik stężenia O2 w powietrzu i bez sztuczek dostałem obiecane 10 bitów.
  • #12 2469596
    greg_matrix
    Poziom 17  
    Posty: 163
    Pomógł: 28
    Ocena: 3
    Ja używam TINY13, na wejściu do ADC mam tylko rezystancyjny dzielnik napięcia, bez filtrowania. Napięcie odniesienia wewnętrzne 1,1V. Robiłem 5 pomiarów i brałem średnią. Dla danego egzemplarza dokładność (w sensie stabilności odczytu) jest całkiem niezła, gorzej jest z rozrzutem dla różnych egzemplarzy- wynosi około +/- 1% (+/- 10 bitów). Czyli moim skromnym zdaniem jest tu problem nastepującego typu: wewnętrzne napięcie odniesienia jest różne "zestrojone" dla różnych egzemplarzy, ale nie zmienia się za bardzo w czasie od swojej ustalonej wartości.

    Nie sprawdzałem tego, bo 1% do tego co robiłem akurat mi wystarczyło, ale mozesz wykonać następującą próbę: Jako napięcie odnesienia użyj super filtrowanego zasilania +5V i odłącz multiplekser żeby wyeliminowac ewentualne zaklócenia. Do wejścia ADC podaj napięcie powiedzmy 1V- zwykły dzielnik napięcia załatwi sprawę. Układ zprogramuj tak, żeby komunikował się powiedzmy poprzez 3 LED-y. Niech zapalają się w ustalonych odstępach mierzonych napięć- środkowa dla 1V a pozostałe +/- ileś tam. Dla dużych odstępów będzie świecić jedna LED. Zmniejszając te odstępy stwierdzisz w pewnym momencie kiedy LED-y szaleją- powinny się zaświecać wszystkie na zmianę. To będzie "szum pomiaru". Można wtedy zmienić napięcie odniesienia i powtórzyć próbę.

    Taki eksperyment da odpowiedź.
  • #13 2469796
    Nawigator
    Poziom 33  
    Posty: 1923
    Pomógł: 167
    Ocena: 160
    Używam Tiny13 ale egzemplarze kupione ostatnio zachowują się gorzej niż te kupione pół roku temu. Program się w nich zawieszał i dopiero po dłuższym szukaniu odkryłem że samoczynnie wyzwalają się przerwania od porównania w liczniku T0 chociaż zezwolone było tylko przerwanie od przepełnienia. W tamtych egzemplarzech tego nie było. Sprawdziłem ten efekt dodatkowo i w Tiny 26 oczywiście jest dobrze czyli zła seria 13 (pechowe czy co?). Musiałem dodatkowo kasować te flagi w obsłudze przepełnienia co wyklarowało sytuację. Być może podobna sytuacja jest z przetwornikiem ADC.
    Nie pamiętam w tej chwili ale czy nie trzeba na używanym wejściu adc wyłączyć podciągania aby nie zmieniało napięcia?
    Przyłączam się do porady mzielina - do tego układu pablo tylko Tiny26.
    Pozdr. N.
  • #14 2473001
    greg_matrix
    Poziom 17  
    Posty: 163
    Pomógł: 28
    Ocena: 3
    Kontynuując wątek dziwnego działania 13-ek:
    Stwierdziłem, że układ zachowuje się dziwnie jeśli równocześnie mamy włączone przerwania i chcemy odczytywać stan wejść. Wtedy sygnał na wejściach jest w dosyć przypadkowy sposób zakłócony (pojawiają się "szpilki" szumu). Program zaczął działać prawidłowo po wykonaniu takiego tricku: tuż przed momentem odczytu stanu wejścia wyłączałem przerwania i włączałem je z powrotem zaraz po odczycie.

    Czy inne procesory też tam mają? Pytam dlatego, że TINY13 to mój pierwszy i już zacząłem myśleć, że takie pułapki to norma... A z tym w miarę poprawnym ADC to być może miałem szczęście- być może ta seria z której miałem układy była w porządku.

    Drugie pytanie: czy ktoś próbował programować TINY45? Jak u niego z tymi numerami o których dyskutujemy??

Podsumowanie tematu

LABEL_AI_GENERATED
Dyskusja dotyczy niestabilności przetwornika ADC w mikrokontrolerze ATTiny13 stosowanym w prostym woltomierzu z dzielnikiem napięcia, układem całkującym i wzmacniaczem operacyjnym. Użytkownicy wskazują, że ADC w Tiny13 może wykazywać rozrzut pomiarów rzędu +/- 10%, co jest problemem przy próbach uzyskania stabilnych wyników. Przyczyną mogą być zakłócenia generowane przez multipleksowane wyświetlacze LED lub słabe filtrowanie zasilania. Wewnętrzne napięcie odniesienia 1,1 V jest dostępne, ale różnice między egzemplarzami mogą wpływać na dokładność. Zalecane jest stosowanie filtrów wejściowych o większej rezystancji, dłuższych odstępów czasowych między pomiarami oraz uśrednianie wielu próbek (np. 32) dla poprawy stabilności i dokładności do około 10 bitów. Niektórzy użytkownicy zauważyli problemy z wadliwymi seriami Tiny13, które mogą powodować nieoczekiwane przerwania i niestabilność działania. Alternatywnie polecany jest mikrokontroler ATTiny26, który dzięki rozdzielonemu zasilaniu i większym zasobom zapewnia stabilniejszy i dokładniejszy ADC. Wskazano także, że wyłączanie przerwań podczas odczytu wejść może poprawić stabilność sygnału. Podsumowując, ADC w ATTiny13 jest podatny na zakłócenia i wymaga starannego filtrowania, uśredniania i odpowiedniej konfiguracji, a w przypadku wymagań stabilności lepiej rozważyć inne modele mikrokontrolerów z 10-bitowym ADC.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA