かみやんの技術者ブログ

主にプログラムの話です

磁気センサ HMC1052L 難しい

磁気センサのHMC1052Lだが、試走会でセンサの設置位置が悪くて、LRFの電源を入れたら全然動作しなくなったと書いたが、延長ケーブルを作って色々な位置に動かしてみたがうまくいかず。というか、どうもセンサの位置に関係なくLRFの電源を入れると安定しない。電源回路がよくない模様。
ということで、グランドを強化してみたところ、少し改善。Aibiは、5V系と12V系の電源があるのだが、12V系をONにするとセンサが動かなくなっていたのが、なんとか12VをONにしても動くようになった。が、やはりLRFを接続してONにすると安定しない。A/D変換器とDC-DCコンバータが近いのがよくないのだろうか。DC-DCコンバータはノイズが多いと聞くし。3端子レギュレータの5V系だけONにすると綺麗に方位が取れているし。
いっそセンサと小さなマイコンのセットの基板を起こして、シリアルでメインマイコンにデジタル値で送った方がよいのだろうか。と思ったら、HMC6352(スイッチサイエンスのページ)は、内部にマイコン入っていてI2Cでデジタル値でデータが来るじゃん。

上図、SparkfunのHMC6352
ということで、HMC6352を使うことを検討。
で、SH7125には、I2C通信はハードウェアではないので、GPIO+ソフトウェアで実装するか。とコードを書いたが、試験中に基板の電源の向きを間違えて、HMC6352を破損。がーん、7000円のチップを壊した。。

あと、I2Cだが、トランジスタでドライブする説明のあるWebページと、I2Cデバイスマイコンを直結しているWebページがあるが、どっちが正しいのだろう。なんとなくマイコンの中にもFETが入っているはずなので、直結でよいと思うのだが。ちなみに、SparkfunのHMC6352はプルアップ抵抗はついているのでプルアップ抵抗は不要。