PIC18F26J50の基本動作から応用プログラムまでを学びます。

ホーム
16F18313
16F18325
16F18346
16F1619
Curiosity
---
---
    
12F1822
16F1455
16F1459
18F14K50
18F26J50
dsPIC
その他
シリアルデータ SD ロガー

18F26J50のUSB機能と大容量メモリの特徴を生かした応用例で、シリアル通信の受信データをSDカードに記録し、記録内容はUSBをPCに接続すると、外部メモリとして認識する回路です。 Microchip社の18F46J50用サンプルを18F26J50に変更しました。

使い方

XBeeによる無線通信により送られてくる情報をSDカードに記録する装置です。
送られてくる情報は、CSVなどのテキストデータで一群のデータ(レコード)がCRLF (0x0D,0x0A) で区切られている必要があります。 情報を受信するたびにLEDが点灯します。PushSW押すとSDカードの記録を開始し、再び押すと終了します。USBケーブルでPCに接続すると、PCがSDカードを自動認識し「リムーバルディスク」として表示されます。ファイルはFAT形式なので通常の外部メモリとして使用することもできます。

回路の説明

1.5v乾電池をDC-DCコンバータで3.3vに昇圧して電源にするため、どこにでも運べる装置になりました。
SDカードとのインターフェイスはSPIを使用するので、18F26J50の大きな特徴である、Peripheral Pin Select (PPS)機能で物理的に接続するピンは任意に指定し直すことが可能です。この回路専用であれば、もっとすっきりとした配線になるのですが、今までの経緯、今後の実験の都合から、いろいろなピンからSDカードに配線が接続されています。ご勘弁下さい。

プログラム

HID Bootloader対応のプログラムです。ロード切換SWはRB2、ステイタス表示がRB7,RB6のBootloader Probramが書き込まれているので、SDカードプログラムの開発・確認などのソフトウエア入れ替えは、HID Bootloader経由で行いました。
原型となったプログラムは「Microchip Solutions v2011-12-05」に収録されている「Device - Mass Storage - SD Card data logger」です。このプロジェクトを元に大まかには以下の変更を加えています。

  1. EUART1を使用し、シリアルデータを受信する。
    9600bps、8ビット、Nonparityに設定されている。
    受信データは低優先割込みで暫定的にTempBufに記録する。
  2. Timer2で10mSec毎に低優先割込み行い、以下の処理をする。
    LEDの一定時間の点灯
    PushSWのチャタリング防止

詳細は、プロジェクトファイルをご覧ください。

プロジェクトファイル SD_Card_data_logger.zip