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



Teraz jest 16 sty 2025, o 00:47


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 11 ] 
Autor Wiadomość
PostNapisane: 14 cze 2013, o 13:17 
Offline
Nowy

Dołączył(a): 21 sty 2013
Posty: 13
Pomógł: 0

Witam.
Mam 2 czujniki (BMP085 i HMC5883L) podpięte pod ATmega16 poprzez i2c. Gdy są osobno, to wszytko działa. Gdy są podpięte razem to już nie.
Co zrobić, aby móc się z nimi komunikować przez i2c? Do każdego czujnika jest osobny program i nie muszą działać jednocześnie, jednak mają się znajdować na jednej płytce. Czy da się to obejść programowo?
Wyczytałem w googlach, że mają podobno ten sam adres bazowy 0x1E, ale niestety nie wiem jak sobie z tym poradzić.

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

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

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 cze 2013, o 13:44 
Offline
Moderator
Avatar użytkownika

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

adasas napisał(a):
Wyczytałem w googlach, że mają podobno ten sam adres bazowy 0x1E,


No wiesz co ? Herezje teraz piszesz ;)

adasas napisał(a):
ale niestety nie wiem jak sobie z tym poradzić


a wiesz co to jest nota PDF każdej części elektronicznej a szczególnie scalaków ? nota PDF proucenta ? innymi słowy mówiąc instrukcja ? - to ty robisz coś na tych scalakach i NAWET nie zajrzałeś do noty PDF żeby to sprawdzić - tylko szukasz gdzieś w google ? ..... o nie nie panie kochany ;)

w tył zwrot - pobierasz noty PDF do swoich scalaków - zaglądasz i tam widzisz DOKŁADNIE jaki każdy ma adres bazowy i czy ew można go zmieniać w jakimś zakresie

bez not PDF ANI RUSZ - w elektronice - zapamiętaj to na całe życie ok ? ;)

_________________
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: 14 cze 2013, o 15:06 
Offline
Nowy

Dołączył(a): 21 sty 2013
Posty: 13
Pomógł: 0

W karcie katalogowej BMP085 pisze:
Cytuj:
The BMP085 has a master clear (XCLR) low-active input that is used to reset the BMP085 and initializes internal registers and counters. The device is automatically reset by power on reset (POR) circuitry. XCLR can be left floating if not used. The pad has an internal pull-up resistor of typ. 120kOhm.

Czyli muszę pin XCLR podpiąć pod jakiś port ATmegi i w momencie, gdy ten czujnik nie jest używany, to ustawić stan niski na tej lini?
Natomiast nie wiem co zrobić w przypadku, gdyby jakieś urządzenie miało taki sam adres jak HMC5883l.
W jego nocie pisze tak:
Cytuj:
I2C COMMUNICATION PROTOCOL
The HMC5883L communicates via a two-wire I2C bus system as a slave device. The HMC5883L uses a simple protocol with the interface protocol defined by the I2C bus specification, and by this document. The data rate is at the standard-mode 100kbps or 400kbps rates as defined in the I2C Bus Specifications. The bus bit format is an 8-bit Data/Address send and a 1-bit acknowledge bit. The format of the data bytes (payload) shall be case sensitive ASCII characters or binary data to the HMC5883L slave, and binary data returned. Negative binary values will be in two’s complement form. The default (factory) HMC5883L 8-bit slave address is 0x3C for write operations, or 0x3D for read operations.
The HMC5883L Serial Clock (SCL) and Serial Data (SDA) lines require resistive pull-ups (Rp) between the master device (usually a host microprocessor) and the HMC5883L. Pull-up resistance values of about 2.2K to 10K ohms are recommended with a nominal VDDIO voltage. Other resistor values may be used as defined in the I2C Bus Specifications that can be tied to VDDIO.

i jeśli dobrze rozumiem, to nic nie pisze co zrobić w takim przypadku. Czyli w tym przypadku jedynie trzeba zastosować jakiś przełącznik?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 cze 2013, o 17:37 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

Te układy mają inne adresy. Przeszkadzać może to, że BMP085 pewnie pracuje z dużo wyższą częstotliwością I2C i drugi wolniejszy układ wtedy przeszkadza w komunikacji. Czy jak uruchamiałeś program dla HMC5883L to też nie było z nim komunikacji?

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 cze 2013, o 14:46 
Offline
Nowy

Dołączył(a): 21 sty 2013
Posty: 13
Pomógł: 0

Program na HMC działa w każdym przypadku.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 cze 2013, o 20:06 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

W kodzie funkcji bmp085_init, którego tu nie widzę pewnie jest ustawianie prędkości transmisji I2C i tam należy ustawić maksymalnie 400kHz.

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 cze 2013, o 21:52 
Offline
Moderator
Avatar użytkownika

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

ale na 100kHz obydwa powinny spokojnie działać i to bardzo dobrze. Bo czy koniecznie potrzeba tutaj 400 kHz ? jeśli tak to oczywiście można przed każdym odwołaniem się do układu zmieniać prędkość raz na 100kHz a innym razem na 400kHz

_________________
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: 16 cze 2013, o 20:14 
Offline
Nowy

Dołączył(a): 21 sty 2013
Posty: 13
Pomógł: 0

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

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 cze 2013, o 21:29 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

adasas napisał(a):
W kodzie jest ustawione 100kHz

Wnioskujesz po komentarzu jak sądzę. Znajdź miejsce, gdzie wartości SCL_CLOCK przypisywana jest liczba.

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 cze 2013, o 21:53 
Offline
Nowy

Dołączył(a): 21 sty 2013
Posty: 13
Pomógł: 0

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 cze 2013, o 22:57 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 10 mar 2013
Posty: 739
Lokalizacja: Poznań
Pomógł: 84

Witam
nie wiem czy to nie literówka ale 100 kHz
powinno być zapisane chyba jako
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

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



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: 11 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 4 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:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO