ENGLISH 简体中文 日本語 한국어  


애플리케이션 노트  3189

MAX5290-MAX5295, MAX5580-MAX5585, MAX5590-MAX5595 사용자 프로그램 가능한 DAC의 프로그래머 핸드북

개요: 이 프로그래머 핸드북에서는 MAX5290-MAX5295, MAX5580-MAX5585, MAX5590-MAX5595 사용자 프로그램 가능한 D/A 컨버터(DAC)의 타이밍 패턴 및 첨단 프로그래밍 기능에 대해 구체적으로 설명한다.

이 핸드북에서는 MAX5290-MAX5295, MAX5580-MAX5585, MAX5590-MAX5595 사용자 프로그램 가능한 D/A 컨버터(DAC)의 타이밍 패턴 및 첨단 프로그래밍 기능에 대해 설명한다. 이들 디바이스들은 모두 공통의 유연한 3, 4, 5선식 직렬 인터페이스를 공유한다. 인터페이스는 다음과 같은 입력 및 출력으로 구성된다.

  • SCLK: 직렬 클록 입력. 구성에 따라 상승 또는 하강 클록 에지 때 데이터를 클록한다.
  • DIN: 직렬 데이터 입력.
  • CS:액티브 로우 칩 선택. DSP 프레임 동기화 모드를 제외한 모든 모드에서 CS 하강 에지이면 직렬 인터페이스 명령이 시작되고 CS 상승 에지이면 명령이 종료된다.
  • DSP: 파워 온 리셋 시퀀스가 종료될 때 DSP가 샘플링되며, 이 상태에 따라 DIN에서 데이터를 클록하기 위한 SCLK 신호의 액티브 에지를 결정한다. DSP를 DVDD에 연결하면 SCLK의 상승 에지 때 데이터를 클록하고, DGND에 연결하면 SCLK의 하강 에지 때 데이터를 클록한다. DSP는 또한 능동적으로 구동할 수 있다. 이 경우에는 파워 온 리셋 후 첫 DSP 상승 에지 때 DSP 프레임 동기화 모드가 이용된다.
  • UPIO1/UPIO2: 이들 디바이스는 2개의 사용자 프로그래머블 I/O 포트를 제공하며(UPIO1과 UPIO2), 이 두 포트를 리드백(DOUTRB)이나 데이지 체인(DOUTDC0 또는 DOUTDC1)을 비롯해서 직렬 출력 데이터 포트를 위한 다양한 모드로 구성할 수 있다.
타이밍 사양 및 디바이스 구성에 관한 보다 자세한 정보는 MAX5290-MAX5295, MAX5580-MAX5585 또는 MAX5590-MAX5595 데이터 시트를 참조한다.

이들 디바이스는 다음과 같은(한정된 것은 아님) 다양한 구성을 지원한다.

  • 단일 디바이스 쓰기 동작
  • 단일 디바이스 읽기 동작
  • 데이지 체인의 다중 디바이스 쓰기 및 읽기 액세스
  • 다중 디바이스 직접 쓰기 및 읽기 액세스 (DSP 프레임 동기화 모드 비사용)
  • DSP 프레임 동기화 모드로 다중 디바이스 직접 쓰기 및 읽기 액세스
아래에서는 직렬 인터페이스의 성능을 확장할 수 있는 몇 가지 실제 구성사례를 설명하고자 한다.

단일 디바이스 쓰기 동작

이 직렬 인터페이스는 CS, SCLK, DIN 등 3개의 입력을 이용해 쓰기 전용 동작을 지원한다. SCLK 상승 에지 때 데이터를 클록하기 위해서는 DSP를 DVDD에 연결한다. SCLK 하강 에지 때에는 데이터를 클록하기 위해 DSP를 DGND에 연결한다. 파워 온 리셋 사이클이 종료되면서 DSP가 샘플링된 다음에는 DSP 상승 에지가 탐지되거나 디바이스 전원이 차단될 때까지 SCLK 액티브 클록 에지가 선택된다.

그림 1은 상승 에지에서 데이터를 클록할 때 디바이스와 통신하기 위해 필요한 CS, SCLK, DIN 패턴을 나타낸 것이다. CS를 로우로 구동하고 SCLK 상승 에지 때 DIN의 직렬 데이터를 입력 시프트 레지스터로 클록한다. 16의 정수 배수 (예: N*16) SCLK 펄스가 수신된 후 CS가 다시 하이가 되었을 때 데이터 또는 명령 쓰기가 이루어진다.

