D級オーディオアンプでオートモーティブフォルトを診断

要約

このアプリケーションノートでは、MAX13300/MAX13301/MAX13302の車載用D級アンプの診断を実行する方法について説明します。

はじめに

車載用D級アンプのMAX13300には、多くの内蔵診断機能が組み込まれており、システムにおけるフォルト発生場所の特定に役立ちます。音声が出ない場合、アンプは、次に示すスピーカ出力のフォルト状態を検出します。これらのテスト中は音声が出ない場合があるため、これらのテストは通常、スタートアップ時に一度実行するか、工場診断モードで要求された場合にのみ実行します。

  • 地絡(出力端子がグランドと接触すること)
  • 天絡(出力端子が電池電圧線と接触すること)
  • 負荷短絡(負荷がゼロΩになるような出力端子間で接触すること)
  • 抵抗測定
  • ツイータ 有無(何なの事情によりツイータの振動版が取れていないかの確認)
  • 出力オフセット
もう1式、音声が出ているときに継続して実行するように設計された診断があります。これらの診断はMAX13300/MAX13301/MAX13302の状態に応じてシステムフィードバックを示します。
  • クリッピング検出
  • 温度警告検出
  • チャージポンプ低電圧
  • 電源低電圧
  • 電源過電圧

スタートアップ手順

スタートアップ時に望ましくないクリック/ポップを防ぐために、以下の手順を使用します(図1)。

  1. アクティブローのMUTE_CL1の状態を設定して、I²CアドレスのLSBを選択します。
  2. ENピンをハイにプルアップします。
  3. アクティブローのMUTE_CL1を解放します。
  4. 3つ以上のI²Cアドレスが必要な場合、まずCTRL4.ADR[1:0]を書き込んで新しいアドレスを設定し、次にCTRL5.ADRDF = 0を書き込んで新しいアドレスをイネーブルにします。
  5. CTRL1.CLTH = 0を設定して、短絡回路電流のスレッショルドを増大させます。これによって、スタートアップ時の電流が不安定であることによる短絡診断の誤トリガーがないことを保証します。
  6. CTRL2.STBY = 0を設定して、デバイスをイネーブルにします。
  7. CTRL1.PRE = 1を設定して、入力のプリチャージをイネーブルにします。
  8. CTRL2.MD01 = 10およびCTRL2.MD23 = 10を設定します。これによって、PVDD/2に対する出力コンデンサをプリチャージします。
  9. アプリケーション要件に基づき、CTRL0、CTRL1.CLVL[1:0]、CTRL1.MD[1:0]、CTRL3.HCL、CTRL3.LDM、CTRL4、およびCTRL5を望ましい値に設定します。
  10. 手順7から少なくとも10msは待機します。CTRL1.PRE = 0を設定して、プリチャージ回路をディセーブルにします。
  11. 入力バイアス電圧が安定するまで100ms × CDCB (µF)待機します。これは、2.2µFのDCブロッキングコンデンサを入力に使用していれば、少なくとも220ms待機するということです。この時間を短縮すると、スタートアップ時に発生するクリック/ポップノイズが増加します。
  12. 任意:CTRL2.MD23[1:0] = CTRL2.MD01[1:0] = 01を設定し、次に進む前に少なくとも50ms遅らせます。これによって出力をMUTEモードに設定します。
  13. CTRL2.MD23[1:0] = CTRL2.MD01[1:0] = 11を設定します。これによって出力をPLAYモードに設定します。
  14. CTRL1.CLTH = 1を設定して、短絡診断スレッショルドを通常に戻します。
ADRDF ADR1 ADR0 Active-Low MUTE_CL1 I²C ADDR (WR) I²C ADDR (RD)
0 0 0 0xD8 0xD9
0 0 0 0xDA 0xDB
0 1 1 0xDC 0xDD
0 1 1 0xDE 0xDF
1 0 0xD8 0xD9
1 1 0xDA 0xDB

図1. スタートアップ手順
図1. スタートアップ手順

スリーステート手順

