Connecting an Ethernet PHY to Arduino Due

Hello Tony,

Good to hear of your success with the Micrel KSZ8051RNL PHY chip.
I had a quick scan of the files, all looks good.
Missing brackets, easy to miss :slight_smile:

I'm still putting together what I hope to be a basic shield for the Due / Taijiuino which will have as you know the KSZ8081RNA PHY.
It's been years since I last did PCB design work, so a bit of re-learning on my part.

I guess what you have done should also help me with the KSZ8081 board.
What I am thinking is, it would appear we may end up with a number of PHY boards and we really need to pull theses various boards with their PHY register definitions into a PHY boards type file. This would then be a simple matter for a user to select their PHY board from a list.

The Russian PHY boards are being posted April 17/18 to me. I guess they will take a week or two to get to me still.


Paul

Hello TonyT3P3,

Above all, I am admired of the progress you made in such a short period of time with the Micrel class files for your lwIP sample. Indeed, I have always considered as a part of my actions plans, that implementation of Atmel ASF examples including the basic HTTP web server and RFTP solutions with DHCP enabled through the lwIP TCP/IP stack; but prior to this, a solid EMAC library must be created. As you may have noticed, rockwallaby is now involved to achieve this. So far, we have a workable EMAC library but full of pointers, structures, and low-level stuff that must be replaced. In other words, it is in the alpha-stage and we are in the process to build a CPP Ethernet API that will provide an easy use to the people here in the forum. Having said that, it is only a matter of a short period of time. Regards!


Hope it could make things easy

Hasn't helped me any.


Rob

swseansw,

Do you provide a magnifying glass.
Or some details about what you are suggesting could hopefully make what easy?


Paul

swseansw:

Hope it could make things easy

An little bit barely an explanation.

This module is designed with reference to the Atmel SAM3X-EK board, and has a microSD card slot on it. The PHY chip is DM9161.

This module is in testing now. Detail information will be delivered when the testing is finished.

The testing process is not going well.
I compiled the beRTOS SAM3X-EK examples to test this DUE Ethernet module with Taijiuino DUE. Unfortunately, something was wrong, the module didn't preform as expected. Now i want to open the beRtos's DEBUG option to see what happened. But i don't find the correct way.

I want to find out whether the DM9161 is working, does anyone know which SAM3X8E's register should i check.
How can i open the tcpip function's debug option.

Hello,

I want to clarify that the emac class files (emac.c, emac.h) ARE NOT contained in the current Arduino IDE version 1.5.2.
For those interested to get these files, please refer to the following link:

For the emac.h ----> https://github.com/cmaglie/Arduino/tree/ide-1.5.x/hardware/arduino/sam/system/libsam/include
For the emac.c ----> https://github.com/cmaglie/Arduino/tree/ide-1.5.x/hardware/arduino/sam/system/libsam/source

Regards,
Wilfredo

I agree that we will end up having a number of different Phy drivers to incorporate within an overall "Due Ethernet" library. The SAM3X-EK example that I modified has ARM(CMSIS), ATMEL(ASF) and LwIP code. It might be better to look at a LwIP or another stack without all the rest and see if its possible to add Due support, we would then benefit from further developments of the LwIP stack, rather than a Arduino specific library that once working may not be further developed.

Thoughts?

I have been lurking, watching this thread from the start, now its time for me to try with due-ethernet! I have been working on a custom diy board which has onboard micrel 8051 phy and magjack. Finally got one built up and it passed the blink test. Now on to try and follow the leader with the lwip example.

Hello komby,

Wow, I am amazed with what you have pulled off. Nice work!

This is getting really good. So far, you are the fourth developer with a Due DIY board-oriented that includes the Ethernet phy interface (floating or embedded).

Here the list (with no order of preference but chronological for me):

1- as-kit.ru new AS-SAM3X board (also includes the CAN bus embedded interface)

2- elechouse.com new Taijiuino R2 version.

3- Graynomad's Black Diamond (also includes CAN bus and other communication interfaces).

4- komby (web site?)

I am happy that this initiative has already gained a great deal of software/hardware support.

Thank you,
Wilfredo

Palliser:
Hello komby,

Wow, I am amazed with what you have pulled off. Nice work!

This is getting really good. So far, you are the fourth developer with a Due DIY board-oriented that includes the Ethernet phy interface (floating or embedded).

Here the list (with no order of preference but chronological for me):

1- as-kit.ru new AS-SAM3X board (also includes the CAN bus embedded interface)

2- elechouse.com new Taijiuino R2 version.

3- Graynomad's Black Diamond (also includes CAN bus and other communication interfaces).

4- komby (web site?)

