FC2ブログ

名張市つつじが丘おもちゃ病院

三重県名張市つつじが丘でおもちゃの病院を開院しています。年中無休で修理は無料、部品代のみ実費です。おもちゃの修理依頼は tutuji@cb4.so-net.ne.jp へメールにてご連絡下さい。なお、宅配便での受け付けは行っておりません。このブログにはおもちゃ等の修理事例やツール製作などを載せていきます。故障診断や修理方法の改善等、ご意見をお寄せ下さい。

USB-シリアル変換器(16F1454)簡易版の製作

「16F1454を使ったUSB-シリアル変換器」 の簡易版を作った。

一般の用途ではシリアルのハードウェアフロー制御は使わないことが多い。また、CTS以外の制御線も殆ど使わない。
それで制御線を外部へ引き出すのをやめて、電源供給の機能も割愛してコンパクトにした。

【概観】
USB-Comエミュレータ(16F1454)簡易版概観

ピンソケットは使わずにTxとRxだけをリード線で引き出した。そのため基板面積はPICマイコンのみの大きさになった。

USB-シリアル変換器はデバグや実験で使うことが多いので、リード線の先端にICクリップを付けている。

信号線とICクリップの色の対応は以下のように覚え易くした。
Txは GOで Green
Rxは BACKで Blue

【回路図】
USB-Comエミュレータ(16F1454)簡易版回路図
空中配線でもよいくらい簡単だ。

【配線図】
USB-Comエミュレータ(16F1454)簡易版配線図
赤色楕円はUSBコードを基板に固定するためのステンレス線を意味し、これはICソケットを付ける前に基板穴に通しておく。

【ピン割り当て】
USB-Comエミュレータ(16F1454)簡易版ピン割り当て

【ファームウェア】
ファームウェアは 「16F1454を使ったUSB-シリアル変換器」 と共通にしている。

「ハードウェアハンドシェイクする」 を選択しているが、CTSを10kΩでプルダウンすることで送信が抑止されることはない。
フロー制御を機能させたいときはRC3ピンをCTSとして接続する。
CTS以外の制御線もピンには出ているので、必要なときは繋ぐことができる。

設計資料と開発プロジェクトは ここから ダウンロードできる。

MLAはディレクトリ階層が深くて、HEXファイルは下記にある。
USB-Com_Emulator_16F1454\apps\usb\device\cdc_serial_emulator\firmware\USBDevice-CDC-SerialEmulator.X\dist\LPCUSBDK_16F1454\production\USBDevice-CDC-SerialEmulator.X.production.hex

PC側のUSBドライバはWindows標準のものを使うので、MLAではUSBドライバーは提供されない。
本器を初めてPCに繋いだときにUSBドライバのインストール画面が現れたら下記のディレクトリを指定する。(Windowsの場合)
USB-Com_Emulator_16F1454\utilities\usb_drivers\mplab_comm\Windows
スポンサーサイト



  1. 2018/04/11(水) 18:45:29|
  2. USB-シリアル変換
  3. | コメント:0

USB-シリアル変換器(16F1454)の製作

前作のUSB-シリアル変換器 は18F14K50を使っている。当時は@170円だったが、現在は値上げされて@220円(2018年秋月)になっている。
また、18F14K50は20ピンだが、USB-シリアル変換器を作るのにピン数はそんなに沢山要らないので、ピン数が少なくてより廉価なデバイスがいい。
こんな不満に応えてくれるデバイスとして16F1454が販売開始されたことは知っていたが、前作のUSB-シリアル変換器 で事足りているので、改めて16F1454で作ることは考えていなかった。

16F1454はUSBモジュールを内蔵したデバイスとしては最も廉価(@130円2018年秋月)だ。しかも、内部オシレータの精度が改善されていて、内部オシレータでUSBが使えるので更に安く作れる。
これからUSB-シリアル変換器を作るのなら 16F1454 をお勧めする。
人に勧めるからには、自分でも動作確認しておかないといけないと思った。ブログネタにもなるし。。。