그림 1. 단일 디바이스 쓰기 - SCLK 상승 에지 때 데이터 클록
더 큰 이미지 보기

그림 1. 단일 디바이스 쓰기 - SCLK 상승 에지 때 데이터 클록

그림 2는 SCLK 하강 에지에서 데이터를 클록할 때 디바이스와 통신하기 위해 필요한 CS, SCLK, DIN 패턴을 나타낸 것이다. CS를 로우로 구동하고 SCLK 하강 에지 때 DIN의 직렬 데이터를 입력 시프트 레지스터로 클록한다. 16의 정수 배수 (예: N*16) SCLK 펄스가 수신된 후 CS가 다시 하이가 되었을 때 데이터 또는 명령 쓰기가 이루어진다. N*16 SCLK 사이클 이전에 CS가 하이가 되면 쓰기가 무시된다.

그림 2. 단일 디바이스 쓰기 - SCLK 하강 에지 때 데이터 클록
더 큰 이미지 보기

그림 2. 단일 디바이스 쓰기 - SCLK 하강 에지 때 데이터 클록

단일 디바이스 읽기 동작

이들 디바이스 제품의 직렬 인터페이스는 읽기 명령을 위해 다양한 옵션을 지원한다. 대부분의 경우에 읽기 명령의 출력 데이터가 8비트이므로 총 명령 시퀀스는 16비트이다.(명령을 위한 8비트와 출력 데이터를 위한 8비트) 이 DAC 데이터의 읽기 동작을 위해서는 인터페이스가 선택된 채널의 입력(12비트) 및 DAC(12비트) 레지스터로부터 데이터를 출력한다. 그러므로 출력 데이터가 24비트이고 총 명령 시퀀스는 32비트이다.

디바이스에서 데이터를 읽기 위해서는 UPIO1 또는 UPIO2를 DOUTRB(리드백을 위한 DOUT)으로 구성한다. 인터페이스가 파워 업 때 DSP 입력을 샘플링해서 DOUTRB로부터 직렬 데이터를 전송하기 위해 어느 클록 에지를 사용할지를 결정하게 된다. 파워 업 때 DSP를 DVDD에 연결하면 SCLK 상승 에지 때 데이터가 클록 인되고 SCLK 하강 에지 때 클록 아웃된다. 파워 업 때 DSP를 DGND에 연결하면 SCLK 하강 에지 때 데이터가 클록 인되고 SCLK 하강 에지 때 클록 아웃된다.

그림 3은 SCLK 상승 에지 때 데이터를 클록할 때 디바이스와 통신하는 데 필요한 CS, SCLK, DIN 패턴을 나타낸 것이다. CS를 로우로 구동하고 SCLK 상승 에지 때 DIN의 8비트 읽기 명령을 입력 시프트 레지스터로 클록한다. 읽기 길이에 따라 다음의 8 또는 24 SCLK 사이클에 DOUTRB에 데이터가 나타난다. 24비트 읽기를 위해서는 DOUTRB로부터 유입되는 최종 2바이트 데이터를 유지하기 위해 8비트 읽기 명령에 이어 2개의 추가적인 NO-OP 명령(0xFF)이 필요하다. DOUTRB의 출력 데이터는 SCLK 하강 에지 때 변경되고 SCLK 상승 에지 때 적용된다. 전체 읽기 동작이 완료될 때까지 CS를 로우로 유지해야 한다.

그림 3. 단일 디바이스 읽기 - SCLK 상승 에지 때 데이터 클록
더 큰 이미지 보기

그림 3. 단일 디바이스 읽기 - SCLK 상승 에지 때 데이터 클록

그림 4는 SCLK 하강 에지 때 데이터를 클록 인 할 때 디바이스와 통신하는 데 필요한 CS, SCLK, DIN 패턴을 나타낸 것이다. CS를 로우로 구동하고 SCLK 하강 에지 때 DIN의 8비트 읽기 명령을 입력 시프트 레지스터로 클록한다. 읽기 길이에 따라 다음의 8 또는 24 SCLK 사이클에 DOUTRB에 데이터가 나타난다. 24비트 읽기는 DOUTRB로부터 유입되는 최종 2바이트 데이터를 유지하기 위해 8비트 읽기 명령에 이어 2개의 추가적인 NO-OP 명령(0xFF)이 필요하다. SCLK 상승 에지 때 DOUTBR의 출력 데이터가 변경되고 SCLK 하강 에지 때 적용된다. 전체 읽기 동작이 완료될 때가지 CS를 로우로 유지해야 한다.