シャットダウン時に望ましくないクリック/ポップを防ぐために、以下の手順を使用します(図2)。

  1. 音声ソースが既にミュートになっている場合、手順4に進みます。
  2. CTRL2.MD23[1:0] = CTRL2.MD01[1:0] = 01を設定して、出力をミュートモードに設定します。
  3. 少なくとも50ms待ち、20Hz信号からのクリック/ポップがないことを確認します。
  4. CTRL2.MD23[1:0] = CTRL2.MD01[1:0] = 00を設定して、出力をスリーステートにします。
図2. スリーステート手順
図2. スリーステート手順

シャットダウン手順

シャットダウン時に望ましくないクリック/ポップを防ぐために、以下の手順を使用します(図3)。

  1. 上記で説明したスリーステート手順に沿って出力をスリーステートにします。
  2. CTRL2.STBY = 1を設定して、スタンバイモードに入ります。
  3. ENピンをローにプルダウンします。
図3. シャットダウン手順
図3. シャットダウン手順

負荷診断

天絡の診断手順

この診断は、いかなる出力においても、1kΩ未満のバッテリ短絡またはグランド短絡を検出します。バッテリ短絡およびグランド短絡の診断は同時に、同一の診断モードで実行します。ただし、グランド短絡診断を実行するには、デバイスはスタンバイモード外でなければなりません。いずれの結果もラッチされないため、この診断の実行中にOSTAT2レジスタを読み取って有効なステータスを取得する必要があります。

負荷がある場合、差動出力結果のいずれかに短絡が存在すると、結果的にその他の出力も短絡になります。このため、OSTAT2ステータスレジスタはいずれのチャネルの出力が短絡しているかを示すのみで、いずれの差動出力が短絡しているかは示しません。たとえばI²Cステータスレジスタは、出力1がバッテリ短絡していることを示すことはできますが、OUT1+天絡とOUT1-天絡を見分けることはできません。

いずれかの出力に地絡または天絡があるかどうかを確認するには、I²Cを通過する全出力をスリーステートにし、スタンバイに移行します(CTRL2.STBY = 1)。CTRL3.SDET (地絡/天絡診断イネーブル)ビットを1に設定して、グランド/バッテリ短絡診断を実行します。診断結果はOSTAT2.SBAT[3:0] (バッテリ短絡インジケータ)ビットに示されます。他のフォルトインジケータは無効であるため、すべて無視します。

ラッチが設定されていないため、地絡または天絡によってデバイスが起動しなくなることはありません。このため、マイクロコントローラによってデバイスを短絡イネーブルにすることができますが、この設定はお勧めしません。デバイスを短絡イネーブルにした場合、リアルタイムの過電流が短絡チャネルのラッチをオフすることになります。MAX13300/MAX13301は天絡、地絡、および負荷短絡に対するリアルタイム保護を提供し、デバイスの損傷を防いでいます。

ステップバイステップ手順(図4)

  1. この診断を完了するには、デバイスはスタンバイモードにする必要があります。MUTEモードまたはPLAYモードから開始する場合は、標準シャットダウン手順に沿ってクリック/ポップを防いでください。
  2. CTRL3.SDET = 1を設定して、バッテリ短絡診断をイネーブルにします。
  3. 少なくとも200µs待機します。
  4. OSTAT2.SBAT[3:0]ビットから結果を読み取ります。
  5. CTRL3.SDET = 0を設定して、バッテリ短絡診断をディセーブルにします。
図4. VBAT短絡の診断手順
図4. VBAT短絡の診断手順

地絡の診断手順

この診断は、いかなる出力においても、1kΩ未満の地絡を検出します。天絡および地絡の診断は同時に、同一の診断モードで実行します。いずれの結果もラッチされないため、この診断の実行中にOSTAT2レジスタを読み取って有効なステータスを取得する必要があります。

負荷がある場合、差動出力結果のいずれかに短絡が存在すると、結果的にその他の出力も短絡になります。このため、ステータスレジスタはいずれのチャネルの出力が短絡しているかを示すのみで、いずれの差動出力が短絡しているかは示しません。たとえばI²Cステータスレジスタは、出力1がバッテリ短絡していることを示すことはできますが、OUT1+天絡とOUT1-天絡を見分けることはできません。

