 |
 |
 |
|
マキシム >
設計サポート
> アプリケーションノート
>
[マイクロプロセッサ監視回路]
[リアルタイムクロック]
| |
キーワード: ds28dg02, ユーザ, ガイド, SPI, EEPROM, pio, rtc, リセット, バッテリモニタ, ウォッチドッグ, MISO, MOSI
|
|
関連製品
|
|
APP 4040: Nov 02, 2007
|
ダウンロード、PDFフォーマット(76kB)
|
|
 |

| アプリケーションノート 4040
|
DS28DG02のユーザガイド |
要約:DS28DG02は、PIO、リアルタイムクロック(RTC)、リセット、バッテリモニタ、およびウォッチドッグ付きの2kb SPI™ EEPROMであり、ポータブル機器や組込みアプリケーションで必要な複数の機能を組み合わせています。このアプリケーションノートは、製品のデータシートを補足し、SPIインタフェースとその書込み保護方式に関する追加情報を提供し、このデバイスの12のPIOとRTCアラーム機能の使用方法について説明します。また、このドキュメントでは、バッテリ選択、RTC水晶パッドのシールド、およびアラームイベントに対するソフトウェア応答に関するガイダンスについても説明します。
通信インタフェース
DS28DG02は、SPI (シリアルペリフェラルインタフェース)を通じて、マスタ(通常はマイクロコントローラ)にそのリソースへのアクセスを提供するスレーブEEPROMデバイスです。SPIは、もともとMotorolaによってマイクロコントローラのMC68HCxxライン用に開発されました。表1は、標準SPI信号名とその機能を示しています。
表1. SPI信号名
| Motorola Name |
Function |
Alternate Names |
| SCLK |
シリアルクロック。プッシュ/プルドライバで、マスタによって生成されます。立上り時間と立下り時間の規格が適合する場合は、オープンドレインドライバが許容されます。 |
SCK, SK, C |
| MISO |
スレーブからマスタへのデータライン(「マスタインスレーブアウト」)。ハイインピーダンスのプッシュ/プル出力が、スレーブによって駆動され、マスタのシリアル入力に接続されます。 |
SO, DO, Q |
| MOSI |
マスタからスレーブへのデータライン(「マスタアウトスレーブイン」)。プッシュ/プル出力が、マスタによって駆動され、スレーブのシリアル入力に接続されます。 |
SI, DI, D |
| Active-low SS |
スレーブ選択。プッシュ/プル出力で、マスタによって生成されます。 |
CSZ, active-low CS |
SPI通信の基本概念では、マスタとスレーブの両方でシフトレジスタが採用されます。シフトレジスタの入力/出力は、図1に示すように、円を形成するように配線されます。マスタによって駆動されたクロック信号が、8ビットブロックにあるシリアルデータを、マスタからスレーブとスレーブからマスタの双方向に同時にシフトするため、SPIはフルデュプレクスプロトコルになります。ただし、DS28DG02を含め、大部分のSPIスレーブは、データを送受信可能にする前に、まず、コマンドを要求します。そのため、データは、ハーフデュプレクス動作で、マスタからスレーブまたはスレーブからマスタのいずれかの単方向に送信されます。

