ENGLISH 简体中文 日本語 한국어  

    로그인 | 회원가입 


   
 
키워드나 부품번호를 입력해주세요    




애플리케이션 노트 3947

SPI 소자의 데이지 체이닝 (Daisy-Chaining)

개요: 단일 마스터와 다중 슬레이브를 갖는 일반적인 SPI 시스템에서 전용 칩 선택 신호는 개별 슬레이브를 주소 지정하는 데 사용된다. 슬레이브 수가 증가함에 따라 칩 선택 라인의 수도 증가한다. 이러한 상황에서 시스템 보드 레이아웃은 어려운 과제가 될 수 있다.

한 가지 레이아웃 대안은 데이지 체인 방식 연결이다. 이 글에서는 데이지 체인 방식으로 연결된 SPI 시스템을 자세히 살펴보고 소프트웨어를 사용하여 일련의 슬레이브를 통해 명령을 전달하는 방법을 설명한다.


표준 SPI™/QSPI™/MICROWIRE™ 호환 마이크로컨트롤러는 3-wire 또는 4-wire 직렬 인터페이스를 통해 슬레이브 소자와 통신한다. 일반적으로 인터페이스에는 칩 선택 신호(액티브 로우 CS), 직렬 클록(SCLK), 데이터 입력 신호(DIN)를 비롯하여 때로는 데이터 출력 신호(DOUT)가 포함된다. 보통 I²C 시스템에서와 같이 개별적으로 주소 지정이 가능한 소자는 버스 상에서 단일 소자와 간편하게 통신한다.

기본 직렬 통신 인터페이스

대부분의 SPI 소자는 개별적으로 주소를 지정할 수 없다. 따라서 버스 상에서 이들 소자와 단일 소자가 통신하기 위해서는 추가적인 하드웨어 또는 소프트웨어 구성이 필요하다. 그림 1은 하나의 마이크로컨트롤러가 여러 개의 슬레이브 소자와 통신하는 시스템을 보여준다.

Figure 1. Microcontroller with independent chip selects for multiple slave devices.
그림 1. 다중 슬레이브 소자에 대한 독립적인 칩 선택을 갖는 마이크로컨트롤러

위의 시스템에서 마이크로컨트롤러는 하나의 직렬 클록 출력(SCK)과 하나의 마스터-출력/슬레이브-입력 라인(MOSI)을 사용하여 모든 슬레이브에게 명령한다. 마이크로컨트롤러는 개별적으로 주소를 지정할 수 있도록 각 슬레이브 소자에 독립적인 슬레이브 선택 신호(액티브 로우 SS_)를 할당한다. 모든 슬레이브가 단일 클록 및 데이터 라인을 공유하기 때문에 액티브 로우 CS 입력이 로우로 어서트된 슬레이브만 승인을 받고 직렬 클록 및 데이터 라인 상의 활동에 응답한다. 이러한 시스템은 시스템에 매우 적은 수의 슬레이브 소자가 존재할 때 구현이 용이하다. 그러나 많은 슬레이브 소자를 갖는 시스템의 경우에는 마이크로컨트롤러가 슬레이브 수만큼 많은 액티브 로우 SS_ 출력을 필요로 한다. 이 구조는 하드웨어와 레이아웃 복잡성을 증가시킨다.

데이지 체인 방식

하드웨어 제약으로 인해 그림 1의 방법은 비실용적이고 구현하기 어렵다. 직렬 인터페이스 애플리케이션을 위한 대안적인 방법은 직렬로 연결된 소자를 통해 명령을 전달하는 데이지 체인 방식이다. 그림 2는 데이지 체인 구성의 N-소자 시스템을 보여준다.

Figure 2. Microcontroller with multiple daisy-chained slave devices.
그림 2. 여러 개의 슬레이브 소자가 데이지 체인 방식으로 연결된 마이크로컨트롤러

단일 액티브 로우 SS (또는 액티브 로우 CS) 신호는 모든 슬레이브의 액티브 로우 CS 입력을 제어하며 모든 슬레이브는 동일한 클록 신호를 받아들인다. 체인의 첫 번째 슬레이브(SLAVE 1)만 마이크로컨트롤러로부터 명령 데이터를 직접 수신한다. 네트워크의 다른 모든 슬레이브는 체인의 바로 앞에 있는 슬레이브의 DOUT 출력으로부터 DIN 데이터를 수신한다.

