ENGLISH 简体中文 日本語 한국어  


애플리케이션 노트  3663

MAX3420E 시스템 동작 점검

개요: 이 애플리케이션 노트는 MAX3420E를 적절히 동작시키기 위해 수행해야 하는 세부사항에 대한 체크리스트이다. 방법론적 검증 과정 및 디버그 힌트가 포함된다.

개요

마이크로컨트롤러에 연결된 MAX3420E가 내장된 보드를 설계했다. 전원을 연결하고 USB를 꽂는다. 그런데 아무런 반응이 없다면... 이제 어떻게 해야 하는가? 다음을 계속 읽어주기 바란다.

맨 처음 USB 주변 장치를 작동시키는 일은 어려운 작업일 수 있다. 다음은 MAX3420E를 적절히 동작시키기 위해, 작동 전 수행해야 할 세부사항에 대한 체크리스트이다.

USB 'B' 커넥터 핀 확인

이것은 놀라우리만치 쉽게 잘못할 수 있다. 이 부품의 도면은 윗면인가 밑면인가? 핀 1은 어디에 있는가? 기계 공학자가 아니라면 이러한 부품 도면들이 혼란스러울 수 있다. 그림 12가 도움이 될 것이다.

그림 1. USB B 커넥터 도면
그림 1. USB B 커넥터 도면

그림 2. PCB의 밑면에서 본 B 커넥터 핀의 방향
그림 2. PCB의 밑면에서 본 B 커넥터 핀의 방향

그림 3. USB 케이블 와이어 커넥터
그림 3. USB 케이블 와이어 커넥터

저항계(ohmmeter)를 사용하여 MAX3420E에서 USB 커넥터로 연결되는 배선을 검사하는 것이 좋다. D+ 및 D-는 극성을 반대로 설정하기가 쉬우므로 특별한 주의를 요한다. MAX3420E와 커넥터 D+ 및 D- 핀 사이에는 33 저항이 존재한다는 점을 기억하도록 한다. 대부분의 연결확인 장치는 이와 같이 낮은 저항에서 계속 “비프” 음을 울린다. USB 케이블을 검사할 필요가 있는 경우, 그림 3이 도움이 될 것이다.

USB '정상성(Sanity)' 검사

이 섹션은 소자를 USB에 연결할 때 진행되는 상황을 설명한다. 정상성 검사(sanity check)는 D+와 D- 라인에서 무슨 일이 있는지를 보여주므로, USB 버스 분석기를 사용할 수 없는 경우 유용하게 이용할 수 있다.

프로세서를 리셋하고 PC USB 포트에 케이블을 연결한 다음, 초기화 후에 code를 쓰고 CONNECT 비트를 설정하는 명령문 바로 전에서 정지시킨다. 이 명령문은 다음과 같이 나타낼 수 있다.


wreg(rUSBCTL,bmCONNECT);	// Connect to USB
이 명령문을 실행하기 전에 D+와 D-는 둘다 로우 상태가 되어야 한다. 이것은 케이블의 호스트 측 회로가 15k 저항을 사용하여 이러한 신호를 접지로 연결하기 때문이다. 이제 CONNECT 명령문을 실행하면, D+와 VCC (3.3V) 사이에 내부 1.5k 저항을 연결하도록 MAX3420E에게 명령을 내리게 된다. D+는 하이가 되고, 이어 약간의 펄스 버스트가 발생하는 것을 볼 수 있다 (그림 4).

그림 4. CONNECT = 1로 설정할 경우, D+는 하이가 되고 약간의 활동 버스트가 나타난다.
그림 4. CONNECT = 1로 설정할 경우, D+는 하이가 되고 약간의 활동 버스트가 나타난다.

윗면 트레이스는 D+이고 밑면 트레이스는 D-이다. 버스트는 약 18초간 지속되다가 사라진다. D+는 하이 상태를, D-는 로우 상태를 유지하며, 다음과 같은 Windows XP 메시지가 표시된다(그림 5).

그림 5. Windows XP 경고 메시지
그림 5. Windows XP 경고 메시지

