USB-シリアル変換モジュールの色々

#概要
Linuxボード、マイコンボードとの通信、Flashの書き換えする際にシリアル通信を使用しますが、
古来から使われているRS-232C(±5～15V)の信号レベルではなく信号レベルをTTL,LVTTL,3.3VとしたUSB-シリアル変換モジュールが使われるようになりました。

#色々なUSB-シリアル変換モジュール
最も多く使われているのはFDTI社製USB-シリアル変換チップを使用したモジュールです。
<img src="https://qiita-image-store.s3.amazonaws.com/0/106409/e279f4f7-1a74-e714-6f40-c44a650564cc.jpeg" width=200><img src="https://qiita-image-store.s3.amazonaws.com/0/106409/b887ab91-47f4-011c-29b0-80bd0a72adf1.jpeg" width=200><img src="https://qiita-image-store.s3.amazonaws.com/0/106409/0d3742c4-cd4c-49af-631b-d76d73630986.jpeg" width=200><img src="https://qiita-image-store.s3.amazonaws.com/0/106409/cf600b4d-b257-6e8b-220f-f9f255842233.jpeg" width=200>
6ピンのピンソケットが用意されている場合、DTR,RX,TX,5Vor3.3V,CTS,GNDの信号配列となっていることが多いです。
ArduinoやBeagleBone Black等のボードにジャンパーワイヤ無しで接続できるため1個は持っていても損はないと思います。
Linux,Mac,Windowsで使用する際も困ることは少ないでしょう。
ドライバのダウンロードページは[こちら](http://www.ftdichip.com/Drivers/VCP.htm)

次に多いのがSilicon Labs社製のUSB-シリアル変換チップを使用したモジュールです。
<img src="https://qiita-image-store.s3.amazonaws.com/0/106409/11f461dd-67f5-d397-cb09-6b454a46944c.jpeg" width=200><img src="https://qiita-image-store.s3.amazonaws.com/0/106409/691fb0c0-869e-cf4e-65f3-8ca55a2d206c.png" width=200><img src="https://qiita-image-store.s3.amazonaws.com/0/106409/77d12b4d-1a4a-55ad-2c74-92302251f63b.jpeg" width=200><img src="https://qiita-image-store.s3.amazonaws.com/0/106409/cc514ed8-c0a0-c7d0-e76e-e7539d711188.jpeg" width=200>
CP2102を使用したモジュールです。
ドライバのダウンロードページは[こちら](https://jp.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers)

その他、Prolific社のPL2303やwch社のCH340,CH341がありますが、どうしても使用したい場合を除いて
ドライバーのインストールに難があるためオススメは出来ません。
PL2303の[ドライバ](http://www.prolific.com.tw/JP/ShowProduct.aspx?pcid=126&showlevel=0126-0126)
古いPL2303の[ドライバ](http://akizukidenshi.com/catalog/faq/goodsfaq.aspx?goods=M-00720)
CH340,CH341の[ドライバ](http://www.wch.cn/download/CH341SER_ZIP.html)

#使用する電圧に注意
FT232RLを使用したモジュールは5V/3.3V切り替えができる場合があるのでボード側の対応する電圧を確認し、切り替えスイッチやジャンパピンを正しく設定しましょう。
FT231,FT234,CP2102は信号レベルは3.3V(LVTTL)ですが5Vトレラントとなっているためボード側が対応できれば信号レベルが5Vなボードでも使用できます。

#異常な電圧が出力されるCP2102モジュール
3.3Vや信号線から異常な電圧が出力されるCP2102モジュールが出回っていますので注意が必要です。
<img src="https://qiita-image-store.s3.amazonaws.com/0/106409/d5d6059f-77d1-3f7f-47cd-e8c434e482c9.jpeg" width=600>
確認しているのは上のようなモジュールです。(左側が異常なモジュール)
使用している電子部品では判断できません。

<img src="https://qiita-image-store.s3.amazonaws.com/0/106409/bc6b4384-da74-3bef-a8dc-46b8dc784548.jpeg" width=600>
3.3V-GND間で4.38Vと1V高い電圧が出力されています。
3.3Vだけでなく信号線も同じ電圧が出力されるため使用する前に必ずテスターで電圧を確認しましょう。

どうしても使用したい場合は…
<img src="https://qiita-image-store.s3.amazonaws.com/0/106409/3a6349b0-cbf8-7e34-4333-f81f650c488b.jpeg" width=400><img src="https://qiita-image-store.s3.amazonaws.com/0/106409/f9eb87cb-3fde-ea58-d925-f681b6e8ce97.png" width=400>
異常な電圧が出力される原因はCP2102のRSTがVBUS(5V)に接続されているためです。
パターンカットすれば正常な電圧(3.3V)が出力されるようになります。

<img src="https://qiita-image-store.s3.amazonaws.com/0/106409/5ffffe9e-db7a-ee3e-eecb-f6b3b8f22b41.jpeg" width=600>
精密なパターンカットが必要なためオススメはしません。

#参照
[@leonellive](https://twitter.com/leonellive)氏のツイート
[https://twitter.com/leonellive/status/896341664599605249](https://twitter.com/leonellive/status/896341664599605249)
[https://twitter.com/leonellive/status/899676541482926080]
(https://twitter.com/leonellive/status/899676541482926080)
[https://twitter.com/leonellive/status/900831214961033216](https://twitter.com/leonellive/status/900831214961033216)

[CP2102 3.3V output is 4.25V on CJMCU module
https://www.silabs.com/community/interface/forum.topic.html/cp2102_3_3v_outputi-EaVr](https://www.silabs.com/community/interface/forum.topic.html/cp2102_3_3v_outputi-EaVr)