그림 4. 단일 디바이스 읽기 - SCLK 하강 에지 때 데이터 클록
더 큰 이미지 보기

그림 4. 단일 디바이스 읽기 - SCLK 하강 에지 때 데이터 클록

데이지 체인의 다중 디바이스 쓰기 동작

이들 디바이스 제품의 직렬 인터페이스는 다양한 데이지 체인 구성을 지원한다. 상승 또는 하강 클록 에지 때 체인의 디바이스로 데이터가 클록된다. 그러므로 각 클록 에지에서 체인의 이전 디바이스의 직렬 데이터를 제공할 수 있으며, 이를 통해 동일한 클록 위상이나 데이지 체인을 통한 클록 위상 교호를 필요로 하는 애플리케이션에서 유연성을 제공할 수 있다. 클록 구조를 선택하는데 있어서는 다음과 같은 보드 레벨 상의 여러 가지 사항들을 고려해야 한다.
  • 클록 스큐 - 디바이스 A와 디바이스 B 사이에 클록 스큐가 심각할 때는 반대 에지 데이터 전송을 고려할 수 있다 (예: SCLK의 상승 에지일 때 디바이스 A는 나가고 SCLK 하강 에지일 때는 디바이스 B가 들어온다). 이는 클록 스큐에는 효과적이지만 직렬 인터페이스의 최대 클록 속도일 때는 기판 설계를 신중하게 하지 않으면 구현하기가 매우 어렵다.
  • 클록 속도: 최대 클록 속도로 데이지 체인이 반드시 필요할 때는 전체 체인을 통해 공통의 클록 에지를 이용해 데이지 체인을 실행하는 것을 고려할 수 있다. 하지만 이 옵션을 선택할 때는 기판 환경을 신중하게 설계해야 한다. 데이지 체인의 적절한 동작을 위해서는 긴 데이터 경로, 심각한 디바이스 대 디바이스 클록 스큐, 기판 조건의 큰 폭의 변동(온도, 공급 전압 등) 등을 피해야 한다.
  • 클록 듀티 사이클 - 데이지 체인의 교번(alternating) 클록 구조는 한 디바이스에서 다른 디바이스로 데이터를 전달할 때 절반의 클록 간격을 이용하기 때문에 클록 신호의 해당 듀티 사이클을 이용한다. 그렇지만 신중하게 설계하지 않으면 클록이 느려지거나 듀티 사이클이 매우 낮거나 높아져 데이지 체인이 실패할 수 있다.
  • 느린 클록 또는 데이터 에지 - 데이지 체인에 부적절한 클록 신호 구동을 이용하면 상승 또는 하강 시간이 느려질 수 있다. 이는 특수한 경우의 클록 스큐로, 클록 이벤트가 데이지 체인의 각 디바이스에 각기 다른 시간으로 도착한다.
UPIO1 또는 UPIO2를 DOUTDC0(데이지 체인 모드 0을 위한 DOUT)이나 DOUTDC1(데이지 체인 모드 1을 위한 DOUT)으로 구성한다. 모드 0이면 SCLK의 하강 에지 때 DOUTDC0의 데이터가 변경되고 SCLK 상승 에지 때 적용된다. 모드 1이면 SCLK 상승 에지 때 DOUTDC1의 데이터가 변경되고 SCLK 하강 에지 때 적용된다.

데이지 체인에서는 체인의 첫 디바이스가 버스 마스터로부터 DIN을 취한다. 이후 디바이스는 앞 디바이스의 DOUTDC_ 출력으로부터 DIN을 취한다. 디바이스 A가 데이지 체인 데이터를 직렬 인터페이스를 통해 디바이스 B로 전달하기 위해서는 디바이스 A의 CS 신호가 16비트 명령 시퀀스를 수신한 후에 로우(상승 에지가 아니라)를 유지해야 한다. DOUTDC_로 클록 아웃되는 데이터는 16 클록 사이클이 지연된 후 DIN으로 클록 인되는 데이터와 동일하다.

데이지 체인의 모든 디바이스는 CS 상승 에지 때 직렬 레지스터에 저장된 쓰기 명령을 수행한다. (읽기 명령에 관해서는 "데이지 체인과 리드백의 상호작용" 부분 참조). 다음 쓰기 명령이 클록될 때까지 CS 상승 에지가 발생하지 않으면(CS가 로우 유지) 새로운 쓰기 명령은 입력 시프트 레지스터의 이전 쓰기 명령에 겹쳐쓰기가 된다. 그러므로 상태 변경 없이 이러한 체인 안에서 한 디바이스에서 다른 디바이스로 데이터를 전달할 수 있는 것이다. 이러한 영향을 받으면 안되는 다른 디바이스에서는 NO-OP(0xFF) 명령을 적용하면 된다.

또한 출력 클록 에지와 입력 클록 에지 모두 성공적인 데이지 체인을 위해 데이터를 15.5, 16 또는 16.5 클록 간격으로 지연시키는 것이 가능하다. CPOL 및 CPHA 제어 비트가 특정 디바이스의 DIN에서 DOUTDC_에 지연을 설정해서 앞 디바이스와 뒤 디바이스의 클록 구성에 관계 없이 전체 체인에 걸쳐 올바른 동작이 가능하도록 한다.

CPOL과 CPHA는 SPI™ 인터페이스에 이용되는 것과 동일하다.

  • CPOL은 클록 극성을 기술한다
  • CPHA는 특정 시퀀스에서 첫 액티브 클록 에지에 앞서 리딩 클록 에지가 있는지를 기술한다
프로그램 가능한 CPOL과 CPHA 비트가 DSP 입력과 결합해서 DOUTDC1 또는 DOUTDC0의 직렬 데이지 체인 출력 데이터가 해당 시간 동안 지연되도록 한다. 표 1 참조.

표 1. DSP, CPOL 및 CPHA 설정
DSP CPOL CPHA DOUTDC1
(ALWAYS CLOCKED
OUT ON RISING EDGE
OF SCLK)*
DOUTDC0 (ALWAYS CLOCKED
OUT ON FALLING
EDGE OF SCLK)*
COMMENT
DGND 0 1 DIN clocked in on falling edge of SCLK. Power-up state of CPOL/CPHA for this DSP connection.
DVDD 0 0 DIN clocked in on rising edge of SLCK. Power-up state of CPOL/CPHA for this DSP connection.
DGND 0 0 Invalid Invalid This combination is unused.
DGND 0 1 Delay of 15.5 clocks from SCLK falling edge (active edge for DIN) to SCLK rising edge (active edge for DOUTDC1) Delay of 15 clocks from SCLK falling edge (active edge for DIN) to SCLK falling edge (active edge for DOUTDC0)
DGND 1 0 Delay of 15.5 clocks from SCLK falling edge (active edge for DIN) to SCLK rising (active edge for DOUTDC1) Delay of 16 clocks from SCLK falling edge (active edge for DIN) to SCLK falling edge (active edge for DOUTDC0)
DGND 1 1 Invalid Invalid This combination is unused.
DVDD 0 0 Delay of 16 clocks from SCLK rising (active edge for DIN) to SCLK rising (active edge for DOUTDC1) Delay of 15.5 clocks from SCLK rising (active edge for DIN) to SCLK falling (active edge for DOUTDC0)
DVDD 0 1 Invalid Invalid This combination is unused.
DVDD 1 0 Invalid Invalid This combination is unused.
DVDD 1 1 Delay of 15 clocks from SCLK rising (active edge for DIN) to SCLK rising (active edge for DOUTDC1) Delay of 15.5 clocks from SCLK rising (active edge for DIN) to SCLK falling (active edge for DOUTDC0)

*SCLK의 해당(DOUTDC0의 경우 상승 및 DOUTDC1의 경우 하강) 에지에서 데이터가 언제나 DOUTDC_로 클록 아웃된다.

그림 5는 한 데이지 체인 구성의 다중 디바이스에 쓰기 동작을 위한 CS, SCLK, DIN, DOUTDC0 패턴을 나타낸 것이다. 여기서는 체인 안에 있는 각 디바이스에서 SCLK 상승 에지일 때 DIN이 클록 인되고 DOUTDC0을 이용해서 한 디바이스에서 다른 디바이스로 데이터를 전달한다.

그림 5. 데이지 체인 - SCLK 상승 에지 때 데이터 클록
더 큰 이미지 보기

그림 5. 데이지 체인 - SCLK 상승 에지 때 데이터 클록

