W6100-EVB-Pico2 Interrupt Stalling with io6Library
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: W6100-EVB-Pico2 Interrupt Stalling with io6Library
by WIZnet AI AI generated ·
RE: W6100-EVB-Pico2 Interrupt Stalling with io6Library
by Hannah ·
You mentioned that interrupts have stopped, but could you clarify whether this means that the INTn pin is no longer generating interrupt signals,
or if an interrupt has already occurred but hasn’t been handled yet—or perhaps is masked due to another condition?
-
SIR(SOCKET Interrupt Register)-
Sn_IR(SOCKET n Interrupt Register)RE: W6100-EVB-Pico2 Interrupt Stalling with io6Library
by cameronbprince ·
Thank you for your response. I retested with an updated w6100_interrupt_test.c (attached), adding INTn state, Sn_IMR, SIMR, and missed interrupt logging (RX_RSR>0, INTn=1). A logic analyzer captured GPIO21 (INTn) with Logic2. Below are answers based on the latest test (May 28, 2025, serial_log_20250528.txt).
Interrupt Stoppage: INTn stops generating valid signals after one invalid interrupt (Int1, SIR=0x00, INTn=1). No further interrupts occur despite RX_RSR=6156 (~108 packets). The serial log shows:
Int1: t=6388128 us, SIR=0x00, Sn_IR=0x00, RX_RSR=57, SR=0x22, INTn=1, logged as "Invalid SIR=0x00".
Miss1: RX_RSR=57, INTn=1, followed by polling (Recv1 from 192.168.137.100:51875).
Polling processes 63–151 packets/s (Recv1–691), with two overflows at RX_RSR=6156, each reducing to RX_RSR=741.
Post-reinitialization (twice): RX_RSR=114, INTn=1, SIMR=0x00, no interrupts, polling continues (Miss2–271, RX_RSR=1824–6156). The handler clears Sn_IR and SIR, re-enabling INTn if SIR=0, RX_RSR=0, Sn_SR=0x22. SIMR=0x00 post-reinitialization prevents interrupts.
Interrupt Trigger Type: Falling-edge trigger on GPIO21 (INTn), set via gpio_set_irq_enabled_with_callback(W6100_INT_PIN, GPIO_IRQ_EDGE_FALL, true, &w6100_interrupt_handler).
Interrupt Register Values:
Int1: SIR=0x00, Sn_IR=0x00, Sn_IMR=0x04, SIMR=0x01.
Miss1: SIR=0x00, Sn_IR=0x00, Sn_IMR=0x04, SIMR=0x01, RX_RSR=57.
Overflow: SIR=0x00, Sn_IR=0x00, Sn_IMR=0x04, SIMR=0x01, RX_RSR=6156.
Post-reinitialization: SIR=0x01, Sn_IR=0x04, Sn_IMR=0x04, SIMR=0x00, RX_RSR=1824–6156 (Miss2–271). Sn_IR_RECV isn’t set initially, only post-reinitialization, but SIMR=0x00 blocks interrupts.
Interrupt Waveform: Logic2 captured INTn for ~47.32s at 1 MHz (digital.csv). Early falling edges (t=1.985s, 3.334s, durations ~41ns–56µs) don’t align with Int1 (t=6.388s). From t=3.334s to t=31.940s, ~120 edges (~2.6 edges/s) occur, some in noise-like pulses (~42ns). No edges match ~95 packets/s expected. Int1’s INTn=1 and no edge suggest a false trigger. Session attached (Session6.sal).
Notes:
95 packets/s (49 bytes) is within W6100’s 8KB capacity (~143 packets). Polling (e.g., w6x00_loopback.c) handles this rate, indicating an io6Library or INTn issue.
SIMR=0x00 post-reinitialization (twice) disables interrupts, likely a reinitialize_socket bug.
Questions:
Why is Int1 triggered with SIR=0x00, INTn=1? Is this an io6Library (commit a3f5a6) bug?
Why is SIMR=0x00 post-reinitialization, disabling interrupts?
Why no Sn_IR_RECV initially at RX_RSR=6156? Are INTn settings (e.g., pull-up, SPI) incorrect?
What explains low waveform edge frequency (~2.6/s vs. 95/s) and noise pulses?
Please advise on resolving stalling, especially SIMR=0x00. I can provide more logs or tests. Thank you.
Cameron
Attachments:
w6100_interrupt_test.c
serial_log_20250528.txt
digital.csv
Session6.sal
P.S. After typing this up, I don't see a way to attach files anymore. How can I get these to you?
RE: RE: W6100-EVB-Pico2 Interrupt Stalling with io6Library
by Hannah ·
Please resend all the attached files to the email address below. I’ll review them and get back to you with a response.
hannah@wiznet.io
1. you mentioned that you used the
io6Library(commita3f5a6). Could you please share the link?2. What is the process post-reinitialization?