Aktyw Forum

Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.

Sprawdź punkty Zarejestruj się

komunikacja mikrokontrolerów i2c

zibi11
-
-
Posty:27
Rejestracja:20 paź 2003, o 17:16
Lokalizacja:net
komunikacja mikrokontrolerów i2c

Postautor: zibi11 » 10 lut 2007, o 22:07

Witajcie może ma kto pomysł na komunikacje między mikrokontrolerami i2c
jak rozwiązać probler adresu układów??
może jakiś przykład???

radzio
Moderator
Moderator
Posty:967
Rejestracja:13 maja 2003, o 10:33
Lokalizacja:Sosnowiec
Kontaktowanie:

Re: komunikacja mikrokontrolerów i2c

Postautor: radzio » 10 lut 2007, o 22:23

jak rozwiązać problem adresu układów??
Ale jaki to problem?
Jaki stosujesz mikrokontroler?
Dlaczego podajesz tak mało danych?

MCS Electronics udostępnia bibliotekę do realizacji funkcji układu podrzędnego na I2C, ale z tego co wiem to jest płatna. Jeśli stosujesz mikrokontroler który posiada sprzętowy układ TWI to możesz samodzielnie napisać odpowiednie funkcje.

zibi11
-
-
Posty:27
Rejestracja:20 paź 2003, o 17:16
Lokalizacja:net

Postautor: zibi11 » 10 lut 2007, o 23:55

mam atmege 8515 jako master i dwie attiny jako slave
jak to adresować np pcfy maja sprzętowe adresy a mikrokontroler??
jakich stosować funkcji??

MDz
-
-
Posty:365
Rejestracja:29 mar 2003, o 13:35
Lokalizacja:Warszawa
Kontaktowanie:

Postautor: MDz » 11 lut 2007, o 01:54

mam atmege 8515 jako master i dwie attiny jako slave
Sprzętowe realizacje TWI (czyli I2C wg. atmelowskiej terminologii) w ATMega i ATTiny różnią się zasadniczo.

W ATmega masz do dyspozycji autonomiczny blok TWI. Do rejestru TWAR wpisujesz mu arbitralnie ustalony adres i2c-slave i spokojnie czekasz na przerwanie informujące, że masz do odebrania dane przysłane do tego właśnie slave-a.

Natomiast TWI w ATTiny jest obsługiwany przez USI (Universal Serial Interface) tzn. uproszczony interfejs szeregowy (wspólny dla SPI i I2C) składający się tak naprawdę tylko z dwóch bloków:
1) rejestru przesuwnego zamieniającego równoległe bajty na strumień bitów i vice versa (Serial In / Paralel In-Out / serial Out)
2) "Two Wire clock control unit" złożonego z 4-bitowego licznika i dosyć prostego automatu potrafiących (w trybie i2c-slave):
- rozpoznać sekwencje START i STOP na magistrali,
- odebrać do rejestru (lub z niego wysłać) 8-bitowe słowo danych
- odliczyć odpowiednią liczbę zboczy SCL taktujących tenże rejestr
- przytrzymać SCL w stanie "L" celem chwilowego wstrzymania transmisji,
- wygenerować dwa rodzaje przerwań.

Znaczniki owych przerwań to:
- USISIF (Start Condition Interrupt Flag) ustawiany po rozpoznaniu sekwencji START na magistrali I2C. Przerwanie to po pierwsze może obudzić uC z trybu obniżonego poboru mocy a po drugie daje programowi sygnał do dokończenia bieżących operacji, przygotowania się do odbioru i zwolnienia (przytrzymanej przez sprzęt) linii SCL zezwalające na dokończenie transmisji.

- USIOIF (Counter Overflow Interrupt Flag) ustawiany po odebraniu wszystkich 8 bitów słowa danych. USIOIF jest ustawiany po każdym słowie danych jakie przeturlało się po magistrali.

Zatem to do Twojego programu należy:
- wybranie sobie adresu i2c-slave jakim będziesz się posługiwał (nazwijmy go myaddr),
- śledzenie ruchu na magistrali, porównywanie odbieranych słów adresowych z wartością myaddr i na tej podstawie przełączanie się między trybami: rozadresowany, zaadresowany do odbioru, zaadresowany do nadawania
- obsługa transmisji w poszczególnych trybach, a w szczególności: konsumpcja danych odebranych, dostarczanie danych do wysłania a także programowa obsługa potwierdzeń ACK/NACK.

Przeczytaj _dokładnie_ sekwencję operacji opisaną na str. 145 PDFa do ATTiny2313:
http://www.atmel.com/dyn/resources/prod ... oc2543.pdf
(Fig.64 + 6 punktowy opis poniżej)

Czy da się to zrobić w Bascomie?
Jeżeli Bascom pozwala na zapis/odczyt rejestrów SFR oraz napisanie własnej obsługi przerwań to da się na pewno. Tyle, że na piechotę - tzn. z PDFem do ATTiny w ręku.

Ale czy Bascom zawiera jakieś gotowe procedury obsługujące i2c-slave z wykorzystaniem hardware-u zaszytego w ATTiny? Nie mam pojęcia.

--
MDz

Wróć do „Projektowanie PCB, programy EDA, CAD, narzędziowe”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 25 gości