11월 082011
 

지금까지 알아낸 내용과 인터넷을 돌아다니면서 알아낸 것을 바탕으로 해보니, NX 마운트의 통신 내용은 상당히 PlayStation의 컨트롤러와 비슷하다는 것을 알아냈습니다.

http://www.gamesx.com/controldata/psxcont/psxcont.htm

또, 한켠으론 일반적으로 마이크로 컨트롤러와 주변기기간 통신에 흔히 사용되는 SPI 통신의 변형 같아 보이기도 합니다. 그래서, 이를 바탕으로 1번 핀부터 5번 핀까지의 이름을 마음대로 붙여봤습니다.

1번핀: CLOCK (줄여서 CLK) (바디 <—> 렌즈)
바디와 렌즈 사이에 직렬 통신을 할 때, 동기화를 시켜주기 위한 클록 파형을 발생시키는 핀. 이 때 발생하는 클록 주파수는 2MHz이고, 8 비트 (1바이트)전송을 위해 일반적으로 8번 주기의 파형이 연속적으로 발생하며, 1 바이트 이상의 데이터를 전송하고자 할 때, 각 바이트 파형 사이는 약 25us 의 간격을 갖는다. 때론 이 간격이 1ms 까지 늘어지기도 한다. 데이터 전송이 없을 때, 3.3V 수준 (HIGH)을 유지하다, 2번 핀 또는 3번 핀에서 데이터 전송이 있을 때, 2MHz 파형이 발생한다.

2번핀: DATA (줄여서 DAT) (바디 <— 렌즈)
렌즈에서 바디로 데이터를 전송하는 핀이다. 데이터 전송이 이뤄질 때는 CLK (1번핀) 에 파형이 발생한다. 데이터를 읽는 순간은 CLK의 파형이 0V –> 3.3V로 변경되는 싯점 (업계 용어로 Leading Edge)에 2번핀에 유지되는 값이 읽혀진다.

3번핀: COMMAND (줄여서 CMD) (바디 —> 렌즈)
바디에서 렌즈로 명령를 전송하는 핀이다. 명령 전송이 이뤄질 때는 CLK (1번핀) 에 파형이 발생한다. 데이터를 읽는 순간은 CLK의 파형이 0V –> 3.3V로 변경되는 싯점 (업계 용어로 Leading Edge)에 3번핀에 유지되는 값이 읽혀진다.

4번핀: ATTENTION (줄여서 ATT) ????? (바디 —> 렌즈)
아직 정확한 용도 파악이 안되었음. 바디와 렌즈가 아무일도 하지 않는 아이들링 (idling) 상태에선 이 핀이 사용되지 않는다. 다만 셔터가 눌려 AF가 작동하는 순간엔, 이 4번핀의 신호 하나만으로도 바디에서 CMD 전송 없이도, 렌즈가 마구 바디로 데이터를 전송하며 엄청난 일을 하게 하는 신호선이기도 하다. 예상으론  바디에서 간단한 신호 전송으로, 렌즈로 하여금 이전에 수행하던 작업을 연속선상에서 지속적 작업의 전환같은 것을 알리는 신호선으로 파악됨. 이는 AF신호를 좀더 연구를 해봐야 좀더 정확하게 파악 할 수 있을 것 같다.

5번핀: ACKNOWLEDGE (줄여서 ACK) (바디 <— 렌즈)
바디에서 명령을 내린경우 렌즈에서 명령을 잘 받았다는 신호를 바디로 보낼 때 쓰는 핀이다. 평상시 3.3V가 인가되있는 상태 (HIGH)이다, 0V (LOW)로 변환이 되면 ACK가 인가된 상태이다. 또한 렌즈에서 바디로 데이터가 올라갈 때, 즉 DAT (2번핀)에 데이터가 전송이 될 때는, 이 ACK (5번핀)이 LOW가 된다.

이상이 현재까지 파악하거나 예상하는 각 핀의 용도입니다.

오늘  이 포스트에선 그동안 파악한 18-55렌즈가 아이들링 상태일 때 파악한 내용을 기술하겠습니다.

아래의 그림은 CLK (1번핀)에서 발생하는 신호를 나타내 줍니다.

 

그럼, 제일 데이터 통신도 간단하고, 파악하기 쉬웠던 바디와 렌즈의 아이들링 상태에서 통신을 분석한 내용입니다.
아래의 다이어그램은 이를 시간 순으로 보여줍니다.

일단, 위에서 나타낸 바디에서 렌즈로 0.1초마다 내려가는 명령은 사실 파악하지 못했습니다. 다만, 이 명령값은 렌즈, 조리개, 촛점거리에 상관없이 일정합니다. 이 명령을 받으면, 렌즈는 그 응답으로 4 byte의 값을 바디로 전송합니다.

첫째 바이트는 렌즈 ID입니다. 18-55 번들 렌즈의 경우 0x40이고, 20-50렌즈의 경우 0x0B 입니다.
두번째, 세번째는 어떤 의미인지 알 수 없으나, 렌즈, 촛점거리와 상관없이 일정합니다.
네번째는 렌즈의 촛점거리 인덱스입니다. 아래의 값은 18-55렌즈의 각 촛점거리에 따른 인덱스 값입니다.

ㅇ 수동촛점 –> 0x00 (? 확인필요)
ㅇ 18mm –> 0x01
ㅇ 19mm –> 0x02
ㅇ 20mm –> 0x03
ㅇ 22mm –> 0x04
ㅇ 24mm –> 0x05
ㅇ 25mm –> 0x06
ㅇ 27mm –> 0x07
ㅇ 29mm –> 0x08
ㅇ 30mm –> 0x09
ㅇ 33mm –> 0x0A
ㅇ 35mm –> 0x0B
ㅇ 37mm –> 0x0C
ㅇ 40mm –> 0x0D
ㅇ 42mm –> 0x0E
ㅇ 45mm –> 0x0F
ㅇ 48mm –> 0x10
ㅇ 52mm –> 0x11
ㅇ 55mm –> 0x12촛점거리 인덱스는 모든 줌렌즈의 종류에 따라 지칭하는 촛점거리의 의미가 달라집니다.

이상 파악한 값은  줌렌즈를 장착했을 때, 바디와 렌즈가 아무 일도 하고 있지 않는 상태에서 전송하는 내용입니다.

그럼, 단렌즈는?????  아이들링 상태에선 통신내용이 전무합니다. ^^ 오로지 셔터를 누를 때 비로소 통신이 시작되는 것으로 현재까지 파악했습니다.

아이들링 상태가 가장 파악하기 쉬웠습니다. AF 때는 워낙 복잡한 통신이 오갔으며, 렌즈를 바디에 장착하는 순간에는 상당한 데이터가 렌즈에서 바디로 올라가는 것이 확인 되었는데…

휴… 이거 발을 잘못 들여놓은 것이 아닌가하는 생각이 듭니다… -__-;;;

어쨌든 오늘은 여기까지 입니다.

 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)