アプリケーションノート5539

マキシムのメーターICのプログラミング


要約:このアプリケーションノートでは、プロトタイピングや実用においてマキシムのメーターICのフラッシュプログラミング時に使用されるツール、手順、および事前対策について説明します。

このアプリケーションノートでは、マキシム・インテグレーテッドのエネルギーメーターIC、71M6511/71M6511H71M6513/71M6513H71M6531D/F71M6532D/F71M6533/G/H71M6534/H71M6541D/F/G71M6542F/G71M6543F/H71M6545/Hのフラッシュメモリをプログラムする際に使用されるインタフェース、ツール、事前対策、およびプロセスについて説明します。
さらに、プログラムコードをあらゆる状況下で消去およびリロードすることができるメーター基板の設計について推奨事項を示します。

プログラミングツール

マキシムのメーターICをプログラムする最も簡単な方法は、既存のツールの1つを使用することです。現在利用可能なプログラミングツールは次のとおりです。
  • TFP2フラッシュプログラマ
  • ADM51インサーキットエミュレータ(ICE)
  • サードパーティ製のプログラマ

TFP2フラッシュプログラマ

TFP2は、Digi-KeyMouserなどのディストリビュータから提供されています。このツールでは、ターゲット回路内のターゲットICをプログラム可能です。操作は手動で行いますが(ボタンを押してプログラミングプロセスを開始します)、自動試験装置(ATE)で制御することもできます。いくつかのTFP2デバイスを並列に組み合わせてスループットを向上させることが可能です。
ターゲットコードは、シリアルケーブルとHyperTerminal® (または、その他任意のターミナル)プログラムを使用してTFP2にロードすることができます。TFP2のオペレーショナルコードは、フィールドアップグレード可能です。このアプリケーションノート執筆時点でのTFP2の最新ファームウェアは、リビジョン1.53です。
TFP2のターゲットインタフェースケーブルには、0.1インチヘッダコネクタで終端した単純なツイストケーブルを使用することができます。さらにTFP2は、ADM51 ICEで使用されているコネクタとコンパチブルなTYCO/AMP 10x2高密度コネクタを備えています。このコネクタには、71M653xのICに使用されるICE_E信号へのアクセスがピン2に含まれます。
TFP2に加えて、ターゲットICを取り付けるソケットを備えた、お客様側で用意する外付けのプリント基板(PCB)を使用することによって、シンプルなプログラマを実現することができます。必要なピン接続の説明については、「必要なハードウェア調整」の項を参照してください。
:TFP2では、すべてのレコードが昇順で並んでいる必要があります。マキシムは、Keil®コンパイラ/リンカによって生成されたIntel® HEXファイルを前処理してTFP2で使用可能にするユーティリティ(CHKSUM.EXE)を提供しています。このユーティリティは、TFP2に付属しています。

ICE (Signum Systems製、モデルADM51)

ADM51はSignum Systemsから提供されています。このツールは主にICE、つまり開発ツールとして使用されますが、少数のメーターICのフラッシュプログラミングにも使用することができます。

サードパーティ製のプログラマ

現在、単一のICを対象とした製品から多数のICを処理可能な製品まで、ハンドラやフィーダを備えた各種プログラマがBPM Microsystemsによって販売され、サポートされています。

廃止されたプログラミングツール

下記のツールはすでに廃止されており、マキシムではサポートしていません。
  • TFP1:TFP2の旧バージョンであり、インシステムプログラミングが可能です。TFP2はTFP1の機能をすべて備えています。
  • FDBM: インシステムプログラミングに使用することができるシンプルな基板です。FDBMでは、Windows® PC上で動作するグラフィカルユーザインタフェース(GUI)が必要でした。
  • TGP1:このギャングプログラマは、プログラミングデバイスの有名メーカーが提供しているサードパーティ製品で置き換えられています(上記の注を参照)。

プログラミング用のハードウェアインタフェース

