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



Teraz jest 29 mar 2026, o 23:12


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 6 ] 
Autor Wiadomość
PostNapisane: 5 lis 2014, o 14:14 
Offline
Nowy

Dołączył(a): 28 sie 2014
Posty: 18
Pomógł: 0

Witam, chcę się połączyć po TWI/I2C z czujnikiem temperatury OMRON 2SMPB-01-01. Z dokumentacji czujnika wyczytałem, że należy wpisać wartość 02h do rejestru I2C_SETUP czujnika. Tylko pytanie, jak mogę się dostać do tych rejestrów z poziomu XMEGI (każdy z nich ma adres, to wiem), ale jak wpisać do nich wartość? Jeśli miałby ktoś jakiś przykładowy kod byłbym wdzięczny. Link do dokumentacji: http://www.tme.eu/pl/Document/fff0134475daf8093866d0b6dc142da5/2SMPB-01-01.pdf



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 lis 2014, o 18:04 
Offline
Użytkownik

Dołączył(a): 24 sty 2012
Posty: 1469
Pomógł: 56

To może na początek takie pytania:
Czy masz może taką książkę? http://www.atnel.pl/mikrokontrolery-avr-jezyk-c.html
Czy wiesz w ogóle jak odbywa się transmisja po I2C?

_________________
Jestem początkujący i moje porady mogą być błędne



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 lis 2014, o 18:46 
Offline
Nowy

Dołączył(a): 28 sie 2014
Posty: 18
Pomógł: 0

Tak mam tą książkę. Wiem jak odbywa się transmisja po I2C, ściągnąłem bibliotekę Atmela do obsługi I2c w XMEDZE. Tylko nie mam pojęcia jak rozumieć dokumentację tego czujnika.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 lis 2014, o 19:15 
Offline
Użytkownik

Dołączył(a): 24 sty 2012
Posty: 1469
Pomógł: 56

Na stronie 12 noty masz adresy rejestrów.
Co jest dla Ciebie niejasne?

_________________
Jestem początkujący i moje porady mogą być błędne



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 lis 2014, o 19:24 
Offline
Nowy

Dołączył(a): 28 sie 2014
Posty: 18
Pomógł: 0

Jak się programowo do nich dostać? Czy to tak wygląda, że na początku łącze się z czujnikiem poprzez adres 0x70 (tak jest w dokumentacji), a potem cały czas zmieniam adresy slave'a, aby wpisać do rejestru jakąś wartość?
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Czyli, aby dostać się do jakiegoś rejestru w czujniku muszę po inicjalizacji połączenia wysyłać jakąś wartość z adresem rejestru tak jak w kodzie powyżej.



Ostatnio edytowano 5 lis 2014, o 21:38 przez norbert22, łącznie edytowano 3 razy

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 lis 2014, o 19:49 
Offline
Użytkownik

Dołączył(a): 24 sty 2012
Posty: 1469
Pomógł: 56

Zakładając, że masz poprawny układ to najpierw musisz ustalić jaki jest
adres czujnika na magistrali I2C.
Dzieje się dlatego, że z tym układem nie jest jak z np. PCFem (popularnym zegarkiem)
gdzie ten adres z góry znasz.
Procedura jest taka.
Wysyłasz na magistralę pod adres 0x70 rozkaz odczytu z rejestru 0x05
Jeśli otrzymasz od czujnika sygnał ACK
to sprawdzasz co odczytałeś z rejestru
Jeśli odczytana wartość to 0x5A to znalazłeś adres slava
Jeśli nie było ACK lub wartość odczytana jest inna to sprawdzasz czy przypadkiem
adres pod który wysyłałeś rozkaz czytania nie był 0x7F
Jeśli to był 0x7F to niestety ale coś jest nie tak z czujnikiem albo połączeniami
natomiast jeśli adres był pomiędzy 0x70 a 0x7F to zwiększasz adres (np. 0x71) i powtarzasz
procedurę.

Dopiero jak znajdziesz adres czujnika możesz sobie z nim "pogadać" na inne tematy ;)

------------------------ [ Dodano po: 3 minutach ]

A przy okazji...
koniecznie zapoznaj się z tym: http://forum.atnel.pl/topic7402.html
I popraw kod, bo zaraz Jagi wpadnie i... będzie źle ;-)


Autor postu otrzymał pochwałę

_________________
Jestem początkujący i moje porady mogą być błędne



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

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 5 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