3월 172016
 

지닌 1편에 이어 계속 3단계 부터 설명하겠습니다.

 

3단계: 렌즈 개별 특정 정보 요구/수신

지난 번에도 말씀 드렸지만, 이 단계 부터는 CLK (1번핀)에서 발생하는 동기신호는 2 MHz로 증가합니다.

기본적으로 이 3단계는 2단계의 블록 4 : 지원 특성 정의 테이블에서 정의한 각 항목이 다시 질의 되는 형태를 취합니다.
예를 들자면 NX 30/2 렌즈의 경우는, 16진수로, 5001, 5002, 5003, 5007, 5008, 5009의 아이템 값들을 갖는데, 이 3단계에선 이 각 항목들을 개별적으로 질의하면서 렌즈로부터 상세 값들을 수신하게 됩니다.

그런데, 만약 바디가 NX1일 경우 (아마도 NX500도 마찬가지 일 것으로 추측합니다.) 이 3단계에서 50XX 항목들의 값을 질의하기 전에 2개의 추가 항목에 대해 질의를 먼저 실시 합니다.

그것 부터 먼저 보겠습니다.

 

3단계: 항목 1 – 렌즈의 실제 초점 거리 정보 요구/수신 (NX1 만 해당)

  • 바디에서 렌즈로 가는 데이터 (3번 핀, DCL 데이터) : 05 10 0D 60 0C
  • 렌즈에서 바디로 가는 데이터 (2번핀, DLC 데이터)
    • Byte 1 : 전체 패킷 크기 (Byte)
    • Byte 2 – 3 : 0x02 0x01 ( OK 상태)
    • Byte 4 – 6 : 무조건 0x00 0x00 0x00
    • Byte 7 : 뒤 이어 나올 2 Byte 짜리 데이터 항목 갯수
    • Byte 8 – (마지막 -1) : 2바이트로 구성된 항목 정보
    • 마지막 Byte : checksum. Byte 4부터 모든 Byte를 더한 1 Byte 값

이렇게 구성됩니다. 일단 렌즈별 값을 보겠습니다.

31-Block1

이 항목의 값은 정확하게 파악할 수 없지만, 일단 단렌즈는 딱 한 값만을 가집니다. 그런데, 줌렌즈들은 더 많은 값들을 갖는다는 것인데… 현재 DPReview 삼성동에 올라온 자료를 같이 참고 한다면, 줌 구간별 초점 거리를 나타낸 것으로 추측됩니다. NX 바디는 줌렌즈의 경우 전체를 18개의 구간으로 나눠서 구분하는 것으로 추측됩니다.

이건 좀 더 파악을 해봐야 할 것 같습니다.

 

3단계: 항목 2 – 렌즈의 실제 개방 조리개 정보 요구/수신 (NX1 만 해당)

  • 바디에서 렌즈로 가는 데이터 (3번 핀, DCL 데이터) : 05 10 0D 60 0F
  • 렌즈에서 바디로 가는 데이터 (2번핀, DLC 데이터)
    • Byte 1 : 전체 패킷 크기 (Byte)
    • Byte 2 – 3 : 0x02 0x01 ( OK 상태)
    • Byte 4 – 6 : 무조건 0x00 0x00 0x00
    • Byte 7 : 뒤 이어 나올 1 Byte 짜리 데이터 항목 갯수
    • Byte 8 – (마지막 -1) : 1바이트 짜리 정보
    • 마지막 Byte : checksum. Byte 4부터 모든 Byte를 더한 1 Byte 값

이렇게 구성됩니다. 일단 렌즈별 값을 보겠습니다.

32-Block2

이 것도 이전 항목과 비슷한 양상입니다. 다만, 데이터가 2바이트 단위가 아니고, 한 바이트 단위라는 것이 다릅니다.
역시 줌렌즈의 경우 18개로 나눠서 구분을 합니다.
값을 보면 뭔가 좀 유사한 측면이 보입니다. 예를 들어 16-50PZ 렌즈는 조리개 값이 3.5 – 5.8 인데, 요 값을 보면 0x3B – 0x52 값을 보이고, 같은 조리개 값을 갖는 18-55 번들 렌즈도 같은 값을 갖습니다.