図1. SPI通信の概念
SPI規格は、SPIマスタのCPOLとCPHAの制御ビットによって選択される4つのモードを定義します。これらのモードを参照する方法に関する基準はありません。表2は、SPIドキュメンテーションで一般に使用されるモードの定義を示しています。
表2. SPIモードの定義
| SPI Mode |
CPOL |
CPHA |
Description |
| 0 or (0,0) |
0 |
0 |
クロックのアイドルステートはローです。データは、立上りクロックエッジでキャプチャされ、立下りクロックエッジでシフトアウトされます。 |
| 1 or (0,1) |
0 |
1 |
クロックのアイドルステートはローです。データは、立下りクロックエッジでキャプチャされ、立上りクロックエッジでシフトアウトされます。 |
| 2 or (1,0) |
1 |
0 |
クロックのアイドルステートはハイです。データは、立下りクロックエッジでキャプチャされ、立上りクロックエッジでシフトアウトされます。 |
| 3 or (1,1) |
1 |
1 |
クロックのアイドルステートはハイです。データは、立上りクロックエッジでキャプチャされ、立下りクロックエッジでシフトアウトされます。 |
DS28DG02は、(0,0)および(1,1)のSPIモードをサポートしています。これらのモードでは、データは、立上りクロックエッジでキャプチャ(クロックイン)され、立下りクロックエッジでシフトアウト(または変更)されます。CSZの立下りエッジにおけるクロックステートは、マスタが使用するSPIモードをDS28DG02に通知します。通信が(1,0)または(0,1)のモードで試行されると、このデバイスの動作は未定義になります。
SPIプロトコルとタイミングの詳細については、DS28DG02のデータシートの「SPIインタフェース」セクションを参照するか、またはインターネットで「SPIスレーブのタイミング」という語句で検索してください。このウェブ検索で見つかるドキュメントの大部分は、内蔵レジスタの設定に応じて、SPIマスタまたはスレーブとして機能可能なマイクロコントローラに関するものです。SPI概念の優れた概要を提供し、SPIマスタの設定を説明しているサードパーティのドキュメントは、以下のとおりです。
http://www.mct.net/faq/spi.html (一般情報)
http://www.atmel.com/dyn/resources/prod_documents/doc2585.pdf (マスタの設定)
書込み保護方式
SPIメモリデバイスは、メモリを不注意な変更や不正な変更から保護するために、SPIステータスレジスタのWENビット、SPIステータスレジスタの制御ビットを使用したブロック書込み保護、およびSPIステータスレジスタのピンステートとイネーブルビットを使用したハードウェア書込み保護という3レベル方式を利用します。DS28DG02に固有なレジスタ書込み保護は、ブロック書込み保護と同じレベルですが、異なるメモリ領域に適用されます。表3は、制御ビットと、そのメモリに及ぼす効果を示しています。
表3. 書込み保護制御
| Level |
Controlling Bits |
Memory Protected |
| 1 |
WEN |
すべての書込み可能なメモリアドレスとSPIステータスレジスタ |
| 2 |
BP1:BP0 |
000h~0FFhのアドレス |
| 2 |
RPROT |
120h~135hのアドレス |
| 3 |
WPEN (in conjunction with WPZ pin state) |
SPIステータスレジスタの不揮発性ビットのみ |
レベル1:SPIステータスレジスタのWENビット
このビットは、パワーオン時や、任意の書込み関数コマンドの正常完了時、またはWRDI (書込みディセーブル)のSPIコマンドを通じてクリアされます。WENビットを設定する唯一の方法は、WREN (書込みイネーブル)のSPIコマンドを使用する方法です。注 :WENビットの概念は、SPIマスタが正常に動作しない場合に、書込み可能メモリの破壊を阻止します。
レベル2:SPIステータスレジスタのBP1:BP0ビット
この一般的な書込み保護の方法は、SPIステータスレジスタの2つの不揮発性ビット(BP1:BP0)を使用し、EEPROMの書込み保護を、なし、すべて、上1/2、上1/4のいずれかに設定します。これらの制御ビットは、SPIステータスレジスタに格納されているため、ハードウェア書込み保護の対象となります。ハードウェア書込み保護がない場合、このブロック書込み保護は、ソフトウェア制御を通じて変更することが可能です。注:ブロック書込み保護は、一部のEEPROMを読取り専用として設定しますが、残りのEEPROMは、マスタが最終製品の通常動作時に変更可能なデータの格納用として使用することができます。
レベル2:SPIステータスレジスタのRPROTビット
この方法は、DS28DG02の特別機能で、SPIステータスレジスタの不揮発性RPROTビットを使用し、120h~のアドレス範囲のユーザ書込み可能バイトを書込み保護します。RPROTが1の場合、これらのアドレスは書込み保護されます。これは、RTC、RTCアラームレジスタ、マルチ関数制御/設定レジスタ、およびアラーム/ステータスレジスタを保護し、PIOへの書込みを阻止します。この書込み保護レベルは、10Ah~10Fhに格納されたPIO関連のレジスタのパワーオン時のデフォルト値を保護しません。RPROTビットは、SPIステータスレジスタに格納されているため、ハードウェア書込み保護の対象になります。ハードウェア書込み保護がない場合、RPROTは、ソフトウェア制御を通じて変更することが可能です。注:レジスタ書込み保護は、RTCとそのアラーム、および最終製品に組み込まれるDS28DG02の機能性(ウォッチドッグ、バッテリモニタ、RTCなど)を定義するレジスタへの不測の変更を阻止します。
レベル3:SPIステータスレジスタのWPENビット
この方法は、SPIステータスレジスタのWPZピンを、WPENビットと連動して使用します。この機能は、SPIステータスレジスタの不揮発性ビットのみ、特にBP1:BP0、RPROT、およびWPENのブロック保護ビットを保護します。WPENビットは、1に設定された場合、WPZピンをイネーブルにし、WPENを含むSPIステータスレジスタのすべての不揮発性ビットの保護を制御します。出荷時フレッシュのSPIメモリデバイスでは、WPENビットは0に設定されます。これは、WPZピンがグランド結合された場合でも、ボードテスタ上のメモリのプログラミングを可能にします。最後の段階で、メモリがプログラミングされた後、テスタはレベル2の保護を設定し、WPENビットを1に書き込み、これによって、ハードウェア書込み保護をアクティブ化します。WPZピンにおけるロジックステートが0である限り、SPIステータスレジスタの不揮発性ビットの書込み保護が保持されます。任意の不揮発性ビットを変更するには、WPZピンのロジックステートが、たとえば、ピンを一時的にVCCに接続するジャンパを通じて1に変更される必要があります。注:ハードウェア書込み保護は、レベル2の保護設定を永続的にしますが、後で修正するためのバックドア(WPZピン)も残します。
注:レジスタの書込み保護が永続的にイネーブルにされた場合、ウォッチドッグ、RTC、およびバッテリアラームをクリアする唯一の方法は、VCCパワーサイクルを使用する方法です。VCCパワーに関係なく、バッテリの交換は、マルチ関数制御/設定レジスタ、およびRTCとそのアラームレジスタをクリアします。ハードウェア書込み保護とレジスタ書込み保護の両方がアクティブ化された(RPROT = 1、WPEN = 1、WPZピンはGND結合)場合、ユーザは機器メーカにサービスコールを実行し、機器が再設定されて稼働状態になるようにする必要がある場合があります。
バッテリ選択
DS28DG02は、134hのアドレスのマルチ関数制御/設定レジスタに格納されたその設定を維持してそのRTCの稼働を確保するためのバッテリが必要です。VCCが永続的に利用可能な場合、バッテリは不要で、VBATピンがVCCに接続されます。VCCが遮断され、バッテリバックアップがない場合、マルチ関数制御/設定レジスタは、全ビットが0の状態でパワーアップします。このアクションは、RTCを停止させ、クロックアラーム、ウォッチドッグ、およびバッテリモニタをディセーブルにします。これは、通常の設定であり、RTCおよびウォッチドッグを使用しないアプリケーションでは関連する理由はありません。標準的なDS28DG02アプリケーションは、少なくともRTCまたはウォッチドッグを使用するため、監視対象となるバッテリが必要になります。
バッテリの電力は、VCCがオフにされた場合にのみ消費されます。次の2つの場合は注意する必要があります。a) RTC発振器が停止した(オフ、OSCE = 0)場合、およびb) RTC発振器がオンの場合(稼働中、OSCE = 1)。理論的には、3番目の場合としてバッテリモニタに関するものがあります。ただし、バッテリモニタからバッテリにかかるピーク負荷(IMAX = 20µA)は、時間当りわずか2sしか適用されないため、平均負荷電流は11nA (20µA x 2/3600)となり、RTCがオフの場合の負荷の半分以下になります。バッテリモニタを使用しても、バッテリ寿命は短くなりません。監視はVCCが適用される場合にのみ行われ、RTCと他の不揮発性メモリセルは、バッテリではなくVCCから駆動されるためです。
DS28DG02の標準バッテリ電圧は3Vで、1個のリチウム電池(Li+)または2個直列のコイン型酸化銀電池から供給されます。これらのバッテリのエネルギ容量は一般に、mAh (ミリアンペア時)で指定されます。この値は、対象アプリケーション内の負荷抵抗と類似の負荷抵抗を使ってバッテリ電圧が定義済みスレッショルド以下に落ちるまでの所要時間を測定して得られます。詳細については、以下のバッテリメーカが提供しているデータシートを参照してください。
http://www.panasonic.com/industrial/battery/oem/chem/lith/coin1.htm
http://www.rayovac.com/technical/pdfs/pg_lithium.pdf
http://data.energizer.com/DataSheets.aspx
バッテリがコンデンサと類似していると仮定した場合、バッテリの放電期間は、t = Q/Iとして計算されます。たとえば、バッテリ量が1mAh、放電電流が1µAの場合、放電期間は以下のようになります。