71M65xxは、ICEインタフェース経由でプログラムされます。フラッシュプログラマとDUT間の通信には、表1に示した信号が必要です。各ICEインタフェースピンの位置については、各デバイスのデータシートを参照してください。
表1. フラッシュインタフェースの信号
Signal Direction Function
E_TCLK Output from DUT Data clock (5MHz)
E_RXTX Bidirectional Data input/output
E_RST Bidirectional Flash programmer reset (active-low)
ICE_E Input to DUT Enables the ICE interface (71M653x only)
* E_RST信号は、インタフェース信号をイネーブルする際にフラッシュプログラマで駆動するだけにしてください。
**それ以外の場合、フラッシュプログラマでは常にE_RSTをリリースしている必要があります。
***プログラミングプロトコルはSignum Systems独自のものです。

必要なハードウェア調整

メーターICのフラッシュプログラミングを正しく行うには、ICの電源とグランドを確立するほか、次の各ピンを処置する必要があります。
V1: V1は安定してVBIASスレッショルドを超えている必要があります(VBIASの値についてはデータシートを参照)。71M651xシリーズでは、V1を3.3VDCに接続してハードウェアウォッチドッグタイマを非アクティブ化する必要があります。71M653xシリーズでは、V1はVBIASを超えている必要があります。これらのデバイスでは、ICE_Eをアクティブ化するとウォッチドッグタイマが処理されます。
ICE_E: このピンは71M653xデバイスでのみ利用可能です。このピンはプログラミング操作の間、3.3VDCである必要があります。
XIN/XOUT: メーターICは、外付けの水晶および2つの負荷コンデンサと連携して、内部クロック発振器で生成された32kHz信号からE_TCLK信号を生成します。適切な水晶やコンデンサの値については、データシートを参照してください。
VBIAS このピンとグランドの間に0.1µFのコンデンサを接続する必要があります。
V2P5: このピンとグランドの間に0.1µFのコンデンサを接続する必要があります。
RESET(Z):   ローアクティブのRESETZピン(71M651x)は3.3VDCに接続する必要があります。ハイアクティブのRESETピン(71M653x)はグランドに接続します。
その他のピンは、すべてフローティング状態でかまいません。

特別なケース

バージンデバイス(すべてのフラッシュ位置が0xFFのデバイス)、またはフラッシュを消去したデバイスには、特別な事前対策は必要ありません。各ソリューションは、いずれも工場におけるATE試験中に適用される短いテストパターンが組み込まれている場合があります。これらはプログラムされていない製品として扱うことができます。
次のような状況は、いくつかの特別なケースに該当します。
  • SFRメモリでSECUREビットがセットされる。
  • ターゲットコードによってSFRメモリでSECUREビットがセットされる。
  • I/O RAMメモリ範囲でECK_DISビットがセットされ、E_TCLK出力がディセーブルされる。
  • 製品が有効または部分的に動作可能なファームウェアでプログラムされ、オンチップの演算エンジン(CE)がアクティブであり、フラッシュアクセスが禁止されている(71M653xのみ)。
以下の項では、これらの特別なケースについて説明します。

SECUREビット

SECUREビットは、コードイメージへのアクセスを禁止します。ICのプレリブートフェーズ中にSECUREビットがセットされた場合、それを無効にするハードウェア上の手段はありません。SECUREビットをリセットする唯一の方法は、すべてのフラッシュメモリを一括消去してからリセットを実行することです。
SECUREビットをセットするのはプログラマではなく、ターゲットコードを実行するMPUであることに注意することが重要です(コード例については図1を参照)。SECUREビットはお客様のIPを不正なアクセスから保護しますが、ICのプログラミングや検証、または再プログラミングが必要な場合は、プログラマから追加的な操作をいくつか行う必要があります。
STARTUP1:
		CLR	0xA8^7		; Disable interrupts	
		MOV	0B2h,#40h	; Set SECURE bit.
		MOV	0E8h,#FFh	; Refresh WDT
図1. SECUREビットをアクティブ化するアセンブラコード
フラッシュのセキュリティの仕組みは次のとおりです。ICの起動時にMPUのPCが0x0000 (リセットベクトル)にリセットされ、プレリブートコードの実行を開始します。これは、アドレス0x0000に位置する最初の60回のMPUサイクルで構成されるコードブロックです。このサイクル中はICEインタフェースがディセーブルになっています。スタートアップコードでは、プレリブートサイクル中にSFR空間でSECUREビットをセットして、フラッシュのセキュリティをイネーブルすることができます。SECUREはセット可能ですが、リセットすることは不可能です(このビットは、ハードウェアリセットによってしかリセットすることができません)。また、プレリブートサイクル中はICEアクセスが不可能です。したがって、外部のハードウェアからフラッシュメモリにアクセスする方法はありません。SECUREビットは、オンチップMPUのSFR空間内のレジスタに含まれます。各ICのデータシートに、SECUREビットの位置に関する情報が記載されています。

