ENGLISH 简体中文 日本語 한국어  


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

DS2422、DS1923、DS1922L、およびDS1922Tにおけるデータロガーの起動遅延の問題

要約:8kBのThermochron®とHygrochron™のチップからなるデータロガーファミリには、最初のミッションサンプルが最大1サンプル期間遅延するという設計上の欠陥があります。このアプリケーションノートでは、この問題について説明し、顧客が自分のアプリケーションにおける遅延の特性を明確にすることができるようにしています。また、ワーストケースの遅延を低減するのに役立つ回避策について説明します。

最新情報:データロガーの起動遅延の問題の原因は、Design Engineeringで認識され修復されており、次回のDS1922L/T、DS1923、およびDS2422のRevision (改訂版) B1に取り込まれる予定です。Revision B1製品のシリアル番号は005A900h~005C09Fhおよび0064200h以上となります。

8kBのThermochronとHygrochronのチップからなるデータロガーファミリには、最初のミッションサンプルが1サンプル期間だけ遅延するという設計上の欠陥があります。これには、温度データロガー(DS1922LおよびDS1922T)、湿度/温度データロガー(DS1923)、およびスタンドアロンのチップデータロガー(DS2422)があります。この問題の影響を調べるには、2つのケースを検討する必要があります。1つ目のケースは、現在のミッションが停止し、新たなミッションがその使用中に定期的に開始されるようなアプリケーションでデータロガーが使われるケースです。このケースでは、新しいミッションが開始されるたびに最初のサンプルが1サンプル期間だけ遅延する可能性があります。たとえば、1:00に再開されるミッションを備えた10分のサンプルレートを使用する場合、最初のサンプルは、1:00と1:10の間のいずれかの時点で記録される可能性があるということです。その後の各サンプルは、規則的な10分レートで記録されることになります。

2つ目に考慮すべきケースは、サンプルレートと「高速サンプリングのイネーブル」ビットに異なる値を用いて試作作業(プロトタイピング)と検証作業を行うときです。このケースでの影響は、はるかに大きな遅延となって現れる可能性がありますが、遅延は予測が可能で、また容易に短くすることができます。この場合、新しいミッションが開始された後、デバイスは最初のサンプルを記録し(たとえば、ミッションのタイムスタンプを記録する)、内部で「サンプルレート」レジスタの値をカウントダウンレジスタにコピーします。このカウントがゼロに達すると、次のサンプルが取り上げられます。Clear Memoryコマンドを使えば、この内部レジスタを消去してゼロにできたはずですが、それを実行していないために今回の欠陥が生じています。ミッションが停止されると、カウントダウンは、0とサンプルレート値の間のある任意の値で一時停止します。つまり、次の新しいミッションが開始されたときに、最初のサンプルを直ちに取り上げるのではなく、この内部カウントダウンレジスタで、停止した前のカウントダウンを終了する必要があるということです。

回避策

高速サンプリング(EHSS = 1)を使用するときには、この問題は気付かれることはほとんどありません。新しいミッションを10秒間隔で停止および開始するときには、新しいミッションが開始されるまでの間隔は10秒です。遅延が非常に顕著になる真の問題が発生するのは、間隔が10秒から1分に切り替わったときです。このケースでは、内部カウントダウンレジスタは0~10の間の値を持ちますが、現時点では秒ではなくて分単位でカウントを行っているため、遅延は最初のサンプルで10分になり、その後の各サンプルで1分になる可能性があります。

分の分解能を使用するときにミッションの開始時刻が遅延するデータロガーのための最適な回避策は、ミッションを停止し、分解能が「1秒」(EHSS = 1、SR = 1)の新しいミッションを開始することです。この新しいミッションが開始された後、これを停止し、希望のミッションパラメータを含んだ新しいミッションを開始します。これによってミッションが開始されるまでの遅延が大幅に低減されます(そのパートの継続期間は低減されません。内部カウントダウンレジスタが終了しても、その期間中にサンプルが取り上げられることはないからです)。この実装方法の例については、リスト1の疑似コードを参照してください。

分解能を変更して最初のサンプルを加速

リスト1

# Start by initializing the datalogger with the desired mission parameters.
# For this example, the sample rate is 60 minutes, with no start delay
SET_SAMPLE_RATE( 60 );
SET_EHSS( 0 ); # Disable high-speed sampling

