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

[ZSSC3123]Command List and Encodings 상세 분석

by linuxgo 2025. 8. 13.
반응형

ZSSC3123 데이터시트의 Table 25 "Command List and Encodings"는 Command Mode에서 사용되는 명령어 목록과 그 인코딩을 정의합니다. 이 테이블은 데이터시트 섹션 11.2 "Command Encodings"와 연계되어 있으며, I2C 프로토콜로만 지원됩니다 (SPI에서는 Command Mode가 지원되지 않음). Command Mode는 파워온 직후 Command Window(빠른 스타트업 비트에 따라 3ms 또는 10ms) 동안 Start_CM 명령으로 진입하며, 여기서 EEPROM 읽기/쓰기, 리셋, 모드 전환 등의 작업을 수행할 수 있습니다.

테이블의 구조는 다음과 같습니다:

  • Command Byte (8 Command Bits, HEX): 명령어의 첫 번째 바이트. 8비트 HEX 값으로, 주소나 명령 유형을 포함.
  • Third and Fourth Bytes (16 Data Bits, HEX): 세 번째와 네 번째 바이트. 데이터나 플레이스홀더(필요 없을 시 0000 HEX). 전체 명령 패킷은 4바이트(명령 바이트 + 데이터 3바이트)지만, 데이터가 적을 시 0으로 패딩.
  • Description: 명령의 기능 설명. 추가로 데이터 페치(DF) 필요 여부, 참조 섹션 언급.
  • Response Time [a]: 명령 실행 시간(typical 값). 최악 케이스: 1.1배 곱함 (시스템 주파수 변동 ±10% 고려).

테이블에 나열된 명령은 총 5개 그룹으로, EEPROM 접근과 시스템 제어에 초점. 각 명령을 상세히 분석하겠습니다. 분석 기준:

  • 인코딩 방식: 명령 바이트의 비트 구조 (예: 주소 포함 시 6 LSBs 사용).
  • 사용 방법: I2C 전송 형식, 후속 작업(DF, 대기 시간).
  • 주의사항: 실행 시간, 모드 제한, 오류 가능성 (섹션 11.3의 응답 비트 참조: Busy, Valid 등).
  • 연계 섹션: 데이터시트 참조.

1. EEPROM Read (주소 00 HEX ~ 1F HEX)

  • Command Byte: 00 HEX ~ 1F HEX (직접 주소 지정. 예: 02 HEX는 주소 0x02 읽기).
  • Third and Fourth Bytes: 0000 HEX (데이터 불필요, 플레이스홀더).
  • Description: EEPROM 주소 00 HEX ~ 1F HEX 읽기. 명령 실행 후 Data Fetch (DF, 섹션 10.6.4) 수행 필수. DF로 상태 바이트 + 16비트 데이터 수신.
  • Response Time: 100 μs (typical, worst: 110 μs).
  • 분석:
    • 인코딩: 명령 바이트가 직접 EEPROM 워드 주소 (0x00 ~ 0x1F). 5비트 주소 범위 (32 워드).
    • 사용: I2C로 명령 바이트 전송 → 100μs 대기 → DF로 읽기. 상태 확인 (Table 26: Valid 비트 1, Busy 0).
    • 주의: 0x1D ~ 0x1F는 Reserved (Table 28), 읽기 가능하나 무의미. EEPROM ECC로 오류 보정 (섹션 10.4.1).
    • 예시: 주소 0x02 (ZMDI_Config) 읽기 → 명령 0x02 전송 → DF로 데이터 페치.

2. Write to EEPROM (주소 00 HEX ~ 1F HEX)

  • Command Byte: 40 HEX ~ 5F HEX (0x40 | 주소. 예: 42 HEX = 주소 0x02 쓰기).
  • Third and Fourth Bytes: YYYY HEX (Y = 16비트 데이터. MSB 먼저).
  • Description: EEPROM 주소 00 HEX ~ 1F HEX 쓰기. 명령 바이트의 6 LSBs가 주소 지정. 데이터 2바이트 쓰기.
  • Response Time: 12ms (typical, worst: 13.2ms).
  • 분석:
    • 인코딩: 명령 바이트 상위 2비트 '01' (0x40 기반), 하위 6비트 주소 (최대 0x3F지만 0x1F까지 사용).
    • 사용: I2C로 명령 바이트 + 데이터 2바이트 전송 (총 3바이트). 12ms 대기 후 DF로 확인 (옵션, 상태만).
    • 주의: 쓰기 사이클 100k회 제한 (섹션 5). Reserved 영역(0x1D~0x1F) 쓰기 피함. 쓰기 후 검증 추천 (읽기 호출).
    • 예시: 주소 0x02에 0xABCD 쓰기 → 명령 0x42 + 0xAB + 0xCD 전송.

