Stránka 1 z 3

AVR USART multiprocesorová komunikace

Napsal: 19 úno 2013, 14:03
od sewerman_cz
Při procházení možností propojení více mcu jsem narazil na USART multiprocesorová komunikace.
Má s tím někdo zkušenosti? Případně nevíte někdo o knihovnách pro avr?
Princip jsem asi pochopil Rx z master čipu jde na všechny Tx slave čipů, Tx master na slave Rx.
Zajímalo by mne jestli může v takovéto konfiguraci vyvolat komunikaci slave mcu nebo zda ji vždy musí vyvolat master mcu?

Napsal: 19 úno 2013, 15:57
od Crifodo
když komunikaci vyvolá slave, tak už to asi není slave?

Napsal: 19 úno 2013, 16:04
od forbidden
Pokud bude na sběrnici víc jak dvě zařízení, jedno z nich musí být master, který bude komunikaci zahajovat. Jinak hrozí, že dva začnou vysílat zaráz a komunikace nebude fungovat. V podstatě si můžeš napsat vlastní jednoduchej komunikační protokol podle svých potřeb, klidně i přes USART.

Napsal: 19 úno 2013, 16:12
od Panda38
Při použití I2C může zahájit komunikaci kdokoliv: http://cs.wikipedia.org/wiki/I%C2%B2C

Napsal: 19 úno 2013, 16:35
od Andrea
A od kdy? Na I2C zahajuje komunikaci master.

Napsal: 19 úno 2013, 16:57
od Panda38
I2C používá detekci kolizí - může zahájit vysílání když je sběrnice v klidovém stavu, ale když během vysílání zjistí kolizi datového bitu, vysílání přeruší.

Napsal: 19 úno 2013, 16:58
od Andrea
Ale zahájit ji může jen master.

Napsal: 19 úno 2013, 17:26
od WLAB
Nejak se z toho vyratil ten UART......

To je otazka, co tou multiprocesorovou UART komunikaci myslely ty materialy, ktere jsi videl. Klidne to muze byt "ring" TX-RX-TX..., nebo sbernice (treba rs485) v rezimu master-slave, token-ring (multimaster), dovedu si predstavit i jakousi obdobu "CSMA/CD".... Ale nejspis se bude jednat o "9-bitovou" komunikaci, kdy se nastaveny 9 bit pouziva jako SOF znacka nebo jako oznacovac adresnich (popr. ID) dat na sbernici. Nektere MCU s devatym bitem umi specialne nakladat (treba vyvolani preruseni jen tehdy, je-li nastaven) atd.

Napsal: 19 úno 2013, 18:31
od AB1
Princip jsem asi pochopil Rx z master čipu jde na všechny Tx slave čipů
Propojit galvanicky výstupy Tx asi není moc dobré.

Napsal: 19 úno 2013, 18:58
od sewerman_cz
Měl jsem na mysli tu 9-bitovou komunikaci, ale nikde jsem nenašel nic víc než to co je napsána v DS.
Master by měl odeslat v prvním přenosu adresu požadovaného zařízení (9bit v log1) a poté už komunikuje pouze s mcu se spravnou adresou (9 bit v log 0)
V podstatě všechny slave čekají dokud jim nepříjde jejich adresa. Všechnu ostatní komunikaci vypouští.

Základ, ale byl že jsem hledal nějakou sběrnici po které by mohlo jednoduše komunikovat několik mcu a každý z nich by mohl tu komunikaci zahájit.

Napsal: 19 úno 2013, 19:24
od Andrea
Tak použij třeba RS-485.

Napsal: 19 úno 2013, 19:26
od sewerman_cz
A nějaké nakopnutí k RS-485 by bylo?

Napsal: 19 úno 2013, 19:32
od Andrea
Google nefunguje?

Napsal: 19 úno 2013, 19:33
od Panda38
Tam ale také není podpora aby mohl zahájit kdokoliv komunikaci.

Andreo a když to I2C principielně podporuje, myslíš že by nešlo použít SPI rozhraní s otevřeným kolektorem a vysílat kdykoliv, obejít se bez spouštění masterem?

Napsal: 19 úno 2013, 19:41
od sewerman_cz
Google funguje, ale zatím se mi nepodařilo najít nějaký příklad s více mcu.