いずれかの出力に地絡または天絡があるかどうかを確認するには、I²Cを通過する全出力をスリーステートにします。CTRL3.SDET (グランド/バッテリ短絡診断イネーブル)ビットを1に設定して、地絡/天絡診断を実行します。診断中、デバイスはグランドに対する各差動出力の両端の3kΩの抵抗に分路し、PVDDから各出力に2mAの電流を供給します。標準条件では、各出力端で6Vが発生します。出力電圧が6Vを超えると地絡と解釈されます。出力電圧が6V未満であれば地絡と解釈されます。診断結果はOSTAT2.SBAT[3:0] (天絡インジケータ)ビットおよびOSTAT2.SGND[3:0] (地絡)ビットで通知されます。

ラッチが設定されていないため、地絡または天絡によってデバイスが起動しなくなることはありません。このため、マイクロコントローラによってデバイスを短絡イネーブルにすることができますが、この設定はお勧めしません。デバイスを短絡イネーブルにした場合、リアルタイムの過電流が短絡チャネルのラッチをオフすることになります。MAX13300/MAX13301は天絡、地絡、および負荷短絡に対するリアルタイム保護を提供し、デバイスの損傷を防いでいます。

ステップバイステップ手順(図5)

  1. 出力はチャージポンプアクティブ(CTRL2.STBY = 0)でスリーステートモードにする必要があります。MUTEモードまたはPLAYモードから開始する場合は、標準シャットダウン手順に沿ってクリック/ポップを防いでください。
  2. CTRL3.SDET = 1を設定して、グランド短絡診断をイネーブルにします。
  3. 少なくとも200µs待機します。
  4. OSTAT2.SGND[3:0]ビットから結果を読み取ります。
  5. CTRL3.SDET = 0を設定して、グランド短絡診断をディセーブルにします。
図5. 地絡の診断手順
図5. 地絡の診断手順

オープン負荷検出

この診断は、CTRL.LDM (負荷検出スレッショルド)ビットの値にもとづいて、70Ωを超える、または200Ωを超えるOUT_+とOUT_-間のオープンを検出します。

負荷開放を検出するには、I²Cを通過する出力をスリーステートにし、CTRL3.DIS (放電)ビットを1に設定して、出力コンデンサを放電します。CTRL3.RDET (オープン負荷診断イネーブル)を1に設定して、オープン負荷診断を実行します。診断中、負出力(OUT_-)のローサイドFETはすべてターンオンされ、一方他のFETはすべてターンオフされます。デバイスはOUT_+~OUT_-に2mAの電流を供給します。負荷がない場合、OUT_+はハイになり、この比較的高いVOUT_+はオープン出力と解釈されます。診断結果はOSTAT0./LDOK[3:0] (負荷OKインジケータ)ビットに示されます。

ステップバイステップ手順(図6)

  1. 出力はチャージポンプアクティブ(CTRL2.STBY = 0)でスリーステートモードにする必要があります。MUTEモードまたはPLAYモードから開始する場合は、標準シャットダウン手順に沿ってクリック/ポップを防いでください。
  2. アプリケーション要件に基づき、CTRL3.LDMを設定します。
  3. CTRL3.DIS = 1を設定して、出力をグランドに放電し、診断中のクリック/ポップを防ぎます。
  4. 少なくとも200µs待機します。
  5. CTRL3.RDET = 1およびCTRL3.DIS = 0を設定して、負荷開放診断をイネーブルにします。
  6. 少なくとも200µs待機します。
  7. OSTAT0.OC[3]ビットを読み取ります。OSTAT0.OC[3:0]ビットのいずれかのビットがローの場合、OSTAT0.OC[3:0]ビットが示すチャネルのVBATが短絡しているため、OSTAT1.LDOK[3:0]ビットは無効になります。このため、手順9に進みます。
  8. OSTAT1.LDOK[3:0] から結果を読み取ります。
  9. CTRL3.RDET = 0を設定して、オープン負荷診断をディセーブルにします。
図6. 負荷開放の診断手順
図6. 負荷開放の診断手順

負荷短絡/抵抗測定検出