요것도 좀 더 파악을 해봐야 할 것 같습니다.

이어지는 항목들은 2단계의 블록 4 : 지원 특성 정의 테이블에서 정의한 각 항목이 다시 질의 되는 형태를 가집니다. 이 부분은 렌즈별로 서로 다른 종류의 질의들이 올라오고 있습니다.

앞선 1편에서 설명드릴 때, 사용한 이미지이지만, 다시 한번 그 표를 보면, 그러니까, 5001, 5002, 5003, 5007, 5008, 5009가 거의 공동적으로 모든렌즈에서 나열되어 있지만, 그 후부터는 일부 렌즈에만 있기도 하고 없기도 한 항목들이 보입니다.

모두 나열하기는 좀 양이 많아지고, 몇 가지만 열거해 보겠습니다.

 

3단계: 항목 5001 – 모든 바디, 렌즈에 해당

  • 바디에서 렌즈로 가는 데이터 (3번 핀, DCL 데이터) : 05 10 06 50 01
  • 렌즈에서 바디로 가는 데이터 (2번핀, DLC 데이터)
    • Byte 1 : 전체 패킷 크기 (Byte) – 0x0F
    • Byte 2 – 3 : 0x02 0x01 ( OK 상태)
    • Byte 4 – 12 : 0x00 0x02 0x01 0x00 0x00 0x02 0x00 0x04 0x00 0x01 0x02 0x03

이 패킷은 모든 렌즈 모든 바디에 공통적으로 요구되는 첫번째 항목입니다. 모두 같은 값을 가지는데, 저 항목의 데이터가 의미하는 것은 전혀 모르겠네요. ㅎㄷㄷㄷㄷ

 

 

 

3단계: 항목 5007 – 최대 최소 초점 위치(?)

  • 바디에서 렌즈로 가는 데이터 (3번 핀, DCL 데이터) : 05 10 06 50 07
  • 렌즈에서 바디로 가는 데이터 (2번핀, DLC 데이터)
    • Byte 1 : 전체 패킷 크기 (Byte) – 0x0F
    • Byte 2 – 3 : 0x02 0x01 ( OK 상태)
    • Byte 4 – 6 : 0x00 0x04 0x20
    • Byte 7 – 10 : 0x?? 0x?? 0x?? 0x?? <– 렌즈 마다 다르지만 의미 파악이 안된 값
    • Byte 11 : 0x01
    • Byte 12 – 13 : 0x?? 0x?? <– 렌즈 무한대 초점 위치 값
    • Byte 14 – 15 : 0x?? 0x?? <– 렌즈 최소거리 초점 위치 값
    • Byte 16 – 17 : 0x00 0x01

이 패킷은 모든 렌즈 모든 바디에 공통적으로 요구되는 항목입니다. 의미파악이 되지 않는 4바이트 값이 있긴 한데, 2개의 중요한 무한대 초점에서 초점 위치값과 렌즈 최소거리 초점 위치 값을 포함하고 있는 아주 중요한 패킷입니다.

아래는 각 렌즈별 값입니다.

33-5007-Block

3단계: 항목 5008 – 줌렌즈 단렌즈 구별값(?)

  • 바디에서 렌즈로 가는 데이터 (3번 핀, DCL 데이터) : 05 10 06 50 08

이 패킷은 기본 적으로 같은 구조입니다. 중간에 렌즈/바디별로 다른 값을 가지는 항목이 있는데, 무엇을 의미하는지는 파악되지는 않습니다. 다만 연두색으로 표현된 부분은 공통적으로 줌렌즈의 경우 0x12 값을, 단렌즈인 경우 0x01값을 가집니다. 아래 도표를 보시면 좀더 이해가 쉬울 겁니다.

아래는 각 바디/렌즈별 값입니다.

 

 

34-5008-Block

 

3단계: 항목 5009 – 최대 조리개, 최소 조리개값

  • 바디에서 렌즈로 가는 데이터 (3번 핀, DCL 데이터) : 05 10 06 50 09

