RS485 praktikus tanács

Bascom, Wiring és Arduino frissítések, hátterei esetleges hibái
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

RS485 praktikus tanács

Hozzászólás Szerző: Robert »

Ez inkább ipari környezetben lehet fontos:

Az RS485 kommunikációnál a BASCOM-ból PRINT paranccsal megy ki az adat a HW UART fele, miután a kommunikációs irányt beállítottuk. Az adatfogadásnál (pl. válasz) a kommunikációs irányt megfordítjuk. És aitt a bibi. A HW UART ugyanis pufferelt, azaz lehet hogy még az _előtt_ váltunk irányt hogy az összes adat elment volna.

Ennek kivédésére két lehetőségünk van:
- várakozást építünk be a programba az adatirányváltás elé (ekkor nem lehet azonnali válasz).
- figyeljük van e még karakter az adási pufferben (megszakítással jelzi a UART)
- SW portot használunk ott (ha jól emlékszem) nincsen puffer (hacsak nem kértünk).
Avatar
prmpec
DrótVégénSzéndarab
Hozzászólások: 46
Csatlakozott: 2009. december 2. szerda, 7:00

Hozzászólás Szerző: prmpec »

Helló!

Átnyálazgattam az oldalon az RS485 leírásokat, de egy dologban még mindig nem vagyok tökéletesen biztos.

Mindenütt irányváltásról beszélünk, holott értelmezésem szerint csak az adásnál kell figyelni arra, hogy ne blokkoljuk a feleslegesen a csatornát. A vétel folyamatosan be lehet kapcsolva.

Amikor adni akarok, akkor a DE lábat magasba húzom, amikor befejeztem az adást, akkor alacsonyba.
A leírások alapján eközben a folyamatosan olvashatok is, vagyis akár azonnal visszaolvasom, saját adásomat.

Miért fontos ez a kérdés? Ha olvasom is amit kiírtam, akkor detektálhatok collosion-t. Bár erről eddig még sehol sem esett szó. De azért bizonyára számolni kell ezzel a lehetőséggel (pláne hosszú vezetékek esetén).

Jó a gondolatmenetem? Kössz,
Balázs

PS: még egy kérdés, amiben megerősítést kérnék:
- Ha jól emlékszem, akkor SN65176B és SN75176B között csak energetikai különbségek vannak.
- Az SN75172, SN75174, illetve a SN75173, SN75175 viszont más, mert azokkal csak vagy adni, vagy venni tudsz. Csak egy irányúak.
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

Az irányváltás fontos. Ha a homidon állandó vétel van, és TE adsz, akkor visszhangként visszajut a chipedbe. Így vétel előtt a soros buffert állandóan törölgetni kell.

Az adás-vétel láb egymás invertjei. Így közösítve H vagy L szinttel kezelhető az adás és a vétel kérdése, nem kell két lábat beáldozni.

Az RS485 protokokollok master-slave alapúak. Multimasteres nem nagyon van belőle. Illetve nem mikronoktrolleres környezetben. Én a BenBusz és a Modbus-t használom. Ezek készen vannak :)
Válasz küldése