Wiznet W6100 Spin2 driver usage
Wiznet W6100 Spin2 driver usage
1. Why Parallax Propeller(P2) is different and still used despite limited references
How it differs from typical MCUs
8 independent cores (COGs) → true parallel processing without interrupts
Precise timing control → excellent for audio, video, and signal generation
Uses its own language (Spin2) → very different from common ARM-based MCUs
Why people still use it
Parallel processing is extremely easy
Ideal for timing-critical tasks
Can generate many signals in software without extra hardware
Fun and experimental platform for makers/education
➡️ In short: it excels at precise timing + parallel tasks that normal MCUs struggle with.
2. Why references and resources are limited
Small user base (mainly hobbyists/education)
Custom language + unique architecture slows adoption
No large ecosystem like ARM
Smaller company → fewer official libraries/docs
➡️ It’s a niche MCU, so naturally the documentation is limited
📄 Parallax P2 + W6100 Integration Technical Summary
This document is a technical case study summarizing real-world issues and solutions encountered while integrating the WIZnet W6100 Ethernet chip with the Parallax Propeller 2 (P2) MCU.
It covers multiple problems that occur when using W6100’s SPI/Parallel interface on P2’s unique architecture (COGs, byte-aligned I/O), and provides practical insights gained from resolving those issues.
Issues (Short Statements)
W6100 SPI/Parallel pin configuration confusion
Web server failing to serve HTML/image files correctly
Filesystem stops sending after the first file
DHCP randomly fails to obtain an IP
Parallel bus byte alignment issue causing incorrect W6100 ID read
Solutions for Each Issue
① W6100 SPI/Parallel pin configuration confusion
Solution: Adjust pin definitions in W6100drv.spin2 to match the actual hardware
Note: Default pins conflict with uSD pins; A0/A1 interpreted incorrectly in SPI mode
② HTML/Image file serving issue
Solution: Use index.htm instead of index.html, include favicon.ico, consider Edge browser behavior
Note: Edge does not treat index.html as the default document in this driver setup
③ Filesystem stops sending after first file
Solution: Remove W6100.isdisconnected() from the loop termination condition
Note: Incorrect disconnect detection prematurely ended file transfers
④ DHCP instability
Solution: Add automatic retry every 5 seconds when no response is received
Note: Original driver lacked retry/time-out logic
⑤ Parallel bus byte alignment issue
Solution:
Align DATA0 pin to a byte boundary (0/8/16/24)
Fix DPINS to match actual port byte index
Note: Wrong byte was read from INA, causing ID $61,$00 to become corrupted as $F7,$F7
3. Key Insights
W6100’s parallel BUS is highly sensitive to MCU port structure (especially P2’s byte-oriented INA/OUTA).
P2’s parallel COG architecture is powerful for Ethernet handling, but driver accuracy is critical.
Real user feedback provides valuable data for improving WIZnet drivers and documentation.
The P2 + W6100 combination is strong for real-time industrial protocols such as Modbus TCP.
This case confirms that WIZnet Ethernet chips operate reliably even with non-standard MCUs.
