01-22-2018, 09:08 AM
Makso,
problem moze da bude kada spajas dva arudina preko hardverskog uart-a, a napajas ga preko USB-a. I inace moze da bude problem. Ove plocice nisu predvidjene da koriste hardverske uart-e za komunikaciju sa nekim drugim uredjajima. Razlog je sledeci. Tvoj RX pin je ulazni pin u MCU na koji je povezan TX pin od USB kontrolera. Ako je uredjaj napojen preko USB-a, onda se u neaktivnom stanju na izlazu iz USB kontrolera nalazi logicka 1. Ako jos povezes i drugi uredjaj (TX pin drugog uredjaja) na ovaj RX pin, onda moze da dodje do pregorevanja, jer si kratkospojio dva izlaza (TX izlaz iz USB kontrolera i TX izlaz od drugog uredjaja). Ako jedan od ova dva uredjaja krene da salje podatke, prvo ide start bit koji je definisan logickom nulom, pitanje je sta ce stvarno biti na toj liniji, posto jedan pin drzi logicku 1, a drugi logicku 0. To je kratak spoj od VCC ka GND i pitanje je sta se tu stvarno desava.
UART se koristi samo za vezu izmedju dva uredjaja, tj. TX pin jednog ide na RX pin drugog i obrnuto. Kada bi postojalo stanje visoke impedanse na USB kontroleru, stvar bi bila drugacija i moglo bi da se radi normalno. Projektanti arduina ocigledno nisu razmisljali kako treba. Trebali su da stave tri-state bafere na UART linijama i da omoguce da MCU kontrolise te drajvere, tj. da iskljucuje drajvere ka USB-u ako se koristi uart za vezu sa drugim uredjajima i obrnuto.
Zbog toga nemas nikakvo kasnjenje kada radis sa softverskim uarto-om, posto su ta dva pina koja koristis slobodna.
problem moze da bude kada spajas dva arudina preko hardverskog uart-a, a napajas ga preko USB-a. I inace moze da bude problem. Ove plocice nisu predvidjene da koriste hardverske uart-e za komunikaciju sa nekim drugim uredjajima. Razlog je sledeci. Tvoj RX pin je ulazni pin u MCU na koji je povezan TX pin od USB kontrolera. Ako je uredjaj napojen preko USB-a, onda se u neaktivnom stanju na izlazu iz USB kontrolera nalazi logicka 1. Ako jos povezes i drugi uredjaj (TX pin drugog uredjaja) na ovaj RX pin, onda moze da dodje do pregorevanja, jer si kratkospojio dva izlaza (TX izlaz iz USB kontrolera i TX izlaz od drugog uredjaja). Ako jedan od ova dva uredjaja krene da salje podatke, prvo ide start bit koji je definisan logickom nulom, pitanje je sta ce stvarno biti na toj liniji, posto jedan pin drzi logicku 1, a drugi logicku 0. To je kratak spoj od VCC ka GND i pitanje je sta se tu stvarno desava.
UART se koristi samo za vezu izmedju dva uredjaja, tj. TX pin jednog ide na RX pin drugog i obrnuto. Kada bi postojalo stanje visoke impedanse na USB kontroleru, stvar bi bila drugacija i moglo bi da se radi normalno. Projektanti arduina ocigledno nisu razmisljali kako treba. Trebali su da stave tri-state bafere na UART linijama i da omoguce da MCU kontrolise te drajvere, tj. da iskljucuje drajvere ka USB-u ako se koristi uart za vezu sa drugim uredjajima i obrnuto.
Zbog toga nemas nikakvo kasnjenje kada radis sa softverskim uarto-om, posto su ta dva pina koja koristis slobodna.