I2C出力 A/Dコンバーターのはなし
I2C出力 A/Dコンバーターのはなしとは
高周波アンプの出力デバイス消費電流は、A級アンプの場合はあまり出力レベルによって変化しないが、AB級のアンプではパワーや周波数によって、流れすぎないように監視する必要が多々あります。
そんな監視に適した ICをいろいろ試しましたが、携帯機器のバッテリー監視ICなどでは、高周波によって、オペアンプ入力のダイオードが飽和してしまったり、I2Cバス制御がうまく動かなくなったりして、エラーが出たりしました。
最近改めて、RFによるトラブルに強そうな I2C A/Dコンバーターで AD7991 というICを試してみました。

8Pin SOT23 と大変ちいさなパッケージですが、 12Bit 分解能で 4CH 入っています。I2C バスなので電源 GND も含めて 4本で繫げるのが使いやすいポイントです。
しかしながら、当初データーシートを見た時に、「1) チャンネル指定レジスタを、いちいち設定するのは面倒みたい」「 2) アドレスが固定で、2品種しか無いので、合計8CHしか使えない」と思って、使用するのにはちょっとためらっていました。
しかしながら、 1) のCHレジスタ指定は「オートインクリメンタリーモードがデフォルト」ってことで、解消されました。電源 ONで自動的にチャンネルが更新されるのです。
そんな監視に適した ICをいろいろ試しましたが、携帯機器のバッテリー監視ICなどでは、高周波によって、オペアンプ入力のダイオードが飽和してしまったり、I2Cバス制御がうまく動かなくなったりして、エラーが出たりしました。
最近改めて、RFによるトラブルに強そうな I2C A/Dコンバーターで AD7991 というICを試してみました。

8Pin SOT23 と大変ちいさなパッケージですが、 12Bit 分解能で 4CH 入っています。I2C バスなので電源 GND も含めて 4本で繫げるのが使いやすいポイントです。
しかしながら、当初データーシートを見た時に、「1) チャンネル指定レジスタを、いちいち設定するのは面倒みたい」「 2) アドレスが固定で、2品種しか無いので、合計8CHしか使えない」と思って、使用するのにはちょっとためらっていました。
しかしながら、 1) のCHレジスタ指定は「オートインクリメンタリーモードがデフォルト」ってことで、解消されました。電源 ONで自動的にチャンネルが更新されるのです。

しかも、どのチャンネルのデーターかは、読み出した2バイトのデーターの中(上記表)の最初の Bit5:4 にあるので、手間がかかりません。
それで、以下のようなコードで使っています。必要な分解能は 8 Bit で問題ないので、上位8bit のみ使ってます。 以下は読み出し部分のみ....
それで、以下のようなコードで使っています。必要な分解能は 8 Bit で問題ないので、上位8bit のみ使ってます。 以下は読み出し部分のみ....
// ------------ temp_buffer[] に2バイト i2C から受信する -----------
while( getsI2C(temp_buffer,2) ); //recieve data 2Byte
uc =( temp_buffer[0] & 0x30) >> 4 ; // Get CH number
data = temp_buffer[0]<<4 ; // 上位 4Bit 代入
data |= temp_buffer[1] >> 4 ; // 2byte 目の上位4Bitを加算
volt_data[ uc ] = data ; // 結果レジスタにストア
* 実際使用する時は、前回値と平均する等の演算処理が必要です。
2)の問題は 10Bit ですが、8CHの AD7997 という品種が、同じソフトウエア処理で使えそうなのです。このICは AS ピンの電位でアドレスが変えられるようなので、1品種2個、2品種あるので、同じバス上に4個接続出来ます。

なかなか便利な時代になってきましたが、こんどは選ぶのが大変になりそうですね。

なかなか便利な時代になってきましたが、こんどは選ぶのが大変になりそうですね。
| 固定リンク
「アナログ」カテゴリの記事
- MIDAS Venice Mixerの修理(電源編)(2024.12.05)
- MIDAS Venice Mixerの修理(2024.12.04)
- 真空管のはなし(2024.05.21)
- パワーアンプ RAMSA WP-1200A の修理(2023.08.06)
- BOSE Power AMP 1701 の修理の話(2023.07.15)
コメント