무엇이 진행되고 있는가?
우리는 코드를 일 단계만 진행시켰을 뿐이라는 사실을 기억하기 바란다. 지금까지 수행한 작업은 D+ 풀업 저항을 연결한 것뿐이다. 이 풀업은 이제 막 새로운 USB 장치가 연결되었음을 PC에게 알려주어, PC는 연결된 장치가 무엇인지 판단하기 위해 장치에 신호를 전송하기 시작한다. 이러한 신호가 그림 4의 블리프(blip)이다. 그러나 마이크로컨트롤러 코드가 실행되고 있지 않으므로, MAX3420E는 명령을 받지 못하고 신호에 응답을 할 수 없다. PC는 응답이 없다는 것을 발견하고 결국(18초 후) 장치를 무시하기로 결정한다. D+ 하이 및 D- 로우의 버스 상태는 'USB 버스 중지(USB bus suspend)' 또는 간단히 '중지(suspend)'라고 한다. 호스트는 모든 신호 전송을 멈추고, MAX3420E의 D+ 풀업 저항은 D+ 신호를 하이 상태로 유지한다.

그림 6. 버스에서 진행되는 상황을 보여주는 그림 (NAK 숨김)
그림 6. 버스에서 진행되는 상황을 보여주는 그림 (NAK 숨김)

그림 6은 LeCroy Instruments(LeCroy가 분석기 제조회사였던 CATC를 인수)의 USB 버스 분석기를 사용하여 얻은 버스 트레이스이다. PC가 플러그 인 이벤트(CONNECT = 1)를 감지하면, PC는 USB 버스 리셋(표시되지 않음)을 발생시킨다. 그런 다음, Transfer 0에서 PC는 유형 "DEVICE"의 "GET_DESCRIPTOR"라는 요청을 발생시킨다. 5.687초 후, PC는 두 번째 버스 리셋을 발생시키고, 5.578초 동안 다시 장치 디스크립터를 얻기 위해 시도한다. PC는 세 번째로 버스를 리셋하고 다시 5.580초 동안 시도한 다음, 버스를 중지시킴으로써 포기한다. 펌웨어가 실행되고 있지 않으므로, 신호를 수신하거나 PC의 요청을 확인(ACK)할 수 없다.

그림 7. 이 그림은 그림 6을 패킷과 NAK 핸드셰이크가 보이도록, 첫 번째 전송을 확장한 것이다.
그림 7. 이 그림은 그림 6을 패킷과 NAK 핸드셰이크가 보이도록, 첫 번째 전송을 확장한 것이다.

명확하게 하기 위해 그림 6 트레이스는 MAX3420E가 응답하는 NAK(부정 응답: Negative Acknowledge) 핸드셰이크를 보여주지 않는다. 그림 7은 비트를 보다 자세히 표시하기 위해 첫 번째 전송을 패킷 레벨로 확장한 것이다. 이제 Transfer 0이 3개의 패킷에서 시작한다는 것을 볼 수 있다.

  1. 호스트는 막 연결된 장치로 SETUP 패킷(63)을 전송한다(이 경우 USB는 주소 0을 보낸다).
  2. 호스트는 8바이트 "op-code"를 포함하는 DATA 패킷(64)을 전송한다.
  3. 주변 장치(MAX3420E)는 ACK 패킷(65)을 보내 2개의 호스트 패킷이 오류 없이 수신되었다는 것을 확인한다.
MAX3420E를 포함하는 시스템을 켜고 USB 장치를 연결해 CONNECT = 1을 설정하면(다른 동작은 수행하지 않는다), MAX3420E가 ACK 핸드셰이크(위 단계 3의 패킷 65)를 제공하는 것을 볼 수 있다. MAX3420E 하드웨어는 USB 규격에 의해 규정된 대로 CONTROL 전송의 SETUP 단계를 자동으로 확인한다.

다음으로 호스트는 Transaction 1에서부터 IN 요청을 전송하기 시작한다. 각 IN 요청은 MAX3420E로부터 NAK(부정 응답) 핸드셰이크의 회답을 받는다. 이것은 프로그램이 실행되고 있지 않아 MAX3420E에 부착된 마이크로컨트롤러가 SUDAV IRQ(셋업 데이터 사용 가능 인터럽트 요청)를 볼 수 없기 때문이다.


참고: MAX3420E는 SUDAV IRQ가 세팅됨으로써, SETUP 패킷이 도착했다는 것을 마이크로컨트롤러에게 경고한다. 이것은 마이크로컨트롤러에게 패킷 데이터를 디코딩하고 요청된 데이터를 보내 응답해야 할 필요가 있음을 알리는 것이다.

이 IN-NAK는 5.687초 동안 계속되며, 이제 PC는 버스를 리셋하고 두 번째 시도를 시작한다. 그림 4에서 볼 수 있는 작은 블리프가 IN-NAK이다. 스코프를 자세히 보면, 약 5초 후 패턴에 약간의 변화가 생긴 것을 볼 수 있다. 이것은 버스 리셋(약 30ms동안 D+ 및 D- 로우)과 또 다른 SETUP 패킷이다. 그런 다음, 다시 IN-NAK이 5초간 지속된다.