この診断は負荷の抵抗を測定可能であり、いずれの出力における短絡負荷も検出可能です。抵抗は診断から算出可能なため、この診断はオープン負荷の検出、またはスピーカの有無の確認の代替手段としても利用可能です。負荷短絡を検出するには、デバイスを標準モードにし、CTRL3.TW (ツイータ/短絡負荷診断選択)ビットを0に設定し、MAP.LCTMを1に設定してアクティブローのLOAD_フォルトビットをアクティブローのCL0ピンにマップし、≤ 20Hzの正弦波信号または単一の半正弦波信号パルスをテスト用入力に送信します。この信号の振幅はアプリケーション要件によって決まります。デバイスは負荷電流を負荷短絡電流スレッショルドと比較します。負荷電流がスレッショルドを超えている場合、対応するSTAT3./LOAD_ (負荷インジケータ)ビットは1に設定され、これは負荷短絡があることを示します。短絡負荷電流のスレッショルドはプログラム設定した電流制限によって決まります(データシートのElectrical Characteristics (電気的特性)表を参照してください)。振幅のより大きな正弦波信号を使用すれば、類似の手順を使用してオープン負荷を検出可能です。

アクティブローのLOAD_ビットは短絡の検出時にハイにラッチされないことに注意してください。ゼロ交差時、負荷電流はスレッショルドを超えず、アクティブローのLOADビットは0にクリアされます。負荷短絡診断の結果を得るには、以下の2つの方法があります。

  1. アクティブローのLOAD_ビットを継続して読み取り、いずれかがハイに設定されていないかを確認します。
  2. オープンドレインアクティブローのCL0出力を監視します。アクティブローのCL0は、アクティブローのLOADビットのNORをとる働きがあるため、いずれかの出力に短絡があれば、アクティブローのCL0はローにプルダウンされます。
負荷短絡診断を実行し終えたら、MAP.LCTM (ツイータおよび短絡負荷マスク)ビットを0に設定することで、アクティブローのLOAD_ビットをアクティブローのCL0出力にマスクします。このビットをクリアすると、再生中に短絡負荷電流スレッショルドを超えたとき、アクティブローのCL0がアサートされなくなります。

負荷抵抗測定の診断はすべての出力に対して実行されます。アクティブローのLOAD_ビットを調べる、または一度に1チャネルずつ正弦波信号を注入することで、短絡負荷が存在する出力に対してその負荷短絡を追跡することができます。

ステップバイステップ手順(図7)

  1. 標準スタートアップ手順に沿ってPLAYモードに入ります。
  2. CTRL3.HCL = 0を設定して、小電流スレッショルドを選択します。この電流は約1.3Aです(データシートのElectrical Characteristics表を参照してください)。
  3. MAP.LCTM = 1を設定して、診断電流スレッショルドをアクティブローのCL0ピンにマップします。
  4. CTRL3.TW = 0を設定して、短絡検出のために電流スレッショルドをハイ設定値に設定します。オープンテストを実行している場合、CTRL3.TW = 1を設定して低い方の電流スレッショルド設定値を選択します。
  5. 各出力[0~3]に対して、以下を実施します。
    • アプリケーション要件に基づいた振幅を持つ低周波数正弦波(通常≤ 20Hz)または単一パルスの半正弦波を生成します。アクティブローのCL0がアクティブになるまで正弦波の振幅が減少した場合、正確なスピーカインピーダンスが測定可能です。
    • アクティブローのCL0を監視するか、あるいはOSTAT1.LOAD[3:0]を読み出して、電流スレッショルドを超えるかどうかを確認します。このステータスはラッチされないため、信号の振幅に基づいてオン/オフが切り替わります。アクティブローのCL0を監視する場合、一度に1チャネルずつ入力信号を加える必要があります。I²Cを通してアクティブローのLOADステータスビットを読み出し、いずれの出力によってアクティブローのCL0ピンがアサートされたのかを確認することもできます。
  6. MAP.LCTM = 0を設定して、診断電流スレッショルドマッピングを解除します。
負荷の正確な抵抗を測定するには、以下に示すようにいくつか方法があります。
  1. アクティブローのCL0ピンが初めてアサートされるまで、正弦波または半正弦パルスをゆっくりと増大します。このとき抵抗は次式で算出されます。
    式1.
    ここで
    IT = CTRL3.HCLによって設定されたスレッショルド電流
    VINP = ピーク入力電圧信号
    GAIN = チャネルのゲイン設定

  2. 予想した負荷抵抗によって、選択したスレッショルド電流をトリップすることが保証された振幅を持つ正弦波または単一の半正弦パルスを使用します。テスト信号を加えたとき、アクティブローのCL0がローである時間を測定します。この時間から、負荷抵抗は次式で算出することができます。
    正弦波または半正弦パルス

    式2.

