Skocz do zawartości

Atmega 32 razem z żyroskopem i akcelerometrem


kirex

Pomocna odpowiedź

Witam,

posiadam atmegę 32, żyroskop l3g4200d oraz akcelerometr MMA8452Q całość chcę spiąć szyną I2C. Żyroskop i akcelerometr posiadają po dwa wyjścia INT, natomiast atmega ma tylko 3 piny przerwań, w związku z tym pytanie czy mogę z żyroskopu podpiąć tylko INT2 a z akcelerometru tylko INT1?

Kolejne pytanie tyczy się różnicy napięć mikrokontrolera i czujników, atmega działa z napięciem 5v (16Mhz) a czujniki 3,3v. Czy wszystkie łączenia pinów między atmegą a czujnikami powinny być poprowadzone przez układ typu 74HC244? jeśli dobrze myślę to połączenia bezpośrednie spalą czujniki?

Link do komentarza
Share on other sites

Piny INT podłączasz tylko te, które są Ci potrzebne. Jeśli nie podłączysz żadnego, bo nie planujesz z niego korzystać, układ oczywiście będzie działał - do pracy wymaga tylko podłączenia do magistrali I2C 😉

Co do napięć, zdecydowanie musisz zastosować jakiś rodzaj konwertera, bezpośrednie podłączenie 5V <-> 3.3V może uszkodzić układy.

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

OldSkull, nie do końca rozumiem. Jeśli zakładamy, że dla linii INT trzeba byłoby zastosować konwersję napięć, to dla linii I2C chyba też, prawda?

I zawsze byłem przekonany, że podawanie na wejście układów zasilanych 3.3V sygnału na poziomie 5V może się dla nich skończyć źle. Czy może się mylę?

Link do komentarza
Share on other sites

Znalazłem artykuł na stronie http://starter-kit.nettigo.pl/2012/01/komunikacja-ukladow-3-3v-i-5v/ opisujący sposoby komunikacji układów. Czy w związku z tym, że obsługa przerwań nie jest wymagana, to wystarczy jak zrobię konwersję napięć na liniach I2C opisaną w sekcji "Połączenie dwukierunkowe standardów 5V i 3,3V"?

Link do komentarza
Share on other sites

Znalazłem artykuł na stronie http://starter-kit.nettigo.pl/2012/01/komunikacja-ukladow-3-3v-i-5v/ opisujący sposoby komunikacji układów. Czy w związku z tym, że obsługa przerwań nie jest wymagana, to wystarczy jak zrobię konwersję napięć na liniach I2C opisaną w sekcji "Połączenie dwukierunkowe standardów 5V i 3,3V"?

Tak.

Link do komentarza
Share on other sites

OldSkull, nie do końca rozumiem. Jeśli zakładamy, że dla linii INT trzeba byłoby zastosować konwersję napięć, to dla linii I2C chyba też, prawda?

Nie, ponieważ sterowanie w I2C polega na zwieraniu tranzystorami do masy linii, która jest podciągnięta przez rezystor (rzędu 10k) do napięcia zasilania - a to napięcie może wynieść nawet 5V, to nie przeszkadza. Ew. można dać diodę schottky na linii i jej napięcie nie przekroczy wtedy 3.6V.

Link do komentarza
Share on other sites

Układy serii HC mają próg przełączania typowo na poziomie połowy zasilania co rzeczywiście, przy zasilaniu 5V wskazuje na 2.5V ale dane katalogowe są bezlitosne: pierwszy z brzegu producent przyznaje, że udaje mu się robić układy mające próg nawet na poziomie 3.15V przy zasilaniu 4.5V. I to bym przyjął za regułę, HC po prostu się do tego nie nadają albo będzie to jazda po krawędzi. Jeżeli już, to do konwersji 3V→5V zalecałbym używać serii HCT o specjalnie obniżonych progach, co prawda z powodu konieczności współpracy ze starymi wersjami bipolarnych TTL ale tutaj ta cecha będzie jak znalazł. Nawiasem mówiąc ATmega ma gwarantowany próg przełączania na poziomie 0.6*Vcc czyli jakby nie patrzeć 3V (przy Vcc=5V) co jest trochę wynikiem "lepszym" niż HC..

Natomiast w drugą stronę można stosować prymitywne dzielniki oporowe, które jednak mają mnóstwo wad (pobór mocy, szybkość, obciążalność itd) ale w przypadku zabawek i wolnych sygnałów sprawdzają się nieźle choć zalecałbym rozwiązania z bardziej dorosłej elektroniki, np. serię 74LVC, 74AHC lub wg innych producentów 74LCX i pewnie jeszcze kilka innych prefiksów. Te układy są z definicji odporne na napięcia wejściowe większe niż własne zasilanie i doskonale nadają się do konwersji 5V→3V. Od zawsze stosuję je do łączenia 5V procesorów np. z 3V LCD i transmisje wielu MB/s nie są problemem.

Jeśli ktoś potrzebuje dwukierunkowej konwersji magistral 3V↔5V może wstawić np. 74LVC245 zasilany z 3V ale jeśli "wysokonapięciowa" strona systemu nie będzie tolerować sygnałów 3V (lub nawet 3.3) to istnieją układy buforów zasilane dwoma napięciami - rozwiązanie trochę egzotyczne ale czasem no po prostu nie ma innego wyjścia.

Dla szyny I2C są odpowiednie scalaki do konwersji bo przecież problem 3/5V istnieje nie od dzisiaj ale pomysł z tranzystorem (lub tranzystorami - jest kilka rozwiązań) jest całkiem dobry i działa.

Oldskull - "to nie przeszkadza" - to Twoja opinia. Gdyby trzymać się literalnie danych katalogowych to napięcie wejściowe układów serii HC (i w zasadzie wszystkich "normalnych" CMOSów) nie może być większe niż Vcc+0.6V bo zwyczajnie przy napięciu wyższym otwierają się diody między wejściem a szyną dodatniego zasilania. Napięcie wejściowe prawie przestaje rosnąć (jak to w diodzie) za to wejście zaczyna pobierać prąd i pompować go w swoją szynę zasilania. Już samo to (pobieranie prądu) jest niezgodne ze specyfikacją a do tego dochodzi jeszcze moc wydzielana w diodzie. No i fakt, że napięcie takiej linii raczej nigdy nie będzie wyższe niż 3.6V - a (uwaga:) piny ATmegi pracujące w trybie TWI mają inne progi przełączania, zgodne ze specyfikacją szyny Philipsa i znów mamy rzucanie kostką - zadziała czy nie? Rzeczywiście, prąd z opornika 10k nie będzie duży i nie dam sobie uciąć, że tak kiedyś w desperacji w jakimś projekcie nie zrobiłem ale (to z kolei moja opinia) osobiście wystrzegałbym się takich porad.

  • Pomogłeś! 1
Link do komentarza
Share on other sites

Pozostaje jeszcze poczytać dokumentację żyroskopu i akcelerometru, ponieważ spotkałem się z przypadkiem, że w samej takiej dokumentacji było podane, że toleruje 5V na wejściu.

Albo można po prostu użyć ATmega32L albo ATmega32A i zasilić z 3.3V (i max bodajże 10MHz, ale zalecane 8MHz). I nie ma w takim przypadku żadnych problemów z sygnałami.

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Gość
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

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