이 패킷은 기본 적으로 같은 구조입니다. 이 패킷의 나머지는 바디/렌즈 종류를 막론하고 모두 같은 값을 가지지만, 마지막 두개 바이트만 다른 값이 있습니다. 아래 하늘색 바이트가 최대 조리개값 인덱스, 녹색이 최소 조리개값 인덱스로 보여집니다.

한가지 주의해서 봐야할 것은 이 값은 절대적인 조리개 값이 아니라, 조리개 단계별 값이라고 보는 것이 맞습니다. 예를 들어 16-50PZ의 경우 값의 범위가 0x01부터 0x1A 즉, 26단계가 있다는 의미이구요, 45.8렌즈의 경우 0x01부터 0x24, 즉, 총 32단계로 조리개 조절이 된다는 의미입니다.

아래는 각 바디/렌즈별 값입니다.

 

34-5009-Block

 

이 후 값들은 어떤 렌즈에선 있고 어떤 렌즈는 없고… 값이 지칭하는 의미도 파악이 되지 않는 패킷들이 있습니다.

이렇게 3단계가 끝나면 4단계에선 렌즈의 조리개 초기화 단계로 들어갑니다.

조리개 콘트롤에 대한 것은 나중에 셔터 동작과 관련해 따로 정리를 하도록 하겠습니다.

이 정도로 NX 바디가 렌즈를 인증하고 데이터를 수집하는 부팅 과정에 대한 설명을 마칠까 합니다.

참고삼아, 16-50PZ가 NX1에 물려서 전원이 켰을 때, 3단계까지 진행되는 총 덤프를 올려보겠습니다. 혹시 관심이 있으신 분이 계실까요? ㅎㄷㄷㄷ

DCL : 0x03  0xAA  0x55

DLC : 0x03  0xAA  0x55

DCL : 0x03  0x10  0x01  0x00

DLC : 0x20  0x01  0x00  0x64  0x00  0x00  0x00  0x00  0x00  0x00  0x00  0x00  0x1F  0x00  0x00  0x00
0x0E  0x10  0x01  0x10  0x05  0x10  0x06  0x10  0x07  0x10  0x08  0x10  0x09  0x10  0x0C  0x10
0x0D  0x11  0x01  0x11  0x02  0x11  0x0B  0x11  0x03  0x11  0x04  0x11  0x09  0x00  0x00  0x00
0x05  0x40  0x01  0x40  0x02  0x40  0x03  0x40  0x04  0x40  0x06  0x00  0x00  0x00  0x0E  0x50
0x01  0x50  0x02  0x50  0x03  0x50  0x07  0x50  0x08  0x50  0x09  0x50  0x0A  0x50  0x0C  0x50
0x0D  0x50  0x0E  0x50  0x10  0x50  0x11  0x50  0x13  0x50  0x14  0x00  0x00  0x00  0x1E  0x60
0x01  0x60  0x02  0x60  0x03  0x60  0x04  0x60  0x05  0x60  0x06  0x60  0x07  0x60  0x08  0x60
0x09  0x60  0x0A  0x60  0x0B  0x60  0x0C  0x60  0x0D  0x60  0x0E  0x60  0x0F  0x60  0x10  0x60
0x11  0x60  0x12  0x60  0x13  0x60  0x14  0x60  0x16  0x60  0x17  0x60  0x18  0x60  0x1A  0x60
0x1B  0x60  0x19  0x60  0x1C  0x60  0x1D  0x60  0x24  0x60  0x25  0x00  0x00  0x00  0x04  0x70
0x01  0x70  0x02  0x70  0x03  0x70  0x04  0x28  0x53  0x41  0x4D  0x53  0x55  0x4E  0x47  0x3F
0x3F  0x4E  0x58  0x20  0x31  0x36  0x2D  0x35  0x30  0x6D  0x6D  0x20  0x46  0x33  0x2E  0x35
0x2D  0x35  0x2E  0x36  0x20  0x50  0x6F  0x77  0x65  0x72  0x20  0x5A  0x6F  0x6F  0x6D  0x00
0x07  0x58  0x4C  0x31  0x34  0x30  0x31  0x00  0x0C  0x30  0x31  0x2E  0x33  0x30  0x5F  0x30
0x31  0x2E  0x35  0x30  0x00  0x0D  0x??  0x??  0x??  0x??  0x??  0x??  0x??  0x??  0x??  0x??
0x??  0x??  0x??

