본문 바로가기
아날로그회로(Analog Circuit)/ADC관련

[ZSSC3241] 보정식 상세 분석

by linuxgo 2025. 8. 9.
반응형

 

 

 

ZSSC3241 데이터시트에서 제공하는 보정 공식은 센서 신호 보정을 위한 Sensor Signal Conditioning (SSC) 공식으로, 센서 신호(S)와 온도 신호(T)를 보정하여 정확한 출력을 제공합니다. 이 공식은 비선형성과 온도 영향을 보상하며, 두 가지 SOT_curve 설정(Parabolic 또는 S-shaped)에 따라 다른 계산 방식을 사용합니다. 


1. 보정 공식 개요

ZSSC3241은 센서의 원시 데이터(S_Raw)와 온도 데이터(T_Raw)를 사용하여 보정된 센서 출력(S)와 온도 출력(T)을 계산합니다. 보정 공식은 다음 요소를 포함합니다:

  • 선형 보정: Gain(이득)과 Offset(오프셋) 계수를 사용하여 선형 보정을 수행.
  • 2차 비선형 보정: SOT(S second-Order Term) 계수를 사용하여 센서 및 온도 신호의 비선형성을 보상.
  • 온도 보상: 온도 계수(Tcg, Tco)를 사용하여 온도에 따른 센서 신호 변화를 보정.
  • 포스트 보정 오프셋: SENS_shift와 T_shift를 사용하여 최종 출력에 추가적인 오프셋 조정을 적용.

보정 공식은 데이터시트의 6.6.3.2절(Digital Sensor-Signal-Conditioning Mathematics)에 정의되어 있으며, Equation 6~22에 상세히 설명됩니다. 공식은 SOT_curve 설정에 따라 Parabolic(SOT_curve = 0) 또는 S-shaped(SOT_curve = 1)로 나뉩니다.


2. 보정 공식의 주요 변수

데이터시트의 Table 36Table 37은 보정 공식에 사용되는 계수와 결과의 데이터 형식을 정의합니다. 주요 변수는 다음과 같습니다:

입력 데이터

  • S_Raw: ADC에서 얻은 원시 센서 신호(24비트, 범위: -7FFFFFHEX ~ 7FFFFFHEX).
  • T_Raw: ADC에서 얻은 원시 온도 신호(24비트, 범위: -7FFFFFHEX ~ 7FFFFFHEX).
    • 둘 다 Auto-Zero(AZ) 보정이 적용될 수 있음: \( S_{\text{Raw}} = 0.5 \cdot (SM - AZS) \), \( T_{\text{Raw}} = 0.5 \cdot (TM - AZT) \).

보정 계수

  • Gain_S: 센서 이득 계수(24비트, 범위: -7FFFFFHEX ~ 7FFFFFHEX).
  • Offset_S: 센서 오프셋 계수(24비트, 범위: -7FFFFFHEX ~ 7FFFFFHEX).
  • Tcg: 온도 계수 이득(Temperature Coefficient Gain, 24비트, 범위: -7FFFFFHEX ~ 7FFFFFHEX).
  • Tco: 온도 계수 오프셋(Temperature Coefficient Offset, 24비트, 범위: -7FFFFFHEX ~ 7FFFFFHEX).
  • SOT_tcg: Tcg의 2차 비선형 보정 계수(24비트, 범위: -7FFFFFHEX ~ 7FFFFFHEX).
  • SOT_tco: Tco의 2차 비선형 보정 계수(24비트, 범위: -7FFFFFHEX ~ 7FFFFFHEX).
  • SOT_sens: 센서 신호의 2차 비선형 보정 계수(24비트, 범위: -7FFFFFHEX ~ 7FFFFFHEX).
  • SENS_shift: 포스트 보정 센서 오프셋 조정(24비트, 범위: -7FFFFFHEX ~ 7FFFFFHEX).
  • Gain_T: 온도 이득 계수(24비트, 범위: -7FFFFFHEX ~ 7FFFFFHEX).
  • Offset_T: 온도 오프셋 계수(24비트, 범위: -7FFFFFHEX ~ 7FFFFFHEX).
  • SOT_T: 온도 신호의 2차 비선형 보정 계수(24비트, 범위: -7FFFFFHEX ~ 7FFFFFHEX).
  • T_shift: 포스트 보정 온도 오프셋 조정(24비트, 범위: -7FFFFFHEX ~ 7FFFFFHEX).

출력 데이터

  • S: 보정된 센서 출력(24비트, 범위: 0HEX ~ FFFFFFHEX).
  • T: 보정된 온도 출력(24비트, 범위: 0HEX ~ FFFFFFHEX).

데이터 형식

Table 36 (24-bit SSC Coefficients): 계수는 24비트로 표현되며, 비트 23은 부호 비트, 비트 22~0은 절대값을 나타냄.

Bit-Number: 23 | 22 | 21 | 20 | ... | 2 | 1 | 0
Meaning: Sign | 2^22 | 2^21 | 2^20 | ... | 2^2 | 2^1 | 2^0
    

Table 37 (Corrected SSC Results): 출력 S와 T는 24비트 양수로, 범위는 0HEX ~ FFFFFFHEX.

Bit-Number: 23 | 22 | 21 | 20 | ... | 2 | 1 | 0
Meaning: 2^23 | 2^22 | 2^21 | 2^20 | ... | 2^2 | 2^1 | 2^0
    

3. 보정 공식 상세 설명

3.1 온도 보정 공식 (T 계산)

온도 출력 T는 원시 온도 데이터 T_Raw를 사용하여 다음과 같이 계산됩니다. 이 공식은 모든 SOT_curve 설정에서 동일합니다.

Equation 21:

\[ Z_T = \left[ \left[ \frac{\text{Gain_T}}{2^{21}} \cdot \left( T_{\text{Raw}} + 4 \cdot \text{Offset_T} \right) \right]_{2^{25}}^{2^{25}-1} \right]_0^{2^{25}-1} \]

Equation 22:

\[ T = \left[ \left[ \frac{Z_T}{2^{23}} \cdot \left[ \left[ \frac{\text{SOT_T}}{2^{24}} \cdot Z_T \right]_{2^{25}}^{2^{25}-1} + 2^{23} \right]_{2^{24}}^{2^{25}-1} \right]_{2^{24}}^{2^{25}-1} + \text{T_shift} \right]_0^{2^{24}-1} \]

단계 설명

  1. 선형 보정: T_Raw에 4배의 Offset_T를 더한 후, Gain_T를 221로 나눠 곱하여 선형 보정을 수행. 결과는 Z_T로, 0 ~ 225-1 범위로 제한.
  2. 2차 비선형 보정: Z_T에 SOT_T를 적용하여 2차 항을 추가. SOT_T는 224로 나누어 스케일링.
  3. 최종 조정: Z_T를 223으로 나누고, 2차 항 결과를 더한 후 T_shift를 적용. 결과는 0 ~ 224-1 범위로 제한.

용도: 이 공식은 내부 또는 외부 온도 센서 데이터를 보정하여 정확한 온도 값 T를 출력.

3.2 센서 보정 공식 (S 계산)

센서 출력 S는 SOT_curve 설정에 따라 두 가지 방식으로 계산됩니다.

3.2.1 Parabolic Curve (SOT_curve = 0)

Equation 6:

\[ K_1 = \left[ 4 \cdot \text{Gain_S} + \left[ \frac{\text{S_Raw}}{2^{23}} \cdot \left[ \frac{\text{SOT_tcg}}{2^{21}} \cdot T_{\text{Raw}} \right]_{2^{25}}^{2^{25}-1} \cdot \text{Tcg} \right]_{2^{25}}^{2^{25}-1} \right]_{2^{25}}^{2^{25}-1} \]

Equation 7:

\[ K_2 = \left[ 4 \cdot \text{Offset_S} + \left[ S_{\text{Raw}} + \left[ \frac{T_{\text{Raw}}}{2^{23}} \cdot \left[ \frac{\text{SOT_tco}}{2^{21}} \cdot T_{\text{Raw}} \right]_{2^{25}}^{2^{25}-1} \cdot \text{Tco} \right]_{2^{25}}^{2^{25}-1} \right]_{2^{25}}^{2^{25}-1} \right]_{2^{25}}^{2^{25}-1} \]

Equation 8:

\[ Z_{SP} = \left[ \left[ \frac{\text{Gain_S}}{2^{21}} \cdot \left[ \frac{K_1}{2^{23}} \cdot K_2 \right]_{2^{25}}^{2^{25}-1} \right]_{2^{25}}^{2^{25}-1} \right]_{2^{25}}^{2^{25}-1} \]

Equation 9:

\[ S = \left[ \left[ \frac{Z_{SP}}{2^{23}} \cdot \left[ \frac{\text{SOT_sens}}{2^{21}} \cdot Z_{SP} \right]_{2^{25}}^{2^{25}-1} + 2^{23} \right]_{2^{25}}^{2^{25}-1} + \text{SENS_shift} \right]_0^{2^{24}-1} \]

단계 설명

  1. K_1 계산 (이득 보정): Gain_S를 4배로 스케일링. T_Raw를 사용하여 SOT_tcg와 Tcg로 온도 의존적 이득 변화를 보정. 결과는 225-1로 제한.
  2. K_2 계산 (오프셋 보정): Offset_S를 4배로 스케일링. S_Raw와 T_Raw를 사용하여 SOT_tco와 Tco로 온도 의존적 오프셋 변화를 보정. 결과는 225-1로 제한.
  3. Z_SP 계산: K_1과 K_2를 곱하고, Gain_S를 221로 나눠 추가 이득을 적용. 결과는 225-1로 제한.
  4. S 계산: Z_SP에 SOT_sens를 적용하여 2차 비선형 보정을 수행. SENS_shift를 더해 최종 오프셋 조정. 결과는 0 ~ 224-1로 제한.

3.2.2 S-shaped Curve (SOT_curve = 1)

Equation 15 (간소화):

\[ Z_{SS} = \frac{4 \cdot \text{Gain_S}}{2^{21}} \cdot \frac{K_1}{2^{23}} \cdot K_2 \]

(K_1과 K_2는 Equation 6, 7과 동일)

Equation 16:

\[ S = \frac{Z_{SS}}{2^{23}} \cdot \left( \frac{4 \cdot \text{SOT_sens}}{2^{23}} \cdot |Z_{SS}| + 2^{23} \right) + 2^{23} + \text{SENS_shift} \]

(결과는 양수 범위로 제한)

Equation 17~20 (완전 공식):

\[ K_1 = \left[ 4 \cdot \text{Gain_S} + \left[ \frac{S_{\text{Raw}}}{2^{23}} \cdot \left[ \frac{\text{SOT_tcg}}{2^{21}} \cdot T_{\text{Raw}} \right]_{2^{25}}^{2^{25}-1} \cdot \text{Tcg} \right]_{2^{25}}^{2^{25}-1} \right]_{2^{25}}^{2^{25}-1} \] \[ K_2 = \left[ 4 \cdot \text{Offset_S} + \left[ S_{\text{Raw}} + \left[ \frac{T_{\text{Raw}}}{2^{23}} \cdot \left[ \frac{\text{SOT_tco}}{2^{21}} \cdot T_{\text{Raw}} \right]_{2^{25}}^{2^{25}-1} \cdot \text{Tco} \right]_{2^{25}}^{2^{25}-1} \right]_{2^{25}}^{2^{25}-1} \right]_{2^{25}}^{2^{25}-1} \] \[ Z_{SS} = \left[ \left[ \frac{4 \cdot \text{Gain_S}}{2^{21}} \cdot \left[ \frac{K_1}{2^{23}} \cdot K_2 \right]_{2^{25}}^{2^{25}-1} \right]_{2^{25}}^{2^{25}-1} \right]_{2^{25}}^{2^{25}-1} \] \[ S = \left[ \left[ \frac{Z_{SS}}{2^{23}} \cdot \left[ \frac{4 \cdot \text{SOT_sens}}{2^{23}} \cdot |Z_{SS}| + 2^{23} \right]_{2^{25}}^{2^{25}-1} + 2^{23} \right]_{2^{25}}^{2^{25}-1} + \text{SENS_shift} \right]_0^{2^{24}-1} \]

단계 설명

  1. K_1, K_2 계산: Parabolic과 동일.
  2. Z_SS 계산: K_1과 K_2를 곱하고, 4배의 Gain_S를 221로 나눠 적용.
  3. S 계산: Z_SS의 절대값에 SOT_sens를 적용하여 S-shaped 비선형 보정을 수행. SENS_shift를 더하고, 결과를 양수 범위로 제한.

Parabolic vs S-shaped 차이점

  • Parabolic: 2차 항이 포물선 형태로 보정(SOT_sens가 Z_SP의 제곱에 비례).
  • S-shaped: 2차 항이 S자 형태로 보정(SOT_sens가 Z_SS의 절대값에 비례).

4. DAC 보정 공식

ZSSC3241은 아날로그 출력(DAC)을 위한 별도의 보정 공식을 제공합니다. 이는 6.6.3.3절(Separate Correction of the Digital-to-Analog Converter Characteristic)에 설명되어 있습니다.

Equation 25:

\[ \text{DAC_IN} = \left[ \text{S} \text{ or } \text{T} \right]_0^{2^{16}-1} \]

Equation 26:

\[ \text{DAC_OUT} = \left[ \left[ \frac{\text{Gain_DAC}}{2^{16}} \cdot \text{DAC_IN} \right] + 2 \cdot \text{Offset_DAC} + 2^{18} \right]_0^{2^{18}-1} \]

변수

  • DAC_IN: 입력값(S 또는 T, 16비트로 제한).
  • Gain_DAC: DAC 이득 보정 계수(NVM 주소 2AHEX).
  • Offset_DAC: DAC 오프셋 보정 계수(NVM 주소 2BHEX).
  • DAC_OUT: 보정된 DAC 출력(18비트, 0 ~ 218-1).

설명

  • DAC_IN은 S 또는 T를 16비트로 클리핑한 값.
  • Gain_DAC를 216으로 나눠 이득을 조정하고, 2배의 Offset_DAC와 218을 더해 오프셋을 보정.
  • 결과는 0 ~ 218-1로 제한.
  • 이 보정은 제조 공정 변동으로 인한 DAC의 오프셋 및 이득 편차를 보상.

예외

  • DAC 진단 명령(B3HEX) 사용 시 보정 적용 안 됨.
  • 진단 이벤트(diagouten 활성화 및 센서 연결 오류 등) 발생 시 보정 적용 안 됨.
  • DAC 클리핑 활성화 시 보정 적용 안 됨.

5. 보정 공식 적용 시 고려사항

  • NVM 설정:
    • 보정 계수는 NVM에 저장(NVM 주소 05HEX ~ 2BHEX, Table 35 참조).
    • 예: Gain_S는 05HEX, 06HEX에, SOT_sens는 0EHEX, 0FHEX에 저장.
    • SOT_curve는 SSF2 레지스터(04HEX, 비트 15)에 설정.
  • 오토 제로(AZ):
    • AZ 활성화 시(S_Raw = 0.5 * (SM - AZS), T_Raw = 0.5 * (TM - AZT)) 신호-노이즈 비율이 개선되지만, 업데이트 속도가 약 50% 느려짐.
    • AZ 설정은 SSF2 레지스터(AZMs_on, AZMt_on 비트)에서 제어.
  • 오버플로우/언더플로우:
    • 계산 중간 결과는 지정된 비트 범위(225-1 등)로 제한.
    • 최종 출력 S, T는 0 ~ 224-1로 제한되며, 오버플로우/언더플로우는 상태 바이트에 포화(Saturation)로 보고됨.
  • 캘리브레이션:
    • 캘리브레이션은 다양한 센서 값과 온도에서 원시 데이터를 수집하고, 이를 기반으로 계수를 계산하여 NVM에 저장(7절, Calibration).
    • 고유 ID를 NVM에 작성하여 각 ZSSC3241을 식별.

6. 결론

ZSSC3241의 보정 공식은 센서 및 온도 신호의 선형 및 비선형 보정, 온도 보상을 통해 고정밀 출력을 제공합니다. Parabolic 또는 S-shaped SOT_curve 설정을 선택하여 센서 특성에 맞는 보정을 수행할 수 있으며, DAC 보정을 통해 아날로그 출력도 최적화되며 모든 계수는 NVM에 저장되며, Auto-Zero 및 기타 설정을 통해 신호 품질과 업데이트 속도를 조정할 수 있습니다. 

반응형