« ラブジョイ彗星・2015年2月12日(~2月28日)の位置 | トップページ | PIC+SPI+I2C 自記温湿度計+気圧計+8ch電圧計のソース - main() »

2015年2月13日 (金)

自記温度計、自記気圧計 - 複数のSPIデバイスがいっしょに使えなかった話

気圧、温度、湿度、各種電圧を定められた時間間隔で測定しSDカードに記録しようというプロジェクトもやっと形になってきました。

テスト的に昨晩2分おきに測定をしてみました。

-----

なお複数のSPIデバイスをいっしょに使う話についてはきむしげさん(きむ茶工房ガレージハウス)の

  「
SPIマスターにSPIデバイスを複数個接続して見ます

にソースを含めた詳細な記事があります。きっと私の記事よりずっと参考になると思います。

なお動くのは動くけれども(SDカードの読み書きの)動作が不安定という場合はひょっとしたら

  「
PICでSPI - SDカードの書き込みエラーの話

が参考になることがあるかもしれません。
また私の使っているSDカードアダプタはそもそも単独で使ってもエラーが出ることがわかりました (^^;;
  SDカードでエラーが起きる理由 - PICでSPI


---------

=======

SDカードにはCSVとして保存してあるのでそのままExcelで開くことができます。
201502130131xls


これだけデータが揃ってくると壮観(?)です。

現状次のデータを取得できます。
精度がどうだ、確度がどうだと書いていますが、もちろん“私の持っているものは”という話です。

date  日にち(RTC=DS3234Sから取得)
time  時刻(RTC=DS3234Sから取得、もう涙がでるくらい正確です)
331-T  LPS331APの温度
331-P  LPS331APの気圧(海面更正気圧でアメダスと比較するとかなり正確)
25H-T  LPS25Hの温度(室温だとちょっと高め低め)
25H-P  LPS25Hの気圧(5hPaくらい高め?)
3425-V MCP3425の電圧(白金薄膜抵抗の抵抗値測定用、精度・分解能良好です)
3425-T 白金薄膜抵抗の抵抗値から求めた温度(摂氏0度(氷点)と36.5度(±0.05度)で校正)
2321-T AM2321の温度(故障中、ハンダ付け不良?、比較的正確)
2321-H AM2321の湿度(故障中、ハンダ付け不良?、確度については今のところ調べようなし)
115A2  MPL115A2の気圧(分解能は悪いですが比較的正確です)
3208-0 MCP3208の電圧 Ch0 抵抗・サーミスタの分圧
3208-1 〃Ch1 抵抗・トランジスタBE間の分圧(VBE
3208-2 〃Ch2 未使用
3208-3 〃Ch3 未使用
3208-4 〃Ch4 未使用
3208-5 〃Ch5 未使用
3208-6 〃Ch6 未使用
3208-7 〃Ch7 未使用

MCP3208の精度・確度については未検証です。
サーミスタは計算は面倒ですが比較的正確に温度が測れます。
VBEの温度係数はこれからのネタです。

ところで

  「SPI接続でトラブル! 複数のデバイスが使えない
  「SPI接続でSDカードとMCP3208がいっしょに使えない話

に書いた話はどうなったかというと解決したとはいえない状況です。

SPI接続でSDカードとMCP3208がいっしょに使えない話」には“解決した”というのを二回も書いたのですが、その後一晩中動かして翌朝見たらデータが影も形もありませんでした。

どうやらSDカードMCP3208だけの問題ではなくSDカードDS3234Sでも起きる問題のようです。

現在“暫定対応”ということで以下の回路図のようにしています。
これで上のとおりデータは朝見たらちゃんと残っていました。でも....
Conflict04

その後、これでも不安定であることがわかりました。そこで抜本的な対策として次の方法をとりました。
Conflict05

SDカードとそのほかのデバイスの間にアナログスイッチを入れました。アナログスイッチはSDカードの/CSでコントロールされます。デバイスを使用するとき/CSはLowに落ちます。したがってSDカードを使うときは他のデバイスは切断されることになります。
もちろんここはアナログスイッチでなくてANDとかORとかXORでいいわけですが、スペースの関係でPICの基板に載っているアドレスのかちあったI2Cデバイス切り替えようのアナログスイッチの使っていないものを流用しました。
なおSDカードのプルアップははずし根本の方に新たにプルアップを追加しました。このプルアップに関してはこれでいいのかよくわかりません。

その後一晩中測定と記録を繰り返すみたいなことをやっていますが特に問題はなさそうです。

------

PICでSPI - 超高精度SPIバスRTC(リアルタイムクロック)DS3234Sの使い方(ソース付き)
PICでI2C - 大気圧・温度センサーLPS331APの使い方
I2C/SPI大気圧センサーLPS25Hの使い方 - 1 - 実装
意外に正確そうなI2C大気圧センサーMPL115A2の測定値
温度センサー3種の精度比較(摂氏0度~40度編)
PICで作るお手軽サーミスタ温度計 (2) - ソース付き
(趣味の)白金抵抗温度計の製作 - 準備編
PICでI2C - ADコンバーター・MCP3425の使い方
PIC18F26K22でSPI - 8ch/ADコンバータ MCP3208の使い方(ソース付き)
PICでSPI SDカードを読み書きする

  趣味の電子工作
    PIC
  趣味の気象観測
  趣味の実験

« ラブジョイ彗星・2015年2月12日(~2月28日)の位置 | トップページ | PIC+SPI+I2C 自記温湿度計+気圧計+8ch電圧計のソース - main() »

趣味の気象観測」カテゴリの記事

コメント

この記事へのコメントは終了しました。

トラックバック

« ラブジョイ彗星・2015年2月12日(~2月28日)の位置 | トップページ | PIC+SPI+I2C 自記温湿度計+気圧計+8ch電圧計のソース - main() »

フォト

サイト内検索

  • 記事を探されるんでしたらこれがいちばん早くて確実です。私も使ってます (^^;; 検索窓が表示されるのにちょっと時間がかかるのはどうにかしてほしいです。

新着記事

リンク元別アクセス数

  • (アクセス元≒リンク元、原則PCのみ・ドメイン別、サイト内等除く)

人気記事ランキング

  • (原則PCのみ、直近2週間)
無料ブログはココログ