Table of Contents

Převodník USB a RS232 USBRS23201B

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 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í 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 drivery pro emulaci sériové linky).

Spustíme FT_PROG a necháme enumerovat zařízení. Našemu zařízení nakopírujeme template pro FT232R, který je k dispozici v adresáři u 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 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 [<arg> <val>]..

where <arg> 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       <string>  # (new USB manufacturer string)
  --product            <string>  # (new USB product name string)
  --old-serial-number  <string>  # (current serial number of device to be reprogrammed)
  --new-serial-number  <string>  # (new USB serial number string)
  --self-powered       [on|off]  # (self powered)
  --max-bus-power      <number>  # (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    <number>  # (current vendor id of device to be reprogrammed, eg. 0x0403)
  --old-pid    <number>  # (current product id of device to be reprogrammed, eg. 0x6001)
  --new-vid    <number>  # (new/custom vendor id to be programmed)
  --new-pid    <number>  # (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í bricknutého FTDI driverem.

sudo ./ft232r_prog --old-pid 0x000 --new-pid 0x6001

Využití

Modul emuluje 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 TTLRS48501A je možné sestavit převodník USB RS485.

Převodník USB na CAN

Modul umožňuje v kombinaci s modulem TTLCAN01A je možné sestavit převodník USB CAN.

Známé problémy