=?iso-8859-2?Q?USART_i_wiele_odbiornik=F3w?=



Masz problem? Zapytaj na forum elektroda.pl

Poprzedni Następny
Wiadomość
Spis treści
From: TRS <kogo_at_nospam_to.obchodzi>
Subject: =?iso-8859-2?Q?USART_i_wiele_odbiornik=F3w?=
Date: Tue, 2 May 2006 14:58:47 +0000 (UTC)


Właśnie próbuję stworzyć jakiś system komunikacji w pewnym systemie.
Będzie się on opierał na centralnym mikrokontrolerze ATmega 128 i
różnych układach peryferyjnych. Teraz powstaje kwestia komunikacji
między tym wszystkim. Wymyśliłem sobie że najłatwiej będzie mi oprzeć
się na wbudowanym układzie USART. Idea jest taka:
sobie poszczególne układy o jakieś informacje.
Układ taki ma tą zaletę (tak mi sie wydaje) że odpadają kolizje
nadawania a wszystkie układy mogę sobie równolegle podpinać prawie do
woli.
Tylko teraz mam pytania do ludzi bardziej doświadczonych w takiej
materii. Ma to prawo wogóle działać? Czy potrzebne będą mi jakieś
układy pośredniczące? Czy mogę sobie po prostu bezpośrednio pospinać
wszystkie URATy z peryferiów (działać to będzie na niewielkiej
odległosći rzędu metra, może dwóch i zasilane będzie z tego samego
źródła zasilania)? Mam się spodziewać jakichś sporych niespodzianek
przy próbie uruchomienia takiego systemu?

Poprzedni Następny
Wiadomość
Spis treści
From: "Pszemol" <Pszemol_at_nospam_PolBox.com>
Subject: =?iso-8859-2?Q?Re:_USART_i_wiele_odbiornik=F3w?=
Date: Tue, 2 May 2006 10:15:06 -0500


"TRS" <kogo_at_nospam_to.obchodzi> wrote in message news:2fe9d2148d079055289614940a0fef47_at_nospam_silniczek.wiertarka.pl...
Tylko teraz mam pytania do ludzi bardziej doświadczonych w takiej
materii. Ma to prawo wogóle działać? Czy potrzebne będą mi jakieś
układy pośredniczące? Czy mogę sobie po prostu bezpośrednio pospinać
wszystkie URATy z peryferiów (działać to będzie na niewielkiej
odległosći rzędu metra, może dwóch i zasilane będzie z tego samego
źródła zasilania)? Mam się spodziewać jakichś sporych niespodzianek
przy próbie uruchomienia takiego systemu?

Możesz tak zrobić tylko wtedy, gdy nadajnik pracuje w trybie
open-drain a nie w trybie push-pull. Nie znam tych Twoich
"peryferiów, ale zgaduję że nadajnik pracuje w trybie push-pull,
czyli masz dwa tranzystory w stopniu wyjściowym i dla stanu H
linię masz zwartą jednym tranzystorem z Vcc a dla stanu L linia
jest zwarta z GND drugim tranzystorem. W obu przypadkach drugi
tranzystor jest wyłączony, czyli nie przewodzi.
Teraz jeśli podłączysz dwa takie nadajniki do wspólnej linii
to w stanie idle oba będą dawać na linii Vcc bo górny tranzystor
będą miały przewodzący. Jak jeden z nich zacznie nadawać to
zacznie zwierać Vcc do masy GND przez swój otwarty dolny
tranzystor i otwarty górny tranzystor kolegi. W zależności od
szybkości transmisji i długości trwania znaku (9x bit 0 w 0x00)
możesz po prostu spalić sobie nieodwracalnie wyjścia albo
dostać stany nieustalone (ani H ani L).

Jeśli w układzie masz tylko jednego mastera i reszta to slaves
to rozwiązanie jest następujące: podłączasz nadajnik ATmegi
do wszystkich odbiorników Twoich peryferiów a nadajniki tych
peryferiów podłączasz do wielowejściowej bramki AND której
wyście będzie sterować wejściem ATmegi. W rozwiązaniu tańszym
mógłbyś zastosować po prostu tranzystory w układzie open-drain
podłączone do wyjść nadajników peryferiów zamiast bramki AND
i zrealizować taką funkcję AND na tranzystorach open-drain.

