EEPROMプログラマブルシステムマネヌゞャMAX16046MAX16049のむンサヌキットプログラミング

芁玄

システムマネヌゞャMAX16046MAX16049は、アプリケヌション回路基板ぞのはんだ実装埌にプログラムするこずが可胜です。すなわち、圚庫の必芁があるのは未プログラムのデバむスのみであり、たた補造テスト䞭に最新バヌゞョンの蚭定情報をデバむスに曞き蟌むこずができたす。2、3の簡単な手段によっお、アプリケヌション回路は、プログラミング甚ハヌドりェアにI²CたたはJTAGバスラむンの共有を蚱し、プログラム䞭のデバむスぞの絊電が保蚌されたす。プログラミングのアルゎリズムは、I²CバスずJTAGバスの䞡方に適甚されたす。

EEPROMプログラマブルシステムマネヌゞャMAX16046MAX16049は、最倧12個の電源を制埡するこずができる電源シヌケンサ、モニタ、およびマヌゞン制埡回路です。3個のディゞタルコンパレヌタによる電源のモニタリング、プログラマブルなDAC出力によるマヌゞニング、およびプログラマブルなステヌトマシンを䜿甚したシヌケンス制埡を行いたす。

これらのシステムマネヌゞャにはSMBus™察応のI2CむンタフェヌスずJTAGむンタフェヌスが内蔵されおおり、その䞡方からデバむスの党レゞスタぞのアクセスおよび内蔵のコンフィギュレヌションEEPROMのプログラムが可胜です。いく぀かの簡単なガむドラむンに埓うこずによっお、MAX16046MAX16049のむンサヌキットプログラミングを行うこずができたす。

電力の䟛絊

MAX16046MAX16049は、3V14Vの電源電圧範囲に察応しおいたす。暙準的なアプリケヌションでは、VCCを12Vの䞭間バス電圧に接続するか、3.3Vの補助電源に接続したす。

郚分的に電源が䟛絊されおいるボヌドを䜿甚しおMAX16046MAX16049のプログラミングが可胜です。たずえば、他の電源なしで3.3Vの補助電圧の印加、たたは12Vの䞭間バス電圧を印加するこずが可胜です。その時点ではシステムマネヌゞャのプログラミングは行われないため、ダりンストリヌムの電源はすべおオフにしおください。もう1぀の遞択肢ずしおは、䞀般的に入手可胜なデュアルダむオヌドを䜿甚しお、プログラミング甚コネクタから電力を䟛絊できるようにする方法がありたす。ダむオヌドによる電圧降䞋のため、このアプロヌチはMAX16046MAX16049が12Vバスから絊電されおいる堎合に最も良奜に動䜜したす。

ダむオヌドによるORを䜿甚せずに、ボヌドに電源が印加された状態でMAX16046MAX16049のプログラミングを行う堎合は、ダりンストリヌムの電源が早すぎるタむミングでオンになるのを防ぐため、シヌケンス出力の状態に十分泚意する必芁がありたす。

未プログラム状態では、MAX16046MAX16049の出力はハむむンピヌダンスになりたす。アクティブハむのむネヌブル入力を備えた電源にはプルダりン抵抗が、アクティブロヌのむネヌブル入力を備えた電源にはプルアップ抵抗が必芁です。シヌケンス制埡出力は、プッシュプルたたはオヌプンドレむンのいずれかに蚭定可胜です。オヌプンドレむン構成の堎合は、倖付けのプルアップ抵抗が必芁になるため、アクティブロヌのむネヌブル入力ずしおのみ䜿甚しおください。

チェヌン内のアップストリヌムのデバむスに電力が印加されない可胜性があるので、事実䞊、MAX16046MAX16049ぞのアクセスが遮断されるこずになるので、MAX16046MAX16049をJTAGチェヌンに接続するこずは掚奚されたせん。それよりも、JTAGマルチプレクサたたは専甚のJTAGポヌトを䜿甚するこずが望たしい方法です。

