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



Teraz jest 29 mar 2024, o 16:04


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 8 ] 
Autor Wiadomość
 Tytuł: I2C problem
PostNapisane: 14 maja 2017, o 09:09 
Offline
Użytkownik

Dołączył(a): 10 kwi 2014
Posty: 141
Lokalizacja: 3-miasto
Pomógł: 0

Dzień Dobry :-)

Mam taki problem robie sobie ćwiczonko z bluebooka "sprzętowa obsługa I2C" str.297- na atmedze 88 czyli piewsza komunikacja z zegarkiem RTC.
Problem w tym ze program mi sie zawiesza kiedy próbuje dokonać pierwszego zapisu do PCF8583 ( ustawienie czasu)

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


za pomocą diody doszedłem że problemem jest funkcja TWI_stop() która kończy funkcję TWI_write_buf

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


mianowicie w tej funkcji jest pętla oczekująca while której warunkiem jest aby z niej "wyjśc" wyzerowanie bitu TWSTO
ten bit powinien wyzerować sie automatycznie po zakończeniu procedury ale nie chce pytanie DLACZEGO???
Z noty katalogowej wyczytałem że jesli mikrokontroler działa w jakiś sposób w trybie SLAVE to ten bit działa troche inaczej ale zabardzo nie rozumiem jak..

opis bitu z noty
• Bit 4 – TWSTO: TWI STOP Condition Bit
Writing the TWSTO bit to one in Master mode will generate a STOP condition on the 2-wire
Serial Bus. When the STOP condition is executed on the bus, the TWSTO bit is cleared automatically.
In Slave mode, setting the TWSTO bit can be used to recover from an error condition.
This will not generate a STOP condition, but the TWI returns to a well-defined unaddressed
Slave mode and releases the SCL and SDA lines to a high impedance state.


Pytanie co sie dzieje że tak się dzieje ? :-)

Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: I2C problem
PostNapisane: 14 maja 2017, o 18:51 
Offline
Użytkownik
Avatar użytkownika

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

Pokaż jak inicjalizujesz bufor i jaki adres masz ustawiony dla PCF-a
Czy udaje Ci się odczytać coś ze scalaka?
Czy na pinie INT z układu masz przebieg o f=1Hz?

_________________
Pomóżcie mi stanąć na nogi



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: I2C problem
PostNapisane: 14 maja 2017, o 19:21 
Offline
Moderator
Avatar użytkownika

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

Mac napisał(a):
Pytanie co sie dzieje że tak się dzieje ?

Poza tym o co słusznie zapytał kolega wyżej, jaką częstotliwością taktujesz procka?

_________________
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  
 Tytuł: Re: I2C problem
PostNapisane: 14 maja 2017, o 20:44 
Offline
Użytkownik

Dołączył(a): 10 kwi 2014
Posty: 141
Lokalizacja: 3-miasto
Pomógł: 0

juz odpowiadam:

-adres: PCF8583_ADDR 0xA0 // gdy A1 --> GND
- uint8_t bufor[4]; inicjalizacja bufora pokazana wyżej w kodzie.
- nie odczytuje nic z scalaka bo na początku przy zapisie juz mi sie zwiesza program
- częstotliwośc na int0 podam jutro rano
- taktuje 8Mhz



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: I2C problem
PostNapisane: 15 maja 2017, o 06:49 
Offline
Użytkownik
Avatar użytkownika

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

Podłącz do pinu INT scalaka diodę led anodą do pinu a katodą przez rezystor np. 1K do masy.
Dioda powinna migać co sekundę. Będzie wiadomo że scalak żyje.
Linie SDA i SCL masz oczywiście podciągnięte do Vcc? (rezystory 4,7K)


Autor postu otrzymał pochwałę

_________________
Pomóżcie mi stanąć na nogi



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: I2C problem
PostNapisane: 15 maja 2017, o 21:17 
Offline
Użytkownik

Dołączył(a): 10 kwi 2014
Posty: 141
Lokalizacja: 3-miasto
Pomógł: 0

dioda delikatnie świeci ale daje sie zauwazyc szybkie mignięcie co ok. sekunde.

O ja..... zapomniałem o podciągnięciu 4,7 K do Vcc

------------------------ [ Dodano po: 20 minutach ]

Dzięki - juz wszystko ruszyło .
jak się jeszcze bardziej wgłębie w i2c to pewnie sie pojawią jeszcze jakies pytanka



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: I2C problem
PostNapisane: 15 maja 2017, o 22:18 
Offline
Użytkownik
Avatar użytkownika

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

;) pisz śmiało zawsze ktoś pomoże.
Z rezystorami na SDA i SCL trzeba uważać szczególnie jak na szynie masz kilka układów bo niektóre scalaki mają już wewnętrzne podciąganie do Vcc (np. czujnik burzy AS3935 lub moduły czujników ciśnienia, wilgotności itp.)
Wtedy wypadkowa rezystancja będzie dużo niższa niż zalecana i mogą być kłopoty np. z szybkością na szynie danych

_________________
Pomóżcie mi stanąć na nogi



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: I2C problem
PostNapisane: 16 maja 2017, o 11:28 
Offline
Użytkownik

Dołączył(a): 10 kwi 2014
Posty: 141
Lokalizacja: 3-miasto
Pomógł: 0

Ogólnie chciałbym opanować ten fajny układzie aby móc z niego swobodnie korzystać czyli ustawienia alarmu i odczyty ,jakie są opcje rejestru kontrolnego itd. Ale oczywiście konkretne pytania padną jak już wezmę się za kod . Pozdrawiam



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

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:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO