[W5500] 인터럽트 레지스터 관련 문의드려요

이번에 TCP 소켓통신 구현을 위해서 W5500 제품을 구매하였는데
인터럽트를 사용하고 싶습니다.

데이터시트 확인결과
Common REG에 IR, IMR, SIR, SIMR이 있고
Socket REG에 Sn_IR, Sn_IMR이 있습니다.

데이터시트 설명중
“Sn_IMR (Socket n Interrupt Mask Register) [R/W] [0x002C] [0xFF]
Sn_IMR 은 Host 로 알려줄 Socket n 의 Interrupt 를 설정한다. Sn_IMR 의 Interrupt
Mask Bit 들은 Sn_IR 의 Interrupt Bit 들과 각각 대응된다. 임의의 Socket Interrupt 가
발생하고 Sn_IMR 의 그 Bit 가 ‘1’로 설정되어 있을 경우 Sn_IR 의 대응 Bit 가 ‘1’로
설정된다. Sn_IMR 과 Sn_IR 의 임의 Bit 가 모두 ‘1’일 때 **IR(n) = ‘1’**이 된다. 이때
**IMR(n) = ‘1’**이라면 Host 에 Interrupt 가 발생(‘/INT’ signal low assert)한다)”

위 내용처럼 IR, IMR을 설정하라고하는데 IR, IMR은 전혀 다른 기능의 인터럽트 같아서 헷갈립니다.
저부분 데이터시트에서 말하는 IR은 SIR, IMR은 SMIR이 맞는지 확인부탁드립니다.

예를 들어 제가 소켓 1번을 사용하면서 전송완료가 되었을시 인터럽트핀을 Low로 입력받고 싶다고하면

  1. SIMR = 0x2;
  2. S1_IMR = 0x10;
    이렇게 세팅하면 되는건가요?

그리고 전체 소켓의 인터럽트 확인은 SIR을 읽어서 확인하고
개별 소켓의 세부 인터럽트 확인은 S1_IR을 읽어서 확인하는게 맞나요?

감사합니다.

안녕하세요

IR->SIR, IMR->SIMR 이 맞습니다 혼동을 드려 죄송합니다.

위의 내용도 이해하신게 맞습니다.

감사합니다