DCL : 0x05  0x10  0x0D  0x60  0x0C

DLC : 0x2C  0x20  0x01  0x00  0x00  0x00  0x12  0x01  0x4A  0x01  0x57  0x01  0x6E  0x01  0x88  0x01
0xA2  0x01  0xBF  0x01  0xDE  0x02  0x00  0x02  0x24  0x02  0x49  0x02  0x73  0x02  0x9F  0x02
0xCD  0x02  0xFE  0x03  0x35  0x03  0x6E  0x03  0xAA  0x03  0xCA  0x6A

DCL : 0x05  0x10  0x0D  0x60  0x0F

DLC : 0x1A  0x20  0x01  0x00  0x00  0x00  0x12  0x3B  0x3C  0x3D  0x3F  0x40  0x41  0x43  0x44  0x45
0x47  0x48  0x4A  0x4B  0x4D  0x4E  0x50  0x51  0x52  0x04

DCL : 0x05  0x10  0x06  0x50  0x01

DLC : 0x0F  0x20  0x01  0x00  0x02  0x01  0x00  0x00  0x02  0x00  0x04  0x00  0x01  0x02  0x03

DCL : 0x05  0x10  0x06  0x50  0x02

DLC : 0x0D  0x20  0x01  0x00  0x02  0x01  0x01  0x01  0x02  0x00  0x02  0x00  0x01

DCL : 0x05  0x10  0x06  0x50  0x03

DLC : 0x0D  0x20  0x01  0x00  0x02  0x01  0x00  0x00  0x02  0x00  0x02  0x00  0x01

DCL : 0x05  0x10  0x06  0x50  0x07

DLC : 0x11  0x20  0x01  0x00  0x04  0x20  0x03  0xE8  0x03  0xE8  0x01  0x03  0x25  0x12  0x77  0x00
0x01

DCL : 0x05  0x10  0x06  0x50  0x08

DLC : 0x0C  0x20  0x01  0x00  0x02  0x00  0x01  0x01  0x01  0x01  0x12  0x01

DCL : 0x05  0x10  0x06  0x50  0x09

DLC : 0x0C  0x20  0x01  0x00  0x02  0x20  0x01  0x01  0x01  0x01  0x1A  0x01

DCL : 0x05  0x10  0x06  0x50  0x0A

DLC : 0x0E  0x20  0x01  0x00  0x02  0x01  0x02  0x01  0x02  0x00  0x03  0x00  0x01  0x02

DCL : 0x05  0x10  0x06  0x50  0x0C

DLC : 0x0D  0x20  0x01  0x00  0x02  0x01  0x00  0x00  0x02  0x00  0x02  0x00  0x01

DCL : 0x05  0x10  0x06  0x50  0x0D

DLC : 0x0F  0x20  0x01  0x00  0x02  0x01  0x01  0x01  0x02  0x00  0x04  0x00  0x01  0x10  0x11

DCL : 0x05  0x10  0x06  0x50  0x0E

DLC : 0x12  0x20  0x01  0x00  0x02  0x01  0x00  0x00  0x02  0x00  0x07  0x00  0x01  0x02  0x03  0x05
0x0A  0x1E

DCL : 0x05  0x10  0x06  0x50  0x10

DLC : 0x0D  0x20  0x01  0x00  0x02  0x01  0x00  0x00  0x02  0x00  0x02  0x00  0x01

DCL : 0x05  0x10  0x06  0x50  0x11

DLC : 0x11  0x20  0x01  0x00  0x04  0x00  0x01  0x00  0x01  0x00  0x01  0x01  0x00  0x12  0x00  0x00
0x01

DCL : 0x05  0x10  0x06  0x50  0x13

DLC : 0x11  0x20  0x01  0x00  0x02  0x01  0x03  0x03  0x02  0x00  0x06  0x00  0x01  0x02  0x03  0x04
0x05

DCL : 0x05  0x10  0x06  0x50  0x14

DLC : 0x0E  0x20  0x01  0x00  0x02  0x01  0x00  0x00  0x02  0x00  0x03  0x00  0x01  0x02

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(required)

(required)