« 首都圏は快晴・・・・ | メイン | 悪戦苦闘のI2C通信 »

2016年2月 7日 (日)

まさかのSDカードデータ消失!!

前回に書きましたようにGPDモータコントローラを置き換えるべく、7号機を製作中ですが、意気消沈の事故が発生してしまいました。

手元操作ボックス側のソフトのデバック作業がほぼ終わり、本体コントローラと接続したデバックを開始したところ、その途中でプログラム、基板図等を入れていたSDカードが突然認識しなくなってしまいました。

ここ2週間近い期間のプログラムが全部パーです。

要因となったのは、手元操作ボックスと本体コントローラとをつなぐ4芯のカールケーブルです。

20160207_3282上が問題のコード
下は、作り直した約1mのコード

一見かっこよかったので採用したのですが、カールしているため短そうですが、実は2m以上あって、これでI2C通信をしたのが裏目に出ました。

プログラムのデバックをやろうとすると、全く動作しません(LCDキャラクタディスプレイに表示されない)。
本体コントローラ側は、初期のL6470チェック部分は動いていますし、I2Cの接続をしないと通信部分は通過して、プログラムは進行していましたので、なかなか原因がわからず、試行錯誤がつづきました。

結局I2C通信線を50cmくらいの短いのに換えたら、正常に通信できるようになりましので、通信で止まる原因が長すぎるケーブルであったことがわかりました。

しかし、通信が正常になったあとも、結露防止ヒータからの温度データがうまくとれません。
温度センサーとGNDの間に5.1kΩの抵抗をいれているのですが、この点(=電圧を取っている場所)の電圧をテスターで計ると0ボルトになってしまっています。

これらの問題点を検証するため、USBの抜き差し、Arduino nanoをICピンから抜き差しするなどを繰り返してしたところ、突然USB接続していたSDカードが認識しなくなったわけです。

このArduno nanoは互換品で、非常に安かったのですが(780円)、内1個が入手当初からUSBMiniの差し込みが奥まで入らず、中途半端だったものです(もう1つの方はチャンと刺さります)。

20160207_3287激安互換品

結局、このArduino nanoもお亡くなりになりました。

分かったことは、I2C通信ができないような長さのケーブルをつないだ状態では、I2C通信のルーチンで待ちになってしまうと言うことです。

また、温度データが取れなかった原因は、以前の回路と接続ピンを変更したことで、シャッター開閉用リレーピンと温度センサーデータ取得用ピンの混同があり、アナログデータ取得用ピンのモードを「出力」にし、初期化(LOW)したピンに対してアナログリードを行っていたことでした。

温度データの本体コントローラ側からの送信(スレーブ側からの送信)については、まだまだトラブルがつづいたのですが、これは後日。

今回も色々勉強させてもらいました。

今回のプログラムは、全く最初から作成したものではなく、現用の5号機から改変したもので、このプログラムはバックアップがありましたので、全くはじめからのやり直しではないのですが、大幅な手戻りとなってしまいました。

また、このデバック作業中に虎の子のL6470モータコントローラキットも端子間をショートさせたみたいで、あえなくご臨終となってしまいました。

このキットは、まだ、秋月電子で品切れ状態は続いています。

トラックバック

このページのトラックバックURL:
http://app.blog.bbiq.jp/t/trackback/562191/33734055

まさかのSDカードデータ消失!!を参照しているブログ:

コメント

コメントを投稿

コメントは記事の投稿者が承認するまで表示されません。