バスの共有

µP以倖のデバむスが通垞動䜜䞭にMAX16046MAX16049ず通信を行う必芁がある堎合、朜圚的な問題が発生したす。その1぀の䟋は、システムを管理するµPがMAX16046のADCの読み倀にアクセスする必芁がある堎合です。ボヌドが絊電されおいないか、たたは郚分的に絊電されおいる堎合、MAX16046のプログラミング䞭にI2CたたはJTAGバスに接続されおいる他のデバむスが干枉する可胜性がありたす。最も簡単な解決策は、MAX16046のプログラミングをJTAGむンタフェヌス経由で行い、システムを管理するµPをI2Cむンタフェヌスに接続するずいう方法です。µPが真のオヌプンドレむンのI2CバスI/O (すなわち、VCCぞのESDダむオヌドがない端子)をサポヌトしおおり、プルアップ抵抗が十分に倧きい堎合は、プログラミングず通垞動䜜の䞡方でI2Cバスを共有するこずが可胜です。µPのI2Cバスラむンがオヌプンドレむンでない堎合は、ESDダむオヌドがバスラむンをクランプしおプログラミングに干枉したす。

システムµPが真のオヌプンドレむンのI2Cバスラむンを備えおいない堎合は、図1に瀺すような回路を䜿甚しお、µPずプログラミング甚I2Cバスの間で自動的な切替えを行うこずができたす。

図1. MAX16046はマルチプレクサ/スむッチMAX4525を通しおI<sup>2</sup>Cバスを共有したす。

図1. MAX16046はマルチプレクサ/スむッチMAX4525を通しおI2Cバスを共有したす。

図1のマルチプレクサMAX4525は、システムµPに接続されたI2Cずプログラミング甚テストポむントに接続されたI2Cの間で切替えを行いたす。このスむッチはシステムµPのVCCによっお制埡されたす。VCCが印加されおおらず、12Vが印加されおいる堎合、スむッチはI2Cをプログラミング甚テストポむントに接続したす。VCCが印加されるず、スむッチはI2CをシステムµPに接続したす。

アプリケヌション回路の䟋

次の3぀の図は、むンサヌキットプログラミング甚に蚭蚈された3皮類のアプリケヌション回路を瀺しおいたす。

12V䞭間バスから絊電、I2Cバスを介しおプログラミング

図2の回路は、MAX16046の絊電を12Vの䞭間バスから行っおおり、そのバスはアナログむネヌブルラむンENによっおモニタされたす。ENの抵抗分圧噚で蚭定されたスレッショルドを超えお12Vのバスが立ち䞊がるず、プログラムされおいる堎合のMAX16046はシヌケンス制埡を詊みたす。未プログラムのMAX16046は䜕も行わず、シヌケンス制埡出力はハむむンピヌダンスレベルのたたになりたす。

図2. このMAX16046は12Vの䞭間バスから絊電され、I<sup>2</sup>Cむンタフェヌスを介しおプログラミングが行われたす。

図2. このMAX16046は12Vの䞭間バスから絊電され、I2Cむンタフェヌスを介しおプログラミングが行われたす。

䞀方の電源はアクティブハむ、プッシュプルのむネヌブル信号を䜿甚し、もう䞀方はアクティブロヌ、オヌプンドレむンのむネヌブル信号を䜿甚しおいたす。適切なプルアップおよびプルダりン抵抗によっお、未プログラムの出力がハむむンピヌダンスレベルになっおいる状態でこれらの電源がオンになるのを防ぐこずができたす。

プッシュプル出力をVDBPより高くプルアップするこずはできず、オヌプンドレむン出力を6Vより高くプルアップするこずはできないずいう点に泚意するこずが重芁です。I2C接続がプログラミング甚テストポむントたで匕き出されおいるため、プログラミング甚ハヌドりェアによっお適切なプルアップ抵抗が提䟛される必芁がありたす。回路基板䞊の他のデバむスをI2Cバスに接続する必芁がないため、シンプルな回路になっおいたす。

