Skocz do zawartości

AVR ATTiny85 I2C (master i slave) biblioteki w C (gcc pod Linux)


eneuro

Pomocna odpowiedź

Witam,
Rozpracowuję teraz taki 3y osiowy żyroskop i akcelerometr MPU6050 I2C w jednym, ale bez Arduino

Programuję te ATTiny w C (gcc pod Linux).

Możliwości tego czujnika np tutaj są pokazane z jakąś biblioteką i2cdevlib:

Wiem, że ATTiny85 ma wsparcie sprzętowe dla I2C i tutaj coś sensownego jest na ten temat:

I2C Bus for ATtiny and ATmega

Jest tam nawet biblioteka I2C master.

Tyle, że zastanawiam się czy są jakieś inne może jeszcze bilbioteki I2C

do projektów bez Arduino, bardziej popularne na AVR gcc?

W tej powyżej chyba wykorzystują sprzętowe możliwości ATTiny i są 2ie wersje:

jedna zatytułowana: I2C USI a druga I2C TWI.

Wygląda na to że różnią się tym, że w wersji I2C USI nie obsługują przerwań ATTiny,
ale korzystają ze specyficznych rejestrów USI,
a w wersji TWI jest obsługa przerwań i tak jakby kod tej biblioteki mniejszy.

Znalazłem na stronie Adruino jakieś ich biblioteki w C++ do tego I2C MPU-6050:

Arduino: MPU-6050 Accelerometer + Gyro

Jak to przeglądnąłem to tam też jakieś biblioteki do I2C mają swoje i też by dało radę je przerobić

i gdzieś widziałem taką, tyle że tam chyba mają bibliotekę do I2C softwareowo zrobioną i wybiera się piny SDA i SCL...

Jest też pokazany przykład prostego skanera I2C dla Arduino i podobny będę w stanie zrobić

na mojej prostej platformie uruchumieniowej ATTiny85, którą chcę ze starym laptopem podpiąć przez LPT z prostym adapterem I2C.

Arduino: i2c_scanner

Ktoś korzystał może z tej biblioteki I2C z Instructables.com (I2C USI/I2C TWI), bo wydaje mi się że sprzętowo będzie lepiej i jak będę potrzebował jakiś czujnik I2C na ATTiny zrobić (w trybie nie master a slave) to powinno być łatwiej, bo poznam te rejestry?

Nie widziałem za dużo przykładów jak zrobić jakiegoś prostego slave na I2C, bo jakieś manetki do EV na czujniku Halla Ss495A chcę przerobić na wersję z I2C i o ile w trybie master chyba dam radę z którąś biblioteką,
to chciałbym wybrać taką, aby oprogramowanie jakiegoś czujnika (slave) w gnu C wykorzystywało sprzętowe wsparcie w ATTiny, a w tej z Instructables.com nie widzę jak to zrobić od strony czujnika (slave) I2C...

Pozdro.

UPDATE: Udało się znaleźć w końcu artykuł z dokładnym opisem USI w ATTiny pod kątem I2C tutaj i jest przykład slave I2C korzystającego praktycznie wyłącznie z przerwań ATTINY, więc to czego szukałem.

ATTiny USI I2C Introduction - A powerful, fast, and convenient communication interface for your ATTiny projects!

Powinno to wystarczyć do zrobienia prostego interface na ATTiny do laptopa z portem LPT, który przez optoizolację portu LPT będzie na laptopie pod Linux w trybie tekstowym wyswietlał komunikaty wysyłane do mojego ATTiny jako slave przez I2C i jako zwykłe bajty wyświetlał na dużym wyswietlaczu laptopa np. w trybie konsoli 80x25.

Dzięki temu będzie można łatwo monitorować i logować pracę różnych podsystemów i sterowników 😎

Czyli ten interface z izolacją PC/laptopa od elektroniki sterowników na 5kV zamieni byle jakiego laptopa w LCD I2C o gigantycznym rozmiarze po znikomych kosztach 😅

Zanim podepniemy MPU-6050, wcześniej przećwiczymy I2C na 2óch ATTiny + optoizolacja + laptop,
który docelowo może być do celów diagnostycznych podpinany przez ten interface.

Jednak, nadal jestem ciekawy, czy jakiś innych lepszych bibliotek ktoś używa na AVR'ach do obsługi I2C w trybie master i slave?

Link do komentarza
Share on other sites

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...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.