ADM51 ICE

このエミュレータのユーザインタフェースでは、SECUREビットをセットされたターゲットICが図2のように表示されます。ユーザーは、ターゲットICのフラッシュを消去してからそのICをリセットすることができます。その最もよい方法は基板の電源を切断することです。バッテリを内蔵したシステムでは、バッテリを短時間切断するか、またはリセット信号にアクセス可能な場合は、それをアクティブ化してターゲットICをリセット状態にします。
この操作の後、ターゲットICは通常の消去済み製品としてエミュレータのユーザインタフェースに表示されます。

TFP2

TFP2は、そのターミナルインタフェースで簡単なステータスメッセージを発行し、ターゲットICでSECUREビットがセットされたことを示します。
続いてTFP2はフラッシュ消去操作を行い、次にフラッシュプログラミングを実行します。その間、ユーザーが要求する操作はありません。
ターゲットが71M653xで、そのターゲットICのICE_E信号にプログラミングインタフェースでアクセス可能な場合、シーケンスは次のようになります。
  • TFP2がターゲットフラッシュメモリを消去します。
  • TFP2がICE_E信号をリリースします。ターゲットICのウォッチドッグタイマがイネーブルの場合、これによってターゲットのリセットが発生します。
  • TFP2がターゲットICをプログラムします。
図2. ICEインタフェースによるSECUREビットセットの通知
図2. ICEインタフェースによるSECUREビットセットの通知
図3. E_TCLKが存在しない場合のICEインタフェース
図3. E_TCLKが存在しない場合のICEインタフェース

SECUREビットをセットするターゲットコードを使用したICのプログラミング

通常のコードによるターゲットのプログラミングと、SECUREビットをセットするコードによるターゲットのプログラミングとの間に違いはありません。ただし、SECUREビットをセットする命令を含んだコードを検証する際は、特に注意する必要があります。いったんコードの実行を許可すると、そのフラッシュメモリにアクセスすることが不可能になるからです。

ADM51 ICEエミュレータとTFP2

ターゲットフラッシュメモリの内容を検証する際は、次の方式が使用されます。
  • MPUがプログラムされたコードの実行を開始したら、フラッシュの読取りや検証のアクセスは不可能になります。
  • 検証処理は、ターゲットICでコードが実行されないようにICを一時停止させて実行されます。
  • ターゲットフラッシュが検証され、コードの実行が開始されたら、それ以上の検証は不可能になります。
このプロセスはユーザーに対して透過的です。

ECK_DISビットがセットされた場合のICのプログラミング

E_TCLK信号はプログラミングインタフェースの機能に不可欠であるため、このケースが問題となる場合があります。

ADM51 ICE

ターゲットエミュレータのクロックが存在しない場合、ADM51 (WEMU51)のユーザインタフェースは図3のような表示を生成します。コード内のどこでECK_DISビットがセットされるかによって、ターゲットのリセットが繰り返される結果、ADM51がターゲットを一時停止させた後にECK_DISビットをセットする可能性があります。こうした状況が発生すると、ユーザインタフェースは表面上正常であり、ユーザーがターゲットフラッシュメモリを消去することが可能です。

TFP2

TFP2は、ターゲットのプログラマインタフェース上のアクティビティに対して非常にすばやく反応することができます。E_TCLK信号がディセーブルされても、通常、TFP2にとって問題ではありません。

部分的または完全に動作可能なコードを含んだICのプログラミング

71M653xのICでは、オンチップのCEがMPUと共有しているフラッシュメモリから命令を読み取ります。アクティブなCEは、外付け機器についてフラッシュメモリへのアクセスをブロックすることができます。CEをイネーブル/ディセーブルする制御ビットは、I/O RAMアドレス0x2000のビット4にあります。

ADM51 ICE