図7. 負荷短絡の診断手順
図7. 負荷短絡の診断手順

ツイータ検出

この診断は、受動クロスオーバーを使用するときに、ツイータが適切に接続されているかどうかを確認します。負荷短絡を検出するには、デバイスを標準モードにし、CTRL3.TW (ツイータ/短絡負荷診断選択)ビットを1に設定し、MAP.LCTMを1に設定し、すべての入力に15kHz~25kHzの正弦波信号を加えます。デバイスは負荷電流をツイータ検出電流スレッショルドと比較します。負荷電流がスレッショルドを超える場合、対応するSTAT3./LOAD_ (負荷インジケータ)ビットが1に設定され、これによってツイータが存在することを示します。入力信号の振幅はツイータのインピーダンス対周波数特性によって決まります。ツイータを正しく検出するためには、ツイータが存在するときに振幅がスレッショルドをトリップするだけの大きさであることが必要となります。

アクティブローのLOAD_ビットはツイータの検出時にハイにラッチされないことに注意してください。ゼロ交差時、負荷電流はスレッショルドを超えず、アクティブローのLOAD_ビットは0にクリアされます。ツイータ検出診断の結果を得るには、以下の2つの方法があります。

  1. アクティブローのLOAD_ビットを継続して読み取り、いずれかがハイに設定されていないかを確認します。
  2. オープンドレインアクティブローのCL0出力を監視します。アクティブローのCLP0は、アクティブローのLOAD_ビットのNORをとる働きがあるため、いずれかの出力に短絡があれば、アクティブローのCLP0はローにプルダウンされます。
ツイータ検出診断を実行し終えたら、MAP.LCTM (ツイータおよび短絡負荷マスク)ビットを1に設定することで、アクティブローのLOAD_ビットをアクティブローのCL0出力にマスクします。これを実行することで、再生中にツイータ検出電流スレッショルドを突破したときに、アクティブローのCL0がアサートされなくなります。

ツイータ検出診断はすべての出力に対して実行されます。アクティブローのLOAD_ビットを調べることで、いずれの出力に対してもツイータの存在を追跡することができます。たとえば、出力3上にツイータがあれば、アクティブローのLOAD3がハイになります。

ステップバイステップ手順(図9)

  1. CTRL3.HCL = 0を設定します。
  2. MAP.LCTM = 1を設定して、診断電流スレッショルドをアクティブローのCL0ピンにマップします。
  3. 標準スタートアップ手順に沿ってPLAYモードに入ります。
  4. CTRL3.TW = 1を設定して、診断電流スレッショルドをローに設定します。
  5. 各出力[0 ~3]に対して、以下を実施します。
    • アプリケーション要件に基づいた振幅を持つ高周波数正弦波(15kHz~20kHz)を生成します。一度に1つずつ出力を検査して、いずれの出力にオープンツイータが存在するかを確認する必要があります。
    • アクティブローのCL0を監視するか、あるいはOSTAT1.LOAD[3:0]を読み出して、電流スレッショルドを超えるかどうかを確認します。このステータスはラッチされないため、信号振幅に基づいてオン/オフが切り替わります。
  6. MAP.LCTM = 0を設定して、診断電流スレッショルドマッピングを解除します。
  7. CTRL3.TW = 0を設定して、標準診断電流スレッショルドを選択します。
最適な入力電圧振幅を選択するには、選択したテスト周波数において、ツイータがある場合とない場合でスピーカインピーダンスを測定します。下図はツイータがある場合とない場合の標準4Ωスピーカインピーダンス曲線です。

図8. 標準4Ωスピーカインピーダンス対周波数
図8. 標準4Ωスピーカインピーダンス対周波数

20kHzのテスト周波数での最適な入力電圧は、次式のスピーカインピーダンスを持つアクティブローのCL0ピンがアサートされるときの電圧です。

式3.
ここで
RTW = ツイータがある場合のスピーカインピーダンス
RNO-TW = ツイータがない場合のスピーカインピーダンス

上記の式と図8のデータを使用すると、次のようになります。

式4.
図9. ツイータの診断手順
図9. ツイータの診断手順