참고사항: 다른 분석기

그림 8. Beagle
그림 8. Beagle

그림 6과 그림 7을 생성했던 분석기와 같은 USB 버스 분석기를 구입하기에는 예산이 부족한 경우가 있다. 이 애플리케이션에서는 스코프와 저항계 하나만 보유하고 있다는 것을 가정하지만, USB 개발 작업을 위해 USB 버스 분석기를 구입할 것을 강력히 권고한다. 우리가 사용한 LeCroy/CATC는 훌륭한 인터페이스와 풍부한 소프트웨어를 가지고 있으며, 무엇보다도 산업 표준 USB 측정 툴이라는 명성을 갖고 있다. CATC 트레이스의 교환을 통해 어떤 일이 발생하고 있는지를 정확히 증명함으로써, 많은 논란(하드웨어, 소프트웨어, 칩 등)이 해결되었다. 버스는 거짓말을 하지 않는다.

다행히 저렴한 USB 분석기도 이용이 가능하다. 그림 8Beagle-USB의 화면이다. Beagle 분석기는 LeCroy/CATC 가격에 비해 매우 낮은 비용으로 버스 트래픽을 보여준다. 그림 8의 인덱스 8과 그림 6의 패킷 64를 비교해 보면, SETUP 패킷에서 정확히 동일한 데이터를 표시하고 있다는 것을 볼 수 있다.

진행상황 점검

그림 4의 신호를 보면, USB 커넥터가 적절히 연결되어 있고 MAX3420E에 전원이 제공되고 있다는 것을 알 수 있다. 여기까지 진행하지 못한 경우, 다음의 몇 가지를 시도해 본다.
  • MAX3420E RES# 핀을 점검하여 HIGH인지 확인한다.
  • 크리스털을 점검하여 12MHz에서 발진하고 있는지 확인한다. USB 규격을 만족하려면 12MHz ±0.25%가 되어야 한다. 허용오차를 벗어날 경우, 병렬 공진 크리스털에 대해 규정된 정확한 부하 커패시터를 갖고 있는지 확인한다 (18pF가 일반적인 값이다).
  • VCC가 3.3V인지 확인한다.
  • 시스템 인터페이스 전압에 대한 VL을 확인한다. 이 전압은 3.6V보다 높지 않아야 한다.
  • 3.3V 레귤레이터에 의해 VBUS로부터 MAX3420E VCC 핀에 전원을 공급하는 경우, 소자가 USB에 연결되어 있는지 확인한다. 연결되어 있지 않을 경우에는 MAX3420E의 VCC에 전원이 공급되지 않는다.

참고: 자체적인 전원 공급 방식의 설계는 USB 케이블의 연결 여부와 상관없이 펌웨어가 실행되기 때문에, 버스에서 전원을 공급하는 설계보다 디버깅하기가 쉽다. 외부 전원을 이용해 프로토타입에 전원을 제공하는 것이 좋은 방법이며, 필요한 경우, 나중에 버스 전원으로 변환할 수도 있다.

다음 단계로, 컨트롤러가 SPI 버스를 통해 MAX3420E 레지스터 세트에 성공적으로 신호를 보내고 있는지 확인한다.

rreg() 및 wreg() 확인
Maxim의 예제 코드를 사용하든 본인이 직접 만든 코드로 처음부터 시작하든, 함수에서 MAX3420E 레지스터를 읽고 쓸 수 있게 해야 한다. 아래의 예제는 이러한 함수 프로토타입을 사용한다.

unsigned char rreg(BYTE r);   // Read a MAX3420E register byte
void wreg(BYTE r,BYTE v);     // Write a MAX3420E register byte
함수의 테스트를 위한 USB 전송을 서비스하는 코드를 확인하기 전에, 간단한 루틴을 작성한다. 예제로 그림 9를 참조한다.

그림 9. 단일 단계로
그림 9. 단일 단계로 "rd"를 8번 검사하여 MAX3420E에 대한 SPI 인터페이스를 확인한다.

