マイコン工作実験日記

Microcontroller を用いての工作、実験記録

CDC+MSC

2013-02-14 21:26:52 | SAM3
FatFsに続いて、今度はCDC+MSCのUSB複合デバイスのドライバを整備中。同様の作業は以前AT91SAM7Aを使ってやったことがあるのですが、その際は基本実験だけで実用的には使用していませんでした。今度はちゃんと使ってみるつもりです。

ARM7コアであるAT91SAM7のシリーズで一番手頃だったのはSAM7Sでしたが、このデバイスではUSBのエンドポイントが4つしか用意されていませんでした。CDC+MSCをサポートするためには、それぞれのバルク入出力に2つのエンドポイントとコントロールにひとつの合計5つのエンドポイントが必要となるので、SAM7Sではこれを実現できませんでした。SAM3Sではエンドポイント数が8つに増えているので、問題無くCDC+MSCの複合デバイスをサポートすることができます。

MSCをサポートすることで、フォントを始めとするデータファイルを簡単にPCからコピーすることができるようになります。そしてこれをFatFsで参照することができます。逆にFatFsを使って書き込んだデータを後からPCで参照することもできますので、ロガーのようなアプリを作る場合にもこの機能を活かすことができます。しかしながら、FatFsとMSCは排他的に動作させる必要があります。USBでつながっていない場合にはFatFsを動作させ、USBでつながっている場合にはMSCを動作させればいいのですが、そのためにはマイコンを電池駆動してUSBをセルフパワーで動かす必要があります。

現在のところMiniSAMボードはUSBパワーで動かしているので、VBUSのレベルを見て動作を区別するわけにはいきません。それにFatFsを動かす時でもUSB CDCでのアクセスが使えた方が便利です。そこで、USBのドライバの動作としては、CDCとCDC+MSCの両方をサポートすることとし、これを切り替えて再起動することで両方の動作モードを使うことにしました。

最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。