Klidně se to zmastí 2x i vícekrát úplně stejně a nic se nepozná. Už jsem to zažil na DTMF přenosu. Zabepečovací CRC je určitě lepší a méně náročné na přenosovou kapacitu než opakování přenosu.termit256 píše:Jen posli bajt/paket dvakrat za sebou. Prijimaci strana vyhodnoti jestli jsou oba stejne a pokud ne, posle povel k opakovani prenosu.
Komunikace více PIC přes izolovanou sběrnici
Moderátor: Moderátoři
• Master Synchronous Serial Port (MSSP) with SPI
and I2CTM with:
- 7-bit address masking
- SMBus/PMBusTM compatibility
• Enhanced Universal Synchronous Asynchronous
Receiver Transmitter (EUSART) module:
- RS-232, RS-485 and LIN compatible
- Auto-Baud Detect
Ale furt přemýšlím nad tou komunikací.
Jestli sem to dobře vše pochopil, tak 5V UART si sice můžu oddělit obyčejnejma optočlenama, ale už nemůžu spojit víc zařízení.
Potřeboval bych 1 master a 16 slave.
Na rychlosti opravdu nezáleží. Budu posílat číslo z ADC převodníku. Tj. 0-1024 a pokud master přijme od všech 16 slave data jednou za dvě vteřiny, tak to stačí.
http://www.embedded.com/design/prototyp ... he-I2C-Bus
- ross4435897
- Příspěvky: 426
- Registrován: 10 lis 2009, 00:00
- Bydliště: Brno
One-wire je podle me taky pouzitelny ...
Rx na "slave" MCU může být klidně jen obyčejný pin, a čekat jen na stav "log0", který odstartuje vysílání směrem "slave"->"master".
Pozn.1. na kolektoru PNP jsou pospojovány všechny anody...
Edit.2. výhodou tohoto řešení je, že "slave" může být např. bateriově napájený a většinu života v "power down" režimu. Vzbudit se, vyslat a zase usnout...
- Přílohy
-
160412_optoizolator16.jpg- (44.23 KiB) Staženo 98 x
Co použít I2C, ale HW (nějakým XOR) mu rozdělit datovou sběrnici na dvě jednosměrné?
EDIT: ad frpr666 sériovým řazením podřízených obvodů by se x-násobně (16, 127 nebo 256) snížila spolehlivost zařízení.
(Nemusí mít platnou revizi.)
(Celkově budu raději, když se to obejde bez papírů.)
- Přílohy
-
160412_optoizolator16b.jpg- (40.08 KiB) Staženo 93 x
Nakonec sem se rozhodl pro dvě jednostranné 1wire sběrnice. Na jedné z mástra odešlu adresu a na druhé budu čekat na odpověď od osloveného procesoru.
Přincip je takový, že na RX bude stále log 1 a při vysílání jí bude optočlen stahovat do log 0. Tudíž budu moci mít více procesorů na jedné sběrnici, aniž by se navzájem ovlivňovali.
Mám zapojení správně?
- Přílohy
-
oddelovac.png- (18.7 KiB) Staženo 124 x
Jsou to vlastně balancéry, které po dosažení určitého napětí sepnou přes mosfet výkonové odpory. Když už to řídím přes PIC, tak jako doplňkovou funkci chci mít možnost si v budoucnu vyčítat napětí jednotlivých článků do nadřazeného systému k archivaci. Nebo přes něj nastavovat balanční napětí. Tak proto mi ani moc nezáleží na rychlosti komunikace.
S tim napájením 16x led optočlenu je to dobrá připomínka, to jsem si vůbec neuvědomil. Takže u mástra to budu muset posílit nějakým tranzistorem.