この結果は、以下の等式を使用し、バッテリ容量と放電電流に応じてスケールすることができます。

たとえば、負荷電流が10µAの場合、48mAhのバッテリは、48/10 x 41.66、すなわち200日間RTCの稼働を維持します。約+25℃で、RTCがオン時の負荷電流は4.7µA (max)です。したがって、同じバッテリの持続期間は以下のようになります。

2個直列のバッテリセルを使用すると、利用可能な電圧とエネルギが2倍になります。ただし、バッテリの寿命は倍増しません。寿命を決定するには、1個のセルの容量が式2に挿入される必要があります。その理由は、電流は直列の各セルから流れ、それぞれが同じレートで放電するためです。
PIOの使用方法
DS28DG02は12のPIOチャネルを備えています。標準的なアプリケーションでは、一部のPIOが入力、一部のPIOが出力として使用され、一部は未使用になります。メモリマップ内で「隣同士」であるPIO (PIO0~PIO7、PIO8~PIO11)は、回路ボード上では隣同士ではありません。TSSOPでは、すべての偶数PIOはパッケージの左側に、奇数PIOはパッケージの右側に配置されます。TQFNでは、パッケージのウエスト側に3つの偶数PIO、イースト側に3つの奇数PIO、およびサウス側に残り6つの偶数と奇数PIOが配置されます。これは、一見普通でないようにみえますが、このデバイスのユーザビリティには影響しません。
出力モードのPIOのいずれも大電流をシンクまたはソースする必要がない場合、低電流出力モードが適用可能です。低電流出力モードでは、同じメモリアドレスを共有する全PIOに対してPIOの読取りと書込みが同時に発生します。5~8個のPIOが同時に読取り/書込みを行う必要がある場合、PIOチャネル0~7を選択し、これらのチャネルをアプリケーションの各ノードにボードレイアウトのトポロジに最適な方法で割り当てます。大電流モードの書込みは同時的でないため、最適なボードレイアウトにのみPIOを割り当てます。以下の例は、PIOチャネルを割り当てる1つのアプローチを示しています。
設定例
| 出力数: |
6 |
| 出力タイプ: |
4つのプッシュ/プル、2つのオープンドレイン |
| 出力モード: |
低電流(同時書込み) |
| 入力数: |
4 |
| 読取り反転 |
なし |
| 未使用: |
2つのPIO |
DS28DG02のPIOピン割当てを左回りで表示すると、同じメモリアドレスを共有するPIOのシーケンスは、0、4、6、2、3、7、5、1となります。このシーケンスは、パッケージタイプから独立しています。明らかに隣同士なのは、チャネル6、2、3、および7です。残りの2つの出力は、隣接ピンであるため、チャネル0と4が割り当てられます。このアプローチでは、チャネル1と5が未使用になります。この出力タイプは、4個のPIOで構成する0~3、4~7、および8~11のグループに対して設定されます。グループ内の各PIOは同じ出力タイプを持ちます。例中の4つの出力は、プッシュ/プルに設定する必要があります。上記の割当ての場合、これらは、チャネル0~3、またはチャネル4~7に割り当てることができます。チャネル1が使用されず、チャネル0、2および3のみを残すため、この出力タイプの要件は適合しません。
したがって、出力タイプ要件に適合するには、チャネル割当てが変更される必要があります。これで、プッシュ/プル(任意の選択肢)にチャネル4~7が、オープンドレインにチャネル2と3が使用されます。この場合、チャネル0と1が未使用になります。これらの入力は、チャネル8~11に割り当てられ、メモリアドレスも共有します。
次に、この設定に対するパワーオン時のデフォルトレジスタ値が定義され、各メモリアドレスに書き込まれる必要があります。下表は、以下の色コードを使用して選択肢を説明しています。
| |
設定/アプリケーション要件から生じる値 |
| |
任意の割当て、「Don’t care」状態 |
| |
(割当てなし、予約) |
PIO出力ステート用のパワーオン時デフォルト
| ADDR |
b7 |
b6 |
b5 |
b4 |
b3 |
b2 |
b1 |
b0 |
|
Hex |
| 10Ah |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
3C |
| 10Bh |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
00 |
注:この例では、アプリケーションがロジック1でパワーアップするにはチャネル2~5、ロジック0でパワーアップするにはチャネル6および7が必要であると仮定されています。
PIO方向のパワーオン時デフォルト
| ADDR |
b7 |
b6 |
b5 |
b4 |
b3 |
b2 |
b1 |
b0 |
|
Hex |
| 10Ch |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
03 |
| 10Dh |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
0F |
PIO読取り反転用のパワーオン時デフォルト(PIO0~PIO7)
| ADDR |
b7 |
b6 |
b5 |
b4 |
b3 |
b2 |
b1 |
b0 |
|
Hex |
| 10Eh |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
00 |
PIO読取り反転のパワーオン時デフォルト(PIO8~PIO11)、PIO出力タイプ、および出力モード
| ADDR |
b7 |
b6 |
b5 |
b4 |
b3 |
b2 |
b1 |
b0 |
|
Hex |
| 10Fh |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
10 |
データシートで示された通信例の各定義を使用し、以下のシーケンスが出力として定義されたPIOを更新します。
| SEL |
WREN |
DSEL |
SEL |
WRITEH |
<20h> |
<1 byte PIO data> |
DSEL |
PIOにおける波形パターンを生成するために、異なるPIOデータでフルシーケンスを繰り返す必要はありません。代わりに、必要な数のPIOデータバイトを送信します。1番目、3番目、5番目・・・のように続くバイトが使用されてPIOを更新します。他のバイト(2番目、4番目、6番目、・・・)は影響を及ぼしません。PIO 8~11が入力として割り当てられているためです。
以下のシーケンスは、入力として定義されたPIOから読み取ります。
| SEL |
READH |
<27h> |
<1 bytes PIO data> |
DSEL |
高速レートでPIOから繰り返し読み取るには、フルシーケンスを繰り返す必要はありません。代わりに、126hの開始アドレスを使用し、必要な数のバイトを読み取ります。1番目、3番目、5番目のように続くバイトは、出力として定義されたチャネルのステートを返します。その他のバイト(2番目、4番目、6番目、・・・)は、入力として割り当てられたPIO 8~11からのデータを通知します。
PIO大電流モード
書込みアクセスの場合、PIOは低電流モードまたは大電流モードで動作可能です。このモード選択は、すべてのPIOラインに同じ方法で適用されます。低電流モードでは、同じバイトアドレスを共有するすべてのPIOは同時に切り替わります。さらに、PIOで120hのアドレスから書込みアクセスが始まる場合、DS28DG02が受信するデータバイトごとに、書込みアドレスが120h (PIO0~PIO7)と121h (PIO8~PIO11)の間でトグルします。このアプローチは、PIOへの高速書込みを可能にし、次の書込みアクセスの前に必要なWRENコマンドを不要にします。
PIOの電流シンク/ソース能力は、大電流と低電流の両モードで同じです。ただし、大電流モード(OTM = 1)では、PIOは一度に1チャネルずつ順次切り替わります。PIO電流のスルーレートは、アクティブ回路構成によって制限されます。大電流モードでは、アドレスのトグルは適用されません。代わりに、アドレスは単に、120hから121hへ、次に122hへとインクリメントします。120hのアドレスに再度書き込むには、新しい書込みシーケンスが必要です。
DS28DG02が安定したVCC電源を備え、PIOを切り替えた直後にリセットを発生させる場合、誘導電圧スパイクがVCCモニタに入り込み、パワー障害と間違えられます。この場合、大電流モードが使用される必要があります。あるいは、一度に切り替えるチャネル数を8個未満に抑えて電流フローの変動が±50mAの最大定格を超えないように保証することによって、ソフトウェアが大電流モードをシミュレートする必要があります。
RTCクリスタルとPCBレイアウト
32KHzウォッチクリスタルは、各種のパッケージタイプとサイズで提供されます。DS28DG02のデータシートに示されたPCBレイアウトは、クリスタルリードの間隔がリードピッチ(TSSOPは0.65mm、TQFNは0.50mm)に適合していることを前提にしています。これは、非常に厳しい間隔であり、このような超小型のクリスタルは容易に提供することはできません。大型クリスタルに対応する場合、PCBレイアウトは、図2のように変更する必要があります。ガードリングとローカルグランドプレーンを維持することは重要です。X1とX2のクリスタルピンからクリスタルパッドへのトレースは、左右対称に保つ必要があります。

