---
title: "아래 w5100 추가 질문"
url: "https://maker.wiznet.io/forum/10536"
markdown_url: "https://maker.wiznet.io/forum/10536/md"
type: "Forum topic"
category: "Ethernet Chips"
author: "sangk"
created: "2014-09-19T03:00:36+09:00"
last_activity: "2017-05-04T08:33:54+09:00"
language: "ko"
views: 612
replies: 1
source: "WIZnet Makers forum (https://maker.wiznet.io/forum/)"
---

# 아래 w5100 추가 질문

## Question

Asked by sangk on 2014-09-19 in Ethernet Chips.

아래 W5100 접속문제로 문의 드렸던 사람입니다.

W5100 질문
Attachment(s) by sangk » Tue Sep 02, 2014 11:26 am &lt;---- 참조

이 문제가 아직 해결되지 않아…알려주신 것과 같이 Sn_IR을 초기 커넥팅 할때 보았더니…

Socket0를 사용함. S0_IR값이 초기 커넥팅할때 0x01 → 0x05 이다가…디스커넥팅할때 0x07로 바뀌는것을 확인했습니다.
메뉴얼 확인결과 Timeout 이 걸리는거 같은데 … 그리고 0x01-> 0x05 (커넥팅) → 0x07(디스커넥팅) 하고 난후 일정시간후에 Client측에서 Asynchronus socket error 10060을 띄우면서 Client가 죽습니다… 문제는 Timeout으로 인하여 인터럽트가 발생하지 않는것으로 보여지는데…어떤부분을 좀 더 살펴보는게 좋을까요? 조언 부탁드립니다.

[![](https://maker.wiznet.io/forum_uploads/wiznet/original/1X/a534f2db8016f5f9dcb8b0c3f35412bae74e2508.png) 1677×904 157 KB](https://maker.wiznet.io/forum_uploads/wiznet/original/1X/a534f2db8016f5f9dcb8b0c3f35412bae74e2508.png)

## Replies

### Reply 1 by sangk, 2014-09-19

Sn_IR = 8 이 되어야 한다는 말씀은 이해가 되었습니다. 빠른 답변 감사합니다. 하지만 Sn_IR값이 클리어 되지 않는 것은
인터럽트가 W5100-> MCU로 들어오지 않기 때문에 클리어가 되지 않는 것입니다. 현재 소스상에서 인터럽트가 MCU로 부터 확인이 되면 어떤 인터럽트 인지 확인 후 말씀하신 것과 같이 Bit를 Clear하도록 소스를 만들어 놓았습니다…

말씀하신 것과 같이 인터럽트 bit가 중복될 경우 인터럽트가 더 이상 안걸리는 것은 정상동작하는 MCU에서 확인한 사항입니다.

한가지 의문스러운 점은 정상동작되는 MCU(28335와 달리) 문제가 발생하는 MCU(28346)에서는 W5100의 네트워크를 초기화 하구 난 후 IR (Interrupt Register) [R] [0x0015] [0x00] 이 Register가 0x80으로 된다는 점입니다. 28335에서는 0x00임.

메뉴얼상에 이 비트는 소스 아이피로 부터 같은 아이피로부터 ARP 요청을 받았을 때라고 되어 있는데 …
IP Conflict It is set as „1‟, when there is ARP request with same IP address as Source IP address. This bit is cleared to „0‟ by writing „1‟ to this bit.
무엇인가가 정상적으로 W5100을 동작시키지 못하도록 하는 것으로 보여집니다. 정상 동작 MCU와 비정상 동작 MCU의 IR & Sn_IR 을 비교해보니 아래와 같습니다. 0x15(IR), 0x402(Sn_IR)

28335 MCU
네트워크 초기화 시 0x15 (0x00) , 0x402(0x00) → mcu 28335 커넥팅시 0x15 (0x01) , 0x402(0x01) → interrupt(mcu) → Interrupt flag clear → 0x15 (0x00) , 0x402(0x00)

mcu 28335 디스 커넥팅시 : 0x15 (0x01) , 0x402(0x02) → interrupt(mcu) → Interrupt flag clear → 0x15 (0x00) , 0x402(0x00)
→ 정상적으로 잘 동작함을 확인하였습니다.

28346 MCU
네트워크 초기화 0x15 (0x80) , 0x402(0x00) → mcu 28346 커넥팅시 0x15 (0x88) , 0x402(0x01) → MCU에 인터럽트 안걸림 강제로 인터럽트 플레그 클리어 → 0x15 (0x80) , 0x402(0x00)
mcu 28346 디스 커넥팅시 : 0x15 (0x88) , 0x402(0x02) → interrupt(mcu) → MCU에 인터럽트 안걸림 강제로 인터럽트 플레그 클리어 → 0x15 (0x80) , 0x402(0x00)

→ 초기화시 IR에 0x80이 Read되는 것과 커넥팅 시 0x88이 Read되는것과 Socket0를 Connect하였음에도 Socket3의 인터럽트가 동작하는 것이 문제가 될 것으로 판단됨. MCU의 인터럽트 부분은 강제로 외부 에서 Active low시켰을때 인터럽트가 걸림을 확인한 사항입니다.

본 문제를 해결하기 위해 정상동작 MCU와 Read/Write timing과 CS를 모두 정상동작 MCU와 동일하게 맞추었고…회로를 몇번이나 다시 검토해보아도 동일한 회로인데 원인을 모르겠습니다. 소프트웨어적인 문제보다는 현재 H/W적인 문제로 의심이 되긴합니다만, 확실하게 어느부분때문에 문제가 발생하는지는 모르겠습니다. Artwork 자료와 회로를 비교분석해도 도저히 알수가 없네요. 시간이 촉박한데 일이 처리되지 않아 다소 두서없게 질문을 드려서 죄송합니다. 혹 회로와 PCB 파일을 보낼 수 있는 메일을 알려주시면 소스와 회로를 검토 요청드려도 될까요?

---

Source: https://maker.wiznet.io/forum/10536
