Looking for suggestions for processor/module/sbc with ethernet

From: Stephen (spambox42_at_yahoo.co.uk)
Date: 08/24/04


Date: Tue, 24 Aug 2004 19:17:55 +0100


Hello

I'm looking for suggestions for an embedded microcontroller (processor,
module or SBC all under consideration). I don't necessarily expect to get
everything on one chip or module, we will be supplying our own motherboard
either way, but the more we can get from the cpu/module then the less we
need on the motherboard. The ideal list of requirements are roughly:

- A fast 8-bitter, equivalent in performance to a theoretical 100MHz 8051
with hardware multiply/divide unit, or a medium sized 16-bitter or a low
end 32-bitter.

- 5V technology, or 3V with 5V compliant inputs/outputs. Surface mount.

- 512KB code space. At least eprom, preferably ISP flash (serial onchip
bootloader). Code estimate based on our current 8051 code which is 60000+
lines in around 150KB using Keil C51.

- 1MB battery backed up SRAM, although might consider 512KB SRAM if we can
cost effectively also have an additional 512KB+ of flash, possibly compact
flash.

- Preferably a flat address space, but paging would be acceptable if we
can get a "nice" page layout such as 32KB fixed + 32KB paged, and
providing the development environment's requirements didn't steal lots of
common page memory from us.

- Ethernet. 10BaseT minimal, 100BaseT would be nice. Would consider a
software solution or a single-chip solution, but either way, don't have
time to write the TCP/IP stack.

- 50 to 60 general I/O pins.

- 4 external interrupts. Multi-priority interrupt system.

- 2 CPU driven PWM channels.

- 6 serial ports, one of which can run in synchronous mode. (Suspect we'll
end up with 2 plus a quad UART or 4 plus a dual).

- SPI channel, although I'm happy to bit-bang that. Likewise I2C.

- 8x 10-bit ADC (multiplexing acceptable), although I suspect we'll
probably need to add a chip for this.

- Enough CPU internal programmable timers that we have at least 2 free for
our own private use after any other CPU components (e.g. serial + pwm) are
driven from timers.

- Realtime Clock, preferably a real hardware clock with programmable
minute interrupts and alarm times, and not a software based interrupt
driven clock off a simple "realtime counter".

- Watchdog timer.

- Power supervisor for RTC/SRAM protection and early power fail detection.

- Low cost (of course!) at 100 off quantities (500/year max). Difficult to
quantify given that our target is an overall price including our custom
motherboard, the complexity of which depends on what the cpu/module/sbc
gives us, but as a guide, a module with the processor/flash/sram should be
under $50.

We are currently considering either a fast top of the range 8051, the
C166/167, or the Rabbit 3000 modules, but all of which have "issues".

A top of the range 8051 seems to be prone to poor longevity. Not currently
sure about the longevity of a C166 or the availability of non-royalty
TCP/IP or how widely used the C166 is.

The rabbit, although nicely priced with ethernet, currently looks like it
hasn't got the horsepower. Dynamic C seems to suggest (in several
documents) around 50000 lines of C takes 1MB, which compared to our 8051
running 60000 lines in around 150KB makes it around 6 to 8 times less
efficient. Even accounting for the move to softools compiler (which we
would definitely be doing), we are assuming some of the inefficiency comes
about due to the Z80 architecture. Not only does this force up the code
size, but we wonder how much gain the 44MHz really is when the code is
this inefficient.

Software-only based TCP/IP on a 8 bit is also a concern, not having done
this before.

So, if anyone has any alternative suggestions we can look into, I'd
greatly appreciate it. I accept we are probably trying to get more out of
a small 8 bit micro than most others would attempt, hence we're now
considering 16/32 bit too.

Stephen



Relevant Pages

  • Re: time jumps (again)
    ... > How many interrupt timers are there in various systems? ... In my high-res-timers model I don't rely on interrupts to "clock" ... The TSC is not stable in a fair number of machines. ...
    (Linux-Kernel)
  • Re: Best solution for millisecond accuracy
    ... Also, Windows, in default configuration, will only provide a resolution ... of about 15 to 20ms (whatever the clock interrupt rate is) in the times ... I would think that the probability of lost interrupts will be increased. ... The reason that both Linux and Windows lose interrupts is that they ...
    (comp.protocols.time.ntp)
  • Re: ntp sanity limit kills ntp daily
    ... > are talking about is the software clock maintained by the O/S. ... The O/S disables or ... > masks interrupts for short periods in order to perform some operation ...
    (comp.os.linux.setup)
  • Re: Time is going very much off all the time
    ... The PC is not turned off, so the battery could not be there, for all I ... cumulative so eventually the clock will loose more and more time. ... Doing what I recommended sets the RTC and the software clock to the same ... interrupts which are set to occur once every 10ms. ...
    (alt.os.linux.suse)
  • Re: [discuss] x86-64: double timer interrupts in recent 2.4.x
    ... I also get interrupts only on one cpu and my clock is ticking strange, ... > The timer interrupt counter is increasing at a rate of 200/real second, ...
    (Linux-Kernel)