にほんブログ村 その他趣味ブログ 電子工作へ

2009年05月24日

I2C って...

今日は K 君がたまたま来たので、N 君と一緒に前回と引き続き木工やってもらいました。
放っておいてもそこそこの精度が出せるようになってきたようなので、私のアマチュア家具職人のプライドもどこかに行ってしまい、バリ取りなし・研磨なしでも「いいんじゃないのー」の放置モードに...(笑)


その代わり私はアマチュア電子工作職人の血が疼いてしまい、届いていたダイセンのモータードライバボードを使って、I2C バスのノイズ解析という個人的趣味モードに...(笑)。最近もデジタルオシロで自作オーディオとか簡単なデジタル回路のチェックとかはしていましたが、こんな応用問題にトライするのは 25 年振りくらいなので、そもそもオシロの高度な使用方法がよく思い出せません。xx才の手習いはきついです...でもとりあえず I2C バスのノイズの解析に挑戦!!!
(1) ロボデザイナ側の I2C コネクタ
(2) (1) から 20cm くらいのケーブルで接続したモータードライバ側のI2Cコネクタ(モーター回転なし)
(3) (2) にさらにサージ予防のコンデンサなしの DC モーターを接続・回転させた場合
について SCL クロックの波形について調べて見ましたが、シングルトリガで捕捉した SCL クロックの波形はどのパターンもほとんど変わりません。以下の通り、綺麗なもんです。

SCL.jpg

でも、DC モータのサージの周波数成分なんて I2C のクロックとは全く違うだろうし SCL クロックは定常波じゃないので、オシロで定常的に見ることなんて出来ないし... と今書きながら分かってきました。そうだ、サージ電圧はもっと高いはずなのでそれでトラップ出来るだろうし、擬似的に定常的な SCL クロック発生してしまえば良いんだ...やっと感覚が戻ってきましたが、今日はここまで。
でも、I2C バスって複雑で再現性の低い問題が発生した時に外部的な監視手段で本気モード(≒仕事モード)で解析しようとすると I2C バスアナライザみたいな専用機ないと難しいのかもしれませんね。デジタルオシロでも超ロングメモリないと無理だな。やっと世の中に I2C バスアナライザが存在する理由が分かりました。思っていたより手強い相手を選択しつつあることに今更ながら気付いてしまいました。

I2C バスラインのノイズ対策の手法についても大体分かりました。こちらに書いてあるように SCL と SDA を Vss(グランド) とツイストするなり、シールドしてしまうなりすりゃ良いのね。3線でフラットに接続する場合も SCL/Vss/SDA と Vss を中心にすりゃ良いって。そりゃそうだ、考えてみれば当たり前です。ロボデザイナのコネクタのピンアサインよろしくないな。まあケーブル短いと大差ないでしょうが。
トラブルシューティングとかきちんと I2C ドライバを実装するためには、こちらあたりのレベルは読んで理解しないといけないようです。なになに、複数のマスタを想定したアービトレーションとか、スレーブが間に合わない時にスレーブ側が強制的に SCL クロックを LOW にして引き伸ばすなんてありなの ??? 結構ソフトウェアでフルサポートしようとすると難しいですね、このプロトコル。TicollaLib がフルサポート出来ているとは思えないな。それが公開されていない理由かな ?
結論として、今日ロボデザイナの I2C ライブラリについて分かったことは、100Kbps の場合の SCL クロックの "H" の時間の MIN 4.7μs、立ち上がり 1μS の基準を満たしていること、400kbps は絶対無理なこと、26 Khz という超遅い SCL クロックは遅いスレーブの強制的 SCL LOW にまともに対処せずにクロック落として対応しようとした結果じゃないの ??? という憶測だけ。
posted by モッパー at 23:39| Comment(2) | TrackBack(0) | ロボデザイナー
この記事へのコメント
Sです。もうやっているなんてしりませんでした。あの問題だった真横に切る作業は、どうなったんですか?
Posted by S at 2009年05月29日 19:48
S君、
そーなんです。先週は予定外の事件があって、たまたま K 君が来たので、ついでにロボッてしまいました。「真横」はジグソーで何とかできる技術が開発されました。明日来るんだよね。どうやったのか皆に聞いて下さい。
Posted by モッパー at 2009年05月29日 20:35
コメントを書く
お名前: [必須入力]

メールアドレス: [必須入力]

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/29354504
※ブログオーナーが承認したトラックバックのみ表示されます。
※言及リンクのないトラックバックは受信されません。

この記事へのトラックバック
にほんブログ村 その他趣味ブログ 電子工作へ