그림 9의 테스트 코드는 MAX3420E를 리셋한 다음, USBIEN 레지스터에 walking-one 패턴으로 구성된 8바이트를 쓴다. 각 바이트는 00000001에서 시작하여 00000010을 지나 10000000으로 끝나는 1비트 세트를 갖는다. 단일 단계로 이러한 함수를 실행하여 "rd"의 값에 대한 검사를 8번 실시하여, 이 값들이 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40 및 0x80이라는 것을 확인한다. 이렇게 되면 SPI 인터페이스 상에서 레지스터 쓰기 및 읽기 동작을 모두 확인한 것이다. USBIEN 레지스터를 읽고 그 내용을 신뢰할 수 있는 수준으로 다시 읽을 수 있다면, 모든 MAX3420E 레지스터를 읽고 쓸 수 있다.

그림 10. Rowley CrossStudio를 사용하여 MAXQ2000 마이크로컨트롤러에 대한 단일 단계 실행 및 변수의 값 검사.
그림 10. Rowley CrossStudio를 사용하여 MAXQ2000 마이크로컨트롤러에 대한 단일 단계 실행 및 변수의 값 검사. "rd" 위에 커서를 놓으면 해당 값이 표시된다.

그림 10CrossStudio를 사용한 MAXQ2000 마이크로컨트롤러에 대한 디버그 세션 화면이다. "rd" 변수 위에 커서를 놓으면 팝업 윈도우가 나타난다. (화면에서는 커서가 보이지 않는다.) 모든 변수는 단일 단계로 코드를 실행하면서 이와 같은 방식으로 검사할 수 있다.

테스트 코드는 마이크로프로세서 SPI 포트를 설정하는 것에서부터 시작한다. SPI_Init() 함수는 마이크로프로세서 유형과 특정 IO 핀 구성마다 다르다. 코드는 PINCTL 레지스터에 0x10 값을 써서 MAX3420E SPI 인터페이스를 풀듀플렉스 동작으로 설정한다. 이것은 FDUPSPI 비트를 설정한다. 그러면 코드는 CHIPRES 비트를 세팅하고 다시 재세팅하여 MAX3420E를 알려진 상태에 놓는다. 모든 디버그 사이클을 시작할 때 MAX3420E를 알려진 상태에 두려면, 코드의 처음에 칩 리셋을 포함시키도록 한다.

그림 10의 코드가 정확한 결과를 생성하지 않는다면, SPI 신호를 검사하여 그 동작을 확인하도록 한다.

그림 11. 첫 번째 wreg() 호출 실행
그림 11. 첫 번째 wreg() 호출 실행

테스트 프로그램 test_SPI()에서 wreg()에 대한 첫 번째 호출은 MAX3420E 레지스터 17에 값 0x10을 쓴다. SPI 버스 트레이스는 그림 11과 비슷하게 보일 것이다.


참고: 그림 11의 트레이스는 SPI 모드(0, 0)를 사용한다. 여기에서 SPI 데이터는 SCLK의 상승 에지에서 샘플링되고, 무부하 SCLK 레벨은 로우이다. 사용자의 트레이스는 SPI 인터페이스에 따라 다른 펄스 기간을 가질 수 있지만, SCLK 상승 에지에서 보이는 값은 동일해야 한다.

모든 SPI 액세스의 첫 번째 바이트는 그림 12에 보이는 형식을 따르는 명령 바이트이다. 그림 11의 첫 번째 SLCK 상승 에지 동안 MOSI 트레이스를 보면, 비트 패턴 10001010을 볼 수 있는데, 이것은 레지스터 17(비트 7-3은 10001, 값 17)을 나타낸다. 또한 비트 1은 하이이며, 이것은 쓰기 동작을 나타낸다. 두 번째 바이트는 비트 패턴 00010000을 보여준다. 이것은 레지스터 17에 쓰여진 데이터로서 0x10이다(비트 4, FDUPSPI 레지스터 비트만 설정된다). 따라서 이 SPI 액세스는 레지스터 17에 0x10을 쓰고, 이것이 FDUPSPI 비트를 설정한다.

그림 12. MAX3420E 명령 바이트 형식
그림 12. MAX3420E 명령 바이트 형식

이러한 트레이스를 캡처하는 손쉬운 방법은, 스코프 또는 로직 분석기를 SS#의 하강 에지에서 트리거하도록 설정한 다음, 단일 단계 wreg() 호출을 실행하는 것이다.

그림 13. USBIEN 레지스터에 첫 번째 쓰기 (test_SPI() 함수)
그림 13. USBIEN 레지스터에 첫 번째 쓰기 (test_SPI() 함수)

