@evanh said:
Jon,
Where is all your objects stored? I had a look in Obex for your bit-bashed SPI but couldn't find it.
As Terry pointed out, some of my early objects got folded into the Propeller Tool distribution. Please note that those files are on the oldish side, and I'm not as clever at PASM programming as you are. If you find issues (possible) or have suggestions for improvements (likely), please let me know. I wrote jm_spi.spin2 before I got a handle on smart pins. That file might still be useful, yet, again, I am open to skilled programmers improving it.
I wanted to capture the differences I have found between the W6100 and W6300. So far, the only issues I have found is the value difference of the SPI block selection. The parallel block select is the same between the chips, with reserved bits. Below are from the W6300 datasheet.
SPI Block Selection
Parallel Block Selection
I had the extra 0:2 reserved bits in my constants and that was the issue that caught me here. I might be able to combine these drivers into a single WS6x00 driver. Not sure of the best way to go about it.
Looks like the main difference between 6300 and 6100 is that with 6300 you can use a QPI interface and get similar or faster bandwidth as 6100 in 8-bit parallel mode?
@Rayman said:
Looks like the main difference between 6300 and 6100 is that with 6300 you can use a QPI interface and get similar or faster bandwidth as 6100 in 8-bit parallel mode?
Yes. Also the W6300 is clocked at 150Mhz vs 100Mhz of the W6100. (Though it is not documented correctly in the datasheet of the W6300) I believe the W6300 was put out to correct some of the performance problems of the W6100. Otherwise, I don't see anything wrong with the W6100.
Once I get Quad SPI going, I will make it drink from the UDP firehose and see how it does.
@evanh said:
Jon,
Where is all your objects stored? I had a look in Obex for your bit-bashed SPI but couldn't find it.
As Terry pointed out, some of my early objects got folded into the Propeller Tool distribution. Please note that those files are on the oldish side, and I'm not as clever at PASM programming as you are. If you find issues (possible) or have suggestions for improvements (likely), please let me know. I wrote jm_spi.spin2 before I got a handle on smart pins. That file might still be useful, yet, again, I am open to skilled programmers improving it.
Found it, thank you both for the direction. Bit-bashed has its simplicity and versatility.
I'm hacking up something and rough plan is to use the same API to make it easier integration for what Terry has already written.
@ke4pjw said:
Yes. Also the W6300 is clocked at 150Mhz vs 100Mhz of the W6100. (Though it is not documented correctly in the datasheet of the W6300) ...
I also noted an error on page 73 of v1.0.1 (4 Dec 2025) datasheet at https://docs.wiznet.io/Product/Chip/Ethernet/W6300 - where it draws a diagram of SPI mode 3 but with the labels "sampling" and "toggling" in wrong order.
Comments
So far only changes in block selection. Web server works!
Congrats, Terry!
Jon,
Where is all your objects stored? I had a look in Obex for your bit-bashed SPI but couldn't find it.
The one I am using is in the Library folder that comes with PropTool.
Thanks Jon! Couldn't have got this far without your code. THANK YOU!
As Terry pointed out, some of my early objects got folded into the Propeller Tool distribution. Please note that those files are on the oldish side, and I'm not as clever at PASM programming as you are. If you find issues (possible) or have suggestions for improvements (likely), please let me know. I wrote jm_spi.spin2 before I got a handle on smart pins. That file might still be useful, yet, again, I am open to skilled programmers improving it.
You're welcome. At some point I need to study your driver so that I can connect my Propellers to my home network.
I wanted to capture the differences I have found between the W6100 and W6300. So far, the only issues I have found is the value difference of the SPI block selection. The parallel block select is the same between the chips, with reserved bits. Below are from the W6300 datasheet.


SPI Block Selection
Parallel Block Selection
I had the extra 0:2 reserved bits in my constants and that was the issue that caught me here. I might be able to combine these drivers into a single WS6x00 driver. Not sure of the best way to go about it.
Looks like the main difference between 6300 and 6100 is that with 6300 you can use a QPI interface and get similar or faster bandwidth as 6100 in 8-bit parallel mode?
Yes. Also the W6300 is clocked at 150Mhz vs 100Mhz of the W6100. (Though it is not documented correctly in the datasheet of the W6300) I believe the W6300 was put out to correct some of the performance problems of the W6100. Otherwise, I don't see anything wrong with the W6100.
Once I get Quad SPI going, I will make it drink from the UDP firehose and see how it does.
Found it, thank you both for the direction. Bit-bashed has its simplicity and versatility.
I'm hacking up something and rough plan is to use the same API to make it easier integration for what Terry has already written.
I also noted an error on page 73 of v1.0.1 (4 Dec 2025) datasheet at https://docs.wiznet.io/Product/Chip/Ethernet/W6300 - where it draws a diagram of SPI mode 3 but with the labels "sampling" and "toggling" in wrong order.