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

Żyroskop L3G4200D - szum bit

lkrysiak 12 Sie 2011 17:07 2021 1
REKLAMA
  • #1 9818512
    lkrysiak
    Poziom 2  
    Przy pomocy płytki EvB 4.3v4 z ATMega644p obsługuję żyroskop L3G4200D po I2C.
    Dość często pojawiają się dziwne wartości. Wygląda na to, że prawdziwy wynik zostaje zwiększony lub zmniejszony o magiczne 256.

    Odczyty gdy żyroskop w spoczynku:
    Żyroskop L3G4200D - szum bit

    Gdy poruszam żyroskopem:
    Żyroskop L3G4200D - szum bit

    W analogiczny sposób odczytywałem akcelerometr LSM303DLH i takie cuda się nie dzieją.
    Konfrontowałem swój kod z kilkoma, które udało mi się znaleźć i nie mam już więcej pomysłów.

    Init:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Odczyt:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Obsługa I2C:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Proszę o wskazówkę skąd może brać się ten bit +/- 256 ?
    Eksperymentowałem trochę ze zmienianiem typów danych i próbowałem różnych konfiguracji w CTRL_REG1-CTRL_REG5 i wciąż to samo.
  • REKLAMA
  • #2 9822682
    lkrysiak
    Poziom 2  
    Problem nadal aktualny.
    Zauważyłem błąd w taktowaniu I2C, bo ATMega644P ma 16MHz a nie 20MHz.
    Przestawiłem taktowanie na 400kHz (TWBR = 12), wcześniej jakoś nie chciało działać przy tej prędkości. Tutaj coś się ruszyło, błędne odczyty pojawiają się rzadziej. Około 1% pomiarów wyskakuje o około +/- 256.

    Przyjrzałem się bliżej wynikom i wygląda na to, że czasami MSB i LSB pochodzą z różnych odczytów.
    Biorąc pod uwagę przykładowe niewielkie wartości np. FFFF ( -1, U2) , a drugi 0000 ( 0, U2 ). Po wymieszaniu 00FF pokaże już 255 albo FF00 czyli -256.

    Przeciorałem datasheet w każdą stronę, korzystałem nawet z FIFO - w różnych opcjach.

    Ustawiłem też bit BDU

    Block Data Update. Default value: 0
    (0: continous update; 1: output registers not updated until MSB and LSB
    reading)

    Nadal ten sam rezultat. Czy ktoś może się z tym spotkał?
    To jest efekt wyraźny dopiero przy skali 2000dps, bo wybija się z naturalnego szumu.
REKLAMA