I know the demand for an ethernet component is really high. PSoC is such a great chip and it really s*cks that there's no good ethernet solution for it. I see this question coming up here and on the PSoCdeveloper forum many times.
Yes, we can use Xport, Wiznet or any additional module. However most of these solutions gets quite expensive if you are speaking about quantities.
As many ARM controller manufacturers also have ethernet inside their controllers, it would be great to have an Ethernet Component for PSoC.
I've used Wiznet for some of my projects but my ethernet knowledge not really goes that deep. I am looking to port one of the open source TCP/IP stacks like uIP or lwIP. I guess it will not be that hard as there are many uIP ports already successfully done.
I'd like to make a start in discussing porting uIP, lwIP or any other....
- which stack is best suited for PSoC3/5?
- are there any ports yet done on GCC or Keil?
- can we use a repository like SourceForge?
- would you like to contribute in such development?
- can we use PSoC's hardware blocks to implement MAC/PHY or do we still have to use external?
Okay guys, let's get this sucker done for PSoC!
There is already a ENC28J60 port to the PSoC3 available: https://github.com/kmmankad/ENC28J60-PSoC3
I guess it will be rather hard to implement the MAC inside of the PSoC, and as for the PHY - this will be even more interesting
Thanks hli, never knew there's already an PSoC3 port!
It seems that it is based on the free IP stack of Duncan Frost. This stack is not completely bug free, but I think it's a good place to start. According to the CC license, we can use work of kmmankad for commercial projects, so it all looks very good!
Probably, I will contribute to the project beginning of next year as I need a PSoC5 ethernet solution.
Thanks for pointing out!
We are working on a prototype PSoC 5 based Ethernet solution that implements 10-BaseT MAC + PHY inside PSoC. Following are the features supported -
- IEEE 802.3az compliance
- Integrated MAC + PHY
- Full Duplex Mode only
- Addressing Modes - Unicast, Multicast, Broadcast
- Separate DMA channels for RX & TX
- Configurable RX & TX FIFO
- PHY Link activity LEDs
- Uses 4 GPIOs and Magnetics
- Software support - LwIP
Would the above features work for you all?
Looking for feedback on the feature set.
Whoa, this is great news! So I just need an external MagJack (with integrated magnetics) and are ready to go?
How much resources (UDBs, Flash, sRam) does it need?
I'm curious too about the resource usage. Also, do you release the component to the public domain or will we have to buy a license?
Yes, you just need an external RJ45 connector with magnetics to get this to work. Currently we can fit the MAC and PHY in 4 UDBs. Flash/RAM size is purely dependent on the application as LwIP TCP/IP stack is configurable. Our unoptimized version of application running a web server takes 30K Flash and 15K SRAM for PSoC 5. This should come down as we are not using the best optimization level for compiler.
As for the release of the component, it will be made available to public but we are still working on the right model.
Question - Do the feature set and stack support work for your application? Do you see any other specific needs?
I'm the dude who did the ENC28J60 based network stack mentioned above.Its pretty robust,and all the examples posted work flawlessly,tested with many different network setuPlease point out bugs you have encountered,I'll be more than happy to fix those 🙂
@sath - Thats GREAT news! Any chance that community members can join in the development(or alteast testing?)
We are looking to get the Ethernet solution out by first half of 2013. As mentioned earlier, we are currently validating the prototype and should have more information about the solution soon.
lwIP is the stack that we are currently using in our proto solution. lwIP supports SLIP and many other protocols.
@kmmankad, i am trying to use your project for a PSoC 5 project. i am unable to do so. Can you help me out? For porting it to PSoC 5, what changes should i do? i removed the Die temperature sensor and manually assigned a value to die temperature. But i am unable to connect to the ip address 192.168.1.153 to see the webpage. The device is not responding for ping also. The status and activity LEDs are blinking. I checked with wireshark and the device does not send any packets at all. I am using CY8CKIT-001 and PSOC5 board mounted on it.
Also, can you give me contact details of people who have mailed you regarding port to PSoC 5?
Hi. I use the project kmmancad which is here mentioned.
I want to warn you:
I mistakenly used another project, in which contact MISO was used as a Strong Drive output.
I connected this device:
The device was destroyed: burned output 6 of ENC28J60.
Be careful, do not repeat my mistakes.
@ avast - Thank you for the tip 🙂 and couldn't wait for the Ethernet component from sath (if only it was out by now, my job could me much easier)
@ pavloven - Thanks a LOT! I was using the code from the same github u pointed to but i couldnt find the instructions link. How silly i am... kmmankad had given the link to the blogspot in readme only... i failed to notifce it. Thanks for pointing out 🙂
Let me try better now
Ported kmmankad's work to PSoC5... Webserver and UDP are working fine... Thanks everyone...
P.S. Can you guys help with sharing the project here so that someone else like me will find it helpful until Sathya's components releases?
In Creator, file menu, :"Create Workspace Bundle", and upload using IE
or Mozilla, control at bottom of post window to attach file. Apparently
chrome has issues doing uploads.
Wow nice work Sath,
To use just 4 UDBs to implement Ethernet MAC+PHY is just awesome. To tell you the truth I'm still skeptical, but it would show how powerfull and flexible PSOCs are. Just imagine the face of an Atmel or PIC guy when he sees you just droping an ethernet user module to your project. No external modules no external ICs, just epic.
I've used a W5100 module with another microcontroller on a project before. it is actually quite easy to use.
The board you mention seems to be a pretty good deal for the money (I got a smaller module for $32 from digikey). But it seems you can get them even cheaper from ebay.
It is good for experimentation and one-offs. But just like the ENC28J60 module, chip cost quickly adds up.
manojr_cet ... were you able to upload your port to the PSoC5? I'm very interested in using this code with the PSoC4, and want to see if it's possible ...
I've looked, but not found it anywhere?
In fact, i had completed mainly ARP and UDP only. Webserver is only half complete, but it worked for me with PSoC5 kit. Good to know that the port is useful 🙂
Great to know that my TCP/IP stack is really helping you guys.
The reason I abandoned active development is that there are far cheaper and more efficient ethernet solutions out there now.I had planned to start working with the CC3000 Wifi chip from TI,but havent got around to doing so.