ADM51ユーザインタフェース(WEMU51)の標準的な画面イメージを図4に示します。「XDATA_1」ウィンドウは、I/O RAMのアドレス0x1FF0~0x2137の内容を表示しています。黄色でハイライトされた領域には、実際のI/O RAMハードウェアレジスタを含むアドレスが表示されています。0x2000のレジスタには、値0xB0が含まれます。
ターゲットフラッシュメモリを消去したりプログラムしたりするには、0x2000で値0x00を入力する必要があります。これによってCEが停止し、ターゲットICでプログラミングの準備が行われます。

TFP2

TFP2はCEの処理を自動的に行います。ユーザーの入力は不要です。
図4. ICEインタフェースによるI/O RAMの表示
図4. ICEインタフェースによるI/O RAMの表示

ターゲットイメージファイル(HEXファイル)の作成

ADM51 ICEとTFP2は、どちらもターゲットイメージデータをIntel HEXファイルの形式で処理します。BPM Microsystems製のプログラマでも同じ形式が使用されています。
Intel HEXファイルは、Intel HEXファイル形式に準拠したテキスト行を含むASCIIテキストファイルです。Intel HEXファイル内の各行は、1つのHEXレコードを含んでいます。これらのレコードは、マシン語のコードや定数データを表す16進数で構成されます。
:デバイスを正しくプログラムするには、すべてのレコードが昇順で並んでいる必要があります。マキシムは、Intel HEXファイルを前処理してプログラマで使用可能にするCHKSUM.EXEというユーティリティを提供しています。このユーティリティは、TFP2に付属しています。

レコードの形式

Intel HEXファイルは、任意の数のHEXレコードで構成されます。各レコードは、次の形式に整えられた5つのフィールドで構成されています。
:llaaaatt[dd...]cc
各文字グループが1つのフィールドに対応し、各文字は16進数の1桁を表します。各フィールドは、下に説明するとおり、2桁(1バイト)以上の16進数で構成されます。
  • :は、各Intel HEXレコードの開始を示すコロンです。
  • llは、レコード内のデータバイト(dd)の数を示すレコード長フィールドです。
  • aaaaは、レコード内で後に続くデータの開始アドレスを示すアドレスフィールドです。
  • ttは、HEXレコードのタイプを示すフィールドです。タイプは次のいずれかです。
    00:データレコード
    01:EOF (ファイルの終わり)レコード
    02:拡張セグメントアドレスレコード
    04:拡張リニアアドレスレコード(ELAR)
  • ddは、1バイトのデータを表すデータフィールドです。1つのレコードに複数のデータバイトが含まれる場合があります。レコード内のデータバイトの数は、llフィールドで指定された数と一致する必要があります。
  • ccは、レコードのチェックサムを示すチェックサムフィールドです。このチェックサムは、レコード内の16進数字のペアすべての値を合算し、その合計を256で割った余りを求め、2の補数をとることによって計算されます。
Intel HEXファイルは、キャリッジリターンとラインフィードで終端された任意の数のデータレコードで構成されます。次にデータレコードの例を示します。
:10246200464C5549442050524F46494C4500464C33
このレコードは、次のようにデコードされます。
:10246200464C5549442050524F46494C4500464C33
|||||||||||||||||||||||||||||||||||||||||CC->Checksum (0x33)
|||||||||DD->Data (0x46, 0X4C, 0X55, ... 0X4C)
|||||||TT->Record Type (0x00)
|||AAAA->Address (0x2462)
|LL->Record Length (0x10)
:->Colon
各フィールドは次のとおりです。
  • 10はレコード内のデータバイトの数です。
  • 2462はメモリ内でデータが置かれているアドレスです。
  • 00はレコードタイプの00 (データレコード)です。
  • 464C...464Cはデータです。
  • 33はレコードのチェックサムです。

Intel HEX386ファイル形式

71M653xの各デバイス(71M6531、71M6532、71M6533、71M6534H)に使用されるようなバンク対応のコードでは、Intel HEX386ファイル形式(拡張リニアアドレスレコード)が使用されます。
拡張リニアアドレスレコードは、32ビットアドレスレコードやHEX386レコードとも呼ばれています。これらのレコードには、データアドレスの上位16ビット(ビット16~31)が含まれます。拡張リニアアドレスレコードには、常に2つのデータバイトが含まれます。次に例を示します。
:020000040001F9
各フィールドは次のとおりです。
  • 02はレコード内のデータバイトの数です。
  • 0000はアドレスフィールドです。拡張リニアアドレスレコードでは、このフィールドは常に0000です。
  • 04はレコードタイプの04 (拡張リニアアドレスレコード)です。
  • 0001は、アドレスの上位16ビットを示します。
  • F9はレコードのチェックサムであり、0x01 + NOT(0x02 + 0x00 + 0x00 + 0x04 + 0x00 + 0x01) として計算されます。
