« アンマネージスイッチ | トップページ | 技術の信頼性のはなし »

2016年1月27日 (水)

8CH A/Dのはなし

8CH A/Dのはなしとは
 最近使っている A/Dコンバーターは、 4CHではAD7991 です。20160127_203609
8pin SOT-23の小型のパッケージで、12Bitの分解能があり、I2C で読み取ることができます。
 設定レジスタも1コですが、特に設定しなくても、自動で各チャンネルを切り替えてくれるので、簡単でした。
 読み出しは16Bit読み出したうちの、上位 4ビット分に(正確には4CHでは Bit 12,Bit 13 )に変換したチャンネル値があるので、それに従って変換結果バッファへ転送すれば自動的に読み取ることが出来ます。
 次にもうちょっと多くのチャンネルと考えると、8CH の AD7997になります。20160127_204514 サイズは0.65mm ピッチ足の 20Pin になりますが、結構小型になっているので8CH にしては小型に出来ます。しかしながら、外付けの基準電圧が必要なのですが、最近は小さな基準電圧ICがあるので、ADR381などを使えば小型に出来ます。
このICも I2Cでアクセスでき、10Bitの分解能を持っています。しかも読み出しデーターは 16Bitで上記 AD7991 と全く同じに読め、CH値が 3Bitに拡張されただけなので、そのまま、アドレスを変えれば読めるんじゃないかと、安易に使って見ました。
 しかしながら、この ICにはレジスタが 16コもあって、何も設定しないと、何も読めないという、残念な結果でした。
 そこで、何かうまい手はないかとデーターシートを眺めていると、あるじゃないですか....

 CYCLE TIMER REGISTER というレジスタに値を書けば自動で切り替えてくれそうです。しかしそのアドレスに書き込むにはアドレスポインターレジスタにアドレス値を書いて、その後値をセットして、さらにまた元のアドレスに戻すという結構面倒な設定が必要みたいです。
 結局それでうまくいったのですが、そんな感じで動いてから ...1年もするとすっかり 8CH A/Dの苦労は忘れて、 4CHと同じようにそのままで動くんじゃないかと勘違いして、今回苦労したという話。
 初期化ルーチンで 4CHに直した機種で、この初期化コードを省いちゃったので、今回 8CHにしたら動かない...以前のコードで動かすと動くのに...どうして今回は動かないのか?

結局半日つぶしてしまいました。
 余計なルーチンと思っても削除するのでなく、コメントアウトして残しておけばよかったな〜

|

« アンマネージスイッチ | トップページ | 技術の信頼性のはなし »

アナログ」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック


この記事へのトラックバック一覧です: 8CH A/Dのはなし:

« アンマネージスイッチ | トップページ | 技術の信頼性のはなし »