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

[ATMega168][C] Konfiguracja ADC

cobi_69 30 Paź 2011 20:46 2334 11
  • #1 10083043
    cobi_69
    Poziom 21  
    Konstruuję kompas elektroniczny, jednak natrafiłem na pewną rzecz która mnie zaciekawiła i przysporzyła jednocześnie kilka problemów.
    Otóż korzystam w układzie z dwóch czujników KMZ51, jednak napięcia z tych czujników nie są zbyt podobne tj.
    czujnik 1: 2,58V - 3,14V
    czujnik 2: 2,95V - 3,50V
    Wydaje mi się że Philips by sobie nie pozwolił na taką rozbieżność, więc problem musi tkwić gdzieś indziej, niestety nie wiem gdzie. Możliwe że wina leży po stronie wzmacniacza czy jeszcze czegoś innego.
    Najgorsze jest to że podczas projektowania nie przewidywałem tak dużego napięcia na wyjściu i na AVref jest napięcie ze stabilizatora 3,3V (~3,28V). Powoduje to że otrzymuję wyniki:
    czujnik 1: 798 - 972
    czujnik 2: 911 - 1023
    Górna granica napięcia czujnika drugiego nie ma za dużo wspólnego z rzeczywistością. Czy bez ingerencji w "hardware" obejść problem niedokładnego wyświetlania tego wyniku? Czym może być spowodowana aż tak duża rozbieżność w wynikach czujników?

    [ATMega168][C] Konfiguracja ADC

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
  • #2 10083319
    tmf
    VIP Zasłużony dla elektroda
    Oczywiście napięcia większego niż Vref bezpośrednio nie zmierzysz. Możesz dodać dzielnik. Z drugiej strony taka różnica napięć może wynika z zastosowanych wzmacniaczy operacyjnych. Na ich wejściach masz podobną różnicę?
    BTW, Do ARef nie łączy się napięcia zasilania - to nie ma wielkiego sensu, bo takie połączenie można wybrać programowo.
  • #4 10083395
    cobi_69
    Poziom 21  
    Ciężko stwierdzić jaka jest różnica na wejściach wzmacniaczy (wyjściach czujników) gdyż napięcie to zmienia się w zakresie kilku mV, a aktualnie mam tylko zwykły miernik, którego rozdzielczość jest zbyt mała.
    Chyba zmniejszę wzmocnienie wzmacniaczy zmieniając rezystory R2 i R3 na mniejsze, boję się że stracę na dokładności ale coś za coś a to jest jak na razie najprostsze wyjście chyba.

    Co do łączenia AVCC i AREF to podczas projektowania nie wiedziałem jeszcze że to można zrobić programowo, teraz już tak zostawię.

    Do kolegi dondu: co ma brak kondensatorów do mojego problemu? Teraz już wiem że powinny tam być, ale nie mam potrzeby dodawania ich, bo i tak korzystam z wewnętrznego oscylatora.

    Dodano po 29 [minuty]:

    Właśnie znalazłem kość TLC272IP, wymieniłem tego TS'a, ale pomogło to niewiele:
    czujnik 1: 2,47V - 3,04V
    czujnik 2: 2,78V - 3,36V
  • #5 10083522
    dondu
    Moderator na urlopie...
    cobi_69 napisał:
    Do kolegi dondu: co ma brak kondensatorów do mojego problemu? Teraz już wiem że powinny tam być, ale nie mam potrzeby dodawania ich, bo i tak korzystam z wewnętrznego oscylatora.

    A to, że wklejasz schemat, to dostajesz informację, o jego wadach. W pierwszym poście nie pisałeś, że pracujesz na wewnętrznym generatorze, a ja jasnowidzem nie jestem. Dodatkowo nawet jeżeli Ty nie skorzystasz, to skorzysta ktoś kto zobaczy źle podłączony kwarc, bo forum nie jest tylko i wyłącznie dla Ciebie.

    To dobrze, że już wiesz, że te kondensatory powinny tam być, a ja dodam tym co czytają, że wartość ich znajdą w datasheet tego mikrokontrolera i powinny one wynosić od 12 do 22pF.
  • #6 10083614
    drzasiek
    Specjalista CNC
    Ja bym na twoim miejscu zmienił konfigurację tych wzmacniaczy na klasyczny układ wzmacniacza różnicowego.
  • #7 10083669
    cobi_69
    Poziom 21  
    Chodzi o dodanie dodatkowego rezystora pomiędzy wejściem nieodwracającym a masą?
  • #9 10085423
    cobi_69
    Poziom 21  
    Znam tego pdf'a, m.in. nim posiłkowałem się podczas budowy kompasu.
    Czujniki są ustawione w ten sposób że, oś czułości pierwszego czujnika jest skierowana równolegle względem osi kompasu, natomiast w czujniku drugim prostopadle.
    Co do tego pdf'a i całego układu kondycjonowania sygnału to wydaje mi się że to nie ma nic wspólnego z moim problemem, gdyż w SCU jest mowa o takich problemach jak:
    -nieortogonalność czujników: błąd bardzo mały ale i tak zastosowałem poprawkę (w programie powyżej nie ma bo nie chciałem zaciemniać algorytmu),
    -błąd czułości związany z temperaturą: chodzi o różnice w wyjściowym napięciu Vpp (peak to peak), ale amplituda zmian w obu czujnikach jest taka sama, tylko napięcie jednego jest przesunięte.
    -ofset to też nie jest bo to kompas tak samo zachowuje się w różnych miejscach.

    Wydaje mi się więc że problem tkwi gdzieś indziej, chyba że coś przeoczyłem.
  • #10 10085491
    INTOUCH
    Poziom 30  
    No to sprawdź czy przypadkiem ta płytka nie jest tak zaprojektowana że, jakieś silne pole magnetyczne zakłóca pracę czujników. Przepływ prądu 1Ampera w okolicach czujników może spowodować wystarczająco sile pole magnetyczne które zakłóca ich prawidłową pracę.
    Najprościej możesz sprawdzić zamieniając te czujniki miejscami.
  • #11 10085965
    cobi_69
    Poziom 21  
    No właśnie na płytce nie ma nic co mogłoby pobierać tak duży prąd.
    Tu jest płytka:
    [ATMega168][C] Konfiguracja ADC

    Co do zamiany czujników to niestety nie mam takiej możliwości, są one w obudowie SOT, lutowałem je u kolegi, gdyż ja mam tylko zwykłą stację lutowniczą.
  • #12 10610422
    cobi_69
    Poziom 21  
    Przez przypadek musiałem chyba zewrzeć coś paluchami co doprowadziło do przemagnesowania czujników.
    Po wyłączeniu urządzenia, zwarciu na chwilę wszystkich nóżek do masy, a potem ponownym włączeniu problem znikł.
REKLAMA