From: Randall Nortman on
Thanks to all who responded to the previous thread I started regarding
AVR+Nut/OS vs. ARM+Linux. I have decided to go with an AVR (Mega128)
with external SRAM (32kB or 64kB, probably) and an external ethernet
MAC. (I would still consider the AT91SAM7X, except that it doesn't
seem to be generally available yet. If anybody knows where I can get
it, I'll give it a shot.) For the OS and, more importantly, TCP/IP
stack, I'm still looking at Nut/OS, but have also expanded the options
to include Contiki and FreeRTOS (with uIP), or possibly just uIP with
no external OS.

But, there remains the question of which Ethernet chip to use. I only
need 10Mbps, but I wouldn't mind running in 100Mbps mode. (At 16
MIPS, I'm not going to be able to saturate even 10M, but it would be
nice to be able to put these things on a hub with 100Mbps nodes
without slowing everything to 10Mbps. Some hubs can mix 10/100 right,
but not all.) The RTL8019AS is apparently popular with hobbyists, but
it seems difficult to source (not carried by Digi-Key, for example).
Still, it seems like I can most easily find pre-written drivers for
this chip, so I wouldn't need to write my own. (I've never written
Ethernet code, so I'm a little clueless about how it all works.)

Anybody have other recommendations? My primary concerns are, in
priority order: (a) reliability, (b) getting the TCP/IP stack up and
running with a minimum of coding in one or all of the above-mentioned
OS environments, (c) minimizing the number of traces on the PCB, chip
footprint, and heat generation, and (d) being able to buy the chip
cheaply and reliably in small/moderate quantities (from half a dozen
for prototyping to a couple hundred for subsequent production).

Opinions on the three operating systems I mentioned (Nut/OS, Contiki,
FreeRTOS+uIP) would also be appreciated. My primary concern here is
that it be as close to working out of the box (or rather, out of the
..tar.gz file) as possible. It would also be nice to be able to
migrate easily to an ARM7 chip in the next generation.

And lastly, I don't suppose there are really a lot of differences, but
I'm also going to need to choose an external SRAM chip and one of
those shielded RJ45 jacks with integrated transformers. If there are
any particular features I need to look for or gotchas in making these
selections, I'd appreciate a tip. ;)

TIA,

--
Randall
From: David Kelly on
In article <fD0Ue.8951$_84.6027(a)newsread1.news.atl.earthlink.net>,
Randall Nortman <usenet8189(a)wonderclown.com> wrote:

> But, there remains the question of which Ethernet chip to use. I only
> need 10Mbps, but I wouldn't mind running in 100Mbps mode. (At 16
> MIPS, I'm not going to be able to saturate even 10M, but it would be
> nice to be able to put these things on a hub with 100Mbps nodes
> without slowing everything to 10Mbps. Some hubs can mix 10/100 right,
> but not all.) The RTL8019AS is apparently popular with hobbyists, but
> it seems difficult to source (not carried by Digi-Key, for example).
> Still, it seems like I can most easily find pre-written drivers for
> this chip, so I wouldn't need to write my own. (I've never written
> Ethernet code, so I'm a little clueless about how it all works.)

If staying with AVR was a done deal then my top choice for grafting
ethernet to the AVR was the Microchip ENC28J60. First I heard it was to
ship in July, then August. http://www.edtp.com/ currently lists
September 15.

ENC28J60 has a lot of advantages, all on paper because the part isn't
shipping. Small pin count. Easy SPI interface. Reasonable price. And
will one day be available from every source currently selling PICs.
From: Richard H. on
Randall Nortman wrote:
> But, there remains the question of which Ethernet chip to use. I only
> need 10Mbps, but I wouldn't mind running in 100Mbps mode.

As you point out, running 10/100 let's you auto-negotiate the speed,
making your product more compatible. You'll encounter some environments
that require 100Mbps connections, even if the device doesn't call for
it. It also avoids problems with duplex mis-match, which causes
unreliable connections. (Negotiating to full-duplex yields a
higher-performance connection too, though not a concern for you.)

Look at the ASIX AX88796l 10/100 ISA chip. It uses a modified NE2000
driver (like the Realtek RTL8019AS). You can source proto boards from
http://www.edtp.com (you'll find Mega128 drivers for the ASIX there too).