데이지 체인이 성공적으로 동작하려면 슬레이브는 주어진 명령 사이클 동안 (하나의 명령으로 클록킹하는 데 필요한 클록 펄스의 수에 의해 정의) DIN에서 명령을 입력하고 이어지는 명령 사이클 동안 DOUT에서 동일한 명령을 출력할 수 있어야 한다. 간단히 말하면 1개 명령 사이클의 DIN-to-DOUT 지연이 존재한다. 더욱이 슬레이브는 액티브 로우 CS의 상승 에지에 쓰여진 명령만 실행한다. 이것은 액티브 로우 CS가 로우 상태를 유지하는 한 슬레이브가 명령을 무시하고 다음 명령 사이클의 DOUT에서 이를 출력한다는 것을 의미한다. 주어진 명령 사이클 후 액티브 로우 CS가 하이가 되면 모든 슬레이브가 해당 DIN 입력에 쓰여진 명령만 실행한다. 액티브 로우 CS가 하이가 되면 데이터는 DOUT에서 출력이 아니다. 이러한 과정은 체인의 모든 슬레이브가 다른 명령을 실행할 수 있게 한다. 이러한 데이지 체인 요구사항이 만족되는 한 마이크로컨트롤러는 네트워크의 모든 슬레이브를 제어하는 데 단 3개의 (액티브 로우 SS, SCK, MOSI) 신호만 필요로 한다.

데이지 체인 구현 방법

데이지 체인 방식으로 연결된 시스템(그림 2)에서 SLAVE 1은 마이크로컨트롤러부터 직접 데이터를 수신한다. 이 데이터는 SLAVE 1의 내부 시프트 레지스터에 클록 입력된다. 액티브 로우 CS(또는 액티브 로우 SS)가 로우 상태를 유지하는 한 이 데이터는 SLAVE 1의 DOUT 출력까지 전달된다. SLAVE 1의 DOUT는 SLAVE 2의 DIN으로 가며, 따라서 데이터가 SLAVE의 DOUT 출력에 나타날 때 데이터는 SLAVE 2의 내부 시프트 레지스터에 클록 입력된다. SLAVE 2가 SLAVE 1로부터 데이터를 수신할 때 동시에 마이크로컨트롤러는 다른 명령을 SLAVE 1에 전송할 수 있다. 이 새 명령은 SLAVE 1의 시프트 레지스터에서 이전 데이터를 덮어쓴다. 액티브 로우 CS가 로우 상태를 유지하는 한 각각의 슬레이브 소자가 해당 명령을 수신할 때까지 데이터는 전체 데이터 체인을 통과한다. 각 슬레이브의 시프트 레지스터에 로드된 명령은 액티브 로우 CS의 상승 에지에서 실행된다. 다음의 예에서는 MAX5233 및 MAX5290을 사용하여 데이지 체인 방식을 시연한다.

예제 회로 #1

그림 3은 데이지 체인 구성으로 연결된 3개의 MAX5233 IC를 보여준다. MAX5233은 듀얼, 10비트 DAC(2개의 DAC 채널 A와 B 포함)이다. RSTV는 VDD에 연결되며 아날로그 출력은 최대 미드 스케일까지 출력한다.

Figure 3. Daisy-chain circuit #1.
그림 3. 데이지 체인 회로 #1

그림 4는 IC1(A1 및 B1), IC2(A2 및 B2), IC3(A3 및 B3)의 출력을 각각 제로, 미드 및 풀 스케일로 설정하는 명령 시퀀스를 보여준다. 이 예에서는 다음 명령이 사용된다.
  • 0x7FF8—loads IC3 DAC 레지스터에 풀 스케일 데이터를 로드하고 두 출력(A3, B3)을 모두 풀 스케일로 설정한다.
  • 0x7000—loads IC2 DAC 레지스터에 미드 스케일 데이터를 로드하고 두 출력(A2, B2)을 모두 미드 스케일로 설정한다.
  • 0x6000—loads IC1 DAC 레지스터에 제로 스케일 데이터를 로드하고 두 출력(A1, B1)을 모두 제로 스케일로 설정한다.
Figure 4. Circuit #1—Command Sequence A.
그림 4. 회로 #1— 명령 시퀀스 A

첫 번째 명령 사이클 동안 (16개 SCLK 펄스 세트) 0x7FF8이 IC1의 시프트 레지스터에 로드된다. 액티브 로우 CS가 로우 상태를 유지하는 동안 이 데이터는 IC1을 통과하여 다음 명령 사이클 동안 DOUT1에서 출력이 된다. 이 두 번째 명령 사이클 동안 DOUT1에서 출력되는 데이터는 DIN2로 직접 들어가며 0x7FF8은 IC2의 시프트 레지스터에 로드된다. 동시에 새로운 명령 0x7000이 IC1의 시프트 레지스터에 로드되어 이전 명령을 덮어쓴다.

세 번째 명령 사이클에서 첫 번째 명령 0x7FF8은 IC3의 시프트 레지스터에 로드된다. 두 번째 명령 0x7000은 IC2에 로드되고 IC1은 새로운 명령 0x6000을 수신한다. 3개의 모든 IC는 이제 해당 시프트 레지스터에서 데이지 체인을 통해 수신된 각각의 명령을 갖는다. 액티브 로우 CS가 하이가 되면 로드된 명령이 실행되고 A1 및 B1은 제로 스케일로, A2 및 B2는 미드 스케일로, A3 및 B3은 풀 스케일로 설정된다.

그림 5는 보다 복잡한 명령 시퀀스를 보여준다. 다음 명령이 사용된다(자세한 내용은 MAX5233 데이터 시트 참조).
  • 0x3FF8—입력 레지스터 A에 풀 스케일 데이터를 로드하고 DAC 레지스터와 출력은 변하지 않는다.
  • 0x3000—입력 레지스터 A에 미드 스케일 데이터를 로드하고 DAC 레지스터 및 출력은 변하지 않는다.
  • 0x2000—입력 레지스터 A에 제로 스케일 데이터를 로드하고 DAC 레지스터 및 출력은 변하지 않는다.
  • 0xBFF8—입력 레지스터 B에 풀 스케일 데이터를 로드하고 DAC 레지스터 및 출력은 변하지 않는다.
  • 0xB000—입력 레지스터 B에 미드 스케일 데이터를 로드하고 DAC 레지스터 및 출력은 변하지 않는다.
  • 0xA000—입력 레지스터 B에 제로 스케일 데이터를 로드하며 DAC 레지스터 및 출력은 변하지 않는다.
  • 0x0000—NO-OP
Figure 5. Circuit #1—Command Sequence B.
그림 5. 회로 #1— 명령 시퀀스 B

처음 3개의 명령 사이클 동안 데이지 체인의 3개 IC는 각각 해당 시프트 레지스터에서 명령을 수신한다. IC1, IC2, IC3에 대한 명령은 각각 0xB000, 0xBFF8, 0xBFF8이다. 이들 명령은 액티브 로우 CS의 상승 에지에서 실행된다(첫 번째 실행). 첫 번째 실행 후 IC1, IC2, IC3의 입력 레지스터 B에는 각각 미드 스케일, 풀 스케일, 풀 스케일을 위한 데이터가 로드된다. 이 시점에서 각 IC의 DAC 레지스터는 변하지 않기 때문에 B1, B2, B3은 변하지 않는다.

다음 3개 명령 사이클에서 입력 레지스터 A를 로드하는 명령만 각 IC의 시프트 레지스터에 쓰여진다. DAC 레지스터 A 및 출력은 변하지 않는다. 액티브 로우 CS의 상승 에지에서 IC1, IC2, IC3의 입력 레지스터 A에 각각 풀 스케일, 제로 스케일, 미드 스케일을 위한 데이터가 로드된다. 이 시점에서는 입력 레지스터 A만 업데이트되고 DAC 레지스터 A는 업데이트되지 않았으므로 A1, A2, A3은 변하지 않는다.

두 번째 실행에 이은 하드웨어 액티브 로우 LDAC 명령(액티브 로우 LDAC를 로우로 구동)은 모든 DAC 레지스터에 해당 입력 레지스터의 데이터를 로드한다. DAC 출력은 해당 DAC 레지스터의 데이터로 업데이트된다. A1, B2, B3은 풀 스케일이 된다. A2는 제로 스케일로 강하되고 A3은 미드 스케일에 그대로 남는다.

세 번째 명령 사이클 동안 IC2 및 IC3에 NO-OP 명령(0x0000)이 전송되는 동안 IC1은 0xA000 명령을 수신하여 입력 레지스터 B에 제로 스케일 데이터를 로드한다. 세 번째 실행 후 모든 출력은 변하지 않는다.

네 번째 명령 사이클에서 IC1 및 IC2가 NO-OP 명령을 수신하는 동안 IC3은 0x3FF8을 수신한다. 네 번째 실행 후 IC3의 입력 레지스터 A에 풀 스케일 데이터가 로드된다. 다른 하드웨어 액티브 로우 LDAC 명령은 DAC 레지스터에 입력 레지스터의 데이터를 로드한다. 이에 따라 B1은 미드 스케일에서 제로 스케일로, A3은 미드 스케일에서 풀 스케일로 변한다. 다른 모든 출력은 변하지 않는다.

표 1. 시퀀스 B에서 파워 업 및 하드웨어 액티브 로우 LDAC 명령 후 IC1, IC2, IC3의 출력 상태
  Analog Output Name
State of Output
After Power-Up (RSTV = VDD) First Hardware Active-Low LDAC Second Hardware Active-Low LDAC
IC1 A1 Midscale Full scale Full scale
B1 Midscale Midscale Zero scale
IC2 A2 Midscale Zero scale Zero scale
B2 Midscale Full scale Full scale
IC3 A3 Midscale Midscale Full scale
B3 Midscale Full scale Full scale

예제 회로 #2

그림 6은 데이지 체인 구성의 3개의 MAX5290 듀얼, 12비트 DAC를 보여준다. PU는 DVDD에 연결되며 아날로그 출력은 최대 풀 스케일까지 출력한다. MAX5290에는 데이지 체인 구성을 위한 전용 디지털 출력이 없다. 대신 2개의 UPIO (user-programmable input/output) 핀 중 하나가 DOUTDC_ mode를 위한 직렬 인터페이스에 의해 프로그래밍된다. 자세한 내용은 MAX5290 데이터 시트를 참조한다.

Figure 6. Daisy-chain circuit #2.
그림 6. 데이지 체인 회로 #2

그림 7은 명령 시퀀스 예를 제공하며 다음의 명령이 사용된다(자세한 내용은 MAX5290 데이터 시트 참조).
  • 0xDFFF—모든 입력 및 DAC 레지스터에 풀 스케일 데이터를 로드하고 DAC A 및 B 출력은 업데이트된다.
  • 0xD800—모든 입력 및 DAC 레지스터에 미드 스케일 데이터를 로드하고 DAC A 및 B 출력은 업데이트된다.
  • 0xD000—모든 입력 및 DAC 레지스터에 제로 스케일 데이터를 로드하고 DAC A 및 B 출력은 업데이트된다.
  • 0xE400— DAC A 및 DAC B를 셧다운 모드에 놓는다.
  • 0xE40F—DAC A 및 DAC B를 셧다운 모드로부터 해제한다.
  • 0xFFFF—no-op
Figure 7. Circuit #2 example command sequence.
그림 7. 회로 #2 예제 명령 시퀀스

각 소자의 시프트 레지스터에 로드된 명령은 액티브 로우 CS의 상승 에지에서 실행된다. 첫 번째 실행에서 모든 DAC 출력은 업데이트된다. IC1의 DAC 출력은 제로 스케일로, IC2의 DAC 출력은 미드 스케일로, IC3의 DAC 출력은 풀 스케일로 업데이트된다.

두 번째 명령 사이클 동안 IC2의 DAC A와 B는 모두 명령 0xE400으로 셧다운 모드에 놓인다. no-op 명령은 IC1과 IC3에 아무 영향을 미치지 않는다. 세 번째 명령 사이클 후 IC1의 출력은 풀 스케일로, IC3의 출력은 제로 스케일로 변한다. IC2의 출력이 셧다운 모드에 있는 동안 내부 입력 및 DAC 레지스터에서 데이터가 업데이트된다. IC2는 최종 명령 사이클 동안 정상 동작 모드로 복귀하고 출력은 풀 스케일이 된다.

표 2. 예제 명령 시퀀스에서 파워 업 및 명령 실행 후 IC1, IC2, IC3의 출력 상태
  Analog Output Name
State of Output
After Power-Up (PU = VDD) After First Excution After Second Execution After Third Execution After Fourth Execution
IC1 A1 Full scale Zero scale Zero scale Full scale Full scale
B1 Full scale Zero scale Zero scale Full scale Full scale
IC2 A2 Full scale Midscale Shutdown Shutdown Full scale
B2 Full scale Midscale Shutdown Shutdown Full scale
IC3 A3 Full scale Full scale Full scale Zero scale Zero scale
B3 Full scale Full scale Full scale Zero scale Zero scale

유사한 글이 EE Times 2006년 9월호에 게재되었다.



MICROWIRE는 National Semiconductor Corp.의 상표이다.

QSPI는 Motorola, Inc.의 상표이다.

SPI는 Motorola, Inc.의 상표이다.


관련 부품  APP 3947: Dec 15, 2006
MAX5233 기준전압이 내장된 3V/5V, 10비트, 직렬 전압 출력 듀얼 DAC 전체 데이터 시트
(PDF, 352kB)
무료 샘플
MAX5290 버퍼링된 고속 설정, 듀얼, 12/10/8비트 전압 출력 DAC 전체 데이터 시트
(PDF, 852kB)
무료 샘플

자동 업데이트
관심 분야의 애플리케이션 노트가 나올 때 자동으로 업데이트를 원하십니까? 그렇다면 EE-Mail™을 신청하십시오.


We Want Your Feedback!



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

 

다운로드, PDF 형식다운로드, PDF 형식 (108kB)
 AN3947, AN 3947, APP3947, Appnote3947, Appnote 3947

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

    Copyright © 2009 by Maxim Integrated Products