데이지 체인 쓰기 동작을 수행하기 위해서는 CS를 로우로 구동해서 데이지 체인의 모든 디바이스를 선택한다. 그러면 버스 마스터의 데이터나 이전 디바이스의 DOUTDC0이 직렬 연결된 각 캐스케이드된 디바이스의 DIN으로 클록 인된다. CS를 로우로 유지하면 데이터가 입력 시프트 레지스터로 전달되는 동안 디바이스가 영향을 받지 않는다. 데이터가 데이지 체인을 통과했으면 CS를 하이로 구동해서 모든 데이지 체인 디바이스의 입력 시프트 레지스터에 저장된 DAC 명령을 동시에 로딩한다. 일단 16(예: N*16) SCLK의 정수 곱으로 펄스가 발생했다고 다시 가정하고, 이 때도 N*16 SCLK 사이클 이전에 CS가 하이가 되면 데이지 체인의 모든 디바이스가 쓰기를 무시한다.

그림 6은 데이지 체인의 하나의 특정한 구성에서 다중 디바이스를 쓰기 위한 CS, SCLK, DIN, DOUTDC1 패턴을 나타낸 것이다. 여기서는 체인의 각 디바이스의 SCLK 하강 에지 때 DIN이 클록되고, DOUTDC1을 이용해서 한 디바이스에서 다음 디바이스로 데이터를 전달한다.

그림 6. 데이지 체인 - SCLK 하강 에지 때 데이터 클록 인
더 큰 이미지 보기

그림 6. 데이지 체인 - SCLK 하강 에지 때 데이터 클록 인

데이지 체인 쓰기 동작을 수행하기 위해서는 CS를 로우로 구동해서 데이지 체인의 모든 디바이스를 선택한다. 그러면 버스 마스터로부터의 데이터나 이전 디바이스의 DOUTDC1이 연결된 디바이스의 DIN으로 클록된다. CS를 로우로 유지하면 데이터가 입력 시프트 레지스터를 통과할 때 디바이스가 영향을 받지 않는다. 데이터가 데이지 체인을 통과했으면 CS를 하이로 구동해서 데이지 체인의 모든 디바이스의 DAC 명령을 동시에 구동한다. 일단 16(예: N*16) SCLK의 정수 곱으로 펄스가 발생했다고 다시 가정하고, 이 때도 N*16 SCLK 사이클 이전에 CS가 하이가 되면 데이지 체인의 모든 디바이스가 쓰기를 무시한다.

데이지 체인 예
다음 예는 3개 디바이스(A, B, C)로 구성된 데이지 체인이다. 디바이스 A가 버스 마스터에 가장 가깝고, 각각의 디바이스는 다른 두 개와는 달리 구성된다.

  1. >CS를 로우로 구동해서 디바이스 A를 구성한다. 버스 마스터에서 디바이스 A로 명령을 전송해서 UPIO1을 DOUTDC0으로 구성한다(COMMAND 1). 이 명령은 디바이스 A의 입력 시프트 레지스터에 저장된다. CS를 다시 하이로 구동해서 디바이스 A의 입력 시프트 레지스터에 저장된 명령을 실행한다. 그러면 디바이스 A가 구성된 것이다.
  2. CS를 로우로 구동해서 디바이스 B를 구성한다. 버스 마스터에서 디바이스 A를 통과해 명령을 전송함으로써 디바이스 B의 UPIO2를 DOUTDC1을 구성한다(COMMAND 2). 그러면 디바이스 B가 이 16비트 쓰기에 따라 클록 사이클에 즉시 업데이트된다.
  3. 버스 마스터에서 디바이스 A로 명령을 전송해 입력 시프트 레지스터 데이터를 겹쳐쓰기 하면 디바이스 A의 상태가 변경되지 않는다 (COMMAND 3). 특정한 동작을 원하면(UPIO1 구성, 비트 속도 변경 등) 디바이스 A에 NO-OP 대신에 어느 명령이나 이용할 수 있다. 디바이스 B의 입력 시프트 레지스터가 이 16 클록 사이클에 이전 명령으로 업데이트된다. CS를 다시 하이로 구동해서 디바이스 A와 B의 입력 시프트 레지스터에 저장된 명령을 실행한다. 그러면 디바이스 A와 B가 구성된 것이다.
  4. CS를 로우로 구동해서 디바이스 C를 구성한다. 버스 마스터에서 디바이스 A 및 B를 거쳐 명령을 전송해서 디바이스 C의 UPIO1을 DOUTDC1을 구성한다 (COMMAND 4).
  5. 버스 마스터에서 디바이스 A를 거쳐 명령을 전송해 디바이스 B의 입력 시프트 레지스터 데이터를 겹쳐쓰기 함으로써 디바이스 B의 상태가 변경되지 않도록 한다(COMMAND 5). 그러면 디바이스 B의 입력 시프트 레지스터가 업데이트된다.
  6. 버스 마스터에서 디바이스 A로 명령을 전송해 디바이스 A의 입력 시프트 레지스터 데이터를 겹쳐쓰기 함으로써 디바이스 A의 상태가 변경되지 않도록 한다(COMMAND 6). 그러면 디바이스 B의 입력 시프트 레지스터가 6단계 명령으로 업데이트된다. 디바이스 C의 입력 쉬프트 레지스터는 5단계의 명령으로 업데이트된다. CS를 다시 하이로 구동하면 디바이스 A, B, C의 입력 시프트 레지스터에 저장된 명령이 실행된다.