拡張リニアアドレスレコードが読み取られると、データフィールドに格納されている拡張リニアアドレスが保存され、Intel HEXファイルから読み取られる後続のレコードに適用されます。リニアアドレスは、別の拡張アドレスレコードによって変更されるまでは有効のままです。
データレコードの絶対メモリアドレスは、拡張リニアアドレスレコードのシフトしたアドレスデータにレコード内のアドレスフィールドを加算することによって得られます。次の例はこのプロセスを示しています。
データレコードのアドレスフィールドのアドレス   0x2462
拡張リニアアドレスレコードのデータフィールド   0x0001

絶対メモリアドレス   0x00012462
プログラミングプロセス中に、プログラマではELARレコードについてIntel HEXファイルを解析し、プログラム対象のバンクに応じてアドレス変換を実行する必要があります。このプロセスに関わる処理の概要を図5に示します。
図5. バンク切替えコードのプログラミングにおけるIntel HEXレコードの処理
図5. バンク切替えコードのプログラミングにおけるIntel HEXレコードの処理

71M651x用のターゲットイメージファイルの生成

Keil PK51プロフェッショナルデベロッパキットを使用すると、71M651x用のターゲットイメージファイルの生成は簡単です。図6は、Keilの開発環境であるµVision3で出力ファイルの特性を定義するダイアログボックスを示しています。「Create HEX File」をチェックし、HEX Formatで「HEX-80」を選択する必要があります。これらの設定によって、ADM51とコンパチブルなターゲットイメージファイルの生成が保証されます。ターゲットイメージファイルを生成したら、CHKSUM.exeユーティリティを使用して、TFP2やその他のプログラマとの互換性を保証する必要があります。
図6. Keil µVision 3における出力形式の制御
図6. Keil µVision 3における出力形式の制御

71M653x用のターゲットイメージファイル

Keil BL51リンカとそれに付属したHEXコンバータは、フラッシュメモリバンクごとに別個のIntel HEXファイルを生成します。これらのファイルは、末尾に.H01 (バンク1の場合)や.H02 (バンク2の場合)などの名前が付いています。ADM51とTFP2では、.hexファイル拡張子が付いた単一のIntel 386 HEXファイルが想定されています。
71M653xのデモキットに付属しているCD ROMには、bank_merge.exeというユーティリティが含まれています。このユーティリティは、DOSコマンドウィンドウで動作し、Keil BL51リンカによって生成された複数のバンクファイルをマージして1つのIntel 386 HEXファイルにします。
図7. Keil µVision 3におけるbank_merge.exeの自動起動
図7. Keil µVision 3におけるbank_merge.exeの自動起動
KeilのLx51アドバンストリンカを使用すると、出力ダイアログにHEX形式のプルダウンリストが表示されます。「i386」のHEXファイルオプションを選択します。
:bank_merge.exeユーティリティで処理したHEXファイルは、CHKSUM.exeユーティリティで処理しないでください。

CHKSUM.exeユーティリティ

