WIZ550io 제품을 이용하여 Interrupt 적용 시 INTn 신호 문제 문의

안녕하세요.

Wiz550io 모듈을 구매하여 현재 Test 중인 유저 입니다.

TCP 연결 시 Rx / Rx / Timeout / Connect / Disconnect 상태를 알기 위해 아래와 같이 설정 및 GPIO INTn 신호를 확인하고 있습니다.

[설정]

  1. IMR = 0xF0 //
  2. SIMR = 0x01 //Socket 0 Interrupt Enable
  3. S0_IMR = 0x1F //Socket 0 Rx / Rx / Timeout / Connect / Disconnect Interrupt Set

Mask Register에 설정을 하였습니다.

이럴 경우 IR / SIR / S0_IR 을 읽어보면 인터럽트 Flag가 발생함을 알수 있으나 GPIO 신호인 INTn 신호는 항상 Low 상태에서 변화가 없습니다.

S0_IR과 S0_IMR의 동일 위치에서 High일 경우 INTn GPIO 신호가 Low 이며, 아닐 경우 High 상태가 되어야 하는데 변화가 없습니다.

즉 IR / SIR / S0IR 이 전부 0x00 값임에도 INTn GPIO 신호가 Low 임이 문제입니다.

Interrupt 상태를 GPIO로 읽어 동작을 하고싶은데 이 부분은 불가능 한 것인가요???

오실로 스코프로 Interrupt 핀만 별도로 확인하여도 증상이 동일합니다.

추가로 세팅이 필요한 부분이 있는지 확인 부탁드립니다.

W5500 칩에서 신호가 나가지 않는 것인지 MCU 인터럽트 핀설정을 잘못 하셨는지 확인이 필요한 것 같습니다.

오실로스코프로 찍어보실 때 칩쪽에서 신호가 안들어오는지 아니면 MCU쪽 GPIO 핀의 interrupt 핀 설정이 잘못 되있는건지 확인이 필요한 것같습니다.

추가로 말씀드리면 W5500의 INTn 신호는 interrupt가 뜨면 low 상태로 default high 상태입니다.