I am happy that this initiative has already gained a great deal of software/hardware support.

Thank you,
Wilfredo

Thanks Wilfredo. To be fair I'm still unsure if its pulled off yet!...I just soldered the first one together yesterday :)... That said I am working on making sure it does work. I do have a little bit of information about it on komby.com but I was planning on verifying the board is working before publishing the eagle files. If any of the people on the thread who are working on the Ethernet Library and are interested in one of the prototype boards PM me. I made a lot of sacrifices on the board to get the ethernet onboard as well as some nRF24L01 headers so it may be a bit specialized for common use...

Please allow me to tell everybody who might be interested in Due-Ethernet. You could find a hardware kit for developing this libaray here:
On ebay click here
On official web click here
We hope this kits could help those software guys who are less patient and sick of handing wires.

Took a look at it. This hardware kit can't be used simultaneously with your CTE LCD shields. Bummer. Split decision... lots of wires for the LCD or lots of wires for the Ethernet. Oh well. The DUE platform will get there eventually.

We know it is not perfect. While designing it, we didn't consider its compatibility with other modules in hardware. The best choice would be a Due shield which contains PHY chips. But we think we should do that later. As this library is not finished yet, a small and cheap PHY module would be better. That's how it comes. Sure later there will be a shield for Due to have all on it.

Yes, you are correct, I didn't mean it as a criticism. DUE is such a work in progress... I appreciate you providing this module which eliminates all of the wiring for folks trying to develop the Ethernet libraries.

Somewhere down the road, we will all figure out how to make the UI, Comms, and I/O portions all play nice together on DUE. Which will give us feature parity with UNO, but higher performance and greater capabilities.

I've looking forward to seeing what the folks down under will have when they release Black Diamond.

I've looking forward to seeing what the folks down under will have when they release Black Diamond.

Me to :slight_smile:

The project is alive and well, there has been a lot of changes in the last 2-3 weeks, often due to input from interested parties. We froze the design about 3 days ago then had another bright idea, oh well better to try and get it as right as possible.

When implementing various comms, EMAC, SD, and external memory interfaces there are not many pins left for GPIO so don't expect a huge IO pin count. That said what we do have should be quite robust, not just raw pins connected to the big bad world.

I'll post more details on the Black Diamond thread soon.


Rob

New thread started about the successor to the Black Diamond.

http://forum.arduino.cc/index.php?topic=170901.new#new


Rob

ODwyerPW:
Took a look at it. This hardware kit can't be used simultaneously with your CTE LCD shields. Bummer. Split decision... lots of wires for the LCD or lots of wires for the Ethernet. Oh well. The DUE platform will get there eventually.

Ehm.. What does this mean? Arduino Due cannot have SD+TFT+Touch+ethernet - or does this just mean that shields are incompatible if they are not being wired? I am interested in a project that has a tft with touch.. And Sd.. And would be connected with ethernet.. Currently I have a shield from aqualed source for 5.0" tft - and was thinking I could use a ribbon cable to take ethernet connection "outside" - but does this then work or not?

Small web server example using Taijiuino.

As some of the followers of this thread know, I have been working porting the EMAC library and example from AS6 ASF SAM3X-EK to the Arduino Due environment. Even though I tried to put the Due in action, it is very hard under its actual design. Thus, I migrated to Taijiunio and AS-Sam3x (third parties Due based boards). So far, we have a very raw workable library but also we have been very busy to finish it. We have some plan to continue next month (Paul, Thibaut and me).
In the meantime of our EMAC library development and taking advantage that the raw EMAC library is working decently, I have decided to explore, what is, our next frontier: to use the potential EMAC cababilities of Arduino Due (now available in the Taijiuino board) an convert it in a small web server. Thus, I made a raw porting of the AS6 ASF lwIP Atmel example. This example features a basic HTTP web server using lwIP TCP/IP stack and the EMAC driver of the Taijiuino in mode standalone (without OS).

Plugging directly the Ethernet cable into the Taijiuino EMAC kit to my laptop and configuring the network to local mode setting up a 'point-to-point' network, now I can launch my Google Chrome web browser and typing the IP address assigned automatically to the Taijiuno (DHCP mode) and see an index.html page that comes with the example (converted into a static C struct, with HEX codes, with the help of a small Perl script).

Here attached a couple of pictures of the Taijiuino in action and the serial output. I have planned (of course) to polish and finish this raw code of the web server (it is messy and big now) into the Arduino IDE environment and create some input/output functions like turn on/off digital outputs using buttons in the web page, or change analog signals using a painted potentiometer or show status of some parameters in the board (temperature, voltage, etc.) but...that will take some weeks. Regards!