ターゲットイメージのHEXファイルをTFP2やその他のプログラマにダウンロードする前に、マキシムが提供しているCHKSUM.exeユーティリティを使用して、そのイメージファイルを前処理する必要があります。HEXファイルをCHKSUM.exeで処理しないと、ターゲットのフラッシュメモリのプログラミングが不完全になります。CHKSUM.exeで処理するには、ターゲットのコードが拡張版のIntel ASCII HEX-80形式である必要があります。
次のように、DOSコマンドプロンプトからCHKSUM.exeを呼び出します。
chksum kb <infile.hex >outfile.hex
各フィールドは次のとおりです。
kb = 目的のファイルサイズ。TFP2のダウンロードやターゲットプログラミング中に使用されるメモリサイズスイッチ設定です。
infile = 処理対象となるターゲットコードのHEXファイル
outfile = TFP2にダウンロードされる処理済みターゲットコードのHEXファイル
図8は、CHKSUM.exeの典型的な呼び出し例を示しています。
図8. CHKSUM.exeによるHEXファイルの処理
図8. CHKSUM.exeによるHEXファイルの処理
CHKSUMユーティリティの目的は、各HEXレコードをアドレスが昇順で連続的に並んだ構造に整えることです。一部のコンパイラは、シーケンシャルでないHEXファイルを生成します。TFP2ではシーケンシャルなファイル構造が想定されています。シーケンシャルでないHEXファイルをTFP2にダウンロードすると、(その後にターゲットをTFP2でプログラムしたときに)ターゲットフラッシュメモリでバイトの欠落が生じます(欠落したバイトは、アウトオブシーケンスなHEXレコード)。
注:bank_merge.exeユーティリティで処理したファイルには、CHKSUM.exeを使用しないでください。
CHKSUM.exeユーティリティでは、ダウンロードしたターゲットHEXファイルの最後の4バイトが使用されているかどうかに応じて、それらの位置を上書きする場合としない場合があります。
CHKSUM.exeユーティリティの使用では、次のケースが考えられます(例については表2を参照)。
  1. ターゲットHEXファイルの最後の4バイトが使用されていない場合(0xFF)、CHKSUM.exeユーティリティは自動的に計算した2バイトのCRCと2バイトのチェックサムを挿入します。
  2. ターゲットHEXファイルの最後の4バイトに0xFF以外の値が含まれている場合、CHKSUM.exeユーティリティは元の4つの値を上書きしません。
表2. CHKSUM.exeによって生成されたフラッシュイメージ(例)
Last 4 Bytes of Original Intel Hex File Target Image Created in TFP2 EEPROM by CHKSUM.exe Comment
0xFF 0xFF 0xFF 0xFF CRC MSB CRC LSB CS MSB CS LSB All four bytes are 0xFF. These bytes are replaced with two CRC and two checksum bytes.
0xFF 0xB5 0xFF 0xFF 0xFF 0xB5 0xFF 0xFF At least one byte is not 0xFF. All four bytes are maintained.
0xA3 0xF1 0x72 0x8C 0xA3 0xF1 0x72 0x8C All four bytes are not equal to 0xFF. The original content of the last four bytes is maintained.
CHKSUM.exeユーティリティは、最後の4つのメモリ位置に0xFF以外の値を検出すると、図9のような警告を表示します。
図9. CHKSUM.exeによるファイル処理時の警告
図9. CHKSUM.exeによるファイル処理時の警告
ターゲットフラッシュメモリをプログラムする際、ターゲットHEXファイルの最後の4バイトはそのまま継承されます。CHKSUM.exeによって計算されたCRCとチェックサムバイトがコピーされるか、または元のターゲットのHEXデータがコピーされるかのいずれかです。ターゲットHEXファイルの最後の2バイトが0xFF (CHKSUM未使用)の場合は、TFP2がHyperTerminalのファイルダウンロード処理中に、その最後の2バイトの0xFFを自動的に計算したチェックサムで上書きします。
TFP2は、起動時に図10のようなメッセージを表示します。
図10. TFP2によるファイル処理のメッセージ
図10. TFP2によるファイル処理のメッセージ
ターゲットHEXファイルで最後の4バイトにFF以外の値が含まれている場合、図10に示したパワーオン時のメッセージ画面に「TFP2 EEPROM verification error」というメッセージが表示されることがあります。この場合、表示される「TFP2 EEPROM Checksum =」の値と「Stored Checksum =」の値が異なります。こうした状況は、格納されている(お客様のターゲットイメージファイルの)チェックサム値がTFP2で使用しているチェックサム計算とは異なる方式で導出されている場合に発生します。したがって、この場合、TFP2はEEPROMの内容を確認することができません。ただし、チェックサム検証エラーが発生しても、TFP2によるターゲットICのプログラミングは妨げられません。「TFP2 EEPROM Checksum =」の値は、TFP2のパワーオンやシステムリセットのたびに再計算されます。EEPROMの内容を手動で検証するには、ファイルのダウンロード後に導出されたTFP2のEEPROMチェックサム値と、その後のパワーオン時に再計算されたチェックサム値を比較する必要があります。

メーターボードに対するハードウェアの事前対策

71M651xのICを実装したメーターボード

