siec AVR'ow w protokole I2C

Witam ;)!

Do mojego robota potrzebuje zorganicowac siec zlozona z mastera jako Amtega8 i

3-ech slave'ow tez jako Atmega8. Chce to zrobic na protokole I2C i mam pyatnie czy musze zastosowac uklad PCF8584 jako kontrolera magistarli I2C w celu przydzielania adresow poszcelognym slave'om (u mnie pozostalym prockom) czy mozna to zrobic jakos inaczej?

Zamiast projektu takiej sieci moge dokonac zmiane typu procesona na HC11. I z lad moje pytanie czy jak jest juz srednio zawansowanym w uC z dziedzimy AVR to czy latwo przejsc na motorole (gdzie jezyk programowania to C)?

Pozdrawiam, Rafal k.

Reply to
ToR
Loading thread data ...
Reply to
invalid unparseable

przeciez mzoesz adres nadac na stape lub ustawic go za pomcoa z worek na porcie procka. Sa procki ze sprzetowym I2C Slave

a to motorli nie da sie programowac w ASM? lub AVR w C?

Reply to
Greg(G.Kasprowicz

ToR napisał(a):

Jeszcze raz to przemyśl i zastanów się, czy I2C jest najlepszym rozwiązaniem. Wszystko zależy od tego, jakich transferów oczekujesz i iloma drutami chcesz połączyć procesory.

Może się okazać, że w twoim zastosowaniu będzie lepszy np. interfejs SPI. Do każdego układu slave trzeba doprowadzić wspólne linie: wejście danych, wyjście danych, zegar oraz dodatkowo do każdego slave'a indywidualny chip select. Czyli po stronie mastera da to 6 linii a w slave'ach po 4. A teraz zalety:

- komunikacja dupleksowa (wysłanie bajtu równocześnie z odebraniem ze względu na rozdzielone linie danych w obu kierunkach)

- niewyobrażalnie większe transfery (zegar I2C = 100 kHz lub 400 kHz; SPI = ile da fabryka, np. 8 MHz dla ATmegi8 taktowanej na 16 MHz)

- brak kłopotów z przełączaniem kierunku portów, a co za tym idzie niezbędnych opóźnień do rozładowania pojemności na liniach (każda linia ma na stałe jeden kierunek)

- sprzętowa obsługa i master, i slave w procesorze ATmega8

Jedyną zaletą I2C w tym konkretnym zastosowaniu są wyłącznie tylko 2 druty do pociągnięcia do każdego scalaka. Poza tym widzę same wady.

Reply to
Adam Dybkowski
Reply to
invalid unparseable

Hmm zgadzam ze ze I2C ma mnustwo wad, ale w robocie zamierzam wykorzystanie zawnetrznych pamieci I2C, ktore zamiarzam jako calosc podlaczyc do systemu.

Ale mam tez inny pomysl,bo zauwazylem ze Atmega8 ma Tryb:

Multi-processor Communication Mode.

Co sadzicie o jego zastosowaniu? Bo jesli chodzi o linie to dalej sa dwie ;).Ale mam pytanie bo z tego co pisza w dokumentacji to:

The Multi-processor Communication mode enables several Slave MCUs to receive datafrom a Master MCU.

I z tad moje pytanie czy komunikacja dziala w dwie strony (czyli Master-Slave i Slave-Master) czy tyko Master-Slave?

Pozdarwiam, Rafal k.

Reply to
ToR

Hmm ja potrzebuje 3 slave'y ale jeszcze pewnie cos dojdzie tak wiec golnie bedzie 5-6 ukladow slave ;).Hmm latwa jest implementacja transmisji SPI?

Pozdrawiam, Rafal k.

Reply to
ToR

RW napisał(a):

Heh, to skutek uboczny zabaw z wget-ssl. Już naprawione. :) Pokazywane było przekierowanie strony logowania mBanku, żadne informacje zwrotne do mnie nie trafiały. Testowałem to przy tworzeniu skryptu automatycznie sprawdzającego, ile kasy mam na koncie.

Dla zainteresowanych całkiem off-topic'owo skrypt zamieszczam w linku poniżej. Jest to plik BAT działający pod Windows XP (łatwo da się przerobić pod Linuxa), wymaga wget(ssl) i [g]awk. Z oczywistych względów numer użytkownika i hasło nie są zapisane na stałe tylko trzeba je podać przy uruchomieniu:

formatting link
łanie: mbank.bat userid hasło

Reply to
Adam Dybkowski

Mnie sie wydaje, ze w obie strony. Nadaje ten kto pierwszy dopnie sie do magistrali (sygnal start) - ten jest masterm. W tej konfiguracji kazdy moze byc masterem i slavem. Taka jest specyfika I2C.

Reply to
invalid unparseable

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.