継続診断

MAX13300/MAX13301/MAX13302は、出力オフセット電圧、出力クリッピング、温度フォルト、および低電圧状態と過電圧状態など、性能と安全性の重要なパラメータを継続して監視します。結果はステータスレジスタ(STATおよびOSTAT_)で通知され、継続して更新されます。

オフセットの診断

オフセットの診断を実行して、差動出力間にオフセットがあるかどうかを確認します。この診断を実行するには、デバイスをPLAYモードにして入力信号を加えません。この診断の結果はOSTAT3./VOS[3:0] (オフセット電圧インジケータ)ビットで通知されます。VOS_はオフセット電圧スレッショルドと比較してオフセット電圧が高いか低いかを示します。スレッショルドは通常、MAX13300/MAX13302では800mV、MAX13301では1.0Vです。

クリッピングの診断

クリッピングの診断を利用してクリッピング出力を検出します。2%、4%、6%、または10%のうちのいずれかのTHDについてCTRL1.CLVL[1:0] (クリップレベル)ビットをプログラム設定します。OSTAT0./CLIP[3:0] (クリップインジケータ)ビットによってクリップが示されます。これらのビットはオーバードライブされた出力が実際にクリップしている間にのみ、1に設定されます。クリッピング出力インジケータは出力ごとに利用可能です。たとえば、出力3についてはOSTAT0./CLIP[3]が利用可能です。オープンドレインの出力、アクティブローのCL0、およびアクティブローのMUTE_CL1もクリップを示すことができます。

温度警告の診断

接合部温度がプログラム設定された温度制限を超えた場合、温度フォルトが直ちに設定されます。デバイスは、プログラム設定された制限に対する温度警告が出ている場合は動作しません。温度がスレッショルドよりも下がると、温度警告は自己解除されます。接合部温度が+150℃の最大接合部温度を超えた場合、デバイスは全チャネルをディセーブルにします。デジタルインタフェースは引き続きアクティブで、レジスタの内容は変わりません。チップ温度が+140℃よりも下がると、標準動作に戻ります。プログラム設定された温度制限はソフトウェアによって、+110℃~+140℃の範囲で10℃毎に設定されます。

チャージポンプ低電圧の診断

MAX13300/MAX13301はチャージポンプの補助によってハイサイドFETを駆動しています。チャージポンプは各スイッチングサイクルの最後にホールドコンデンサCCHOLDを5Vにチャージします。CCHOLDの電圧が3.45Vよりも下がると、デバイスはSTAT./CPUV (チャージポンプ低電圧インジケータ)ビットをアサートし、全出力をスリーステートにします。デバイスはホールドコンデンサの電圧が3.75Vより上がった後にのみ、ビットをディアサートします。

低電圧の診断

低電圧モニタはPVDDの低電圧(< 6V)を検出します。低電圧状態の間、デバイスは全出力をスリーステートにし、STATE./UV (低電圧インジケータ)ビットを0に設定し、オープンドレイン出力のアクティブローのFLT_OTをアサートします。

過電圧診断

MAX13300/MAX13301/MAX13302は、PVDDにおける過電圧状態とロードダンプ状態を検出し、損傷からDMOSデバイスを保護します。過電圧状態の間、デバイスはSTAT./OV (過電圧インジケータ)ビットを0に設定し、オープンドレイン出力のアクティブローのFLT/OTをアサートし、スタンバイモードにラッチします。全差動出力は½ VPVDDに安定化され、ローサイドFETとハイサイドFETのドレイン-ソース電圧を最小化し、故障を防ぎます。過電圧状態から抜けたら、CTRL.STBY (スタンバイ)ビットをクリアすることでデバイスはスタンバイモードから抜け出ます。MAX13300/MAX13301は50Vのロードダンプ電圧スパイクに耐久可能です。26V~35Vのバッテリチャージャ電圧は最長1時間、耐久可能です。図7はロードダンプ中のデバイスの動作を示しています。

結論

MAX13300/MAX13301/MAX13302デバイスに内蔵の診断機能によって、デバイスはOEM診断要件を満たしています。負荷診断やツイータ診断のような、特定のテストに組み込まれた柔軟性によって、OEM固有のスレッショルドが使用可能です。

著者

Generic_Author_image

Jon Wallace