デバイスが安くても使い難かったら嫌だ、と思われるだろうが、そこはMLA(Microchipアプリケーション用ライブラリ)が用意されていて、USBを全く知らなくてもUSB機器が作れるようになっている。
USB-シリアル変換器ならMLAのデモ用プロジェクトがそのまま使える。

と言うことで、作ったのがこれ。
USB-Comエミュレータ(16F1454)外観1

8×6穴のユニバーサル基板に載せた。
殆どPICとピンソケットの面積で、前作の半分の大きさになった。これなら持ち歩いても荷にならない。

【回路図】
USB-Comエミュレータ(16F1454)回路図
ハードウェアハンドシェイクが有効になっていて、相手からCTSを制御されることを期待している。それが期待できないときのためにCTSを10kΩでプルダウンしている。これによりCTSを繋がなくても、送信が抑止されることはない。

回路実験するときに便利な+5Vと+3.3Vの電源を供給できるようにしている。

GPIO0とGPIO1の機能は現時点では未実装。

【配線図】
USB-Comエミュレータ(16F1454)配線図1
赤色楕円はUSBコードを基板に固定するためのステンレス線を意味し、これはICソケットを付ける前に基板穴に通しておく。

USB-Comエミュレータ(16F1454)配線図2

【ピン割り当て】
PICとピンソケットのピン割り当ては以下の通り
USB-Comエミュレータ(16F1454)ピン割り当て

【ファームウェア】
MLAのデモ用プロジェクトは16F1459用のもので、16F1454で動かすには若干の設定変更が必要になる。
僕が実施した変更は以下の通り。

USB-Comエミュレータ(16F1454)カスタマイズ内容

開発中に気が付いたことで、16F1454はアナログ機能がないのにANSELが存在するということだ。実験してみるとANSELをクリアしておかないとデジタル入力の結果は常に0になる。これはポートピンをデジタル入力から切り離す効用を狙っての仕様だと解釈した。

このファームエアのプロジェクトはデバイスを16F1454で設定しているが、ANSELクリアを書いていて、HEXファイルは16F1454と16F1455のどちらでも正常に動作する。
USB-Comエミュレータ(16F1454)外観2

【ダウンロード】
このUSB-シリアル変換器の設計資料と開発プロジェクトは ここから ダウンロードできる。

MLAはディレクトリ階層が深くて、HEXファイルは下記にある。
USB-Com_Emulator_16F1454\apps\usb\device\cdc_serial_emulator\firmware\USBDevice-CDC-SerialEmulator.X\dist\LPCUSBDK_16F1454\production\USBDevice-CDC-SerialEmulator.X.production.hex

PC側のUSBドライバはWindows標準のものを使うので、MLAではUSBドライバーは提供されない。
本器を初めてPCに繋いだときにUSBドライバのインストール画面が現れたら下記のディレクトリを指定する。(Windowsの場合)
USB-Com_Emulator_16F1454\utilities\usb_drivers\mplab_comm\Windows
  1. 2018/04/03(火) 15:08:33|
  2. USB-シリアル変換
  3. | コメント:0

USB-シリアル変換器の製作

マイコンのデバグ情報を取り出したり、マイコンとPCを繋いだシステムを作るとき、昔ながらの非同期シリアルで簡易に繋ぎたい。しかし、最近のPCにはシリアルポートが装備されていないものが多い。そこで、USB-シリアル変換器を使うことになるのだが、市販のUSB-シリアル変換器はシリアル側の信号レベルがRS-232Cになっている。マイコンに繋ぐには更にRS-232Cからロジックレベルへの変換が必要になる。USB-シリアル変換器の中ではロジックレベルなのに、それをRS-232Cレベルに変換して外に出し、マイコン側で再びロジックレベルに戻す、ということをやる訳だ。1mもない距離では、わざわざRS-232Cレベルにする必要はない。コスト的なことよりも、そんな無駄なことをすることが許せない。
という訳で、ロジックレベルでインタフェースするUSB-シリアル変換器を作った。

USB-シリアル変換器の製作外観

【設計】
(1)USBフレームワーク
①Microchip社のUSBフレームワークのCDC-SerialEmulatorをベースにカスタマイズする。カスタマイズ箇所はソースコードにコメント「shige」で示している。

