아래 w5100 추가 질문
Ethernet Chips
No replies yet. Be the first to reply.
Join the discussion.
Ethernet Chips
No replies yet. Be the first to reply.
Join the discussion.
Share projects and connect with makers.
Joined before the site update? first.
New to WIZnet Makers?
We sent a verification link to your address. Open it to activate your account, then log in.
Accounts from this email provider are reviewed by an administrator after verification. Approval usually takes one business day.
Already have an account?
Enter your email address. If it belongs to an account, we'll send a link to set a new password. Members who joined before the site update use this to set their password.
If an account uses that address, we sent a link to set a new password. The link works once and expires in 30 minutes.
Know your password?
Need an account?
RE: 아래 w5100 추가 질문
by sangk ·
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 파일을 보낼 수 있는 메일을 알려주시면 소스와 회로를 검토 요청드려도 될까요?