« 「PICデータロガー」、周波数ロガーで測定 | トップページ | CQ誌の、6U8ステレオアンプの製作 »

2010年9月22日 (水)

「PICデータロガー」、シリアルロガーで温度測定

Pic18f4520_seriallogger書籍「PICを使ったデータ・ロガーの製作」では、3種類のロガーを製作しますが、このシリアルデータロガーは、9600bpsのシリアルデータで送られてきたデータを、 そのままの形でSDカードに記録します。

すなわち、何かを測定しながら記録していくのではなく、測定するアダプタを別に作り、その出力を記録していくことになります。つまり、特定の形式のデータを記録するのではなく、どのような測定も行なうことができるような、汎用的なものということが出来ます。

入力をRS232Cレベルで取り込むようにするのであれば、C基板のRS232Cレベルコンバータをつないでおくのが良いのですが、アダプタとして作る基板の出力はTTLレベルであるため、そのまま端子へ接続しています。

12f683_ondoseriallogger 書籍では、測定アダプタとして、2種類挙げられています。高精度8チャンネルアナログ入力アダプタと、温度(変換済み)測定アダプタです。

いずれも、PIC12F683を使用して測定を行なっていますが、12F683には、シリアルインターフェースは内蔵されていないので、MikroCによるソフトウェアによるライブラリを使用しています。

温度は、LM61により測定し、電圧値から温度への換算を行なって文字列としてシリアルデータロガーへ送ります。シリアルデータロガーは、この文字列をそのままSDカードへ記録していくだけとなります。

シリアルデータロガーは、送られてくる9600bpsのシリアルデータを、読みこぼさずにSDカードに記録するために、バッファリングを行なっています。4つのバッファがあり、いっぱいになると次のバッファに記録していきます。SDカードへは、古いものからどんどん保存していくことになります。

バッファリングは、C言語のプログラムの上では、割り込みを使用していないようですが、コンパイラのシリアルの読み込みの関数で、背後で割り込みのバッファリングがあるのかもしれません。

シリアルデータロガーは、ほかのアナログデータロガーや周波数データロガーのように、測定の対象が決められていないので、測定アダプタを製作すれば、どのようなデータでも測定できるようになると思います。このようなロガーは、案外便利かもしれません。

« 「PICデータロガー」、周波数ロガーで測定 | トップページ | CQ誌の、6U8ステレオアンプの製作 »

製作」カテゴリの記事

コメント

はじめまして機械屋と申します
PICデーターロガー同じもの作っております
情報交換お願いしたくgoogleより来ました、、、

実は、、、著者のHEXをそのまま書き込むと動くのですが、MiKroC Pro For PICでCソースを書いた後、コンパイルたHEXを書き込むと全く動きません
Mmc_Fat_Init()が機能していないように考えております

お忙しいところすみませんが、情報お持ちであればご教示賜りたく、、、よろしくお願いします

コメントありがとうございます。
私も、コンパイルしてみたのですが、あいにくデモ版なので、「デモリミット」となりリンクされませんでした。
しかし、コンパイルしてみた結果、プロジェクトファイルがないため、デバイス種類(18F4520)、周波数(40MHz)や、CONFIGの指定が必要でした。
CONFIGは、ソースプログラムの中で指定することが多いのですが、指定されていません。
全く動かないのは、CONFIGの間違いがあるのではないでしょうか。正しければ少なくとも液晶表示は出るはずです。
また、MikroCのライブラリは、SDカードの相性があるようです。
まず、プロジェクトファイルを作り、元のソースをコンパイルして試してみたらどうでしょうか?

ふくださま
お忙しいところご教示ありがとうございました
進展あればご報告いたします

私もデモ版のときはDemoLimitと出ました
ライセンスを購入してコンパイルすると
1.6Kでした???(たしか2Kでは?最適化前?)
よく分からないです

LED点灯だけのCソースではちゃんと動くので
コンフィグ等はOKと思っています

元のソースが古いmikroCなので上手く修正できるかあまり自信ありません
PROになってかなり変更されているようです

MikroCのライブラリとSDカードの相性、色々やってみます、ありがとうございました

LED点滅などのプログラムは動いているということで、やはり、ライブラリの問題なのでしょうか?
PRO版では、だいぶ変わっているということなので、いちからSDカードのアクセスを作るつもりでやらなければならないかもしれませんね。
MikroCの購入を考えたこともあったのですが、イーサネットのアクセスが、上手くいくときと行かない場合があり、使えないパソコンがあったのでやめてしまいました。
しかし、豊富なライブラリは魅力です。

こんばんは~

やっとのことで原因追求できました、、、のでご報告

秋月ライタはきれいなHEXを前提に作られているようで、、、
ソースが複雑になるとMikroC PRO for PICはアドレスが乱れたHEXを出すようになります
秋月ライタが、この乱れたHEXを読み込み時にエラーを起こしていると推測されます
(インテルHEXの仕様は満足しています)

①MikroC PRO for PIC(Mmc関数有)で生成したHEXを秋月ライタで書き込むとおかしくなる
↑アドレス乱れ大
②MikroC PRO for PIC(LED点灯コードのみ)で生成したHEXは秋月ライタで書込&動作OK
↑アドレス乱れ小

対策
③MikroC PRO for PIC(Mmc関数有)で生成したHEXを、一度バイナリに変換し
 再度インテルHEXにリバースしてキレイにすると秋月ライタで書き込めて、問題なく動作します

③の手順は複雑なのでPICkit3を購入したところ
どうも単体では動かないようで、、、HEXを直接書き込むことができないようです、、、涙
PICkit2を再度購入するか悩んでおります、、、
(Win7_64なので新しい方が良いと思い3を買ったのが失敗、、、2動くのかな?)

ちなみにHEXコンバーターはVectorで無料でした

良きアドバイスあればご教示ください

情報ありがとうございます。
HEXファイルのアドレス順序が複雑だと、秋月PICライタは上手くないのですか。
HEXファイルはどうでも、メモリに書き込むだけなら何でもいいと思っていました。しかし、プログラム、EEPROM、CONFIGの順でないとダメかもしれません。
私は、PicKit2互換のAKI-PIC2ライタを持っていますが、専用ソフトを使ってかけるので便利でした。(値段が高いので、PicKit2の方がよかった)
PicKit3で読めなくなるのも困ったものです。
しかし、HEXコンバータで対処できているので、よかったです。
本来なら、PICライタが正しく対応しなければならないことですね。

コメントを書く

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

« 「PICデータロガー」、周波数ロガーで測定 | トップページ | CQ誌の、6U8ステレオアンプの製作 »

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