표 2. 디바이스 A, B, C의 입력 시프트 레지스터 내용 - 데이지 체인 예
STEP DEVICE A
(FROM BUS
MASTER)
DEVICE B
(FROM DOUTDC_
OF DEVICE A)
DEVICE C
(FROM DOUTDC_
OF DEVICE B)
RISING EDGE OF CS?
1 COMMAND 1 - - YES
2 COMMAND 2 - - NO
3 COMMAND 3 COMMAND 2 - YES
4 COMMAND 4 - - NO
5 COMMAND 5 COMMAND 4 - NO
6 COMMAND 6 COMMAND 5 COMMAND 4 YES

데이지 체인과 리드백의 상호작용

이들 디바이스의 직렬 인터페이스는 2개의 UPIO 포트를 이용한다. 그러므로 하나는 리드백(DOUTRB)으로 구성하고 다른 하나는 데이지 체인(DOUTDC1 또는 DOUTDC0)에 이용할 수 있다. 이는 매우 효과적인 조합이며 대부분의 경우에 리드백과 데이지 체인이 정상적으로 동작한다. 두 가지 예에서 보면 이러한 구성이 몇가지 결과를 야기하는 것을 알 수 있다.

데이터 리드백을 이용한 데이지 체인 예
이 예는 A와 B의 두 디바이스를 이용하며, 디바이스 A가 버스 마스터에 가깝다. 디바이스 A가 DOUTRB와 DOUTDC_를 이용하고 디바이스 B가 DOUTRB를 이용한다면 다음과 같은 시퀀스가 적절할 것이다.

  1. CS를 로우로 구동한다. 버스 마스터에서 디바이스 A로 8비트 읽기 명령(COMMAND 1)을 전송한다. CS를 로우로 유지하며, CS를 다시 하이로 전환하지 않는다.
  2. 버스 마스터에서 디바이스 A로 또 다른 읽기 또는 쓰기 명령(COMMAND 2)을 전송한다. 디바이스 B의 입력 시프트 레지스터가 COMMAND 1로 업데이트된다. COMMAND 1로부터의 유효 출력 데이터가 디바이스 A의 DOUTRB에 나타난다. CS를 다시 하이로 구동해서 명령 시퀀스를 종료한다.
  3. COMMAND 1로부터의 유효 출력 데이터가 디바이스 B의 DOUTRB에 나타난다. 디바이스 A가 COMMAND 2를 실행한다.
이 경우에는 디바이스 B를 향하는 8비트 읽기 명령이 디바이스 A를 통과한다. 명령이 디바이스 A를 통과할 때 디바이스 A의 DOUTRB 포트가 읽기 명령에 응답한다(유효 읽기 데이터 제공). 그렇지만 읽기 명령이 디바이스 B로 전달되는 것을 막지 않으며 디바이스 B는 유효 데이터로 읽기 명령에 응답하기도 한다.

두 번째 상호작용에 대한 예는 디바이스 A(버스 마스터에 가까운)만의 24비트 DAC 읽기에 관한 것이다. 데이지 체인의 첫 디바이스를 제외하고 24비트 읽기는 데이지 체인과 호환되지 않는다. 이는 데이지 체인의 첫 디바이스가 데이터를 DOUTDC_로 전달할 때 24비트 읽기를 NO-OP로 변환하기 때문이다. 24비트 읽기는 또한 총 32비트 명령 시퀀스이므로 데이지 체인에 필요한 16비트 명령 시퀀스와 호환되지 않는다.

다중 디바이스 직접 쓰기 및 읽기 액세스

그림 7그림 8에서 볼 수 있듯이 공유 3+N 와이어 직렬 인터페이스를 통해 다중 디바이스 쓰기 및 읽기가 가능하다. N은 직렬 인터페이스를 공유하는 디바이스의 수이며, 각 디바이스가 각각의 CS를 이용하므로 각각의 칩이 선택한 라인의 수이기도 하다. 쓰기 및 읽기 동작은 앞에서 설명한 프로토콜을 따른다. SCLK, DIN, DOUTRB 신호는 모든 디바이스에 공통적이다. 이 기법과 데이지 체인의 두 가지 큰 차이점은 1) 각 디바이스가 각각의 CS를 이용하고 2) DIN이 모든 디바이스에 공통적이라는 것이다.

공유 직렬 인터페이스에 다중 디바이스를 연결할 때는 다음 사항을 고려해야 한다.

  • 다중 칩 선택을 동시에 선언함으로써 단일 쓰기 동작을 이용해 동일 데이터를 다중 디바이스에 브로드캐스팅할 수 있다.
  • 충돌을 피하기 위해 데이터 리드백 때는 한 번에 한 디바이스의 DOUTRB만이 액티브 될 수 있다. 선택되지 않은 디바이스에서는 DOUTRB가 하이 임피던스가 되어 다른 디바이스가 버스를 구동할 수 있도록 해 준다.
  • 다중 디바이스가 개별 신호(SCLK, DIN, DOUTRB)에 연결됨으로써 발생되는 로딩이 직렬 인터페이스 속도를 저하시킨다. 속도 저하는 PCB 레이아웃이나 공유 버스의 디바이스 수 같은 외부적인 요인에 따라 달라진다.
  • CS 라인은 마이크로컨트롤러나 DSP 포트로부터 구동되므로 다중 디바이스를 액세스하기 위해서는 소프트웨어 오버헤드가 야기된다. 이는 CS가 영구적으로 로우로 연결되어 있거나 DSP의 하드웨어 기반 프레임 동기화 신호에 의해 제어되는 단일 DAC 애플리케이션과는 대조적인 것이다.
그림 7. 다중 디바이스 읽기 - SCLK 상승 에지 때 데이터 클록
더 큰 이미지 보기

그림 7. 다중 디바이스 읽기 - SCLK 상승 에지 때 데이터 클록

그림 8. 다중 디바이스 읽기 - SCLK 하강 에지 때 데이터 클록
더 큰 이미지 보기

그림 8. 다중 디바이스 읽기 - SCLK 하강 에지 때 데이터 클록

DSP 프레임 동기화 모드

DSP 프레임 동기화 모드의 읽기 및 쓰기 동작은 앞에서 설명한 프로토콜과 유사하나 두 가지 점이 다르다. 첫째는 쓰기 동작의 시작을 CS가 아닌 DSP의 하강 에지를 기준으로 한다는 것이다(DSP 프레임 동기화 모드에서 디바이스를 선택하기 위해서는 CS가 로우여야 한다). 둘째는 16비트 DAC 데이터 또는 명령 쓰기가 DSP 하강 에지 후 16 SCLK 사이클에 적용된다는 것이다. 다른 모드에서 명령을 실행하기 위해 필요한 CS 상승 에지 조건은 DSP 프레임 동기화 모드에서는 필요하지 않다.

DSP 프레임 동기화 모드는 데이지 체인과 호환되지 않는다. 디바이스가 특정 16비트 데이터를 다음 디바이스로 전달하는 것이 아니라 그 데이터에 대해 작용하도록 명령하기 위해 CS 상승 에지를 이용할 수 없기 때문이다.

DSP 프레임 동기화 모드를 이용한 다중 디바이스 읽기 및 쓰기 동작은 공유 4+N 와이어 직렬 인터페이스를 통해 이루어진다. N은 직렬 인터페이스를 공유하는 디바이스의 수이며, 각 디바이스가 하나의 라인을 이용하므로 칩 선택 라인의 수이기도 하다. 파워 업 후 DSP의 첫 상승 에지 때 디바이스가 DSP 프레임 동기화 모드가 된다. 이 모드를 방지하기 위해서는 앞에서 설명했듯이 파워 업 때 DSP를 DVDD나 DGND에 연결한다.

DSP 프레임 동기화 모드의 가장 큰 이점은 단일 하드웨어 신호(프레임 동기화)가 직렬 버스에서 다중 디바이스의 DSP 액세스 타이밍을 제어한다는 것이다. 이것이 성능상의 이점인 것은 칩 선택을 제어하는 소프트웨어가 더 이상 DAC 동작의 타이밍을 결정하지 않기 때문이다. 이러한 특성을 활용한 애플리케이션이 바로 공통의 프레임 동기화 신호가 동일한 속도에서 DAC 및 ADC를 동시에 구동하는 다중칩 CODEC이다. DSP 소프트웨어가 DAC 데이터로 버퍼를 채우고 단일 샷으로 ADC 데이터를 가득 채울 수 있기 때문에 직렬 인터페이스 하드웨어가 전이중 데이터 전송을 처리할 수 있다.

그림 9. DSP 프레임 동기화 모드 - 다중 읽기
더 큰 이미지 보기

그림 9. DSP 프레임 동기화 모드 - 다중 읽기


의견을 보내주세요!
위 내용이 도움이 되셨나요?
여러분의 의견을 기다립니다 — Maxim은 보내주신 정정이나 제안사항을 반영하고 있습니다. 이 페이지를 평가하고 의견을 보내주십시오.


자동 업데이트
관심있는 분야의 애플리케이션 노트가 나올 때 자동으로 업데이트 받고 싶으세요? 그렇다면 EE-Mail™을 신청하십시오.



추가 정보  APP 3189: May 04, 2005
MAX5290 버퍼링된 고속 설정, 듀얼, 12/10/8비트 전압 출력 DAC 전체 데이터 시트
(PDF, 852kB)
무료 샘플
MAX5291 버퍼링된 고속 설정, 듀얼, 12/10/8비트 전압 출력 DAC 전체 데이터 시트
(PDF, 852kB)
무료 샘플
MAX5292 버퍼링된 고속 설정, 듀얼, 12/10/8비트 전압 출력 DAC 전체 데이터 시트
(PDF, 852kB)
무료 샘플
MAX5293 버퍼링된 고속 설정, 듀얼, 12/10/8비트 전압 출력 DAC 전체 데이터 시트
(PDF, 852kB)
무료 샘플
MAX5294 버퍼링된 고속 설정, 듀얼, 12/10/8비트 전압 출력 DAC 전체 데이터 시트
(PDF, 852kB)
무료 샘플
MAX5295 버퍼링된 고속 설정, 듀얼, 12/10/8비트 전압 출력 DAC 전체 데이터 시트
(PDF, 852kB)
무료 샘플
MAX5580 버퍼링된 고속 설정, 쿼드, 12/10/8비트 전압 출력 DAC 전체 데이터 시트
(PDF, 1.0MB)
무료 샘플
MAX5581 버퍼링된 고속 설정, 쿼드, 12/10/8비트 전압 출력 DAC 전체 데이터 시트
(PDF, 1.0MB)
무료 샘플
MAX5582 버퍼링된 고속 설정, 쿼드, 12/10/8비트 전압 출력 DAC 전체 데이터 시트
(PDF, 1.0MB)
무료 샘플
MAX5583 버퍼링된 고속 설정, 쿼드, 12/10/8비트 전압 출력 DAC 전체 데이터 시트
(PDF, 1.0MB)
무료 샘플
MAX5584 버퍼링된 고속 설정, 쿼드, 12/10/8비트 전압 출력 DAC 전체 데이터 시트
(PDF, 1.0MB)
무료 샘플
MAX5585 버퍼링된 고속 설정, 쿼드, 12/10/8비트 전압 출력 DAC 전체 데이터 시트
(PDF, 1.0MB)
무료 샘플
MAX5590 버퍼링된 고속 설정, 8채널, 12/10/8비트 전압 출력 DAC 전체 데이터 시트
(PDF, 892kB)
무료 샘플
MAX5591 버퍼링된 고속 설정, 8채널, 12/10/8비트 전압 출력 DAC 전체 데이터 시트
(PDF, 892kB)
무료 샘플
MAX5592 버퍼링된 고속 설정, 8채널, 12/10/8비트 전압 출력 DAC 전체 데이터 시트
(PDF, 892kB)
무료 샘플
MAX5593 버퍼링된 고속 설정, 8채널, 12/10/8비트 전압 출력 DAC 전체 데이터 시트
(PDF, 892kB)
무료 샘플
MAX5594 버퍼링된 고속 설정, 8채널, 12/10/8비트 전압 출력 DAC 전체 데이터 시트
(PDF, 892kB)
무료 샘플
MAX5595 버퍼링된 고속 설정, 8채널, 12/10/8비트 전압 출력 DAC 전체 데이터 시트
(PDF, 892kB)
무료 샘플
 

다운로드, PDF 형식다운로드, PDF 형식 (186kB)
 AN3189, AN 3189, APP3189, Appnote3189, Appnote 3189



         


      개인정보보호 정책    법적 고지

      Copyright © 2008 by Maxim Integrated Products, Dallas Semiconductor