« Arduino互換機を作りたい(1) | トップページ | Arduino互換機を作りたい(3) »

2013年9月 1日 (日)

Arduino互換機を作りたい(2)

製作するArduino互換機のクロック供給回路はできた(はずなの)で、次はPCとの通信部分です。

うちのPCにRS-232Cは無いので、USBシリアル変換回路を載せます。最終的にはFTDIのFT232RLチップを載せるつもりですが手持ちがないのと、最初はブレッドボードに組みたいので、まずはスイッチサイエンス社のFTDI USBシリアル変換アダプター(5V/3.3V切り替え機能付き) を使うことにします。この製品もFT232RTを使っています。変換アダプタの回路図はこちらです。 が、使い方の詳しい説明が見つからないのでFT232RLのデータシートをあたることに。気になるのはVCCIOピンの扱いです。データシートの説明からVCCIOは、外部のロジック回路とインターフェースする電圧の決定に使われるようです(VCCは、FT232RTそのものを駆動する電源です。スイッチサイエンスの変換アダプタでは、USBのVBUSに接続されています)。

アダプタボード上のジャンパJP1の2番ピン、3番ピンをショートするとVCCIOがUSBバスパワー(VBUS)の5Vにつながり、CMOSレベル(5V)でインターフェースされることになります。また、VCCIOは、外部ロジックへのコネクタJP2の4番ピンにも出ていますので、外部ロジックはこの4番ピンからUSBバスパワー(VBUS)を電源として利用できます。Atmega328P-PUは、5Vなので、今回はこのパターンが使えそうです。

それから、FT232RLのコアは、3.3V動作で、VCCに印加された5Vから内部のレギュレターで作っています。これは、FT232RTの3V3OUTピンに出ていますが、変換アダプタのJP2には引き出されていません。でも、JP1の1番ピンにつながっていますので、これをArduino互換機本体側で使うこともできそうです。ただし、FT232RLのデータシートによれば取り出せる最大電流は、50mAとのことなので、何かを駆動するのは難しそうですが、USBバスパワーとACアダプタ電源の自動切り替えをする場合には、切り替え回路でACアダプタから電力が供給されているかどうかを調べるコンパレータの参照電圧としては使えそうです。AREFの参照電圧にも使えそう。

なお、JP1のジャンパの1番ピン、2番ピンをショートするとVCCIOが、内蔵レギュレターで作られた3.3Vが出力されている3V3OUTピンにつながり、TTLレベル(3.3V)でインターフェースされることになります。

その他のピンの結線ですが、FT232RTのデータシートの「7.4 USB to MCU UART Interface」から、データ転送に使用するRXは、相手のTXと、TXは相手のRXと結線します。また、ハードウェアハンドシェイクに使用するRTSとCTSも互い違いに接続します。と思ったら、Atmega328P-PUには、RTSとCTSがありません。さらに、USBシリアル変換アダプターもRTSはコネクタJP2に引き出されていません。RTSは出力ですが受け手がいない(AtmegaにCTSがない)ことと引き出されていないものは対処する必要もないので放っておくとして、CTSはどうしましょう。データシートを見るとCTSは負論理(LOWだとON)みたいですので、GNDに落として常に送信可(Clear to Send)であるということにしておきます。CTSは入力ですので、相手(のRTS)がいないにしても自分で見る可能性があると思うので。

ここまでわかったことから、USBシリアル変換アダプターとAtmega328P-PUの接続は

  • USBシリアル変換アダプターのRX(受信データ)をAtmega328P-PUのTX(送信データ)
  • USBシリアル変換アダプターのTX(送信データ)をAtmega328P-PUのRX(受信データ)
  • USBシリアル変換アダプターのVCCIOをAtmega328P-PUのVCC、AVCC
  • USBシリアル変換アダプターのCTS、GNDをAtmega328P-PUのGND

へ接続することとなります。

絵にするとこうなります。電源をUSBバスパワーとすることも補足しています。

Usb

ここまでの回路は以下の書籍も参考にさせていただきました。

 

なお、最初の2つは、CTSは宙ぶらりんのままとしています。3つめの書籍は、GNDへ落としています。3つめを真似させていただきました。 

さて、DTR(Data Terminal Ready)が未結線のままです。これはATMEGAのRESETに関係しているのですが、これはまた今度。

« Arduino互換機を作りたい(1) | トップページ | Arduino互換機を作りたい(3) »

Aruduino」カテゴリの記事

電子工作」カテゴリの記事

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: Arduino互換機を作りたい(2):

« Arduino互換機を作りたい(1) | トップページ | Arduino互換機を作りたい(3) »