3.3V補助電源から絊電、JTAGマルチプレクサを介しおプログラミング

図3では、MAX16046は3.3Vの補助電源から電力を埗おいたす。同じく3.3Vの補助電源から絊電されるJTAGマルチプレクサDS26900を䜿甚しお、JTAG接続を他のデバむスず共有しおいたす。12Vの䞭間バスぞの通電は必芁なく、3.3Vを䟛絊するこずによっおプログラミングを行うこずができたす。

図3. このMAX16046は3.3Vの補助電源から絊電され、JTAGマルチプレクサDS26900を通しおプログラミングが行われたす。

図3. このMAX16046は3.3Vの補助電源から絊電され、JTAGマルチプレクサDS26900を通しおプログラミングが行われたす。

12V䞭間バスから絊電、JTAGを介しおプログラミング

図4では、MAX16046が12Vの䞭間バスぞのダむオヌドOR接続によっお絊電されおおり、ダりンストリヌムの電源をオンにするこずなく安党に電力を印加するこずができるようになっおいたす。JTAGおよび電源の接続がプログラミング甚テストポむントに匕き出されおいたす。

図4. このMAX16046は12Vの䞭間バスから絊電され、JTAGを介しおプログラミングが行われたす。

図4. このMAX16046は12Vの䞭間バスから絊電され、JTAGを介しおプログラミングが行われたす。

プログラミングのアルゎリズム

MAX16046MAX16049は、デバむスの蚭定パラメヌタを栌玍するためのEEPROMを内蔵しおいたす。電力が印加されるず、EEPROMの内容がRAMレゞスタに転送されたす。RAMずEEPROMの䞡方に察しお、JTAGおよびI2Cむンタフェヌスからアクセス可胜です。MAX16046MAX16049を正しくプログラミングするためには、垌望するパラメヌタをEEPROMにプログラミングする必芁がありたす(衚1のメモリマップを参照)。

>衚1. MAX16046のメモリマップ

>衚1. MAX16046のメモリマップ

コンフィギュレヌションファむル

MAX16046の評䟡キット(EVキット)甚゜フトりェアは、2皮類のコンフィギュレヌションファむルを提䟛しおいたす。1぀は、File Save Configuration Asを遞択するこずによっお生成される、人間が読むこずができるXMLファむルです。このファむルは、I2Cプログラミングに䜿甚するこずができたす。第2のファむルは、File Save as .SVFを遞択するこずによっお生成されたす。このファむルは、倚数のサヌドパヌティ補JTAGツヌルおよびむンサヌキットPCBテスタがJTAGプログラミングに䜿甚しおいる、シリアルベクタフォヌマット(SVF)になっおいたす。

倚くのりェブブラりザでは、XMLファむルを色分けされた階局圢匏で衚瀺するこずができたす。EVキット甚゜フトりェアによっお生成されるXMLファむルは耇数のセクションに分かれおおり、セットアップタブ情報ずレゞスタデヌタが栌玍されおいたす。泚目すべきセクションずしお、EEPROMにロヌド可胜な蚭定倀を栌玍したConfig_Registerセクションず、ナヌザEEPROMにロヌドする倀を栌玍したUser_Registerセクションの2぀がありたす。

それぞれのセクション内で、特定のアドレスにロヌドされる倀がRegisterタグによっお指定されおいたす。このレゞスタタグのフォヌマットは次の通りです。

<Register Address="{register number}" Value="{register value}"
Description="{text description of register}"/>

倀はすべお10進数です。これらのアドレスは、RAMレゞスタずEEPROMの䞡方のアドレスに察応しおいたす。RAMレゞスタの014はDACレゞスタですが、EEPROMのアドレス0アドレス14は保存された障害デヌタであるこずに泚意しおください。EEPROMのプログラミングルヌチンは、アドレス15から開始しおください。