3. Start_NOM

  • Command Byte: 80 HEX.
  • Third and Fourth Bytes: 0000 HEX.
  • Description: Command Mode 종료, Normal Operation Mode 전환. 초기 변환 길이는 온도/용량 해상도, Mult 설정에 의존 (섹션 10 참조).
  • Response Time: - (즉시 전환, 초기 측정 시간 별도: 4.25~173ms, 섹션 10.1).
  • 분석:
    • 인코딩: 고정 0x80.
    • 사용: Command Mode에서만 유효. 전환 후 I2C/SPI로 측정 데이터 페치 가능.
    • 주의: 전환 후 Command Mode 재진입하려면 리셋 또는 Power-Off/On 필요. 알람/PDM 등 Normal Mode 기능 활성화.
    • 예시: 캘리브레이션 후 Normal Mode로 전환.

4. Start_CM

  • Command Byte: A0 HEX.
  • Third and Fourth Bytes: 0000 HEX.
  • Description: Command Mode 시작. Power-On Command Window(섹션 10.1) 동안만 유효.
  • Response Time: 100 μs (typical, worst: 110 μs).
  • 분석:
    • 인코딩: 고정 0xA0.
    • 사용: Power-On 직후(빠른 스타트업 시 3ms 이내) 전송. DF 불필요, 상태 확인 옵션.
    • 주의: Window 초과 시 무시됨. Fast_Startup 비트(EEPROM)로 Window 길이 조절.
    • 예시: POR 후 즉시 A0 00 00 전송 → Command Mode 진입.

5. Get Revision

  • Command Byte: B0 HEX.
  • Third and Fourth Bytes: 0000 HEX.
  • Description: 파트 리비전 정보 획득. 명령 실행 후 Data Fetch (DF, 섹션 10.6.4) 수행 필수.
  • Response Time: 100 μs (typical, worst: 110 μs).
  • 분석:
    • 인코딩: 고정 0xB0.
    • 사용: DF로 상태 + 16비트 리비전 데이터 수신 (예: 칩 버전 확인).
    • 주의: 디버깅/버전 체크 용도. DF 필수.
    • 예시: 리비전 확인 → B0 전송 → DF로 데이터 페치.

전체 테이블 분석 요약

  • 공통 특성: 모든 명령은 4바이트 패킷 (명령 1바이트 + 데이터 3바이트, 불필요 시 0 패딩). I2C만 지원 (그림 25 참조: 시작 + 주소 + 명령 + 데이터 + 정지).
  • 범위 및 제한: EEPROM 주소 0x000x1F (32 워드), 하지만 사용자 영역 0x000x1C (Table 28). Reserved 영역 접근 시 동작 불확실.
  • 응답 및 DF: 읽기/Get 명령은 DF 필수 (그림 26: 상태 바이트 + 데이터). 쓰기/모드 명령은 DF 옵션 (Table 26 응답 비트: Busy, Valid, Diagnostic 등 확인, Table 27 진단 비트).

  • 실행 시간: 100μs (읽기/간단 명령) ~ 12ms (쓰기). 최악 케이스 1.1배 (주파수 변동).
  • 오류 처리: 명령 후 DF로 Diagnostic 비트 확인 (Table 27: EEPROM 오류 등). 명령 중복 전송 금지 (실행 시간 대기 필수).
  • 활용 팁: 캘리브레이션 시 Start_CM → EEPROM 쓰기 (보정 계수) → Start_NOM 순. Get Revision으로 호환성 확인.
  • 데이터시트 연계: 섹션 11.3 (응답/DF), Table 26~27 (비트 정의), 섹션 12 (EEPROM 맵).

이 분석은 Renesas 공식 ZSSC3123 데이터시트(Nov 19, 2021 버전) Table 25를 기반으로 정리했습니다.

반응형