SET_START_DELAY( 0 );
SET_TEMPERATURE_SAMPLING( 0.0625C ); # enable sampling in desired resolution

# Initialize and start the Real-time clock
SET_RTC( CurrentTimeAndDate );

START_MISSION();

# Since resolution is minutes, first sample will only be taken on RTC’s
# minute boundary, so delay to give the device time to take the sample
DELAY_ONE_MINUTE();

# Check to make sure the Mission Sample Count register is a non-zero value
If ( GET_MISSION_SAMPLE_COUNT() == 0 ) Then

   # Mission did not begin right away, so a 1 second mission will be
   # used to clear the internal counter of the device
   STOP_MISSION();

   SET_SAMPLE_RATE( 1 );
   SET_EHSS( 1 ); # Enable high-speed sampling

   START_MISSION();

   # Now counter is counting down in 1 second increments instead of
   # 1 minute increments.  Wait for first sample to be recorded.
   While( GET_MISSION_SAMPLE_COUNT() == 0 )
      DELAY_ONE_MINUTE();
   EndWhile;

   # Mission sample has been recorded and the internal countdown register
   # contains a value of either 1 or 0.  Reset the original parameters.
   STOP_MISSION();

   SET_SAMPLE_RATE( 60 );
   SET_EHSS( 0 ); # Disable high-speed sampling

   START_MISSION();

   # Mission will now start in less than 2 minutes reliably.  The time could be
   # 2 minutes because there is up to one minute of delay if the RTC is not 
   # near the minute boundary and up to one minute of delay from the internal
   # counter.  Delay 2 minutes and double-check, for sanity’s sake.
   DELAY_ONE_MINUTE();
   DELAY_ONE_MINUTE();

   If ( GET_MISSION_SAMPLE_COUNT == 0 ) THEN
      SEVERE_ERROR(); # There is another unrelated failure with this device
   EndIf

EndIf;

ミッションの停止と新しいミッションの開始が頻繁に行われる場合、ミッションを一時停止(あるいはミッションとRTCをほぼ同じ時刻に一時停止)した直後にRTCを読み取れば、最後に記録したサンプルのタイムスタンプとRTCの現在値との間の時間を測定することで、システムは内部カウントダウンレジスタの値を非常に正確に予測することができます。この方法によると、あらかじめ決められた時刻にミッションを開始できるようにするために必要な遅延の分数/秒数を計算することができます。この問題は、たいていのアプリケーションには影響しないと思われるため(ミッションの停止、ミッションパラメータの変更、および新しいミッションの開始は、試作作業で行われることが多いと思われます)、試作作業は、より小さな値とEHSS = 1を用いて行うことを推奨します。数分のような長いサンプルレートが必要な場合は、十分に注意して進めること、またRTCを使用してこの隠された内部レジスタの値を予測することをお勧めします。


フィードバックをお寄せください。
内容に満足されましたか、あるいは満足されていませんか?もっと良いページにできると思いますか?あるいは、単なるコメントでも結構です。フィードバックをお待ちしています。—マキシムはお客様からいただく訂正、提案を元に改善していきます。 このページを評価し、フィードバックを送信する。


自動アップデート
お客様が関心のある分野でアプリケーションノートが新規に掲載された際に自動通知Eメールの受信を希望する場合は、EE-Mail™にご登録ください。



その他の情報  APP 3429: May 13, 2005
DS1922L 8kBデータログメモリ付き、温度ロガーiButton フルデータシート
(PDF, 676kB)
DS1922T 8kBデータログメモリ付き、温度ロガーiButton フルデータシート
(PDF, 676kB)
DS1923 8kBデータログメモリ付き、Hygrochron温度/湿度ロガーiButton フルデータシート
(PDF, 448kB)
DS2422 8kBデータログメモリ付き、1-Wire®温度/データロガー フルデータシート
(PDF, 456kB)
 

ダウンロード、PDFフォーマットダウンロード、PDFフォーマット (22kB)
 AN3429, AN 3429, APP3429, Appnote3429, Appnote 3429



         


      プライバシーポリシー    法的お知らせ

      Copyright © 2008 by Maxim Integrated Products, Dallas Semiconductor