Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 28 mar 2024, o 14:34


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 
Autor Wiadomość
PostNapisane: 30 mar 2018, o 19:36 
Offline
Nowy

Dołączył(a): 11 gru 2014
Posty: 8
Pomógł: 0

Witam,
postanowiłem poprosić tu o pomoc, gdyż skończyły mi się pomysły na rozwiązanie problemu.
Korzystam ze znanej wszystkim biblioteki TWI i na tej podstawie testuję MPU6050.
Jednakże nie działa komunikacja I2C.
Do debugowania zamiast diody używam LCD (na którym ostatecznie będę wyświetlał wyniki z MPU).
Oto main:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Biblioteka TWI:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


I mój plik .c z prostą obsługą modułu MPU6050:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Pliku biblio.h nie wrzucałem, bo wszystkie 'define' wplotłem w powyższe kody plików *.c.
Procesor to Atmega32, 16MHz, wszystko ładnie ustawione w projekcie (sczytane przez eclipse).

Jeśli chodzi o PODŁĄCZENIE, jest bardzo proste więc szybkie fotki zamiast schematu:
Obrazek

Obrazek

Obrazek

Obrazek

Nie jestem pewien czy wszystko się zgadza. Jak widać, podłączyłem MPU bezpośrednio do zasilania z płytki, gdyż...
Na konwerterze (który dziś kupiłem) po podłączeniu 5V do HV, na pinie LV pojawia się 2,8V. Nie wiem czy to normalne?
Z tego powodu MPU zasilane jest z 5V, ale działa (świeci się dioda) również na 3.3V z płytki. Wtedy na LV konwertera jest 3.3V.

Bardzo proszę o pomoc, ponieważ niestety nie mam innego urządzenia z I2C żeby sprawdzić program i konwerter :(

@Edit: dołączam 2 noty katalogowe o MPU6050 z których korzystam

@Edit 2: był błąd w podłączeniu, zająłem piny PC6 i PC7 zamiast PC0 i PC1 (SCL i SDA). Poprawiłem, ale wciąż nie działa.


Załączniki:

Aby zobaczyć załączniki musisz się zalogować. Tylko zalogowani użytkownicy mogą oglądać i pobierać załączniki.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 mar 2018, o 14:06 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 cze 2014
Posty: 855
Lokalizacja: pod Warszawą
Pomógł: 58

cześć
Jak Ci wyszło, że adres I2C to 0x68?
Obrazek
W/g mnie adres to 0xD0 lub 0xD1 w zależności od pinu AD0


Autor postu otrzymał pochwałę

_________________
Pomóżcie mi stanąć na nogi



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 mar 2018, o 14:30 
Offline
Nowy

Dołączył(a): 11 gru 2014
Posty: 8
Pomógł: 0

mczarny napisał(a):
W/g mnie adres to 0xD0 lub 0xD1 w zależności od pinu AD0


Nie wiem dlaczego? Piszą że adres 7 bitowy.

Co nie zmienia faktu, że zaczęło działać od razu :mrgreen: Dziękuję pięknie. :) :)

Co ciekawe, nigdy nie sprawdzałem kwestii adresu, gdyż w programach na arduino IDE wszyscy używają 0x68.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 mar 2018, o 14:35 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27212
Lokalizacja: Szczecin
Pomógł: 1041

aiwa napisał(a):
Co ciekawe, nigdy nie sprawdzałem kwestii adresu, gdyż w programach na arduino IDE wszyscy używają 0x68.

Bo tak to jest w andruino - niby coś programujesz a nawet nie wiesz jak to działa ...

adresy nie są żadne 7-bitowe - tylko podaje się w ramach adresu zawsze 7 najstarszych bitów bo najmłodszy bit ZAWSZE odpowiedzialny jest za ZAPIS albo ODCZYT ... i jak się wie takie podstawy to się już rozumie o co chodzi z adresami i nie popełnia się takich błędów

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 mar 2018, o 14:54 
Offline
Nowy

Dołączył(a): 11 gru 2014
Posty: 8
Pomógł: 0

Cytuj:
Bo tak to jest w andruino - niby coś programujesz a nawet nie wiesz jak to działa ...


Dlatego unikam jak ognia korzystania z Arduino IDE

Cytuj:
adresy nie są żadne 7-bitowe - tylko podaje się w ramach adresu zawsze 7 najstarszych bitów bo najmłodszy bit ZAWSZE odpowiedzialny jest za ZAPIS albo ODCZYT


Super! Wszystko teraz rozumiem :D :D



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 6 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO