ZSSC3241 데이터시트에 따르면, 보정 공식 계수(Gain_S, Offset_S, Tcg, Tco, SOT_sens, SOT_tcg, SOT_tco, SOT_T, SENS_shift, T_shift 등)를 구하는 과정은 캘리브레이션 절차를 통해 수행됩니다 이 과정은 다양한 센서 입력과 온도 조건에서 원시 데이터(S_Raw, T_Raw)를 수집한 후, 이를 바탕으로 보정 계수를 계산하여 NVM(Non-Volatile Memory)에 저장하는 방식입니다 데이터시트의 7절(Calibration)과 6.6.3.2절(Digital Sensor-Signal-Conditioning Mathematics)에 설명된 내용을 기반으로, 아래에서 계수 계산 방법을 단계별로 설명합니다
1. 보정 계수 계산의 개요 (Overview of Coefficient Calculation)
ZSSC3241의 보정 공식은 선형 및 2차 비선형 보정, 온도 보상을 수행하며, 이를 위해 다음 계수들이 필요합니다
- Gain_S, Offset_S: 센서 신호의 선형 이득 및 오프셋 보정
- Tcg, Tco: 온도에 따른 이득 및 오프셋 보정
- SOT_sens, SOT_tcg, SOT_tco: 센서 및 온도 보정의 2차 비선형 계수
- SOT_T: 온도 신호의 2차 비선형 보정
- SENS_shift, T_shift: 최종 출력에 대한 추가 오프셋 조정
- Gain_DAC, Offset_DAC: DAC 출력 보정(아날로그 출력 사용 시)
이 계수들은 센서 특성(예: 압력, 힘, 저항 브리지 등)과 온도에 따른 원시 데이터(S_Raw, T_Raw)를 수집하여 수학적 피팅(예: 최소 제곱법)을 통해 계산됩니다 캘리브레이션 과정은 다음과 같은 단계로 진행됩니다
- 원시 데이터 수집
- 목표 출력 설정
- 보정 공식에 기반한 계수 계산
- 계산된 계수를 NVM에 저장
2. 캘리브레이션 절차 (Calibration Procedure)
데이터시트의 7절(Calibration)에 따르면, 계수 계산은 다음과 같은 절차로 이루어집니다
2.1. 고유 ID 할당 (Unique ID Assignment)
각 ZSSC3241 칩에 고유 식별자를 NVM에 저장하여 캘리브레이션 데이터를 추적합니다 이는 필수 단계는 아니지만, 대량 생산 시 디바이스 식별을 위해 유용합니다
2.2. 원시 데이터 수집 (Raw Data Collection)
목표 (Objective): 다양한 센서 입력(예: 압력, 힘, 저항)과 온도 조건에서 원시 데이터(S_Raw, T_Raw)를 수집합니다
방법 (Method):
- 센서 입력 (Sensor Input): 센서 특성에 따라 여러 지점에서 S_Raw를 측정합니다
- 예: 압력 센서의 경우 0%, 50%, 100% 압력
- 온도 (Temperature): 온도 범위(예: -40°C, 25°C, 125°C)에서 T_Raw를 측정합니다
- 포인트 수 (Number of Points): 최소 3×3 = 9 포인트(3개의 센서 입력 × 3개의 온도 지점). 더 높은 정확도를 위해 5×5 = 25 포인트 또는 7×7 = 49 포인트를 추천합니다
- Auto-Zero (AZ): AZ 활성화 시(AZMs_on, AZMt_on 설정), S_Raw = 0.5 * (SM - AZS), T_Raw = 0.5 * (TM - AZT)를 사용하여 노이즈를 줄입니다. AZ 데이터도 함께 수집합니다
- 명령어 (Commands): 데이터시트의 6.4절(Table 22)에 정의된 Measure 명령(80HEX~AFHEX)을 사용하여 S_Raw와 T_Raw를 수집합니다. 예를 들어, Oversample-x 명령(ACHEX~AFHEX)을 사용해 평균화된 데이터를 얻을 수 있습니다
예시 (Example):
- 압력 센서: 0 kPa, 50 kPa, 100 kPa에서 S_Raw 측정
- 온도: -40°C, 25°C, 125°C에서 T_Raw 측정
- 결과: 9개의 데이터 포인트(S_Raw, T_Raw 쌍)
2.3. 목표 출력 설정 (Target Output Setting)
센서 출력(S) (Sensor Output (S)): 보정된 출력 S는 일반적으로 0HEX ~ FFFFFFHEX (24비트 양수) 범위로 매핑됩니다.
예를 들어, 압력 센서의 경우 0 kPa → 0HEX, 100 kPa → FFFFFFHEX로 선형 매핑합니다
온도 출력(T) (Temperature Output (T)): 보정된 온도 T도 0HEX ~ FFFFFFHEX 범위로 매핑됩니다.
예: -40°C → 0HEX, 125°C → FFFFFFHEX
목표 값 (Target Values): 각 측정 포인트에 대해 원하는 출력 값(Target S, Target T)을 정의합니다. 이는 애플리케이션 요구사항에 따라 설정됩니다
2.4. 계수 계산 (Coefficient Calculation)
방법 (Method): 수집된 원시 데이터(S_Raw, T_Raw)와 목표 출력(Target S, Target T)을 사용하여 보정 공식에 기반한 계수를 계산합니다
보정 공식 (Calibration Formulas): Equation 6~22 (6.6.3.2절)에 정의된 공식을 사용합니다 .
온도 보정(T)
Equation 21~22:
센서 보정(S, Parabolic, SOT_curve = 0)
Equation 6~9:
센서 보정(S, S-shaped, SOT_curve = 1)
Equation 15~20:
계수 계산 방법 (Coefficient Calculation Methods):
- 선형 보정 계수(Gain_S, Offset_S, Gain_T, Offset_T): 최소 2개의 S_Raw와 T_Raw 데이터 포인트를 사용하여 선형 방정식을 해결합니다 .
- 예: \( S = \text{Gain}_S \cdot S_{\text{Raw}} + \text{Offset}_S \)를 두 지점에 대해 풀어 Gain_S와 Offset_S를 계산합니다 .
- 2차 비선형 계수(SOT_sens, SOT_tcg, SOT_tco, SOT_T) : 최소 3개의 데이터 포인트를 사용하여 2차 다항식 피팅(예: \( y = ax^2 + bx + c \))을 수행합니다
- 예: SOT_sens는 \( S = a \cdot Z_{SP}^2 + b \cdot Z_{SP} + c \) 형태로 피팅합니다
- 온도 보상 계수(Tcg, Tco) : 온도에 따른 S_Raw 변화를 분석하여 Tcg와 Tco를 계산합니다 .
- 예: Tcg는 온도 변화에 따른 이득 변화를, Tco는 온도 변화에 따른 오프셋 변화를 모델링합니다
- 최소 제곱법(Least Squares): 다중 데이터 포인트(예: 9~49 포인트)를 사용하여 최소 제곱법으로 계수를 최적화합니다 . 수학적 솔버(예: MATLAB, Python의 scipy.optimize, 또는 전용 캘리브레이션 소프트웨어)를 사용합니다
- SENS_shift, T_shift: 최종 출력 S와 T를 목표 값에 맞추기 위해 추가 오프셋을 계산합니다
- 예: \( S_{\text{target}} - S_{\text{calculated}} = \text{SENS_shift} \)
소프트웨어 지원: Renesas(구 IDT)에서 제공하는 ZSSC3241 평가 키트 및 소프트웨어(예: SSC Evaluation Software)를 사용하여 원시 데이터를 수집하고 계수를 자동 계산할 수 있습니다 또는 사용자 정의 스크립트를 작성하여 데이터를 처리할 수 있습니다
2.5. 계수 저장 (Coefficient Storage)
계산된 계수는 NVM에 저장됩니다 (Table 35 참조 (refer to Table 35)).
계수 (Coefficient) | NVM 주소 (NVM Address) |
Gain_S | 05HEX, 06HEX |
Offset_S | 07HEX, 08HEX |
Tcg | 09HEX |
SOT_tcg | 09HEX, 0AHEX |
Tco | 0BHEX |
SOT_tco | 0BHEX |
SOT_sens | 0EHEX, 0FHEX |
Gain_T | 0FHEX, 10HEX |
Offset_T | 11HEX |
SOT_T | 11HEX, 12HEX |
SENS_shift | 13HEX, 14HEX |
T_shift | 15HEX, 16HEX |
Gain_DAC | 2AHEX |
Offset_DAC | 2BHEX |
저장 방법 (Storage Method): 데이터시트의 6.7절(NVM Programming)에 따라 NVM 쓰기 명령(40HEX~43HEX)을 사용하여 계수를 저장합니다
검증 (Verification): 계수 저장 후, Measure 명령으로 보정된 출력(S, T)을 확인하여 목표 값과 일치하는지 검증합니다
3. 계수 계산 예시 (Coefficient Calculation Example)
아래는 압력 센서를 예로 들어 간단한 계수 계산 절차를 설명합니다
3.1. 예시 조건 (Example Conditions)
- 센서 (Sensor): 압력 센서(0 kPa ~ 100 kPa)
- 온도 범위 (Temperature Range): -40°C ~ 125°C.
- 목표 출력 (Target Output):
- S: 0 kPa → 0HEX, 100 kPa → FFFFFFHEX.
- T: -40°C → 0HEX, 125°C → FFFFFFHEX.
- 데이터 포인트 (Data Points): 3×3 = 9 포인트(압력: 0 kPa, 50 kPa, 100 kPa; 온도: -40°C, 25°C, 125°C)
3.2. 데이터 수집 (Data Collection)
예시 데이터(가정) (Example data (assumed)):
압력 (kPa) | 온도 (°C) | S_Raw (24비트) | T_Raw (24비트) |
0 | -40 | 100000HEX | 200000HEX |
0 | 25 | 110000HEX | 300000HEX |
0 | 125 | 120000HEX | 400000HEX |
50 | -40 | 300000HEX | 200000HEX |
50 | 25 | 310000HEX | 300000HEX |
50 | 125 | 320000HEX | 400000HEX |
100 | -40 | 500000HEX | 200000HEX |
100 | 25 | 510000HEX | 300000HEX |
100 | 125 | 520000HEX | 400000HEX |
3.3. 계수 계산 (Coefficient Calculation)
Gain_T, Offset_T, SOT_T 계산 :
- 목표: T_Raw → T (0HEX ~ FFFFFFHEX) (Objective: T_Raw → T (0HEX ~ FFFFFFHEX)).
- Equation 21~22를 사용하여 최소 제곱법으로 피팅합니다
- 예: T_Raw = 200000HEX → T = 0HEX, T_Raw = 400000HEX → T = FFFFFFHEX
- 선형 보정: \( T = \frac{\text{Gain}_T}{2^{21}} \cdot (T_{\text{Raw}} + 4 \cdot \text{Offset}_T) \)
- 2차 보정: SOT_T를 추가하여 비선형성 보정
- 결과(가정): Gain_T = 400000HEX, Offset_T = 10000HEX, SOT_T = 5000HEX, T_shift = 0HEX
Gain_S, Offset_S, Tcg, Tco, SOT_sens, SOT_tcg, SOT_tco 계산 :
- 목표: S_Raw → S (0HEX ~ FFFFFFHEX)
- Equation 6~9(Parabolic) 또는 15~20(S-shaped)을 사용하여 피팅합니다
- 예: S_Raw = 100000HEX → S = 0HEX, S_Raw = 520000HEX → S = FFFFFFHEX
- 선형 보정: \( S = \text{Gain}_S \cdot S_{\text{Raw}} + \text{Offset}_S \)
- 온도 보상: Tcg, Tco로 온도 의존성 보정
- 2차 보정: SOT_sens, SOT_tcg, SOT_tco로 비선형성 보정
- 결과(가정): Gain_S = 300000HEX, Offset_S = 20000HEX, Tcg = 1000HEX, Tco = 2000HEX, SOT_sens = 3000HEX, SOT_tcg = 100HEX, SOT_tco = 200HEX, SENS_shift = 0HEX
최소 제곱법 적용
- 9개 포인트 데이터를 사용하여 보정 공식에 대입합니다
- MATLAB, Python, 또는 Renesas 제공 소프트웨어로 계수 최적화합니다
- 예: Python의
scipy.optimize.curve_fit
을 사용하여 계수 계산
3.4. NVM 저장 (NVM Storage)
계산된 계수를 Table 35에 따라 NVM 주소에 저장합니다
예: Gain_S → 05HEX, 06HEX; SOT_sens → 0EHEX, 0FHEX
3.5. 검증 (Verification)
Measure 명령(80HEX~8FHEX)을 사용하여 보정된 S, T를 측정합니다 .목표 출력과 비교하여 오차를 확인합니다. 필요 시 SENS_shift, T_shift를 조정합니다 .
4. 추천 도구 및 팁 (Recommended Tools and Tips)
- Renesas SSC 평가 키트 (Renesas SSC Evaluation Kit): ZSSC3241 평가 보드와 소프트웨어를 사용하여 원시 데이터 수집 및 계수 계산을 자동화합니다 .
- 수학적 솔버 (Mathematical Solvers):
- MATLAB:
fit
또는lsqcurvefit
함수로 계수 계산 - Python:
scipy.optimize.curve_fit
또는numpy.polyfit
으로 2차 다항식 피팅 - Excel: 간단한 선형 보정의 경우 가능
- MATLAB:
- 데이터 포인트 수 (Number of Data Points): 최소 9포인트(3×3), 정확도를 위해 25~49포인트(5×5 또는 7×7) 추천
- SOT_curve 선택 (SOT_curve Selection): 센서 특성에 따라 Parabolic(SOT_curve = 0) 또는 S-shaped(SOT_curve = 1)를 선택합니다. 실험적으로 테스트하여 적합한 곡선을 확인합니다
- 노이즈 관리 (Noise Management): Oversample-x 명령(ACHEX~AFHEX)으로 평균화된 데이터를 수집하여 노이즈를 줄입니다
- 온도 제어 (Temperature Control): 정확한 T_Raw를 위해 온도 챔버 사용을 권장합니다
5. 결론 (Conclusion)
ZSSC3241의 보정 계수는 다양한 센서 입력과 온도 조건에서 원시 데이터(S_Raw, T_Raw)를 수집한 후, 보정 공식(Equation 6~22)을 기반으로 최소 제곱법 등의 수학적 피팅을 통해 계산됩니다. 최소 9포인트(3×3)를 수집해야 하며, 고정밀 애플리케이션에서는 25~49 포인트를 추천합니다 . 계산된 계수는 NVM에 저장되며, Renesas의 평가 키트 또는 사용자 정의 소프트웨어를 사용하여 프로세스를 자동화할 수 있습니다 .