Akcelerometr LIS302DL - připojení k ATMega8 přes I2C (TWI)

Protože se mi podařilo sehnat za suprovou cenu (cca 170Kč s DPH) 3osý akcelerometr LIS302DL, začal jsem se snažit zjištovat jak to vlastně připojím.

Modul se snažím připojit k ATMega8. Připojení je podle datasheetu možne bud přez SPI nebo I2C a co se teda chci zeptat. Ja bych chtěl tu I2C(TWI) sběrnici.

  1. Ma někdo zkušenost s prací s akcelerometry? Nikdy jsem s tou I2C sběrnicí nepracoval. Zatím jsem si přečetl to zapojení přez odpory a to je mi jasné. V datasheetu k ATMega8 jsem se dočetl ze ma obsahovat HW podporu pro tuto komunikaci. Už jsem se ale nedočetl které piny jsou SCL, SDA. Práce s nima mi taky neni moc jasna.

  2. Druhá otázka je jak zjistím jestli zarizení komunikují. Něco jako při 1-W komunikaci s čidlem DS18B20 kde když odešlu dobře kontrolu tak mi zařízení zatahá za sběrnici a můžu detekovat LOG0 na sběrnici?

Děkuji za odpovědi

Co v tuhle chvíli vím nebo si myslím že to tak je.

  1. ATMega musí pracovat v rezimu Master a akcelerometr musí být slave
  2. Slavů můze být více
  3. za SCL tahá pouze Master
  4. SDA může ovádat každý
  5. Master i slave mají jedinečnou 7bit adresu (u masteru si nejsem jistý)

Děkuji za jakoukoli radu

:arrow_right: administrator: přejmenováno z "Akcelerometr LIS302DL"

… master nema mat preco adresu. Je to master.

I2C sa v datasheete skryva pod oznacenim TWI. Tam su aj kusy kodu.
Myslim, ze SDA a SCL nemozu ist porehliadnut, su vyznacene hned pri rozlozeni pinov :slight_smile: (PC4,PC5)

jo jsem vul. Koukam na to a přísahal bych že to tam včera nebylo. Kazdopádně díky. Jinak teď jsem zjistil, že ten akcelerometr má jeden pin(SDO) a tím se donastavuje adresa. Prej aby mohli byt na jedne sběrnici 2ks. Dneska zkusím a napíšu jak se podařilo.

Tak jsem to rozběhal. Teď se divím jak jednoduché to vlastně bylo. Duležité ovšem bylo pochopit ten princip na jakém TWI pracuje.

Napsal jsem si knihovnu pro TWI komunikaci. No napsal používám to jejich rozhraní. Hlavní je zjistit si jaký pin je HW nastavovač adresy a pak už jen posílat a číst informace podle tabulky z datasheetu. Ja si to odladil na příkazu 0x0F, který si vynutí podpis zařízení v mém případě 0x3B.

Přikládám Vám kód s touto komunikací pokud by někdo sehnal tento akcelerometr (8bit rozlisení, 3 osy, digital komunikace - SPI/I2C) je to cesta jak za 170Kč dostat zajímavý senzor.

V balíku je i 1-W komunikace se senzorem DS18B20 třeba se někomu bude hodit.
ds18x20.rar (83.7 KB)