You can buy in small quantities direct from the manufacturer ($175 for
25x, +$30 S&H and ~$45 T&T fee [wire transfer fee charged by your
bank]). http://www.asix.com.tw

However, it's QFP-128 footprint (slightly wider than the Mega128), it
should run in 8-bit mode (but I haven't tried it); and it requires 5
address lines, 5 control lines, and 8/16 data lines. Pulls 95mA
typical; runs cool to the touch. (Microchip's SPI controller is really
the next step WRT fewer signal lines, but IIRC it also pulls 250mA at 10Mb.)

For the jack, Bothhand NU1S041C-434 RJ-45 w/ magnetics & 3 LEDs is very
popular. $3.50 each in tubes of 28 + $10 S&H from
http://www.bothhandusa.com. (Some others are Delta, Pulse, Bel Fuse,
HALO, MagJack, Tyco, Molex, etc.)

HTH,
Richard
From: Tilmann Reh on
David Kelly schrieb:

>> But, there remains the question of which Ethernet chip to use. I only
>> need 10Mbps, but I wouldn't mind running in 100Mbps mode. (At 16
>> MIPS, I'm not going to be able to saturate even 10M, but it would be
>> nice to be able to put these things on a hub with 100Mbps nodes
>> without slowing everything to 10Mbps. Some hubs can mix 10/100 right,
>> but not all.) The RTL8019AS is apparently popular with hobbyists, but
>> it seems difficult to source (not carried by Digi-Key, for example).
>> Still, it seems like I can most easily find pre-written drivers for
>> this chip, so I wouldn't need to write my own. (I've never written
>> Ethernet code, so I'm a little clueless about how it all works.)
>
> If staying with AVR was a done deal then my top choice for grafting
> ethernet to the AVR was the Microchip ENC28J60. First I heard it was to
> ship in July, then August. http://www.edtp.com/ currently lists
> September 15.
>
> ENC28J60 has a lot of advantages, all on paper because the part isn't
> shipping. Small pin count. Easy SPI interface. Reasonable price. And
> will one day be available from every source currently selling PICs.

I would also think in that direction.

Using "PC board mainstream" parts always have the risk that these
probably become obsolete half a year after design-in. Chips that are
targeted to industrial electronics normally have much longer lives.

--
Dipl.-Ing. Tilmann Reh
http://www.autometer.de - Elektronik nach Maý.
From: pbreed on
Why the Mega128???

Let's look at silicon costs...

Mega 128 $8.00
SRAM $1.50
Mac Phy $4.00
Ethernet Jack $1.95

Total Silicon 15.45


Freescale/Coldfire 5270 7.95 (We currently use the 150Mhz version $9.54)
512K Flash 1.25
10/100 Enet Phy 1.50
10/100 Etyhenet Jack 1.95
Total Silicon 12.65

I'd personally ad 2Mbytes of SDRAM to make things easier
Total Silicon with SDRAM $14.15

over $1.00 cheaper than the MEGA 128 solution.

This gives you a far more capable unit.
100Mhz 32 bit CPU, 512K flash ,2M bytes of SRAM, 3 uarts, CAN, I2C, SPI, 16 timers,
10/100 Ethernet.

If you need A/D from the Mega then substitute a freescale 5282 for the CPU and Flash.

We offer turnkey ready to use modules based on this part
You can start your software development today.

We will sell you the design, hardware, software tcp, tools,. compiler linker debugger,
with full source etc..etc... . so you can produce your own modules for $24,500
This is a site license for an unlimited number of designs, with no royalties.
This price includes a design review of your first hardware design based on our
design.
If you just wanted to produce a clone of our modules, the PCB designs are even included.

If you have realistic costing for your engineering time you would
be hard pressed to do a hardware design and port a tool set, RTOS and tcpip stack to
any design for 24K.

As a general comment, some people are scared by the word RTOS, it's there and it keeps all
the TCP/IP services running in the background, but for your own programming you don't need to
use it at all, just write your code in the way you are accustomed, a single threadof execution
with interrupts providing any necessary scheduleing.

See
http://www.netburner.com/products/processors/Mod5270.htm

and

http://www.netburner.com/products/licensing.htm

RTOS example:

http://www.netburner.com/projects/RtosVsInfiniteLoop.pdf


Paul