Jak uP (ATMEL `51) ma wybrać układ który jest połączony do UART`a przez magistrale I2C razem z innymi urządzeniami na tej samej magistrali. Na SPI jest CS a na I2C jak to działa?
- posted
19 years ago
Jak uP (ATMEL `51) ma wybrać układ który jest połączony do UART`a przez magistrale I2C razem z innymi urządzeniami na tej samej magistrali. Na SPI jest CS a na I2C jak to działa?
Powitanko,
Do UART przez I2C? Nic nie rozumiem. Pozdroofka, Pawel Chorzempa
Ekhm... no wiesz.... ja tez nie rozumiem, dlatego pytam :)
Użytkownik Panoramix napisał:
I2c i uart to 2 różne rzeczy. Urządzenia na magistrali i2c maja adresy i po nich sa rozpoznawane, tak jak w każdym szeregowym systemie magistralowym. Scalaki gotowe z interfejsem i2c mają adres całkowicie lub częściowo zdefiniowany na sztywno. W i2c występuje pojęcie mastera (układu zarządzającego magistralą) i slave (układu podrzędnego, który nie może inicjować zdarzeń). Weź pierwsy lepszy scalak z i2c, np jakiś e2rom, poczytaj i Ci się rozjaśni.
Użytkownik "Panoramix" <panoramix[nospam]@neostrada.pl> napisał w wiadomości news:clm572$bgg$ snipped-for-privacy@nemesis.news.tpi.pl...
UART to kompletnie osobna sprawa w stosunku do I2C.
Domyslny standard UART nieposiada adresowania urzadzen i jest dedykowany do pracy w parach. Jesli chcesz pod '51 podpiac peceta przez RS232 to wykorzystujesz do tego UART + np. MAX232 i nic wiecej do tego nie podpinasz, w sensie zadnych innych ukladow na UART.
Natomiast I2C ma adresowanie, wybor ukladu z ktorym uP chce "gadac" polega na wyslaniu adresu tego ukladu do wszystkich urzadzen podpietych pod I2C, a reagowal bedzie tylko ten ktoremu przypisany zostal adres pod ktory sie odwolujemy. A dopiero pozniej polecen sterujacych.
Standard I2C pozwala na zdefiniowanie kilku adresow ukladow, a co za tym idzie mozna na jednym I2C (na dwoch zylach) podpiac kilka ukladow. Adres konkretnego ukladu jest albo calkowicie zaszyty w jego strukturze, albo czesciowo konfigurowalny poprzez dodatkowe zewnetrzne piny Ax (zaleznie od ukladu moze to byc jeden lub kilka pinow). Przykładowo, dla układu PCF8583 adres wygada nastepujaco: (zapis binarny)
101000(A0)(R/-W) gdzie - A0 to bit rownowazny z pinem A0, moze byc spiety do masy lub do plusa zasilania ukladu, a R/-W to bit adresowania odczytu lub zapisu. zalozmy ze A0 mamy spiete do masy i teraz adres _zapisu_ do ukladu PCF8583 bedzie wygladal tak: 10100000 (w hex 0xA0), a ades _odczytu_ 10100001 (hex 0xA1).Jesli w projekcie mamy kilka ukladow pracujacych na wspolnym I2C, MUSIMY, na poziomie sprzetowym, zadbac o to aby kazdy z tych ukladow mial inny adres!
Mysle, ze ten troche przydlugi opis, w czyms Ci pomoze.
K.
Nawet nie wiesz jak baaaardzo. Lubie takie długie i dokładne odpowiedzi :) thnx
ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.