Top | カテゴリTop | 戻る
2018年7月11日(水) 21:14
いや、それはおかしいだろ。ということに気付いた。 I2Cバスはプルアップされているから、常時Hから動かないというなら分かる。常時Lというのは、おかしい。
オシロのトリガーをワンショットで仕掛け、電源ONから待ち受ける。 すると、LからHに向かってダラダラと立ち上がる波形が得られた。立ち上がりの途中でクロック信号らしきものが半周期だけ見える。幅は、ほぼ100KHzに相当している。
3.3V近くまで上昇してから一気にLになって、その後はずっとLのままだ。これだけでは、手掛かりが少な過ぎる。
これはハードがバグってる可能性がある。そう考えてチェックするが、怪しい部分は発見できない。 例によってデーターシート見つつソフトの設定を変えてみるが、やはり変わらない。半周期だけのクロックパルスが出なくなったりするが。
まるで訳が分からず、久しぶりに夢の中でデバッグしてしまった。かなり精神に来てる。やっぱI2Cは厄介者だった。 夢の中では不完全に液晶表示が成功したが、現実世界には何の解決にもなっていない。
dsPICにおけるI2Cなどのペリフェラルの扱いは、
1)Cコンパイラーのライブラリとして実装 ↓ 2)Cコンパイラーの別ライブラリーとして提供 ↓ 3)MCCに統合
と変化しているうえに、1)はコンパイラー自体がC30からXC16に変わっている。更に、dsPIC33F は3)のMCCに未対応だ。こういった事情のため、ネット上に存在するプログラム例の大半が使えない。ただでさえ、dsPIC で I2C を扱っている実例が非常に少ない。
written by higashino [ドリル戦車] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]
Generated by MySketch GE 1.4.1
Remodelling origin is MySketch 2.7.4