図2. 代替PCBレイアウト
クリスタル選択の詳細については、マキシムのアプリケーションノート616「Considerations for Maxim Real-Time Clock Crystal Selection」を参照してください。このドキュメントは、SMDクリスタルに関する技術データやいくつかのベンダのウェブサイトも記載しています。
クロックアラーム
DS28DG02は、RTCアラームを1秒1回~月1回の間隔で発生させることができます。このアラームは、バッテリアラームとウォッチアラームと共有するALMZピンを通じて、信号が送信されます。クロックアラームの前提条件として、RTCが稼働中で、クロックアラームがイネーブル(OSCE = 1、CAE = 1)である必要があります。
一般に、クロックアラームが鳴るには、クロックのステートがアラームレジスタ内の値にマッチングする必要があります。秒、分、時、および曜日/日付という4つのRTCアラームレジスタがあります。AM1~AM4として参照される各アラームレジスタの最上位ビットは、レジスタが比較に関与するかどうかを制御します。133hのアドレスのDY/DTビットは、残りの6ビットがRTCの曜日/日付に比較されるかどうかを指定します。その他のすべての面では、アラームレジスタは、RTCのビット割当てとマッチングします。
アラームの時間と周波数が定義されると、クロックアラームレジスタのデータは、個々のビット(BCDコード)をテンプレートに書き込み、その結果を16進数形式(「Hex」カラム)に変換することによって容易に作成されます。得られた結果データは、SPI書込みシーケンスを通じて、アラームレジスタに書き込まれます。以下の例は、そのプロセスを示しています。ここでの色コードは、上記のPIOセクションで使われたのと同じ割当てを表します。
例1:毎時25分30秒にアラーム
| ADDR |
b7 |
b6 |
b5 |
b4 |
b3 |
b2 |
b1 |
b0 |
|
Hex |
| 130h |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
30 |
| 131h |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
25 |
| 132h |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
80 |
| 133h |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
00 |
注:毎時、毎分、毎秒のアラームの場合、12/24ビット(132hと12Bhのアドレスのビット6)は適用されません。毎分30秒にアラームを鳴らすには、131hのアドレスのビット7を1に変更します。これは、分を比較から排除します。
例2:24時間形式、毎日22時59分59秒にアラーム
| ADDR |
b7 |
b6 |
b5 |
b4 |
b3 |
b2 |
b1 |
b0 |
|
Hex |
| 130h |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
59 |
| 131h |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
59 |
| 132h |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
22 |
| 133h |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
80 |
例3:12時間形式、週の初日の午後6時30分00秒にアラーム
| ADDR |
b7 |
b6 |
b5 |
b4 |
b3 |
b2 |
b1 |
b0 |
|
Hex |
| 130h |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
00 |
| 131h |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
30 |
| 132h |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
66 |
| 133h |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
41 |
注:曜日カウンタは、コード1~7を使用します。カウンタ値の曜日への割当ては任意です。通常、数値1は日曜日(米国標準)または月曜日(欧州標準)に割り当てられます。
ウォッチドッグ
ウォッチドッグは一般に、CPU監視回路を備えています。技術的には、ウォッチドッグは、リトリガ可能なワンショットとして説明することができます。マイクロコントローラは、ウォッチドッグのトリガ入力(WDI)に正パルスを定期的に適用し、不安定な状態におけるワンショットを維持する必要があります。マイクロコントローラがこれを実行することができない場合は、ウォッチドッグがタイムアウトし、マイクロコントローラをリセットします。
DS28DG02のウォッチドッグタイムアウトは、SPIステータスレジスタを通じて、WD1:WD0ビットから選択されます。ウォッチドッグは、レジスタへの書込みアクセスがブロックされていない(RPROT = 0)場合に、134hのアドレスのWDEビットに1を書き込むとアクティブ化されます。ウォッチドッグが鳴ると常に、135アドレスのアラームおよびステータスレジスタのWDAビットが設定されます。クロックアラームおよびバッテリモニタと共有しているWDOZピン(デフォルト)またはALMZピン(代替選択肢)、およびRSTZピンがローに移行します。
バッテリを取り付ける(バッテリ装着)か、またはパワーオン時リセット(バッテリがない場合)を行うと、ウォッチドッグはディセーブル(WDE = 0)になります。WDEビットを1に書き込んでアクティブ化されると、ウォッチドッグは、VCCが切断されてもバッテリバックアップを通じてイネーブルに保たれます。 VCCのランプアップ時やWDEビットの設定後に、ウォッチドッグの内部カウンタがクリアされるため、ウォッチドッグがリトリガされる前に、マイクロコントローラがパワーアップルーチンを完了する時間が提供されます。
アラームへの応答
DS28DG02のアラームおよびステータスレジスタは、135hのアドレスにあり、重要なイベントを示す6ビットを保持します。この重要なイベントが発生すると、マイクロコントローラは、以下に示すような特定のアクションで応答する必要があります。すべてのアラームは、RPROT = 0の場合に、このレジスタに書き込むことによってクリアされます。
| RST: Reset Flag |
このビットは、VCCのランプアップ時、マニュアルリセット時、またはウォッチドッグアラーム時のパワーオンリセットなど、RSTZピンにパルスがあるときに設定されます。マイクロコントローラは、その通常のパワーオンルーチンを実行して応答します。 |
| WDA: Watchdog Alarm |
ウォッチドッグアラームがマイクロコントローラをリセットするため、RSTの場合と同じ応答が適用されます。マイクロコントローラは、ウォッチドッグアラームイベントの数をカウントすることができます。 |
| CLKA: Clock Alarm |
クロックアラームの発生時、マイクロコントローラはアプリケーション固有のアクションで応答します。 |
| BOR: Battery-On Reset Flag |
バッテリが取り付けられると、マルチ関数制御/設定レジスタ、RTC、およびRTCアラームレジスタがクリアされます。これは、ユーザ入力(時刻)とEEPROMに格納されたバックアップ値から、消失した値を復元するための初期化プロシージャの実行を必要とするエラー状態です。ハードウェア書込み保護がアクティブで、RPROT = 1の場合、この機器は、ユーザがハードウェア書込み保護をディセーブルする方法を知らない限り、サービスに返されなければならない場合があります。マイクロコントローラは、WPZVビットを通じてハードウェア書込み保護を監視することができます。 |
| POR: Power-On Reset Flag |
パワーオンリセットは、RSTZピンにパルスを発生させます。マイクロコントローラは、その通常のパワーオンルーチンを実行して応答します。 |
| BATA: Battery Alarm |
このアラームは、バックアップバッテリの寿命が終わりに近づいていることを示します。この状態では、バッテリを交換するようにユーザに警告を出す必要があります。アプリケーションに応じて、バッテリアラームイベントをカウントすることが可能で、特定のカウントに達すると、バッテリが交換されるまで機器の稼働が停止されます。 |
結論
DS28DG02は、メモリ、RTC、PIO、およびCPU監視機能(パワーモニタ、ウォッチドッグなど)が必要なポータブル機器およびその他のアプリケーション用として、非常にフレキシブルで使いやすい部品です。
SPIはMotorola, Inc.の商標です。

| 関連製品 | |
APP 4040: Nov 02, 2007
|
|
|
自動アップデート
お客様が関心のある分野でアプリケーションノートが新規に掲載された際に自動通知Eメールの受信を希望する場合は、EE-Mail™にご登録ください。
フィードバックをお寄せください。 内容に満足されましたか、あるいは満足されていませんか?もっと良いページにできると思いますか?あるいは、単なるコメントでも結構です。フィードバックをお待ちしています。—マキシムはお客様からいただく訂正、提案を元に改善していきます。
このページを評価し、フィードバックを送信する。
|
|
 |
|
 |
|
|