前回は、PIC16F88の内蔵EEPROMと外付けのEEPROMであるAT24C256Bとの間でデータの読み書きを行った。
今回は、その外付けのEEPROMを取り外してPIC18F14K50を載せた別の回路に取り付け、このEEPROMのデータをUSB経由でTera Termへ送る実験。
まだ256バイト分しか試していないが、なんとかデータの転送ができた。
追記(2014/12/21)
TeraTermで受信データを16進数表示する方法を忘れてしまっていたので覚書き。
TERATERM.INIの
; Display all characters (debug mode)
Debug=off
を
; Display all characters (debug mode)
Debug=on
とする。
「Shift + Esc」を押すごとに、
通常表示 -> デバッグモード -> 16進デバッグモード -> 非表示- > 通常表示 ->
と、順に切り替わるので、16進表示は「Shift + Esc」を2回だ。
つまり、
PIC16F88 –> AT24C256B –> PIC18F14K50 –> USB –> PC –> Tera Term
ということで、PIC16F88で発生させた256バイト分のランダムなデータをAT24C256Bに書き込み、それをPIC18F14K50に載せ換えてUSB経由でPCに送ってTera Termで受信したという経過だ。
この先頭と最後でそれぞれ保存しておいたデータをグラフ化して、ちゃんと同じものが転送されていることを確認してみた。
ぴったり同じで返って分かり難いので、あえてちょっとずらして重ねている。
データ最後の赤丸部分だけが異なっているが、for分の終了判定が1つ分早すぎたために初期値の0xFFが残ってしまったというお馬鹿な理由だ。
で、何をしようとしているのかというと、
1.測定装置に記録媒体としてAT24C256Bを載せる。
2.測定データを順次AT24C256Bに書き込む。
3.予定の測定期間の区切りにAT24C256Bを交換する。
4.AT24C256BをPCへの転送用回路に載せてUSB経由でデータを回収する。
というようなシステムをつくろうかなあと思っている。
仮に外付けのEEPROMをここで使ったAT24C256Bにすると32kバイトの容量で、1分毎に2バイトで一組のデータを10日間ほど保存し続けることができる。
価格は100~150円だ。
もっと容量の大きなものでも数百円程度で、コストパフォーマンスはむしろ良いくらい。
EEPROMと必要ならバッテリーを交換するだけで済むので途切れなく測定が可能だ。