Teraz już software musi zapewnić że nie zdarzy się sytuacja,
że któryś z peryferiów odezwie się wtedy, gdy gada inny...

A ta ATmega nie ma przypadkiem interfejsu I2C lub OneWire?

Poprzedni Następny
Wiadomość
Spis treści
From: TRS <kogo_at_nospam_to.obchodzi>
Subject: =?iso-8859-2?Q?Re:_USART_i_wiele_odbiornik=F3w?=
Date: Tue, 2 May 2006 15:42:59 +0000 (UTC)


Pszemol napisał(a):
Nie znam tych Twoich "peryferiów

Najczęściej będą to inne AVRy ze sprzętowym UARTem...

W rozwiązaniu tańszym
mógłbyś zastosować po prostu tranzystory w układzie open-drain
podłączone do wyjść nadajników peryferiów zamiast bramki AND
i zrealizować taką funkcję AND na tranzystorach open-drain.

Czyli jednak zachodzi potrzeba stosowania "pośrednika" :) Nie
zagłębiałem się aż tak w budowę stopni wyjściowych pinów na których
wisi UART w AVRach... Ale chyba będzie trzeba pogrzebać...

A ta ATmega nie ma przypadkiem interfejsu I2C lub OneWire?

Ma, ale chciałbym to uczynić jak najbardziej uniwersalnym rozwiązaniem
a w momencie gdy do któreś urządzenie końcowe będzie popędzane np. z
'2051 to musiał bym w nim implementowć programowo I2C czy 1wire. A
UARTa mam w większości popularnych procesorów dostępnego w formie
sprzętowej. IMHO duża wygoda...

Poprzedni Następny
Wiadomość
Spis treści
From: "Pszemol" <Pszemol_at_nospam_PolBox.com>
Subject: =?iso-8859-2?Q?Re:_USART_i_wiele_odbiornik=F3w?=
Date: Tue, 2 May 2006 11:21:49 -0500


"TRS" <kogo_at_nospam_to.obchodzi> wrote in message news:724acaad068652c1ccf25dbd68a2573a_at_nospam_silniczek.wiertarka.pl...
Ma, ale chciałbym to uczynić jak najbardziej uniwersalnym rozwiązaniem
a w momencie gdy do któreś urządzenie końcowe będzie popędzane np. z
'2051 to musiał bym w nim implementowć programowo I2C czy 1wire. A
UARTa mam w większości popularnych procesorów dostępnego w formie
sprzętowej. IMHO duża wygoda...

No to pozostaje Ci jedna duża bramka AND lub te tranzystorki.
Ale rozwiązanie z tranzystorkami jest gorsze...
Przy tranzystorkach nie zapomnij też o tym, że jeden stopień
odwraca polaryzację sygnału, więc po tych kilku open drain
daj tuż przed wejściem RX ATmegi jeszcze jeden tranzystor
odwracający spowrotem polaryzację sygnału tak, aby w stanie
"idle" poziom napięcia na wejściu TTL uarta był wysoki...
Dobierając oporniki nie zapomnij też o stałej RC wpływającej
na szybkość przełączania jeśli masz duże prędkości transmisji.
Najbezpieczniej będzie jednak dodać wielowejściową brameczkę
AND i będzie z głowy. Najlepiej kup taką co ma kilka zapasowych
wejść na wypadek gdybyś kiedyś rozbudował swój układ i te
niewykorzystane wejścia bramki podciągnij rezystorem do Vcc.


Poprzedni Następny
Wiadomość
Spis treści
Date: Fri, 05 May 2006 10:37:29 +0200
From: =?UTF-8?B?UmFkb3PFgmF3IEtvcnplbmlld3NraQ==?=
Subject: Re: USART i wiele =?UTF-8?B?b2RiaW9ybmlrw7N3?=


Pszemol napisał(a):
No to pozostaje Ci jedna duĹźa bramka AND lub te tranzystorki.
Raczej OR, chyba Ĺźe nadajesz w logice odwrotnej.

pozdr

Radek

Poprzedni Następny
Wiadomość
Spis treści
From: "Pszemol" <Pszemol_at_nospam_PolBox.com>
Subject: =?UTF-8?Q?Re:_USART_i_wiele_odbiornik=C3=B3w?=
Date: Fri, 5 May 2006 06:52:30 -0500