②通信パラメータ設定やハンドシェイク機能の設定はCDC-SerialEmulatorが提供する範囲で実現する。

③USB-Comエミュレーションしか行わないので、制御マイコンには必要最小限の機能・性能で小型・廉価な18F14K50(2013年秋月価格170円)を採用する。

④デバイスドライバはWindows標準のUSBドライバが使われる。64ビットOSではデジタル署名されたcatファイルが必須になるため、infファイルのカスタマイズは諦めて、Microchip社のUSBフレームワークのCDC-SerialEmulatorの添付ファイルをそのまま使うことにする。従って、デバイスドライバの組み込み時に表示される文字列はMicrochip社のUSBフレームワークのCDC-SerialEmulatorの内容になるが仕方がない。

(2)サポートする機能は以下のとおり。
①通信パラメータはボーレートのみ設定可能とし、ビット長:8・パリティ無し・ストップビット:1は固定とする。

②ハードウェアフロー制御を可能とし、制御無しも可能とする。

③制御信号(DTR、DTS、RTS、DCD、CTS、CI)をサポートする。 ⇒現在CIは未サポート

④エラー検出(FERR、OERR)をサポートする。 ⇒現在は未テスト

⑤ブレーク検出をサポートする。 ⇒現在は未テスト

(3)USBバスパワー
①この変換器自体はPCからのUSBバスパワーで動作する。

②この変換器からターゲットのマイコンシステムへ5Vまたは3.3Vの電源供給を可能とする。

(4)回路図

USB-シリアル変換器の製作回路図

①機能設定のためのショートピンを設けている。

②CTSは、ハンドシェイクをしない応用を考えて、無接続時にはLとなるようにプルダウンしている。

【製作】
基板部品面
USB-シリアル変換器の製作基板1

基板半田面
USB-シリアル変換器の製作基板2

【ダウンロード】
詳細な製作資料とファームウェアの開発プロジェクトは ここから ダウンロードできる。
  1. 2014/08/11(月) 18:19:32|
  2. USB-シリアル変換
  3. | コメント:0

プロフィール

大泉茂幸

Author:大泉茂幸
名張市つつじが丘おもちゃ病院
名張市つつじが丘南3番町129
tutuji@cb4.so-net.ne.jp
090-5534-6494
連絡は上記のメール、またはSMSでお願いします。

子どもの頃から趣味は電子工作一筋でやってきました。理科離れが進む中で科学技術に興味を持つ子どもが少しでも増えて行くことを願って、子ども達に電子工作の活動の場を提供しています。

1981年からおもちゃ病院の活動を始め、2014年に三重県名張市への移住を機に「つつじが丘おもちゃ病院」を開院しました。自分でおもちゃを設計し製作する【おもちゃ工房】と、マイコンを応用した電子工作を楽しむ【マイコンクラブ】も併設しています。新規参加メンバーを募集しています。

当ブログで公開している技術情報や成果物の複製、改変および再配布はフリーです。読者様のおもちゃ病院活動のお役に立てば幸いです。ご利用いただいた結果や感想等を記事へのコメントやメールでフィードバックしていただけると有難いです。なお、公開ファイルは最新版を載せているので、古い記事の内容から変わっている場合があります。

カテゴリ

おもちゃ修理技術 (124)
¦ ・電子オルゴール+音声再生 (52)
¦ ・音声再生・録音再生 (13)
¦ ・2.4GHzラジコン (35)
¦ ・レガシーラジコン (13)
¦ ・赤外線リモコン (4)
¦ ・RFID (3)
¦ ・タッチセンス (4)
ツール製作 (35)
¦ ・プログラマー (27)
¦ ・USB-シリアル変換 (3)
¦ ・その他のツール (5)
修理事例 (157)
¦ ・マイコン換装 (75)
¦ ・電子・電気修理 (59)
¦ ・メカ修理 (23)
製作記事 (5)
PIC開発 (4)
おもちゃ病院 (9)
ドクター研修会 (2)
未分類 (0)

最新記事

最新コメント

月別アーカイブ

訪問者数

検索フォーム

RSSリンクの表示

リンク

このブログをリンクに追加する

QRコード

QR