Netduino home hardware projects downloads community

Jump to content


The Netduino forums have been replaced by new forums at community.wildernesslabs.co. This site has been preserved for archival purposes only and the ability to make new accounts or posts has been turned off.
Photo

Deep dive on Asix AX88796C (Netduino 3 Ethernet's fancy new networking chip)


  • Please log in to reply
6 replies to this topic

#1 Chris Walker

Chris Walker

    Secret Labs Staff

  • Moderators
  • 7767 posts
  • LocationNew York, NY

Posted 06 August 2015 - 07:58 PM

Netduino Plus 2 used Microchip's ENC28J60 SPI-based MAC/PHY chip for networking support. This chip is widely used but, well, it's old. It only supports 10mbps. And it isn't designed for today's power-efficient designs.

So when we were designing Netduino 3 Ethernet, we cleared off the drawing board and went searching for the ultimate SPI-based networking chip.

We found the Asix AX88796C. It's low-power. It's feature-rich. And it's really awesome.

Here is a link for more info:
http://www.asix.com....temID=104;65;86

Here are just a few of the great new features of the Asix chip:
* 10/100 mbps :)
* Larger on-chip SRAM buffers
* Designed for both IPv4 and IPv6.
* Offloads IPv4 and IPv6 checksums to hardware.
* Supports twister-pair crossover detection and auto-correction.
* Dynamic power management, reducing power consumption when the cable is disconnected, the network is idle, etc.

For those of you who want to do cool hacks, you can tweak Netduino.IP to do even more with this chip:
* Supports VLANs (not used in Netduino.IP -- but could be added for custom commercial applications)
* Supports ARP protocol offload, wake-on-LAN, etc.
* DMA support, and more.

And if you're building custom Netduino-derived boards for industrial applications, Asix even makes a special industrial temperature (-40 C to 85 C) version of the chip.

Of course we have built a fully managed-code driver for the AX88796C chip (which is running with Netduino.IP on every Netduino 3 Ethernet mainboard).

C# driver source, for the curious (and for advanced hacks):
https://github.com/n...Layers.AX88796C

In summary: ENC28J60 was good for networking, but AX88796C is great. We now have a PC-class (but micro-optimized) networking chip for NETMF applications. The future is here.

Chris

#2 xc2rx

xc2rx

    Member

  • Members
  • PipPip
  • 27 posts

Posted 08 August 2015 - 06:59 PM

Hi Chris,

 

Thanks for the detail description of the new Netduino 3 ethernet chip. I like descriptive post like this one, keep it coming. I will play with the Ethernet version once I'm through with the Wifi version. BTW, haven't looked at the datasheet of the Ethernet ASIX, can it achieve true 100Mbps throughput (or close to it) at the C driver level? What's the maximum SPI speed? I know all these answers are in the datasheet but I'm short on time so haven't had a chance to read through it.



#3 Terrence

Terrence

    Member

  • Members
  • PipPip
  • 24 posts

Posted 09 August 2015 - 03:50 PM

Is there sample code out there that shows how to post data to a webapi using ND3 Ethernet? I would like to start off fresh and use come code that you experts have approved. I am sure my old code is riddled with inefficiencies.

Thank you.

#4 Chris Walker

Chris Walker

    Secret Labs Staff

  • Moderators
  • 7767 posts
  • LocationNew York, NY

Posted 10 August 2015 - 05:51 PM

Hi xc2rx,

Thanks for the detail description of the new Netduino 3 ethernet chip. I like descriptive post like this one, keep it coming. I will play with the Ethernet version once I'm through with the Wifi version. BTW, haven't looked at the datasheet of the Ethernet ASIX, can it achieve true 100Mbps throughput (or close to it) at the C driver level? What's the maximum SPI speed? I know all these answers are in the datasheet but I'm short on time so haven't had a chance to read through it.

While the network chip supports 100mbps links, the SPI bus interface is hardware-limited to tens of mbps. This is plenty for most embedded scenarios. For applications where a full 100mbps is required, you're probably going to want to look at a PC-class microprocessor solution.

chris

#5 Chris Walker

Chris Walker

    Secret Labs Staff

  • Moderators
  • 7767 posts
  • LocationNew York, NY

Posted 10 August 2015 - 05:53 PM

Is there sample code out there that shows how to post data to a webapi using ND3 Ethernet? I would like to start off fresh and use come code that you experts have approved. I am sure my old code is riddled with inefficiencies.

If you want to use the rich HttpWebRequest class, this should be a reasonable primer:
https://msdn.microso...(v=vs.110).aspx

You might also try out raw TCP sockets for a more memory-efficient solution... Check out the NETMF SDK's SocketClient sample.

Does that get you on the right path?

Chris

#6 Terrence

Terrence

    Member

  • Members
  • PipPip
  • 24 posts

Posted 10 August 2015 - 09:30 PM

>>Does that get you on the right path?

 

Yes, it does.

 

Thank you.

 

[Edit]

 

I have uninstalled and re-installed netmf-v4.3.2-sdk-QFE2-RTM, and the R2-Beta and none of them install the samples in the documents folder like it says it will.

 

What is the magic trick to getting the samples?  Can't seem to find a link to download them separately.

 

Thanks for your help.



#7 Chris Walker

Chris Walker

    Secret Labs Staff

  • Moderators
  • 7767 posts
  • LocationNew York, NY

Posted 10 August 2015 - 10:52 PM

I have uninstalled and re-installed netmf-v4.3.2-sdk-QFE2-RTM, and the R2-Beta and none of them install the sampl


Aargh. Not sure why the samples aren't included in the latest NETMF SDK releases.

Here's a link to the source. If you pull the projects you will need to pull in the source manually (or tweak the project files) because the project file paths refer to Platform Kit environment variables (SPOCLIENT, etc.)
http://netmf.codeple...roduct/Samples/

Chris




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

home    hardware    projects    downloads    community    where to buy    contact Copyright © 2016 Wilderness Labs Inc.  |  Legal   |   CC BY-SA
This webpage is licensed under a Creative Commons Attribution-ShareAlike License.