RS-232 leválasztása Optocsatolóval
RS-232 leválasztása Optocsatolóval
Sziasztok!
Van egy eszközöm, ami Data in és Data out vonalakkal rendelkezik, de ezek invertáltak.
Szeretném ezt egy Arduino uno panelhez kötni az RX, TX vonalakon.
Illetve a két rendszer közé optocsatolós elválasztást is szeretnék tenni. Ez a beiktatott elem invertálást okoz, mert a kimeneti tranzisztort felhúzom a tápra egy ellenálláson keresztül.
Tudhat ez így működni?
Elvileg mivel invertált a kimenete az eszköznek, ezért kell is a plusz invertálás? Vagy megoldható ez programból?
Van egy eszközöm, ami Data in és Data out vonalakkal rendelkezik, de ezek invertáltak.
Szeretném ezt egy Arduino uno panelhez kötni az RX, TX vonalakon.
Illetve a két rendszer közé optocsatolós elválasztást is szeretnék tenni. Ez a beiktatott elem invertálást okoz, mert a kimeneti tranzisztort felhúzom a tápra egy ellenálláson keresztül.
Tudhat ez így működni?
Elvileg mivel invertált a kimenete az eszköznek, ezért kell is a plusz invertálás? Vagy megoldható ez programból?
Re: RS-232 leválasztása Optocsatolóval
Ha opto, akkor nem mindegy???
A LED-jet hajthatod alulról vagy felülről, ahogy tetszik, vagy invertál,
vagy nem. Az RS232 túloldalán azért gondoskodni kell valami tápról
ami lehet a handshake jelek megfelelő szintreállításával pl.
JAni
A LED-jet hajthatod alulról vagy felülről, ahogy tetszik, vagy invertál,
vagy nem. Az RS232 túloldalán azért gondoskodni kell valami tápról
ami lehet a handshake jelek megfelelő szintreállításával pl.
JAni
Re: RS-232 leválasztása Optocsatolóval
Az eszközöd Tx/Rx kivezetése TTL (0/5V) vagy RS232 (+/-9V) szintű?
Ez még bonyolíthatja a feladatot (az invertált jelből gondolom).
A LED-nek mindegy hogy a GND vagy a Vcc a közös. Így az invertálás/neminvertálás megoldott....
A soros sebesség miatt az opto sem mindegy! Pl. a TL191-es az 9600 bps felett nem működik! (~10 kHz jel)
Ez még bonyolíthatja a feladatot (az invertált jelből gondolom).
A LED-nek mindegy hogy a GND vagy a Vcc a közös. Így az invertálás/neminvertálás megoldott....
A soros sebesség miatt az opto sem mindegy! Pl. a TL191-es az 9600 bps felett nem működik! (~10 kHz jel)
Re: RS-232 leválasztása Optocsatolóval
A sebesség nem nagy kb. 512/1200baud.
Mindkét rendszer 5V-os. Csak ez egyik nem galvanikusan leválasztott, ezért szeretném köztük az optocsatolást használni.
Azt értem, hogy lehet invertáló és nem invertáló módon bekötni az optocsatolást.
Már csak az a kérdés, hogy ha az egyik oldalon a vonalak negáltak, akkor amit csatolni akarok hozzá, abban kell-e fordítanom?
Nekem az lenne a logikus, hogy kell. De lehet, hogy ez valahogy le van kezelve az chip-ben?
Ha kell, akkor HW-ból kell, vagy lehet SW-ből is (BASCOM hogyan?)?
Mindkét rendszer 5V-os. Csak ez egyik nem galvanikusan leválasztott, ezért szeretném köztük az optocsatolást használni.
Azt értem, hogy lehet invertáló és nem invertáló módon bekötni az optocsatolást.
Már csak az a kérdés, hogy ha az egyik oldalon a vonalak negáltak, akkor amit csatolni akarok hozzá, abban kell-e fordítanom?
Nekem az lenne a logikus, hogy kell. De lehet, hogy ez valahogy le van kezelve az chip-ben?
Ha kell, akkor HW-ból kell, vagy lehet SW-ből is (BASCOM hogyan?)?
Re: RS-232 leválasztása Optocsatolóval
pl.:
A clockpol a polaritás!
Azaz SW/HW-ből is megoldhatod
Persze a Tx és Rx vonalon _azonos_ módon!
Egyik invert, másik nem : nem járható út!
Alap:
$baud=9600
a 9600,n,8,1-nek felel meg:
parity:none
stopbit:1
databit:8
clockpol: 0
Kód: Egész kijelölése
$baud = 9600
CONFIG COMx = baud , synchrone=0|1,parity=none|disabled|even|odd,stopbits=1|2,databits=4|6|7|8|9,clockpol=0|1Azaz SW/HW-ből is megoldhatod
Persze a Tx és Rx vonalon _azonos_ módon!
Egyik invert, másik nem : nem járható út!
Alap:
$baud=9600
a 9600,n,8,1-nek felel meg:
parity:none
stopbit:1
databit:8
clockpol: 0
Re: RS-232 leválasztása Optocsatolóval
köszönöm. Kipróbálom
Még egy kérdésem lenne.
Az egység amihez csatlakozom CLK_OUT vonalat is ad. Gondolom a kommunikáció szinkronizálásához kellene használni.
Kell ezt nekem valahogy az Arduino/Uno -ba bevezetni és valahogy figyelembe venni. Vagy elég, hogy a CLK_OUT vonalon megjelenő órajel frekvenciájához passzított baud beállítást kell alkalmazom a programban. Ha ez elég, akkor azt hogy számolom ki?
Még egy kérdésem lenne.
Az egység amihez csatlakozom CLK_OUT vonalat is ad. Gondolom a kommunikáció szinkronizálásához kellene használni.
Kell ezt nekem valahogy az Arduino/Uno -ba bevezetni és valahogy figyelembe venni. Vagy elég, hogy a CLK_OUT vonalon megjelenő órajel frekvenciájához passzított baud beállítást kell alkalmazom a programban. Ha ez elég, akkor azt hogy számolom ki?
Re: RS-232 leválasztása Optocsatolóval
Az RS-232 alatt egy vonal van irányonként és nincs CLOCK. Ha a bitrátát tudod, akkor tudsz mindent.
Ha van CLOCK is, akkor már nem RS-232-ről van szó, hanem SHIFT regiszterről. A Shift regiszter kezelése meg SPI-vel történik.
Azt kell kitalálni, hogy neked melyik kellene.
Ha van CLOCK is, akkor már nem RS-232-ről van szó, hanem SHIFT regiszterről. A Shift regiszter kezelése meg SPI-vel történik.
Azt kell kitalálni, hogy neked melyik kellene.
Re: RS-232 leválasztása Optocsatolóval
CLK_OUT 3 dolog lehet:
1, kiadják a belső UART szinkronizáláshoz (kötve hiszem, nem pazarolnak lábat rá vagy kritikus a rendszered
)
2, nem RS232-d van (adás, vétel, Clk : SPI busz lehet (ekkor hiányzik a ChipSelect kezelés), valami egyedi protokoll...)
3, CLKOut az rendszerórajel (az meg nem vihető messzire)
Aranytipp:
- eszközöket valahogy meg tudtad már szólítani?
- adatlap vagy mintaszoftvere mit mond ?:)
1, kiadják a belső UART szinkronizáláshoz (kötve hiszem, nem pazarolnak lábat rá vagy kritikus a rendszered
2, nem RS232-d van (adás, vétel, Clk : SPI busz lehet (ekkor hiányzik a ChipSelect kezelés), valami egyedi protokoll...)
3, CLKOut az rendszerórajel (az meg nem vihető messzire)
Aranytipp:
- eszközöket valahogy meg tudtad már szólítani?
- adatlap vagy mintaszoftvere mit mond ?:)
Re: RS-232 leválasztása Optocsatolóval
Most építem meg. A benne lévő TDA5051 IC, ami egy PLC modem adja ezt a kommunikációs felületet. Ehhez szeretnék első körben egy arduino Uno panelt illeszteni a TX/RX kivezetéseken és tesztelni a működését. Persze kettő kell, meg két arduino panel.
Re: RS-232 leválasztása Optocsatolóval
Ezzel sehogy. Se opto, sem sima:
http://pdf.datasheetcatalog.com/datashe ... A5051T.pdf
nem sorosport!
http://pdf.datasheetcatalog.com/datashe ... A5051T.pdf
nem sorosport!
Re: RS-232 leválasztása Optocsatolóval
az elképzelésem szerint, ha felépítek egy Arduino1 - Modem1 - Modem2 - Arduino2 kapcsolatot, akkor amit az A1 TX-en kiadok, az megjelenik az A2 RX-en és fordítva.
Ha A1 RS232-t használva küldi a négyszögjeleket, akkor azt az A2 RS232-t várva megérti.
Ha ez így nem OK, akkor hol sántít a történet?
Köszönöm a doskit, nekem is ez van meg.
Van esetleg javaslatod jobb PLC megoldásra, amit tudok AVR-hez illeszteni?
Köszönöm
Ha A1 RS232-t használva küldi a négyszögjeleket, akkor azt az A2 RS232-t várva megérti.
Ha ez így nem OK, akkor hol sántít a történet?
Köszönöm a doskit, nekem is ez van meg.
Van esetleg javaslatod jobb PLC megoldásra, amit tudok AVR-hez illeszteni?
Köszönöm
Re: RS-232 leválasztása Optocsatolóval
Jónak tűnik.
PLC-kkel az ipari buszban gondolkodj/CAN buszban.
RS485/FieldBus/ModBus.
A linkelt chip nem mukodik egyutt a max232vel! Total mas a protokoll es a jelszintek!
PLC-kkel az ipari buszban gondolkodj/CAN buszban.
RS485/FieldBus/ModBus.
A linkelt chip nem mukodik egyutt a max232vel! Total mas a protokoll es a jelszintek!
Re: RS-232 leválasztása Optocsatolóval
Köszönöm a választ, de nem egészen tudom dekódolni.
A gyanúm az, hogy én még nem elég jól beszélem azt a nyelvet, amit te. De nagyon igyekszem...
Miért kellene a MAX232?
Miért ajánlott bármilyen busz protokollt megvalósítani a Tx/RX használata felett?
Én azt képzeltem, hogy ami kijön az egyik Aurduino-ból, vagy bármilyen AVR TX kimenetén, az áthaladva a Modem-Modem pároson kijön a másik Arduino Rx bemenetére. Tehát, ha print, vagy out, vagy nem tudom hirtelen milyen utasítással kiküldök egy karaktert, vagy karakter sorozatot, akkor azt a másik oldalon Read, vagy In, vagy bármilyen paranccsal be tudom olvasni.
Ezen egyszerű adatátviteli lehetőséget felhasználva magam is tudok fabrikálni egy "protokollt" (fej, Data, farok csomagszerkezetben, meg címzéssel, meg CRC-vel, stb.) amivel egy több elemű hálózaton is lehet kommunikálni.
Vagy erre javasoltad, hogy nem kell feltalálni a spanyol viaszt és csak használni kell egy meglévő protokoll leírását, akár meglévő lib-et (vagy bármi include)?
De akkor is az elsődleges, hogy a fizikai modem-modem kapcsolat működjön, illetve ezt felhasználva Tx/Rx vonalakkal tudjak küldeni és fogadni.
Az e feletti protokoll már "részlet kérdés". Vagyis vagy molyolok sajáttal, vagy leakasztok egy létezőt.
Jól értem, hogy ez így működik?
A gyanúm az, hogy én még nem elég jól beszélem azt a nyelvet, amit te. De nagyon igyekszem...
Miért kellene a MAX232?
Miért ajánlott bármilyen busz protokollt megvalósítani a Tx/RX használata felett?
Én azt képzeltem, hogy ami kijön az egyik Aurduino-ból, vagy bármilyen AVR TX kimenetén, az áthaladva a Modem-Modem pároson kijön a másik Arduino Rx bemenetére. Tehát, ha print, vagy out, vagy nem tudom hirtelen milyen utasítással kiküldök egy karaktert, vagy karakter sorozatot, akkor azt a másik oldalon Read, vagy In, vagy bármilyen paranccsal be tudom olvasni.
Ezen egyszerű adatátviteli lehetőséget felhasználva magam is tudok fabrikálni egy "protokollt" (fej, Data, farok csomagszerkezetben, meg címzéssel, meg CRC-vel, stb.) amivel egy több elemű hálózaton is lehet kommunikálni.
Vagy erre javasoltad, hogy nem kell feltalálni a spanyol viaszt és csak használni kell egy meglévő protokoll leírását, akár meglévő lib-et (vagy bármi include)?
De akkor is az elsődleges, hogy a fizikai modem-modem kapcsolat működjön, illetve ezt felhasználva Tx/Rx vonalakkal tudjak küldeni és fogadni.
Az e feletti protokoll már "részlet kérdés". Vagyis vagy molyolok sajáttal, vagy leakasztok egy létezőt.
Jól értem, hogy ez így működik?
Re: RS-232 leválasztása Optocsatolóval
Első körben a PC1-Modem-Modem-PC2 kapcsolat éljen.
A PLC-k sorosportja ritka hogy önállóan így kezelhető.
A PLC világban a spanyolviasz az a RS485/ModBusz/Fieldbusz.
A MAX232-t nem ertem, hova akarod berakni....
A sorosport általában RS232 (ide kell), de áramkörök esetén a SorosTTL (TTL-RS232; 5-os)
Azaz a jelszinteket nézd meg, a PLC-ről semmi info, stb....
A PLC-k sorosportja ritka hogy önállóan így kezelhető.
A PLC világban a spanyolviasz az a RS485/ModBusz/Fieldbusz.
A MAX232-t nem ertem, hova akarod berakni....
A sorosport általában RS232 (ide kell), de áramkörök esetén a SorosTTL (TTL-RS232; 5-os)
Azaz a jelszinteket nézd meg, a PLC-ről semmi info, stb....