図11に示すように、プログラミングインタフェースでE_RSTとグランド間のコンデンサやE_RXTX、E_RST、E_TCLK用のプルアップ抵抗を使用することによって、電磁干渉(EMI)から保護する必要があります。
図11. 71M651xのプログラミングインタフェース
図11. 71M651xのプログラミングインタフェース
ADM51を使用して正しくコードをエミュレートしたり、ターゲットフラッシュをプログラムしたりするには、メーターボードにハードウェアウォッチドッグタイマをディセーブルする機構が用意されていなければなりません。そうした機構を備えていないと、ターゲットが1.5秒ごとにリセットされるため、ターゲットフラッシュのプログラミングが不可能になります。ウォッチドッグタイマのディセーブル化は、図12に示すように、着脱可能なジャンパによって行われるのが普通です。
図12. V1の分圧器
図12. V1の分圧器
ターゲットフラッシュのプログラミングにTFP2を使用する場合は、ターゲットのウォッチドッグタイマをディセーブルする必要はありません。TFP2は、ウォッチドッグタイマを頻繁にトリガしてターゲットのリセットを防ぐことができる機構を備えています。

71M653xのICを実装したメーターボード

プログラミングインタフェースでグランドとの間にコンデンサを使用し、EMIから保護する必要があります。実用ボードではICE_Eピンをグランドに接続します。
ICEピンがLCDセグメントの駆動に使用されている場合は、図13に示すようにプルアップ抵抗を省略し、GNDDとの間に22pFのコンデンサを使用してEMIから保護する必要があります。
ICE_Eピンをプログラミングインタフェースに接続することが重要です。これによって、バッテリやSECUREビットをセットするコードを備えたメーターなど、再プログラミングが難しいメーターを再プログラムする手段が得られます。そうしたケースでは、メーターをパワーダウンしてもSECUREビットのリセットに必要なリセットが発生しません。この推奨事項の根拠は次のとおりです。
  • バッテリを内蔵した実用メーターは、リセットボタンやリセットを開始するその他の手段を備えていないことがよくあります。
  • バッテリを内蔵していると、商用電源を切断するだけではメーターICをリセットすることができません。
  • リセットを発生させる手段がない場合は、メーターICの消去も考えられますが、消去とプログラミング操作の間に必要なリセットを行うことができません。
ICE_Eへのアクセスを確保すると、消去とプログラミングのサイクル間に製品をリセットすることができ、プログラミングデバイスで製品を再プログラムすることが可能になります。必要なリセットは、ウォッチドッグタイマリセットで実装します(つまり、ハードウェアWDTをイネーブルする必要があります)。
図13. 71M653xのプログラミングインタフェース
図13. 71M653xのプログラミングインタフェース

付録A:TFP2に基づいたプログラマの回路図

図14に示すように、TFP2、ソケット付きのPCB、その他いくつかの部品を使用したシンプルなデバイスプログラマを設計するのはかなり容易です。
このプログラマは、ブッシュボタンを使用して手動で操作したり、ATE装置で制御したりすることができます。2つのTFP2プログラマと2枚のソケットボードを使用して、この構成を二重化することも可能です。また、各TFP2に独自のソケットボードさえ用意すれば、複数の構成を使用してギャングプログラマと同等な機能を実現することもできます。
図14. TFP2を使用したプログラマ
図14. TFP2を使用したプログラマ
図1518は、マキシムのさまざまなメーターICについてデバイスプログラマの概略設計を示しています。これらのプログラマは、通常のPCBや「Perf-Board」のような試作ボードに基づいて構成することができます。ほかのメーターICの回路図もここに挙げた例に似たものであり、これらの回路図から簡単に導くことができます。
これらの回路図を実際の回路に変換する際は、次のようないくつかの一般的ルールに従います。
  1. 水晶と結晶コンデンサは、ターゲットICのXINピンとXOUTピンのごく近傍に配置する必要があります。
  2. 必要に応じて、EPSON RX-8025や32kHzデジタル出力を備えた任意の発振器など、外付け発振器を使用することができます。このオプションが推奨されるのは、不完全なレイアウト、XIN/XOUTピン周辺の汚れ、水分の蓄積などの条件下でも、より安定した動作が保証されるためです。
  3. ターゲットICのごく近傍に、VBIAS、V3P3A、V2P5などのピンとグランドの間に接続したバイパスコンデンサを実装する必要があります。
  4. E_RST、ERXTX、E_TCLKの各信号の接続は、非常に短くする必要があります。つまり、TFP2からのリボンケーブルの接続に使用する2X10 ICEコネクタを、ターゲットICから5cm (2インチ)以内に配置します。エミュレータインタフェースの信号E_RST、E_RXTX、E_TCLKの経路設定や接続は、慎重に行う必要があります。水晶発振器の入力から遠ざけ、直線的で短い経路(導線)を使用します(特に10MHz信号を搬送するE_TCLK)。
  5. 絶縁型電源を使用する場合、「Protective Earth」とラベルされた端子を堅い地面(グランド)に接続して、プログラミングソケットに電荷が蓄積しないようにする必要があります。