"Radosław Korzeniewski" <rkorzeniewski_at_nospam_gmail.com> wrote in message news:445b093d$0$22596$f69f905_at_nospam_mamut2.aster.pl...
Pszemol napisał(a):
No to pozostaje Ci jedna duĹźa bramka AND lub te tranzystorki.
Raczej OR, chyba Ĺźe nadajesz w logice odwrotnej.

UART wychodzący z CPU czyli posiadający poziomy TTL (Gnd/Vcc)
ma polaryzację taką, że w stanie idle daje Vdd, bit stopu to Gnd
potem bity danych odpowiadają wprost poziomom napięcia:
leci po kolei D0, D1.... D7, bit parzystości i bit stopu równy jest
stanowi Idle, czyli Vdd.
Bramka AND działa tak, że jej wyjście jest w stanie H gdy WSZYSTKIE
wejścia sa w stanie H. A więc UART ATmegi będzie w stanie idle
gdy wszystkie uarty peryferiów bedą w stanie idle. Jeśli choć jeden
uart zacznie nadawać to zmieni stan wejścia bramki AND i uart
ATmegi zobaczy to jako bit startu i bity danych...


Poprzedni Następny
Wiadomość
Spis treści
From: "dziadek Ben" <ja44beztego_at_nospam_op.pl>
Subject: =?iso-8859-2?Q?Re:_USART_i_wiele_odbiornik=F3w?=
Date: Tue, 2 May 2006 18:33:46 +0200


...Wymyśliłem sobie że najłatwiej będzie mi oprzeć
się na wbudowanym układzie USART. Idea jest taka:
- ATmega pracuje jako centralny procesor i w razie potrzeby odpytuje
sobie poszczególne układy o jakieś informacje.
- układy peryferyjne sobie tylko słuchają

Nie znam ATmegi: w moim układzie z 51-kami, gdzie centralny procek odpytuje
pozostałe 128 procków przeszedłem po prostu na RS-485 - zero problemów!
--
dziadek Ben

[z adresu wytnij co trzeba]


Poprzedni Następny
Wiadomość
Spis treści
From: "Pawel \"O'Pajak\"" <opajak_at_nospam_gazeta.pl>
Subject: Re: USART i wiele =?ISO-8859-2?Q?odbiornik=F3w?=
Date: Tue, 02 May 2006 21:05:13 +0200


Powitanko,

Nie znam ATmegi: w moim układzie z 51-kami, gdzie centralny procek
odpytuje pozostałe 128 procków przeszedłem po prostu na RS-485 - zero
problemów!

A na jakiej kosci?

Pozdroofka,
Pawel Chorzempa
--
"-Tato, po czym poznać małą szkodliwość społeczną?
-Po wielkiej szkodzie prywatnej" (kopyrajt: S. Mrożek)
******* >>> !!! UWAGA: ODPOWIADAM TYLKO NA MAILE ->:
> pavel(ten_smieszny_znaczek)klub.chip.pl <<<<*******

Poprzedni Następny
Wiadomość
Spis treści
From: "dziadek Ben" <ja44beztego_at_nospam_op.pl>
Subject: =?iso-8859-2?Q?Re:_USART_i_wiele_odbiornik=F3w?=
Date: Wed, 3 May 2006 12:53:30 +0200


Nie znam ATmegi: w moim układzie z 51-kami, gdzie centralny procek
odpytuje pozostałe 128 procków przeszedłem po prostu na RS-485 - zero
problemów!

A na jakiej kosci?

MAX3075
--
dziadek Ben
[z adresu wytnij co trzeba]


Poprzedni Następny
Wiadomość
Spis treści
From: "Pawel \"O'Pajak\"" <opajak_at_nospam_gazeta.pl>
Subject: Re: USART i wiele =?ISO-8859-2?Q?odbiornik=F3w?=
Date: Wed, 03 May 2006 15:02:02 +0200


Powitanko,

MAX3075

Dzieki, up to 256 receivers, niezla kostka:-)

Pozdroofka,
Pawel Chorzempa
--
"-Tato, po czym poznać małą szkodliwość społeczną?
-Po wielkiej szkodzie prywatnej" (kopyrajt: S. Mrożek)
******* >>> !!! UWAGA: ODPOWIADAM TYLKO NA MAILE ->:
> pavel(ten_smieszny_znaczek)klub.chip.pl <<<<*******