Od Papoucha mám dongle USB na 422/485 a je to podle mého opravdu povedený kousek. Uvnitř FTDI - první příjemný poznatek. Umí všechny režimy drátování a terminace, co si na 485 můžu vymyslet, a má galvanickou izolaci. Fakt je, že ho nehoním 24/7, ale nečekám problém. Mě Papouch příjemně překvapil. A to jsem v práci zaměstnaný v zásadě u konkurence.
Na občasné servisní práce používám dlouhá léta tenhle převodník od ATENu:
http://www.sws.cz/default.asp?mtc=0&cls=stoitem&stiid=75682Uvnitř je Prolific PL2303. Nevím co je tam za level-shifter, ale jinak než kapacitní nábojovou pumpou se dneska těch cca +/- 10V pro 232 stranu snad ani nedělá... a je jedno, jestli ten level shifter dělal Maxim, Intersil nebo kdo. Prostě je tam kolem cca 4x 100 nF a tím je napájení odbyté. Tvrdé napájení +/- 12V má dneska už leda PCčko na motherboardu (a těch -12V už taky není pravidlem).
Podle manuálu má plnou sadu signálů a domnívám se, že jsem si to i párkrát vyzkoušel na asynchronních modemech.
FTDI osobně kromě svých čipů prodává i malé destičky a redukce USB/232. V katalogu bacha ať si nevyberete některou variantu, co má jenom TTL na 5V nebo 3.3V. Vždycky hledejte v popisu, že z toho lezou napěťové úrovně 232. Variant je mnoho:
http://www.tme.eu/cz/details/usb-rs232-pcba/moduly-ftdi/ftdi/http://www.tme.eu/cz/details/usb-rs232-we-18/moduly-ftdi/ftdi/usb-rs232-we-1800-bt_00/http://www.tme.eu/cz/details/uc232r-10/moduly-ftdi/ftdi/http://www.tme.eu/cz/details/us232r-10-blk/moduly-ftdi/ftdi/us232r-10-bulk/http://www.tme.eu/cz/details/us232r-500-blk/moduly-ftdi/ftdi/us232r-500-bulk/Pokud mohu soudit, podle datasheetů to vypadá, že varianty "WE" (volné konce drátu) a PCBA mají obslouženy signály RX, TX, RTS a CTS = není vyvedeno DTR, DSR, DCD a RI. Máte k dispozici data a flow control (aby FIFO buffery nepřetékaly) ale pokud byste chtěl připojit modem, tak mu nepošlete DTR a nedozvíte se DCD.
Kompletní kabely UC232R / US232R mají na DB9 vyvedenu plnou sadu signálů.
Pravda je, že jsem před časem koupil dvě "destičky" na 485 dvoudrát a ukázalo se, že na jedné z nich byl vadný transceiver = level shifter. Byl hrozně měkký - do vysoké impedance na první pohled chodil, ale po připojení terminátoru už přijímač neregistroval střídání logických úrovní. Skoro bych si myslel, že jsem ho zničil svou nešikovností (ačkoli nevím jak), ale mám referenci od jednoho člověka někde v zahraničí, že se mu stalo cosi velmi podobného. Ony ty 485 level shiftery totiž nejsou nic značkového, a bůhví kde si FTDI nechává ty destičky osazovat... tomu známému údajně FTDI na technické podpoře připustili, že mají trochu problém s kvalitou "u jedné dodávky" :-) Protože mám osciloskop a zvládnu vyměnit švába v pouzdru SO8 (a měl jsem náhradního v šuplíku), jenom jsem nad tím zavrtěl hlavou, ale bez osciloskopu bych byl smutnej.
V linuxu je nejprve potřeba, aby byl dongle vůbec vidět na USB sběrnici, tzn. musí se objevit v lsusb. Pokud se neobjeví... jiné věci fungují? USB klávesnice, flashky? Nezkoušíte ten dongle připojit ARMu do USB portu, který je nastavený do režimu "gadget"? (Protože v ARMech bych čekal podporu USB OTG.)
Pokud je dongle vidět v lsusb, tak je potřeba generický "zastřešující" driver usbserial.ko, a dále jeho hw-specifičtí podřízení, např. pl2303.ko nebo ftdi_sio.ko. Přikládám screenshot z menuconfigu. Neřeknu Vám, jestli Vaše distribuce natáhne modul automaticky (udev by to mohl umět), každopádně pokud nemáte důvod se domnívat, že máte tyto drivery zakompilované monoliticky, doporučuji zkusit lsmod a modprobe. Pokud se modul natáhne, udev by mohl vyrobit device node /dev/ttyUSB0 (/dev/ttyUSB1 atd). A mělo by být něco vidět v dmesg (případně na primární konzoli).
Pokud máte ttyUSB device node, zkuste ho otevřít třeba minicomem, prodrátujte navzájem RX+TX (2-3 v DB9) a zkuste, jestli zafunguje smyčka (v minicomu uvidíte, co píšete - a když vytáhnete propojku, tak to echo musí skončit). Pozor, pokud prosmyčkujete fakt jenom RX+TX, tak musíte v minicomu vypnout flow control (= zakázat využití RTS+CTS) aby data chodila.
Pokud smyčkový test v minicomu funguje, tak je dál otázka, jakým způsobem máte připojené čtečky, resp. jakým softwarem ten port otvíráte. Pokud náhodou máte software, který neumí na portu nastavid baud, flow control a další parametry TTY zařízení (a že jich je), dá se všecko nastavit na příkazové řádce prográmkem stty. Tušímže setserial se týká jenom legacy portů v x86 PC.
Někdo tu navrhoval, že by ten ARM mohl mít nějaký UART on chip. Ano, to tak bývá, ale třeba už slouží něčemu jinému (textová konzola?) a kromě toho mívá fakt jenom RX+TX a obecně ten on-chip UART bývá dost hloupý.
Někdo si tu postěžoval, že mu hnije karta AXAGO pod Windows 10. No jestli to nějakou dobu chodí a pak UART umře, tak je to skutečně s podivem... ale i takové UARTy už jsem viděl, před lety tuším nějaký Fintek SuperIO. AXAGO není kdovíjaká značka. Tyhle PCI UARTy obvykle používají drivery od výrobce, nechytá se na ně generický driver od Microsoftu... možná podle toho pak vypadá výsledek. Jinak Windows 10 mají tuším nějaký vroubek i ohledně podpory standardních COM portů na legacy adresách, vanilkovým driverem - resp. problém nastal po nějakém updatu tuším asi rok zpátky (na podzim 2015?). Jak je to dnes, netuším. Ten problém tuším vypadal tak, že COM port po startu windows nefungoval vůbec - ne že zpočátku ano a po náhodné době vytuhl. To opravdu vypadá spíš na problém v HW nebo v proprietárním ovladači. Napadá mě, jestli na PCI zařízení není možnost konfigurovat power management. Nebo pokud to bylo v PCI-e, tak zkusit vypnout PCI-e ASPM (v BIOS Setupu nebo pod Windows).
https://www.sevenforums.com/tutorials/292971-pcie-link-state-power-management-turn-off-windows.html