表3に、水晶、コンデンサ、コネクタ、ソケットなど、ソケットボードに使用することができる一般的な構成要素を示します。
表3. ソケットボードの一般的な構成要素
Part Manufacturer Part Number U.S. Distributor Distributor Part Number
LQFP-64 socket Yamaichi IC169-064-*69-B5 Future Electronics and others  
LQFP-100 socket IC169-100-*25-B5
LQFP-120 socket IC149-120-143-B5
TFP2 connector (2x10) TYCO/AMP 5-104068-1 Mouser 571-5-104068-1
Crystal, 32kHz ECS ECS.327-12.5-39-TR Digi-Key XC1658CT-ND
Oscillator, 32kHz Epson RX-8025SA Digi-Key SER3650-CT-ND
Voltage regulator Texas Instruments TL431AIDR Digi-Key 296-1288-1-ND
DC connector Switchcraft RAPC712X Digi-Key SC237-ND
図15. 71M6511/71M6511H用のプログラマ
詳細画像
(PDF, 328kB)
図15. 71M6511/71M6511H用のプログラマ
図16. 71M6513/71M6513H用のプログラマ
詳細画像
(PDF, 282kB)
図16. 71M6513/71M6513H用のプログラマ
図17. 64ピンパッケージの71M6521BE/DE/FEに対応したプログラマ
詳細画像
(PDF, 325kB)
図17. 64ピンパッケージの71M6521BE/DE/FEに対応したプログラマ
図18. 68ピンパッケージの71M6521DE/FEに対応したプログラマ
詳細画像
(PDF, 326kB)
図18. 68ピンパッケージの71M6521DE/FEに対応したプログラマ


HyperTerminalはHilgraeve, Incorporatedの登録商標です。

IntelはIntel Corporationの登録商標および登録サービスマークです。

KeilはArm Limitedの登録商標および登録サービスマークです。

TeridianはMaxim Integrated Products, Inc.の商標です。

WindowsはMicrosoft Corporationの登録商標および登録サービスマークです。



関連製品
71M6511 単相エネルギーメーターIC  
71M6511H 単相エネルギーメーターIC  
71M6513 3相エネルギーメーターIC  
71M6513H 3相エネルギーメーターIC  
71M6531D エネルギーメーターIC  
71M6531F エネルギーメーターIC  
71M6532D エネルギーメーターIC  
71M6532F エネルギーメーターIC  
71M6533 エネルギーメータIC  
71M6533G エネルギーメータIC  
71M6533H エネルギーメータIC  
71M6534 エネルギーメータIC  
71M6534H エネルギーメータIC  
71M6541D エネルギーメーターIC  
71M6541F エネルギーメーターIC  
71M6541G エネルギーメーターIC  
71M6542F エネルギーメーターIC  
71M6542G エネルギーメーターIC  
71M6543F エネルギーメーターIC  
71M6543GH エネルギーメーターIC  
71M6543H エネルギーメーターIC  
71M6545 計測プロセッサ  
71M6545H 計測プロセッサ  


次のステップ
EE-Mail EE-Mail配信の登録申し込みをして、興味のある分野の最新ドキュメントに関する自動通知を受け取る。

© Jul 08, 2013, Maxim Integrated Products, Inc.
このウェブサイトのコンテンツは米国および各国の著作権法によって保護されています。コンテンツの複製を希望される場合は、お問い合わせください

APP 5539: Jul 08, 2013
アプリケーションノート5539, AN5539, AN 5539, APP5539, Appnote5539, Appnote 5539, AN_65XX_057