개요: 8kB Thermochron®과 Hygrochron™ 데이터로거 칩 제품군은 첫번째 미션 샘플을 하나의 샘플 간격 만큼 지연시키는 설계 결함을 가지고 있다. 이에 따라 본 애플리케이션 노트에서는 고객이 애플리케이션 특성에 맞춰 지연을 조정할 수 있도록 지연 문제를 설명한다. 또한 최악의 경우에 대비한 지연을 감소시키는데 도움이 될 수 있는 해결 방안도 제공된다.
업데이트: 데이터로거의 스타트 지연 문제의 원인을 인식하고 설계 엔지니어링으로 이를 해결했다. 이는 곧 출시되는 DS1922L/T, DS1923, DS2422 Revision B1에 적용될 것이다. Revision B1 부품은 005A900h ~ 005C09Fh, 0064200h나 이보다 높은 일련번호를 갖는다.
데이터로거 제품군의 8kB Thermochron 및 Hygrochron 칩에는 첫번째 미션 샘플을 하나의 샘플 간격 만큼 지연시키는 설계 결함이 내재되어 있다. 여기에는 온도 데이터로거 (DS1922L 및 DS1922T), 습도/온도 데이터로거 (DS1923), 독립형 칩 데이터로거 (DS2422)가 포함된다. 이와 같은 문제의 영향을 검토하는데 있어 우선 두 가지 경우를 고려해야 한다. 첫 번째는 애플리케이션의 데이터로거로서, 데이터로거를 사용하는 동안 현재 미션을 중단하고 정기적으로 새 미션을 시작하는 경우이다. 이 경우, 새 미션을 시작할 때마다 첫 번째 샘플은 샘플 하나의 간격 만큼 지연될 수 있다. 예를 들어, 1:00시에 재시작되는 미션에서 10분 샘플 레이트를 사용한다면, 첫 번째 샘플은 1:00시와 1:10시 사이의 임의 지점에서 기록될 수 있다. 이후 모든 샘플은 10분 간격으로 정기적으로 기록될 것이다.
고려해야 할 두 번째 경우는 샘플 레이트와 "고속 샘플링 이네이블" 비트에 대한 다양한 값을 사용하여 시제품을 제작하고 실험하는 경우이다. 이 경우 미치는 영향은 훨씬 더 큰 지연이 될 수 있지만, 지연은 예측 가능하며 쉽게 단축시킬 수 있다. 이와 같은 경우에는 다음과 같이 진행된다. 새 미션이 시작되면, 장치는 첫 번째 샘플을 기록하며 (미션 타임스탬프 등 기록), 내부적으로 샘플 레이트 레지스터 값을 카운트다운 레지스터에 복사한다. 이 카운트가 제로 (0)에 도달하면, 다음 샘플이 진행된다. 원래 메모리 소거 명령은 내부 레지스터의 내용을 소거하여 제로가 되도록 하는 것이지만, 실제로 소거가 발생하지 않으며, 이것이 결함의 원인이다. 미션을 중지하면 카운트다운은 0과 샘플 레이트 값 사이의 임의 값에서 중단된다. 이것은 새로운 다른 미션을 시작할 경우, 곧바로 맨 처음 샘플에서 시작하는 대신, 이 내부 카운트다운 레지스터가 이전에 중단되었던 카운트다운을 끝까지 완료해야 한다는 것을 의미한다.
해결 방안
고속 샘플링 (EHSS=1)을 사용할 경우 이 문제는 거의 눈에 띄지 않는다. 10초 간격으로 새로운 미션을 중지하고 시작할 경우, 새 미션이 시작되는데 10초 만큼 소요될 수 있다. 진정한 문제는 10초 간격에서 1분 간격으로 전환하는 경우 지연이 현저히 주목할 만한 수준이 되면서 발생한다. 이 경우 내부 카운트다운 레지스터는 0과 10 사이의 값을 갖지만, 이때 초 단위가 아닌 분 단위로 카운트다운을 한다. 따라서 첫 번째 샘플에 대한 지연은 무려 10분이 될 수 있다. 이후의 샘플은 1분 간격으로 진행된다.
분 단위 분해능 사용으로 인한 미션 시작 시간이 지연되는 데이터로거의 문제를 해결하는 가장 좋은 방안은 "1초" 분해능(ESHH=1, SR=1)을 사용하여 새로운 미션을 중지하고 시작하는 것이다. 새로운 미션을 시작한 후에, 새 미션을 중지하고 원하는 미션 파라미터를 포함한 새로운 미션을 시작한다. 이렇게 하면 미션 시작 전의 지연을 현저히 감소시킬 수 있으며, 동시에 내부 카운트다운 레지스터가 완료되는 동안 해당 간격 동안 어떤 샘플도 진행되지 않으므로 부품의 수명시간도 감소되지 않는다. 리스팅 1의 슈도 코드(pseudo code)에서 구현 방법의 예를 볼 수 있다.
첫 번째 샘플 속도를 향상시키는 분해능 변경 방법 리스팅 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를 중단한다면) 시스템이 마지막으로 기록된 샘플의 타임스탬프(timestamp)와 RTC의 현재 값 사이의 시간을 측정하여 매우 정확히 내부 카운트다운 레지스터의 값을 예측할 수 있다. 이와 같은 방법을 이용하면 미리 결정된 시간에 미션을 시작하는데 필요한 지연의 분/초 시간을 계산하는 것도 가능하다. 이 문제는 대부분의 애플리케이션에 영향을 미치지 않는다고 보여지므로 (미션 중지, 미션 파라미터 변경, 새로운 미션 시작은 주로 시제품 제작 과정에서 발생할 가능성이 훨씬 높다), 더 작은 값과 EHSS=1을 사용하여 시제품을 제작하도록 권한다. 분 단위의 차수와 같은 더 긴 샘플 레이트가 필요한 경우 주의깊게 RTC를 사용하여 이러한 숨겨진 내부 레지스터의 값을 예측하도록 한다.
의견을 보내주세요! 위 내용이 도움이 되셨나요? 여러분의 의견을 기다립니다 — Maxim은 보내주신 정정이나 제안사항을 반영하고 있습니다.
이 페이지를 평가하고 의견을 보내주십시오.
자동 업데이트
관심있는 분야의 애플리케이션 노트가 나올 때 자동으로 업데이트 받고 싶으세요? 그렇다면 EE-Mail™을 신청하십시오.
| 추가 정보 | |
APP 3429: Apr 05, 2005
|
|
|
|
다운로드, PDF 형식 (22kB)
AN3429,
AN 3429,
APP3429,
Appnote3429,
Appnote 3429
|
|