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

ZSC31014 Sensor Signal Conditioner IC의 Command Set 및 I2C로 EEPROM 및 센서 데이타 읽기 절차

by linuxgo 2025. 8. 2.

ZSC31014의 명령 세트(Command Set)EEPROM 맵(EEPROM Map)은 디바이스의 설정, 캘리브레이션, 동작 모드를 제어하는 데 핵심적인 역할을 합니다. 아래는 데이터시트(REN_ZSC31014_DST_20160120_1.pdf)를 기반으로 한 상세한 설명입니다. 각 섹션은 페이지 번호와 함께 참조되며, 필요한 경우 테이블과 그림을 포함합니다.

1. ZSC31014 명령 세트 

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

 

ZSC31014 동작모드

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):
명령코드 데이터 설명 실행시간
0xA0 0x0000 Start_CM: Command Mode 진입,
전원 켜짐 후 6ms 이내 유효.
10μs
0x80 0x0000 Start_NOM: Normal Operation Mode 시작,
EEPROM 서명 업데이트 시 15ms.
10μs / 15ms
0x00~0x13 EEPROM
데이터
EEPROM 쓰기: 지정된 EEPROM 워드에 데이터 쓰기.
응답 바이트 0x5A반환.
10us
0x40~0x53 0x0000 EEPROM 읽기: 지정된 EEPROM 워드 읽기, 15ms
  • 참고:
    • Command Mode에서 INT/SS 핀은 명령 완료 시 상승(인터럽트 역할, 페이지 37).
    • EEPROM 쓰기 후 Start_NOM 명령으로 서명 업데이트 필수(페이지 37).

2. ZSC31014 EEPROM 맵 

EEPROM은 ZSC31014의 설정, 캘리브레이션 계수, 동작 모드를 저장합니다. 각 워드는 16비트로 구성되며, 주요 설정과 계수는 아래 표에 정리되어 있습니다(페이지 38~43, Table 3.7).

2.1. EEPROM 워드 및 비트 할당

2.2. 주요 EEPROM 설정 세부사항

  • 캘리브레이션 계수:
    •  Gain_B, Gain_T: 게인 값, 단위는 0x2000, 최대 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에서 데이터 읽기

  1. EEPROM 설정:
    •   0x01: Output_Mode = 0 (I²C), ClkSpeed = 0 (1MHz), Update_Rate = 10 (25ms).
    •   0x02: Slave_Addr = 0x28, Comm_lock = 011.
    •   0x0F(B_Config): PreAmp_Gain, A2D_Offset 를 원하는 값으로 설정.
  2. 명령:
    •   Sleep Mode에서 Read_MR 전송(슬레이브 주소 + READ 비트).
    •   4.5ms 후 Read_DF4로 4바이트 데이터 읽기.
  3. 결과: 브리지 데이터(14비트)와 온도 데이터(11비트) 반환, 상태 비트 확인.

4. 추가 참고사항

  • 캘리브레이션 소프트웨어: IDT 제공 DLL로 계수 계산(페이지 45).
  • 진단 상태 확인: 데이터 패킷의 상태 비트(S[1:0])로 EEPROM 오류, 센서 단락 등 확인(페이지 24).
  • 문서 참조: ZSC31014 Technical Note-Detailed Equations for Calibration Math 요청(페이지 56).