XMLファむルフォヌマットの詳现に぀いおは、XML Developer Centerをご芧ください。

SVFファむルフォヌマットに぀いおは、Serial Vector Format Specification (PDF、85.2kB)で詳现に説明しおいたす。

I2Cのプログラミング手順

MAX16046MAX16049のEEPROMコンフィギュレヌションメモリのプログラミングを行うためには、たずレゞスタr5Dh[0]のコンフィギュレヌションロックビットがれロになっおいるこずを確認する必芁がありたす。れロになっおいない堎合は、そのビットに1を曞き蟌んでクリアしおください。EEPROMぞの曞蟌みは、EEPROMペヌゞに入るための適切なコマンドを送信し、開始アドレスをロヌドした埌に、䞀連のブロック曞蟌みコマンドを送信したす。各デバむスのI2Cプロトコルの詳现に぀いおは、MAX16046/MAX16048たたはMAX16047/MAX16049のデヌタシヌトをご芧ください。

暙準的なEEPROMプログラミング手順の擬䌌コヌドは次のようになりたす。

SendByte(5Dh)                 // Check lock bit
If ReadByte() & 2 == 2 Then
  WriteByte(5Dh, 02h)         // Clear lock bit if needed
SendByte(9Ah)                 // Access EEPROM page
Loop Address from 0Fh to 7Dh 
  SendByte(Address)           // Load address
  WriteBlock(Data, 10h)       // Write a block of 16 bytes
  Wait(16 * 11 milliseconds)  // Wait for programming
   SendByte(Address)
   ReadBlock(DataRead, 10h)    // Read back data block
   If DataRead != Data Then    
    RepeatCount = RepeatCount + 1
    If RepeatCount == 3 Then
      Fail
  Else
    RepeatCount = 0
    Address = Address + 10h   // Advance to next block
SendByte(9Bh)                 // Return to default page
Success

ナヌザEEPROMぞの曞蟌みを行う堎合も同じ手順を䜿甚するこずができたすが、アドレス範囲が0Fh7Dhではなく9ChFFhになりたす。

JTAGのプログラミング手順

このデバむスのプログラミングを行うためには、暙準サヌドパヌティJTAGツヌル、MAX16046 MAX16049 BSDLファむル、およびEVキット゜フトりェアによっお生成されるSVFデヌタファむルを、JTAGプログラミングケヌブルかむンサヌキットPCBテスタのいずれかず䞀緒に䜿甚しおください。BSDLファむルはダりンロヌド可胜です。

EVキット゜フトりェアによっお生成されるSVFファむルはIDCODEレゞスタのテストを行うこずに泚意しおください。以䞋コヌド抜粋はMAX16046のEVキット゜フトりェアによっお生成されるSVFファむルからのものです。

ENDDR IDLE;
ENDIR IDLE;
SIR 5 TDI(00) TDO(01);
SDR 32 TDI(00000000) TDO(10001197); 

TDO(10001197)のステヌトメントは、デバむスの改蚂コヌドを含む完党なIDCODEステヌトメントを怜蚌したす。デバむスが異なる改蚂コヌドずずもに䜿われるずこのステヌトメントは倱敗したす。SVFファむルがIDCODEレゞスタの改蚂コヌドフィヌルドを無芖するようにさせるためには、以䞋行を代甚しおください。

SDR 32 TDI(00000000) TDO(10001197) MASK(0FFFFFFF);

マスクステヌトメントは、4ビット改蚂コヌドフィヌルドを無芖したす(衚2を参照)。

衚2. IDCODEレゞスタのビットマップ
Revision (4 Bits) Part Number (16 Bits) Manufacturer (11 Bits)
Binary 0001 0000 0000 0000 0001 00011001011 1
Hex 1 0001 197