반응형
ZSC31014의 **명령 세트(Command Set)**와 **EEPROM 맵(EEPROM Map)**은 디바이스의 설정, 캘리브레이션, 동작 모드를 제어하는 데 핵심적인 역할을 합니다. 아래는 데이터시트(REN_ZSC31014_DST_20160120_1.pdf)를 기반으로 한 상세한 설명입니다. 각 섹션은 페이지 번호와 함께 참조되며, 필요한 경우 테이블과 그림을 포함합니다.
1. ZSC31014 명령 세트 (Command Set)
ZSC31014는 I²C 및 SPI 인터페이스를 통해 동작을 제어하기 위한 명령어를 제공합니다. 명령은 주로 데이터 가져오기(Data Fetch, DF), 측정 요청(Measurement Request, MR), **캘리브레이션 명령(Calibration Commands)**으로 나뉘며, 동작 모드(Update Mode, Sleep Mode, Command Mode)에 따라 사용됩니다. 아래는 명령 세트에 대한 상세 설명입니다(페이지 26, 33~37 참조).
1.1. 명령 유형 (페이지 26, Table 3.1)
명령 /유형설명지원 /통신참조/ 섹션
Data Fetch (DF) | 모든 모드에서 데이터를 읽는 데 사용 | I²C, SPI | 3.2.2, 3.3.2 |
Measurement Request (MR) | Sleep Mode에서 측정을 시작하는 데 사용 | I²C, SPI | 3.1.2, 3.3.1, 3.4.1 |
Calibration Commands | Command Mode에서 캘리브레이션 및 EEPROM 프로그래밍에 사용 | I²C 전용 | 3.5 |
1.2. I²C 명령 세부사항
I²C 명령은 주로 Sleep Mode에서의 측정 시작, 데이터 읽기, 캘리브레이션에 사용됩니다(페이지 33~36).
1.2.1. I²C Read_MR (Measurement Request, 페이지 34)
- 기능: Sleep Mode에서 디바이스를 깨우고 완전한 측정 사이클(브리지, 온도, Auto-Zero 포함)을 시작.
- 형식:
- 마스터는 7비트 슬레이브 주소 + READ 비트(1)를 전송.
- ZSC31014는 ACK를 응답한 후, 마스터는 Stop 조건을 생성.
- 참고:
- Read_DF2 또는 Read_DF3 명령으로도 동일한 기능 수행 가능(데이터는 "stale"로 반환됨).
- 응답 시간: 1MHz 클럭에서 4.5ms, 4MHz 클럭에서 1.5ms (Normal Integration Mode, 페이지 31, Table 3.4).
1.2.2. I²C Read_DF (Data Fetch, 페이지 34)
- 기능: 측정된 데이터를 읽음. 2바이트, 3바이트, 4바이트 패킷으로 제공.
- Read_DF2: 2바이트(브리지 데이터 14비트).
- Read_DF3: 3바이트(브리지 데이터 + 온도 데이터 8비트).
- Read_DF4: 4바이트(브리지 데이터 + 온도 데이터 11비트).
- 형식 (페이지 33, Figure 3.6):
- 마스터: 슬레이브 주소 + READ 비트(1).
- 슬레이브: ACK 후 데이터 패킷 전송.
- 데이터 패킷 구조:
- 첫 번째 바이트: 상태 비트(S[1:0]) + 브리지 데이터 상위 6비트(B[13:8]).
- 두 번째 바이트: 브리지 데이터 하위 8비트(B[7:0]).
- 세 번째 바이트: 온도 데이터 상위 8비트(T[10:3]).
- 네 번째 바이트: 온도 데이터 하위 3비트(T[2:0]) + 5비트 무시.
- 상태 비트 (페이지 24, Table 2.9):
- 00: 정상 데이터.
- 01: Command Mode.
- 10: Stale 데이터(이미 읽은 데이터).
- 11: 진단 상태(예: EEPROM 오류, 브리지 단락).
1.2.3. I²C Write_MR (Measurement Request, 페이지 36)
- 기능: Sleep Mode에서 브리지 값만 측정(특별 측정 제외) 후 DSP 계산 수행.
- 형식 (페이지 36, Figure 3.9):
- 마스터: 슬레이브 주소 + WRITE 비트(0).
- 슬레이브: ACK 후 디바이스 깨어남, 측정 후 다시 Sleep Mode로 전환.
- 참고:
- Write_MR 후 Read_DF로 데이터 읽기 필요.
- 응답 시간: 1MHz 클럭에서 1.5ms, 4MHz 클럭에서 0.5ms (페이지 31, Table 3.4).
- 첫 번째 Write_MR은 초기화되지 않은 온도/AZ 값으로 인해 유효하지 않은 데이터 반환 가능(페이지 31).
1.2.4. Command Mode I²C Write (페이지 37)
- 기능: Command Mode에서 캘리브레이션 및 EEPROM 프로그래밍.
- 형식 (페이지 36, Figure 3.9):
- 마스터: 슬레이브 주소 + WRITE 비트(0) + 명령 바이트 + 2바이트 데이터.
- 슬레이브: ACK 후 명령 실행.
- 명령 목록 (페이지 37, Table 3.6):
명령/ 코드/데이터/설명/실행 시간
A0HEX | 0000HEX | Start_CM: Command Mode 진입, 전원 켜짐 후 6ms 이내 유효. | 10μs |
80HEX | 0000HEX | Start_NOM: Normal Operation Mode 시작, EEPROM 서명 업데이트 시 15ms. | 10μs / 15ms |
00HEX~13HEX | EEPROM 데이터 | EEPROM 쓰기: 지정된 EEPROM 워드에 데이터 쓰기. 응답 바이트 5AHEX 반환. | 10us |
40HEX~53HEX | 0000HEX | EEPROM 읽기: 지정된 EEPROM 워드 읽기, | 15ms |
- 참고:
- Command Mode에서 INT/SS 핀은 명령 완료 시 상승(인터럽트 역할, 페이지 37).
- EEPROM 쓰기 후 Start_NOM 명령으로 서명 업데이트 필수(페이지 37).
2. ZSC31014 EEPROM 맵 (EEPROM Map)
EEPROM은 ZSC31014의 설정, 캘리브레이션 계수, 동작 모드를 저장합니다. 각 워드는 16비트로 구성되며, 주요 설정과 계수는 아래 표에 정리되어 있습니다(페이지 38~43, Table 3.7).
2.1. EEPROM 워드 및 비트 할당
EEPROM 워드비트/ 범위/기본값/설명참고
2.2. 주요 EEPROM 설정 세부사항
- 캘리브레이션 계수:
- Gain_B, Gain_T: 게인 값, 단위는 2000HEX, 최대 32배(Gain8x 사용 시, 페이지 48, Table 3.9).
- Offset_B, Offset_T: 16비트 2의 보수 형식, ±32768 범위(페이지 48, Table 3.10).
- Tcg, Tco: 온도 보정 계수, 부호는 TC_Sign 비트로 결정.
- SOT_tco, SOT_tcg, SOT_bridge, SOT_T: 2차 비선형성 보정, 부호는 SOT_Sign 비트로 결정.
- 제한사항 (페이지 47, Table 3.8):
- Gain_B, Gain_T: 0~4 (Gain8x로 최대 32).
- Offset_B, Offset_T: ±8192 (14비트 범위).
- SOT 계수: 양수 0~7FFF, 음수 0~3FF.
3. 사용 예시
3.1. I²C로 Sleep Mode에서 데이터 읽기
- EEPROM 설정:
- 01HEX: Output_Mode = 0 (I²C), ClkSpeed = 0 (1MHz), Update_Rate = 10 (25ms).
- 02HEX: Slave_Addr = 28HEX, Comm_lock = 011.
- 0FHEX (B_Config): PreAmp_Gain, A2D_Offset 를 원하는 값으로 설정.
- 명령:
- Sleep Mode에서 Read_MR 전송(슬레이브 주소 + READ 비트).
- 4.5ms 후 Read_DF4로 4바이트 데이터 읽기.
- 결과: 브리지 데이터(14비트)와 온도 데이터(11비트) 반환, 상태 비트 확인.
4. 추가 참고사항
- 캘리브레이션 소프트웨어: IDT 제공 DLL로 계수 계산(페이지 45).
- 진단 상태 확인: 데이터 패킷의 상태 비트(S[1:0])로 EEPROM 오류, 센서 단락 등 확인(페이지 24).
- 문서 참조: ZSC31014 Technical Note-Detailed Equations for Calibration Math 요청(페이지 56).
반응형
'아날로그회로(Analog Circuit) > ADC관련' 카테고리의 다른 글
[ZSSC3241] 보정식 상세 분석 (0) | 2025.08.09 |
---|---|
[ZSC31014]STM32L432KC에서 I2C통신으로 센서 데이터 읽기 구현 (0) | 2025.08.02 |
[ZSC31014]STM32L432KC에서 I2C통신으로 EEPROM 데이터 읽기와 쓰기 코드 구현 (0) | 2025.08.02 |
[ZSC31014] I2C 인터페이스로 센서 데이터 읽기 절차 (0) | 2025.08.02 |
[ZSC31014] I2C 인터페이스로 EEPROM 읽기 또는 쓰기 절차 (0) | 2025.08.02 |
[ZSC31014] 사양 정리 (1) | 2025.08.02 |
[ZSC31014]보정 공식과 파이썬을 이용한 계수 추출 (Calibration Equations for ZSC31014 and Coefficient Extraction with Python) (0) | 2025.08.02 |
[ZSC31014] Arduino로 EEPROM 및 센서 데이터 읽기/쓰기 (Reading/Writing EEPROM and Sensor Data with ZSC31014 and Arduino) (0) | 2025.08.02 |