Jak wybierać układ na I2C?

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?

Reply to
Panoramix
Loading thread data ...

Powitanko,

Do UART przez I2C? Nic nie rozumiem. Pozdroofka, Pawel Chorzempa

Reply to
Pawel "O'Pajak

Ekhm... no wiesz.... ja tez nie rozumiem, dlatego pytam :)

Reply to
Panoramix

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.

Reply to
A.Grodecki

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.

Reply to
invalid unparseable

Nawet nie wiesz jak baaaardzo. Lubie takie długie i dokładne odpowiedzi :) thnx

Reply to
Panoramix

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.