Skocz do zawartości

LIS35DE stałe wartości w rejestrach X,Y,Z


Pomocna odpowiedź

Napisano

Witam

Mam problem z tym akcelerometrem,nawiązałem komunikację po I2C. W CTRL_REG1 uruchomiłem wszystkie osie i włączyłem active mode. Gdy odczytuje CTRL_REG1 otrzymuje wartości które wysłałem czyli transmisja jest ok, jednak gdy odczytuje rejestry X,Y,Z dostaję stałe wartości niezależnie od położenia układu.

Czyżby układ padł, czy może trzeba jeszcze coś ustawić?

miałem dokładnie taki sam problem tylko z innym akcelerometrem i w moim wypadku pomogło zapisywanie danych osobno do każdego rejestru konfiguracyjnego:

mniej więcej coś takiego:

i2c start

ctrl_reg1

dane do zapisania

i2c stop

i2c start

ctrl_reg2

dane do zapisania

i2c stop

i tak dalej

nie wiem czy u ciebie coś to pomoże, aha no i łatwiej by było gdybyś przedstawił kod i napisał coś więcej o układzie.

Akcelerometr współpracuje z STM32F100C8 8MHz w moim hexapodzie.

Co do kodu to konfiguruje tylko CTRL_REG1 i biorę się za odczyt.

I2C2->CR1|=I2C_CR1;
for(a=0;a<500000;a++);//delay 700ms
/////asdasdas

I2C2->CR1|=I2C_CR1;
dane=(I2C2->DR);

/edit 2 dla potomnych

Ostateczna diagnoza, uszkodzony układ prawdopodobnie przez przegrzanie. Działa tylko oś Z, oś Y i X pokazuje zawsze te same, skrajne wartości 127 i -128.

  • 3 miesiące później...

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...