« 秋月、LM338電源にメーターで電圧調整 | トップページ | 秋月、トライアック万能調光器キット »

2009年7月 2日 (木)

超低コスト、USB-SDカードメモリの製作

Gadjetsdcard書籍「超低コストインターネット・ガジェット設計」では、フリーのプロトコルスタックを見つけて、それを実践に活かしていくための、最初の動作確認の基板つくりをするものです。プロトコルスタックが動作するかを確認するために、一番簡単な動作が動くかを試すことが目的です。この基板を作っても、何かの役に立つわけではありません。

書籍では、そのため、製作にはブレッドボードを使用しています。

第7.11章では、USBのプロトコルスタックは使えるようになったところで、もう一つのSDカードのプロトコルスタックを使ってみることを試しています。2つのプロトコルスタックを使うので、両方が影響なく動作することも検証しています。

Gadjetsdcard2 SDカードの読み書きをするためには、プロトコルスタックが必要です。FAT16システムでのアクセスができることで、SDカードをパソコンで読み書きすることができるようになるので、データの受け渡しをすることが可能になります。

SDカードスロット(ソケット)は、秋月で入手できるものを使いました。この製作では、WP,CDは使用していないので問題なく使えるでしょう。

取り付けも、蛇の目基板のピッチに合うので半田付けも容易です。

電源は、USBの5Vを3端子レギュレータで3.3Vにして、AVR、SDカードスロットに供給しているので取り扱いが容易です。

USBでパソコンに接続して、パソコン側(CYGWIN上で)から、
./sd.exe ls
を実行します。このコマンドは、パラメータに何かの指定が必要です。(何でもいい)
実際やってみると、なにも動きません。(USBが見つからないとでるのは問題外)

SD.Cのプログラムを確認してみると、USBからコマンド(i)を送るときに、j(=4)を設定して送っています。これは、AVRに書き込まれているファームウェアでは、なにもしないものとなっています。
正しくは、iを、0,1,2と続けて、3回送らなければなりません。

SD.Cの、USBへコマンドを送っている部分を3回コピーして送るように変更して、コンパイルしなおしします。
gcc -o sd.exe sd.c -lusb
とコンパイルします。

これで、3回とも、0が返されれば正常に動作しています。(RETではなく、BUFが0となる)

この処理で、何が行なわれるかといえば、SDカードに書かれている「test.txt」というファイルをコピーして、「test2.txt」に書き込むという動作をします。3回に分けているのは、オープン、コピー、クローズを別にやっているからです。

AVRに書き込まれているファームウェアはこれしか出来ません。何かに使うためには、プログラムを参考に、自分でプログラムを作る必要があります。まさに「超低コスト」(出す側から見て、手間のかかっていない手抜きのもの)なプログラムです。

USBやSDカードを使うには、こんなプロトコルスタックがあるよ!、使うにはこんな簡単でいい!というお手本です。なので、自分でプログラムを作ってみましょう。
USBや、SDカードを使う上で難しいところは、すべてプロトコルスタックがカバーしてくれています。そういう本なのです。

なお、SDカード上で、test.txtを、test2.txtにコピーしたものを見ると、110バイトあるところが、100バイトしかコピーされていませんでした。たぶん、クローズのときにフラッシュされないのでしょう。

USB、TCPIP、SDカードを使いたかった人にとって、この書籍は、天からのプレゼントのようなものです。

« 秋月、LM338電源にメーターで電圧調整 | トップページ | 秋月、トライアック万能調光器キット »

コメント

コメントを書く

(ウェブ上には掲載しません)

« 秋月、LM338電源にメーターで電圧調整 | トップページ | 秋月、トライアック万能調光器キット »

広告

  • ソフマップ
  • ビックカメラ
無料ブログはココログ
2009年11月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30          

USBとマイコンの参考書購入