test_SPI()의 다음 명령문은 rreg() 함수를 검사한다. 그림 13에서 보는 바와 같이, 맨 처음 루프를 통과하면 값 0x01이 USBIEN 레지스터에 쓰여진다.

그림 14. rreg() 함수에 대한 첫 번째 호출
그림 14. rreg() 함수에 대한 첫 번째 호출

그런 다음, test_SPI() 함수는 USBIEN 레지스터의 값을 다시 읽는다. 이 값은 루프를 처음으로 통과하는 동안 1과 같아야 한다(그림 14). 루프를 통과할 때마다 비트가 쓰여지고 다시 읽혀지면서, SCLK 에지는 하나씩 왼쪽으로 이동한다.

MAX3420E 레지스터 쓰기와 읽기가 확인되었다면, 코드를 추가로 디버그할 수 있다. 이 단계까지 실행된 모든 검사는 '정상성 검사'의 범주에 속한다. 이제 실제로 USB 트래픽을 처리하는 단계로 들어간다. 이 단계에서는 프로세서의 주의를 요구하는 다양한 MAX3420E 인터럽트 요청 비트에 대해 응답한다.

초기 IRQ 비트 설정

USB 버스 트래픽이 시작된 후에만 MAX3420E 인터럽트 비트가 세팅된다면 논리적으로 보일 수 있다. 실제로 일부 IRQ 비트는 MAX3420E에 전원이 켜질 때 세팅되고, 또 일부 비트는 USB 케이블을 꽂고 CONNECT = 1을 설정할 때 세팅한다. 다음 섹션은 이러한 시동 시퀀스 동안 예상되는 동작을 간단히 설명한다.

리셋 종료
MAX3420E에서 리셋 종료를 택하면, USB에 아직 연결되어 있지 않더라도 특정 인터럽트 요청 비트가 세팅된다. 이 비트는 다음과 같다.

EPIRQ 레지스터:

  • IN3BAVIRQ
  • IN2BAVIRQ
  • IN0BAVIRQ
EPIRQ 레지스터의 초기 값은 0x19이어야 한다. MAX3420E는 이 3개의 IRQ 비트가 세팅되어 3개의 IN 엔드포인트 FIFO를 로딩에 사용할 수 있다는 것을 나타낸다. BAV는 '버퍼 사용 가능'을 의미한다.

USBIRQ 레지스터:

  • OSCOKIRQ
USBIRQ 레지스터의 초기 값은 0x01이어야 한다. 전원을 켜면 MAX3420E는 온 칩 발진기를 시작한다. 안정화가 되면 MAX3420E는 OSCOKIRQ 비트가 세팅되어 동작할 준비가 되었음을 표시한다. 프로그램이 OSCOKIRQ 비트를 검사하는 테스트 단계에 계속 머물러 있는 경우, VCC 핀에 3.3V가 인가되고 있는지를 확인한다. VCC는 발진기에 전원을 제공한다.


참고: MAX3420E IRQ 레지스터 비트는 관련 인에이블 비트(EPIEN 및 USBIEN 레지스터에 있는)의 설정 여부와 상관없이 활성화된다. 인에이블 비트는 요청 비트가 INT 핀을 구동하는 로직으로 전달되는지의 여부를 결정한다. 자세한 내용은 애플리케이션 노트 MAX3420E Interrupt System을 참조한다.

USB 연결 후
USB를 연결하면(CONNECT = 0에서) USB 트래픽이 없더라도 추가적인 USBIRQ 비트가 세팅된다. EPIRQ 비트는 위의 섹션과 같지만, 다음과 같은 USBIRQ 비트가 추가로 세팅될 수 있다.

USBIRQ 레지스터:

  • OSCOKIRQ
  • VBUSIRQ (가능)
VBUSIRQ 비트는 VBCOMP 핀에서 5V를 감지하여 MAX3420E가 연결된 USB 케이블을 검출했음을 나타낸다. 이것은 USB 커넥터의 VBUS 핀이 MAX3420E 마이크로컨트롤러(VBUS 비교기) 입력 핀에 연결되었다고 가정한 것이다.


참고: USB 커넥터의 VBUS 핀을 MAX3420E VBCOMP 입력 핀에 연결하는 것은 선택사항이다. VBCOMP 핀은 MAX3420E 내부의 어느 부품에도 전원을 공급하지 않는다. 오직 내부 VBUS 비교기에만 라우팅된다.

