Fórum témák

» Több friss téma
Fórum » RS232 kérdések
 
Témaindító: tizedeske, idő: Júl 21, 2007
Témakörök:
Lapozás: OK   12 / 25
(#) icserny válasza gordonfreemN hozzászólására (») Márc 23, 2012 /
 
Ha van a gépeden soros port, akkor építhesz MAX232 soros porttal ellátott Freeduino kártyát Bővebben: Link1, Link2
(#) gordonfreemN válasza icserny hozzászólására (») Márc 24, 2012 /
 
Szia!
Olvasgatom az egyik ehhez kapcsolódó cikket, és azon tűnődöm, hogy hogy a fenébe vannak ezek a konverter IC-k. Kicsit belezavarodtam, tudnál segíteni tisztogatni?
Vannak jelszintek, TTL USB RS232. Ezek szabványok.
Van a soros kommunikáció, melyet pl. az RS232 használ, illetve USART-al ellátott TTL eszközök (AVR).
Van az FT232BM, ami USB UART-ként működik (tehát aszinkron soros), azaz az USB-ből soros porton kommunikációra képessé teszi az eszközt és vissza. (itt van egy zavar: miért nem kell szintillesztő ilyen esetben? Vagy éppúgy kell? Tehát arra gondolok, hogy attól, hogy képes lesz kommunikálni soros porton a jelszintek még nem biztos, hogy megfelelőek az RS232-höz)
Van a MAX232, ami az RS232 jelszinteket tudja TTL-é alakítani és vissza. De ezzel soros kommunikációra vagyunk csak képesek.
Igazán ezt az USB-s átalakítgatósdit nem értem (csak tisztában szeretnék lenni vele), hogy ha USB-t képessé teszem egy FT232BM-el soros kommunikációra, az az RS2332-höz és TTL-hez szükséges jelszinteket honnan fogja tudni? A képek magukért beszélnek
Az is zavar még, hogy ha USB-ből van olyan átalakító, ami egyből TTL szintek feldolgozására tesz képessé, akkor mi van??? Végképp elvesztem. Valaki tegyen rendbe, kérem kapcsolja ki...
A teljesség kedvéért ez a PL2303 és ADM206 totál galyra vág.
(#) icserny válasza gordonfreemN hozzászólására (») Márc 24, 2012 / 2
 
Az USB-UART protokol konverterek (FT232, PL2303, CP2102, MCP2200 stb.) a számítógéppel USB-n kommunikálnak, de a felhasználó számára transzparens módon. Ez azt jelenti, hogy az oprendszer és az eszközmeghajtó szoftver diszkréten elintézik maguk között a bemutatkozást és az USB átvitel feladatait. A felhasználói program már úgy látja, úgy kezeli, mintha az egy soros port lenne (virtuális soros port).

A külvilág felé pedig ezen a protokol konverterek mindegyike TTL szintű (többnyire 3,3 V-os, néha 5 V-os jelszintttel) aszinkron soros portnak látszanak, tehát egy szintén TTL jelszintű mikrovezérlő csatlakoztatásakor nem kell RS232 szintillesztés, legfeljebb az 5 V - 3,3 V közötti szintkülönbséget kell megoldani.

Ha "hagyományos" soros eszközöket kell meghajtani, akkor a fent említett protokol konvertereket kiegészítik egy MAX232 vagy hasonló szintátalakítóval (ilyenek a kereskedelmi forgalomban kapható USB-RS232 kábelek).

Annak azonban az otthoni kísérletezésnél nem sok értelme van, hogy az USB - UART protokol konverter után is tegyünk egy MAX232 IC-t, majd a a mikrovezérlőnél egy másik MAX232-vel visszaalakítsuk TTL jelszintre. De ha valaki mégis így akarja, ez az út is jártható...
(#) Feri007 válasza gordonfreemN hozzászólására (») Márc 24, 2012 / 2
 
Van tehát a soros kommunikáció.
Ezt valami intelligens áramkör (USART, pl a 16550-es IC), vagy annak része kezeli. Egyik oldalon a CPU-val kommunikál, pl. ISA buszon, a másik oldalán a soros ki-bemenetek vannak. Logikai áramkör,ami TTL, LVTTL (3,3 ill. 5V) jelekkel működik, ki-bemetei ilyen szintűek.
Van az RS232 szabvány, ami többek között a ki-bementi feszültségeket írja elő egy soro csatlakozón. Lényeges különbség:
A adás (Tx) vonalon a logikai 1 a TTL-ben a H szint, tehát 3....5V, az az RS232-nél tipikusan -12V (minusz 12V).
A logikai 0 TTL-ben L szint, 0V körüli, RS232-ben +12V

Tehát jelszint illesztést kell végezni, erre jó a MAX232.
Az USB-Soros IC-k (FT232BM) processzor oldali interfésze USB.
A másik oldal TTL (LVTTL). Tehát ha RS232 szinteket akarunk, kell a MAX232 is.
Viszont ha az áramkörünk eleve TTL ki-bementekkel rendelkezik (pl mikrokontroller) akkor kispórolható az RS232 feszültség-szintekre konvertálás.
Pl. egy PC-hez egy FT232BM-mel illeszthető egy mikrokontroller. A MAX... kihagyható.
(#) gordonfreemN hozzászólása Márc 24, 2012 /
 
Helyben vagyok, köszönöm mindkettőtöknek!
(#) mandris hozzászólása Márc 31, 2012 /
 
Sziasztok szakik!
Sok mindent olvastam, mielőtt megnyitottam ezt az új témát! Sajna ilyen dolgot nem találtam!

USB-ből soros port (tudom ebből dunát lehet rekeszteni annyi van, de) 8 vagy 16 esetleg 32 soros port egyetlen egy usb-ből! Tudnátok nekem segíteni? Ha valakinek ötlete vagy rajza lenne, ami alapján meg lehetne építeni! Megköszönném, vagy ha valaki elérhető áron megépítené azt meg megfizetném! A mellékelt kép alul, ilyenre gondolok! Minden tiszteletem minden hozzáértőnek!
(#) Hp41C válasza mandris hozzászólására (») Márc 31, 2012 /
 
Szia!

Nézd meg inkább az Ethernet - RS232 / RS485 konvertereket, terminál koncentrátorokat.
(#) _vl_ válasza mandris hozzászólására (») Márc 31, 2012 /
 
Mi neked az elérhető ár?
Mik az elvárásaid robosztusság szintjén? (rackbe szerelhető fém ház, esd védelem a portokon, beépített, rendes táp, stb.)
Mekkora bps-t akarsz tudni elérni?

Mi az, ami miatt nem jó egy/több usb hub külső táppal, és rajta n db pl2303-alapú, pár ezresért kapható usb-rs232 konverter?
(#) robotech hozzászólása Ápr 7, 2012 /
 
Üdv!

Igazándiból icsernyitől kérdezném, mert tudom ,hogy ő ezzel a kérdéssel igen behatóbban foglalkozott,de bárki más véleményét szívesen venném:
MCP2200 esetén a configuration Utility-vel beállítható, hogy használja-e az RTS/CTS vonalakat a kommunikációhoz...
Nna most én gondoltam, hogy az RTS vonal nagyon jó is lesz nekem vezérlésre, mint ahogy azt MAX232, és FTDI chip esetén is használtam, így szoftverből tudok kapcsolni majd egy lábat (pl: propeller chipnél RESET, vagy RS485 esetén adás/vétel átkapcsolás),
De úgy látom az MCP2200-nál az RTS CTS-t hardver szinten arra is használja a chip, amire tervezték , azaz serial handshakingre, szóval azt csinálja, hogy egy jópár byteot kiküldenék, de csak egyet küldd ki, mert aztán várja a CTS-en hogy OK... (legalábbis úgy tűnik).

Kérdésem az lenne, hogy szerintetek is így van ez?

Lenne erre valami egyéb módszer hogy az RTS-t PC-ről lehessen ennél ez IC-nél kapcsolgatni?

Köszönöm a választ előre is!
(#) icserny válasza robotech hozzászólására (») Ápr 8, 2012 /
 
Az MCP2200-ről nem tudok sokat. Nekem nincs is ilyenem. Csak a munkahelyemen találkoztam vele, futólag. Én PIC18F14K50-et használok helyette, abba olyan programot lehet írni, amilyen tetszik.

Ha csak az RTS vonalat akarod billegtetni, akkor próbáld meg úgy, hogy a CTS vonalat fixen nullára kötöd. Nem tudom, hogy ehhez mit szól.

Az RTS vonal használatánál lehet olyan probléma, hogy a Microchip eszközöknek nincs saját meghajtó szoftvere, a Windows-os usbser.sys, amit használnak, az pedig hibás: nem küldi ki az RTS jelet, csak akkor, amikor a DTR jelet is vezérled.

Az MCP2200-nál egyébként a GPIO kimenetek szolgálnak általános vezérlésre, de a GPIO port egy külön (HID) eszközként látszik a Windows felől.
(#) zombee válasza robotech hozzászólására (») Ápr 8, 2012 /
 
Szerintem az a probléma, hogy a port megnyitásánál használod a handshake opciót. Ez baj, mert akkor az átvitel szinkronizálására fogja használni. Próbáld meg a "nohandshake" opciót. A Tx vonalat is tudod billegetni.
(#) robotech válasza zombee hozzászólására (») Ápr 8, 2012 /
 
Sajnos a Tx vonal billegtetése nem megoldás, mivel lenne tx/rx kommunikáció is,és e mellé kellene még egy vezérlőjel (pl: IC reset, hogy prog módba kapcsolhasson.)

A handshake opciót nem használom szoftveresen, mivel egy delphiben általam írt általános célú terminál programot szoktam használni, amelyben van egy RTS checkbox is. Ha a soros vonalra max232-vel illesztek, ugyanezzel a terminál programmal az RTS-t tudom kapcsolgatni, ez a kimeneten mérhető is. (FTDI chip esetén is így van). Még megpróbálom a CTS jelet lehúzni, de tartok tőle, hogy nem fog segíteni...

icserny!
A GPIO HID deviceként való kezelésében van valami jártasságod? Tudnál valami fogódszkodót adni, hogy hogyan induljak el? Köszi előre is!
(#) icserny válasza robotech hozzászólására (») Ápr 8, 2012 /
 
Idézet:
„A GPIO HID deviceként való kezelésében van valami jártasságod?”
Nincs. Ortopéd ötletnek tartom.
Idézet:
„Tudnál valami fogózkodót adni, hogy hogyan induljak el?”
A Microchip honlapján nézz körül! Biztosan van hozzá valami DLL, meg ez a leírás.
(#) nszticsi hozzászólása Ápr 16, 2012 /
 
Sziasztok!

Vásároltam MCP2200-kat. kettőt sikerült tönkre tennem, az óta ismeretlen eszközök a PC számára. Elméletileg mindent jól bekötöttem. Tönkremehet e akkor, ha a tápfeszültséget (3,3V külső) hamarabb veszem el töle mint a D+ és D- -t. ilyenek történhettek közbe. Egyébként simán működött. A 3,3V külső azért kell mert PIC18F45K20-al akarok vele kommunikálni.
(#) robotech válasza nszticsi hozzászólására (») Ápr 16, 2012 /
 
Elméletileg ilyesmitől nem megy tönkre az Ic, többmindent csináltam már én is vele, zárlatokat a lábon stb... stb.. eddig mindíg mindent kibírt... Szerintem ott valami más trükknek is kell lennie.. nem olyan kényes IC ez (csak pont annyira mint egy 18F14K50).
(#) zombee válasza nszticsi hozzászólására (») Ápr 16, 2012 /
 
Remélhetőleg tudod hogy az MCP2200 belső áramköre előállít egy 3.3V-os feszültséget, és erre a kimenetre
egy 470nF-1µF pufferkondit kell kötni. Ez a feszültség az USB kommunikációhoz kell, mással nem terhelheted!
Ha most a tápellátás 3.3V, nem biztos hogy a belső áramkör elő tudja állítani a kommunikációhoz
szükséges feszültséget, ekkor az eszköz kommunikációra képtelen, nem lehet felismerni!

Én inkább azt javasolnám hogy 5V-ról működtesd, és az RX/TX kimenetek leválasztását 1-1 darab 1 kOhm
ellenállással oldd meg! A 3.3V esetében még bőven működőképes a kommunikáció. Nekem az
AVR JTAG Debugger is így megy lassan egy éve, és eddig teljesen hibátlan 3.3V módban is!

Ha nyugodtan szeretnél aludni, nézz át az "AVR programozók..." topikba, valamikor 1-2-3 hónapja
töltöttem fel egy képet egy tranzisztoros leválasztó áramkörről, amit a gyári STK500-ból lestem ki.
(#) icserny válasza zombee hozzászólására (») Ápr 16, 2012 /
 
Idézet:
„Ha most a tápellátás 3.3V, nem biztos hogy a belső áramkör elő tudja állítani a kommunikációhoz szükséges feszültséget, ekkor az eszköz kommunikációra képtelen, nem lehet felismerni!”
De, elő tudja állítani (persze, a 470 nF kell rá)! Ilyenkor valószínűleg bekapcsol egy FET kapcsoló és átköti belül az LDO-t.

Egyébkén kívül is összeköthető a VDD és a VUSB, ha a tápfeszültség 3,6 V, csak ezt nem nagyon szeretem, mart baj lehet belőle, ha később véletlenül 5 V-ot kap a VDD.

A VDD tápfeszültséget egyébként a kívánt jelszint szerint célszerű megválasztani (5V, vagy 3,3 V).
(#) icserny válasza nszticsi hozzászólására (») Ápr 16, 2012 /
 
A "tönkrement" MCP2200 IC-t a konfiguráló programja sem ismerti fel? Nem lehetséges, hogy a driver hiányzik, vagy valamilyen paraméter (pl. PIC, VID) elállítódott?
(#) nszticsi válasza icserny hozzászólására (») Ápr 17, 2012 /
 
A gép azt írja ki hogy nem lehet felismerni. Ez rögtön azután jelentkezik, hogy a tápfesz véletlenül hamarabb kerül leválasztásra mint a D+, D-. Szerintem az a magyarázat, hogy a D+, D- on lévő feszültség jelen van és túlterhelheti a bemeneti fokozatot. Amelyik nem járt így azokat a gép egyből felismeri, egyéni sorozatszámmal. Meg azt is néztem, hogy pl. az USB csatlakozót kihúzod fizikailag meg van akadályozva hogy ez agy történhessen azzal, hogy a két középső érintkezők hamarabb elválnak egymástól. Hármat kellet tönkre tennem, hogy rájöjjek mi a baj. Tehát FIGYELEM! ha az USB interfész (jelen esetben MCP2200) áramkört külső tápon akarod használni akkor figyelj a leválasztás sorrendjére Előbb az adatvonalak, és csak a végén a táp. De én már csak az USB-s táplálást fogom használni. Az MCP2200 adatlapján vannak megfelelő kapcsolások.
(#) nszticsi hozzászólása Ápr 17, 2012 /
 
A VUSB re már kötöttem 5 V-ot azt simán túl élte.
(#) nszticsi válasza icserny hozzászólására (») Ápr 17, 2012 /
 
Nem a konfiguráló sem látja.
(#) _vl_ válasza nszticsi hozzászólására (») Ápr 17, 2012 /
 
Hát ezek szerint nem vagy eléggé tapasztalt CMOS áramkörök használatában...
Ha nincs valamelyik lábon külön védelem, akkor sem a tápnál magasabb, sem a földnél alacsonyabb feszültséget nem köthetsz semelyik lábra. A dokumentációban elolvasható, hogy melyik láb milyen szintű védelemmel rendelkezik (Absolute Maximum Ratings), jellemzően egy diódanyitófeszültségnyivel lehet a táp fölé vagy a föld alá menni (0.3V). Ha valamelyik láb ennél jobb védelmet kapott, azt általában külön szokták jelölni (pl. az 5V-toleráns bemenetek a 3.3V-os IC-knél).

Az MCP2200 esetében konkrétan az van a doksiban, hogy D+ és D- max. VUSB + 0.3V. A VUSB pedig max. 4V lehet, ergó adható neki táplálás akkor is, amikor a VDD = 0.
(#) nszticsi hozzászólása Ápr 17, 2012 /
 
Hát a cmos-hoz valóban nem értek annyira és fizikailag nem tudom, hogy mi történt az IC tokon belül, csak a tapasztalatom 3×-os megerősítéssel, hogy az MCP2200 ebben az esetben működés képtelenné vált.
Bátran ki lehet próbálni. csak egy 440Ft + Áfa-ba kerül.
Csak azért írtam le, hogy segítsek másoknak sok bosszúság elkerülésében.
(#) bbatka hozzászólása Jún 5, 2012 /
 
Sziasztok!
Másfél hete küzdök egy kommunikációs problémával és felmerült bennem két kérdés. Ha valamelyikőtöknek van tapasztalata a témában légyszíves segítsen.
VB6 -ban írok egy programot ami MCP2200 USB-USART átalakítóval adatokat kér le egy hardvertől. A problémám az hogy nem úgy érkeznek az adatok ahogy szeretném, de ezt a problémát megoldom magam is. Csatoltam egy képet a jelenségről.

Ezzel kapcsolatosan az a kérdésem hogy VB6-ból hogy lehet törölni a bemeneti puffert? A szokásos megoldás úgy tűnik nem működik.
MSComm1.InBufferCount = 0

A második kérdésem hogy a Portmon nevű programmal, de más programmal is akadt olyan problémám hogy bezáráskor nem zárja le az MCP2200-al a kommunikációt. Innentől kezdve más programmal nem lehet elérni. A számítógép újra indításán kívül még van más mód az MCP2200 szabaddá tételére?

probléma.jpg
    
(#) icserny válasza bbatka hozzászólására (») Jún 5, 2012 /
 
Idézet:
„Portmon nevű programmal, de más programmal is akadt olyan problémám hogy bezáráskor nem zárja le az MCP2200-al a kommunikációt.”
Mindig a PC alkalmazásnak kell lezárnia a COM porttal a kommunikációt.
Idézet:
„A számítógép újra indításán kívül még van más mód az MCP2200 szabaddá tételére?”
Esetleg az eszköz kihúzása és visszacsatlakoztatása (lehet, hogy kétszer kell megtenni). De nyilván nem ezen az úton kellene elindulni...
(#) bbatka válasza icserny hozzászólására (») Jún 5, 2012 /
 
Igen ezt tudom. Abban bíztam hogy XP alatt van valami szoftver eszköz amivel ki lehet lőni a kapcsolatot.

Az eszköz kihúzás sajnos nem segít.
Sokat nyomoztam a neten. Kipróbáltam USB monitor programokat is. pl. Az USBDeview segítségével látszólag lehet törölni, bezárni a hardvert. A gyakorlatban ennek ellenére mégsem zárja le. A hibaüzenet a szokásos, az eszköz használatban van másik program által.
Az MCP2200 configurátor gond nélkül csatlakozik az eszközhöz akkor is ha foglalt. Ez egy újabb rejtély.
Vagy csak HID oldalról próbál hozzáférni?
(#) icserny válasza bbatka hozzászólására (») Jún 5, 2012 /
 
Idézet:
„Vagy csak HID oldalról próbál hozzáférni?”
Nagy valószínűséggel: igen.
(#) michael67 válasza bbatka hozzászólására (») Jún 5, 2012 /
 
Szia. A bemeneti buffert a purgecomm-al lehet törölni.
Leírás itt.Bár VB6-hoz nem nagyon értek de , ha jól látom te csak a bemeneti buffer számlálóját törlöd. Etttől még a bufferben maradnak a kiolvasatlan dolgok. A buffererben levő byte-ok számát cbInQue-vel (Comstatból) tudhatod meg.
Idézet:
„de más programmal is akadt olyan problémám hogy bezáráskor nem zárja le az MCP2200-al a kommunikációt”

Nem a saját progid "felejti el" bezárni a portot?
(#) watt válasza bbatka hozzászólására (») Jún 6, 2012 /
 
A VB6 programnak kell bezárnia a COM-ot(MSComm1.PortOpen = False).

Az MC2200 tudomásom szerint CDC, nem HID, de nem az USB-COM-ot kell kikapcsolni, hanem a csatornát elengedni, hogy egy másik program hozzáférjen.

A kommunikáció során legtöbbször tudjuk, milyen hosszú adatsort kapunk. Erre a hosszra kell beállítani az MSComm1.InputLen változót, aminek a hatására csak akkor kerül a lekezelési rutinba a szál, ha beérkezett a csomag.
Az időtúllépéseket Timer modulokkal le lehet kezelni, ha kommunikációs zavar keletkezik.
(#) icserny válasza watt hozzászólására (») Jún 6, 2012 /
 
Idézet:
„Az MC2200 tudomásom szerint CDC, nem HID”
Összetett eszköz, tehát CDC és HID is egyben (utóbbi csak konfigurálásra és a GPIO lábak matatására szolgál).

Ez az összetettség a magyarázat arra jelenségre, hogy az el nem engedett COM port ellenére a saját konfiguráló programja tud kapcsolódni az eszközhöz, mivel az a HID kapcsolatot használja.
Következő: »»   12 / 25
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem