« 秋月、ウェブラジオをケースに入れる | トップページ | 秋月、電波時計キットの製作 »

2008年12月31日 (水)

SDカードを使ったデータロガー

24fj32sdlogger 書籍「C言語ではじめるPIC24F活用ガイドブック」の11-12章に出ている、SDカードを使ったデータロガーを製作しました。

PIC24FJ32GA002を使った製作が色々出ているのですが、その中で、SDカードを保存メディアにしたデータロガーが出ていました。

保存データが少ないうちは、メモリなどに保存するのでもいいのですが、データ量が多い場合や、また、逐一シリアルでパソコンに送る場合でも、サンプリング速度が速いと追いつかなくなってしまいます。

PIC24FJ32GA002は、SPIインターフェースを持っているので、SDカードと接続することが出来ます。マイクロチップ社では、FATなどを扱う「ファイルシステム」を提供しています。これを使用すると、PICで、SDカードの読み書きを容易に行うことができます。

このデータロガーでは、4チャンネル(内2チャンネルは、オペアンプのバッファー入り)の入力を、SDカードに記録していくことが出来ます。サンプリングは、10msec,100msec,500msec,1secから選ぶことが出来、いつでも保存開始、終了とすることができます。

書籍には、プリント基板用のパターン図なども収録されていますが、蛇の目基板で製作しました。基板の縦横1穴分カットすることで、透明ケースに収めることが出来ました。
書籍では、3.7Vリチュウム電池を、DCDCコンバータで5Vに昇圧するようになっていますが、コンバータ用のIC(MCP1253)が手に入らなかったので、9Vを3端子レギュレータで5Vに下げるようにしました。006Pは、透明ケースにうまく収まりました。

組みあがって、動作させてみたところ、SDカードの書き込みで、「FILE OPEN ERROR」となってしまいました。原因は、SDカードスロットのWP信号がLOWになっているのが原因でした。
WP信号は、ライトプロテクトの出力で、SDカードのLOCKによってHIGHとなります。
SDカードを挿入すると、一旦LOWになり、刺さりきったときにLOCKになっているときにHIGHとなるものです。この検出がうまくいかないSDカードスロットが多いのですが、使用したスロットもうまくいかないもので、HIGHとはならないものでした。この端子は、LOCKのときにHIGHとなるので、LOWのままなら、書込み禁止できないだけと考えていました。
しかし、プログラムでは、この端子は、通常HIGHを期待しているようです。
LOWにすると、書込み禁止となっていると判断しているようです。そこで、疑問はありますが、この配線をはずし、HIGHとなるようにしました。

SDカードに書き込みを行なって、パソコンで読み出してみると、ファイルが作られていました。ファイルは、LOGGER0.TXT~LOGGER7.TXTの8つのファイルとなります。
これは、一旦ファイルへの書き込みを止めて、ふたたび書き込みを始めると次のファイルとなるようです。

プログラムは、C言語で書かれていることと、ファイルシステムが提供されているため、比較的短いプログラムです。このプログラムで、「ファイルシステム」の使い方がわかりました。

« 秋月、ウェブラジオをケースに入れる | トップページ | 秋月、電波時計キットの製作 »

製作」カテゴリの記事

コメント

たいへん貴重な情報を公開して頂き、ありがとうございます。
私はこのトラブルで何週間もず〜っと悩んでいました。
ロジアナを買ってきて波形を見たりもしましたが、結局分からずじまいでした。(ロジアナ自体の使い方もまたよく分かりません。)
まさか、WP信号にそのような挙動が隠されているとは、お釈迦様でもご存知ないでしょうね。
ともかく、非常に助かりました。

コメントありがとうございます
ソフトによっては、WPがLOWになればよいものがありますが、このソフトではHIGHにならなければならないようでした。
SDカードのLOCKをONにしてもよいと思います。

コメントを書く

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

« 秋月、ウェブラジオをケースに入れる | トップページ | 秋月、電波時計キットの製作 »

フォト
無料ブログはココログ
2016年6月
      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とマイコンの参考書購入