CONNECT = 1 설정 후
USB에 연결하면 호스트는 버스 리셋을 발생시키고, Get_Descriptor-Device 요청을 생성하고, 결국 버스를 중지시킨다. 이러한 동작은 USBIRQ 레지스터에서 IRQ 비트를 추가로 설정한다. USB 버스 리셋은 VBUSIRQ 비트를 클리어한다.

EPIRQ 레지스터:

  • IN3BAVIRQ
  • IN2BAVIRQ
  • IN0BAVIRQ
  • SUDAVIRQ (트래픽 시작 후)
USBIRQ 레지스터:
  • OSCOKIRQ
  • URESIRQ
  • URESDNIRQ
  • SUSPIRQ (최종)
VBUS를 VBCOMP 핀에 연결했다면, USBIRQ 레지스터는 약 20초 동안 0x8D를 읽고, 그런 다음 호스트가 버스를 중지시키면 0x9D를 읽는다.

여기에서부터 진행되는 상황은 사용자의 코드에 따라 다르다. 지금까지 위에서 설명한 모든 상황을 그대로 볼 수 있었다면, 시스템이 잘 정렬되어 있다는 확신을 가지고 검사를 계속해도 좋다.

디버그 전략: 3 단계 인터럽트 활성화

나머지 검사는 PC가 명령을 내리고, 그에 따라 MAX3420E에 의해 시그널링되는 다양한 USB 요청에 대해 사용자의 펌웨어가 정확히 응답하는지를 확인하는 단계이다. 코드를 시작하고 USB를 연결한 다음에도 아무런 반응이 없다면(아마도 Windows USB 오류 메시지가 표시될 것이다), 프로그램이 인터럽트를 놓치고 있을 가능성이 있다. 다음의 디버그 전략은 인터럽트 문제를 해결하는데 도움이 될 수 있다.

단계 1: IRQ 비트 폴링
먼저 IRQ 비트를 직접 폴링하고 주어진 IRQ가 세팅될 때 프로세서가 동작을 수행하도록 하는 코드를 쓴다. 메인 프로그램 루프가 직접 폴링을 수행하더라도 인터럽트를 인에이블하는 것이 좋다(개별 IEN 비트 = 1 및 IE = 1). MAX3420E INT 핀의 동작을 관찰함으로써 동작을 이해하는데 도움이 되기 때문이다. 이 단계는 마이크로컨트롤러 인터럽트 시스템(및 코드)을 검사로부터 효과적으로 제거해주어, 정확한 USB 기능을 구현하는데 집중할 수 있도록 해준다. EPIRQ 및 USBIRQ 레지스터 읽기를 계속하느라 낭비되는 SPI 사이클에 대해서는 걱정할 필요가 없다. 여기에서의 목표는 정확한 USB 동작이기 때문이다.

단계 2: INT 핀 폴링
일단 정확한 USB 동작이 확인되면, MAX3420E INT 핀을 폴링하여 보류 인터럽트를 검사할 수 있도록 프로그램을 수정하는 두 번째 단계를 수행한다. 단계 1에서 코드를 확인했다면, 코드의 메인 루프에서 EPIRQ 및 USBIRQ 레지스터를 지속적으로 읽어 보류 인터럽트를 검사할 수 있다. MAX3420E INT 핀에 연결된 마이크로컨트롤러 인터럽트 핀을 폴링하는 명령문을 삽입하면 이러한 연속적인 검사를 수정할 수 있다. MAX3420E INT 핀이 세팅되지 않을 경우, EPIRQ 및 USBIRQ 레지스터를 읽는 명령문을 생략할 수 있다. 이와 같은 간단한 검사는 IRQ 비트가 세팅될 때에만 테스트가 되므로, 마이크로컨트롤러와 MAX3420E 사이의 SPI 트래픽을 대폭 감소시킨다.

단계 3: 마이크로컨트롤러 인터럽트 코드 검사
세 번째이자 마지막 단계로, MAX3420E를 마이크로프로세서의 인터럽트 시스템에 통합한다. 이 단계는 대개 MAX3420E의 핸들러에 프로그램 명령을 자동으로 실행하는 인터럽트 벡터 쓰기를 포함한다.


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


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



추가 정보  APP 3663: Jun 05, 2006
MAX3420E SPI 인터페이스가 내장된 USB 주변장치 컨트롤러 전체 데이터 시트
(PDF, 372kB)
무료 샘플
 

다운로드, PDF 형식다운로드, PDF 형식 (175kB)
 AN3663, AN 3663, APP3663, Appnote3663, Appnote 3663


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

      Copyright © 2008 by Maxim Integrated Products, Dallas Semiconductor