====== Převodník USB a RS232 USBRS23201B ====== [[http://www.mlab.cz/PermaLink/USB232R01B|Dokumentační stránka MLAB]] Velmi užitečný modul převodníku RS232 na USB a opačně, využívá osvědčený čip [[http://www.ftdichip.com/Products/ICs/FT232R.htm|FT232RL]]. Z hlediska USB jde o full-speed zařízení a je tedy možné jej provozovat i na rychlostech sériové linky 3Mb/s. ==== Test funkčnosti modulu ==== Základní test se provede tak, že se modul připojí k počítači USB A-B kabelem. Operační systém by pak měl modul rozpoznat asi jako "FTDI serial interface" a přiřadit mu některý COM port ve Windows nebo zařízení typu /dev/ttyUSB0 v systému Linux. Po spuštění některého terminálového programu (minicom, picocom) a při odeslání nějakého znaku by nemělo nic přicházet zpět. V opačném případě je buď zapnuté local-echo v terminálu a nebo zkrat mezi RX a TX modulu. Po propojení RX a TX kablíkem by mělo být možné přijímat vysílaná data. Jinak je problém s modulem, propojovacím kabelem a nebo ve volbě nastavení sériového portu. Tento test se ale nezabývá testováním dalších hand-shake signálů, které je nutné otestovai individuálně. Většina uživatelů je však ale nevyužívá.. ==== Jak změnit VID a PID, pokud převodník má nastavenu jinou hodnotu než výchozí ==== === Windows === Pomocí [[http://www.ftdichip.com/Support/Utilities/FT_INF.zip|FT_INF]] vytvoříme .inf s VID a PID našeho zařízení. Vzniklý INF nakopírujeme k driveru pro přímý přístup k FT232R a nainstalujeme zařízení (nemusíme instalovat [[http://www.ftdichip.com/Drivers/D2XX.htm|drivery]] pro emulaci sériové linky). Spustíme [[http://www.ftdichip.com/Support/Utilities/FT_Prog_v2.4.2.zip|FT_PROG]] a necháme enumerovat zařízení. Našemu zařízení nakopírujeme [[http://www.mlab.cz/WebSVN/filedetails.php?repname=MLAB&path=%2FModules%2FCommSerial%2FUSB232R01B%2FSW%2FFT_prog%2FUSB232R01B_Template.xml&getfile|template]] pro FT232R, který je k dispozici v adresáři u [[http://www.mlab.cz/WebSVN/listing.php?repname=MLAB&path=%2FModules%2FCommSerial%2FUSB232R01B%2FSW%2FFT_prog%2F#_Modules_CommSerial_USB232R01B_SW_FT_prog_|FT_PROG]] nebo přepíšeme VID a PID na námi požadované. Naprogramujeme zařízení (ikona s bleskem). === Linux === Pro změnu konfigurace modulu v systému linux lze využít utilitu [[https://github.com/hi-pauls/ft232r_prog|ft232r_prog]] git clone git@github.com:hi-pauls/ft232r_prog.git cd ft232r_prog/ make Následně lze program spustit. kaklik@popelnice:~/programy/ft232r_prog$ ./ft232r_prog ft232r_prog: version 1.25, by Mark Lord. Usage: ft232r_prog [ ].. where must be any of: --help # (show this help text) --dump # (dump eeprom settings to stdout)) --verbose # (show debug info and raw eeprom contents) --save # (save original eeprom contents to file) --restore # (restore initial eeprom contents from file) --cbus0 [TxDEN|PwrEn|RxLED|TxLED|TxRxLED|Sleep|Clk48|Clk24|Clk12|Clk6|IO|WR|RD|RxF] --cbus1 [TxDEN|PwrEn|RxLED|TxLED|TxRxLED|Sleep|Clk48|Clk24|Clk12|Clk6|IO|WR|RD|RxF] --cbus2 [TxDEN|PwrEn|RxLED|TxLED|TxRxLED|Sleep|Clk48|Clk24|Clk12|Clk6|IO|WR|RD|RxF] --cbus3 [TxDEN|PwrEn|RxLED|TxLED|TxRxLED|Sleep|Clk48|Clk24|Clk12|Clk6|IO|WR|RD|RxF] --cbus4 [TxDEN|PwrEn|RxLED|TxLED|TxRxLED|Sleep|Clk48|Clk24|Clk12|Clk6|IO|WR|RD|RxF] --manufacturer # (new USB manufacturer string) --product # (new USB product name string) --old-serial-number # (current serial number of device to be reprogrammed) --new-serial-number # (new USB serial number string) --self-powered [on|off] # (self powered) --max-bus-power # (max bus current in milli-amperes) --high-current-io [on|off] # (enable high [6mA @ 5V] drive current on CBUS pins) --suspend-pull-down [on|off] # (force I/O pins into logic low state on suspend) --old-vid # (current vendor id of device to be reprogrammed, eg. 0x0403) --old-pid # (current product id of device to be reprogrammed, eg. 0x6001) --new-vid # (new/custom vendor id to be programmed) --new-pid # (new/custom product id be programmed) --invert_txd Inverts the current value of TXD --invert_rxd Inverts the current value of RXD --invert_rts Inverts the current value of RTS --invert_cts Inverts the current value of CTS --invert_dtr Inverts the current value of DTR --invert_dsr Inverts the current value of DSR --invert_dcd Inverts the current value of DCD --invert_ri Inverts the current value of RI kaklik@popelnice:~/programy/ft232r_prog$ Program tak lze využít například k obnovení funkce zařízení [[https://www.m0yom.co.uk/ftdi-serial-killer-quite/|bricknutého FTDI driverem]]. sudo ./ft232r_prog --old-pid 0x000 --new-pid 0x6001 ===== Využití ===== Modul emuluje [[http://en.wikipedia.org/wiki/Serial_port|sériový port]] počítače a umožňuje proto snadnou komunikaci například mikroprocesoru s počítačem. Výstupy modulu mohou pracovat buď v +3V logice nebo +5V (volí se jumperem na modulu). ==== Převodník USB na RS485 ==== Modul umožňuje v kombinaci s modulem [[cs:ttlrs485|TTLRS48501A]] je možné sestavit převodník USB RS485. ==== Převodník USB na CAN ==== Modul umožňuje v kombinaci s modulem [[cs:ttlcan|TTLCAN01A]] je možné sestavit převodník USB CAN. ===== Známé problémy ===== * [[http://hackaday.com/2014/10/24/ftdi-screws-up-backs-down/|Nový Windows FTDI driver likviduje konkurenční čipy]].