アプリケーションノート 3025

MAX3100のPIC接続:MAX3100 UARTを使用してPICマイクロコントローラにUSBを追加


要約: USBは今や簡単に実装することができるようになりました。このアプリケーションノートでは、機器の設計者が、慣れ親しんだ、MAX3100 UARTのUARTフレームを使用して引き続きデータを送受信可能にすることで、設計者が容易にUSBを利用することができるようにしています。UART-USBコンバータICとオペレーティングシステムのドライバが、USBの複雑な部分のすべてを処理します。このアプリケーションノートでは、USB経由でMAX3100を使用してデータを送受信するために必要なすべてのソフトウェアとハードウェアについて説明します。

背景

UART (ユニバーサル非同期レシーバトランスミッタ)は、IBMの最初のPCマザーボードでIntelの8250 UARTが使用されて以来、シリアルポートの標準フレーマとなっています。数十年経った今も、確実で簡単なため、UARTは広く使用され続けています。

ユニバーサルシリアルバス(USB)は、より簡単で失敗もなく速いことから、PCにデバイスを接続する方法として標準シリアルポートに大きく取って代わっています。ただし、USBは、ユーザにとっては接続が簡単になりますが、設計者にとってはいくつかの課題が存在します。このため、多くの設計者は標準シリアルポートを備えたUARTを今も継続して使用していますが、簡単にUSBを実装することができる製品を待ち望んでいます。喜ばしいことにその日がやってきました。MAX3100とUART-USBコンバータを使用することによってUSBインタフェースを実現することが可能になりました。UARTフレーム設計者は、慣れ親しんだ、MAX3100 UARTのUARTフレームを操作するだけでよく、UART-USBコンバータICとオペレーティングシステムのドライバがUSBの複雑な部分を処理してくれます。

MAX3100は、明確にマイクロコントローラシステムを対象とした初のUARTです。SPI™/QSPI™互換インタフェースによって、MAX3100は、ほぼあらゆるマイクロコントローラで使用することができます。SPI/QSPIインタフェースは、オンチップのSPI/QSPI周辺機器あるいは4つのGPIOだけで簡単に実装することができるため、理想的なインタフェースとなっています。MAX3100は、最大4.2MHzのSPIデータレートをサポートし、そのUARTは最大230kBdのボーレートをサポートしています。

このアプリケーションノートでは、機器の設計者が、UARTの標準データフレームを使用して引き続きデータを送受信可能なようにすることで、設計者が容易にUSBを利用することができるようにしています。以下に記載した情報は、USB経由でMAX3100を使用してデータを送受信するために必要なすべてのソフトウェアとハードウェアについて説明しています。

UARTベースのUSB設計

図1に示すアプリケーションの回路は、MAX3100 UART、FT232BM UART-USBコンバータ、93C46シリアルEEPROM、およびPIC16F84マイクロコントローラで構成されています。PIC16F84には内部にUSBやUART周辺装置の機能が備わっていないため、MAX3100で、完全な外部UART周辺装置を構築しています。リスト1に示すプログラムは、SPI経由でPIC16F84とMAX3100の間をインタフェース接続しています。

Figure 1. MAX3100 application schematic.
画像の拡大

図1. MAX3100のアプリケーション回路図

Listing 1.
ダウンロード


リスト1は、SPI経由でPIC16F84をMAX3100にインタフェース接続するアセンブリプログラムの例です

アセンブリプログラムの例では、以下のメッセージを連続して送信しています。
「THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG」

MAX3100は、SPI経由でこのデータを受信し、UARTの標準フレームによる同一メッセージをFT232BMに対して230kBdで連続して送信します。FT232BMは、UARTフレームデータをUSB互換フォーマットに変換することで、PCがUSBの仮想COMポートを使用して簡単にデータを受信することができるようにしています。

アクティブなUSBシリアルケーブルを図1の回路に初めて接続するときは、USBの仮想COMポートドライバをPCにインストールする必要があります。回路全体はUSBポートから電力を供給されるため、電源をボードに追加する必要はありません。表1に挙げた圧縮ファイルをハードドライブにコピーしてください。この例では、Cドライブ上のサブディレクトリC:\3100appnoteに圧縮ファイルをコピーしています。仮想COMポートドライバを正常にインストールするには、下記の段階的な指示に従ってください。

以下の手順では、次のファイルのダウンロードが必要です。 表1. ハードドライブ上のサブディレクトリにR9012134.ZIPファイルを解凍
Description Filename
Win98/2000 Virtual COM port driver R9012134.ZIP

ステップ1:アクティブなUSBシリアルケーブルにボードを接続すると、以下の画面が表示されます。Next > (次へ >)ボタンを押します。



ステップ2:2番目の画面が表示されたら、Next > (次へ >)ボタンを押して、デバイスに最適なドライバを検索します。



ステップ3:3番目の画面が表示されたら、Browse (参照)ボタンを押して、R9012134.ZIPファイルを解凍した位置をWindowsに通知します。たとえば、C:\3100appnoteを選択します。Next > (次へ >)ボタンを押して検索を開始します。



ステップ4:FTDIBUS.INFドライバファイルが見つかり、次の画面が表示されたら、Next > (次へ >)ボタンを押します。



ステップ5:最後の画面が表示されたら、Finish (終了)ボタンを押してインストール作業を終了します。



ステップ6:USBの仮想COMポートが正しくインストールされていることをDevice Manager (デバイスマネージャ)タブのポートのセクションを見て確認します(System Properties (システムプロパティ) Device Manager (デバイスマネージャ)のPorts (ポート))。



USB仮想COMポートのドライバがインストールされると、お気に入りの標準シリアルポートのPCアプリケーションはすべて、一般的なハードウェアCOMポートとは異なり、仮想COMポートを使用してUSB経由でデータを送受信することができるようになります。多くのハードウェアCOMポートは115kBdに制限されていますが、仮想COMポートはハードウェアCOMポートをソフトウェアでエミュレートするため、最大921kBdのボーレートをサポートしています。