Looking for suggestions for processor/module/sbc with ethernet

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

Reply to
Stephen
Loading thread data ...

The C166 is a dead duck, the 161/3/4/7 are viable and fairly popular especially in automotive. Quite nice parts, although Infineon seem to have some problems with Flash.

I would suggest you look also at the Renesas (nee Hitachi) H8S range, it's a fairly scaleable family with a good dense instruction set. Terrible flash, not too good for in-system programming, but otherwise very nice. You might just find an H8/Tiny that does the job at a very attractive price, but I'm a year or so behind the curve on that range.

pete

--
pete@fenelon.com "there's no room for enigmas in built-up areas"
Reply to
Pete Fenelon

(processor,

get

motherboard

we

Have you looked at Tern products,

formatting link
There are some boards an modules that may fit your needs.

Regards.

Reply to
Pablo Bleyer Kocik

I used the C165 for years and squeezed the most I could out of it. I managed to get it to do an awful lot in 125 usecs and I'm rather fond of it.

I would still be using the C165 if Infineon had ever made any movement toward an on-board Ethernet controller. I've always thought they missed a large segment of the market by not doing so.

Casey

Reply to
Casey

Examples ?

non-royalty

Lots of supposition there: you probably should get one, and try it. [ Sounds a reasonably close fit to what you want... ]

Given that the FLASH.RAM.Ethernet will be the dominant silicon, then the CPU core can be almost anything.

Missing from your list are

** TINI modules from Dallas, these use the DS80C400 CPU ** STm uPSD series ** eZ80 Modules from Zilog ** New ARM Microcontrollers from just about everyone.

-jg

Reply to
Jim Granville

Stephen,

Wow, a very comprehensive shopping list indeed. Someone replied and suggested one of our (TERN)'s boards, but our website's a tad out of date so I wanted to follow up with a specific recommendation.

Bad news first, with your aggressive price point ($50, 100 units) we'd certainly be able to supply the processor core w/ memory and bus for your motherboard. The good news is that we can probably provide you an "ideal" solution that's also pretty affordable.

The "ideal" board I have in mind for you would be our R-Engine-L controller, a 16-bit 186-generation single-board controller integrating many of the features you specify. Specifically, here's what we have to offer:

- with a pipelined RISC core, 80 MHz clock, and 16-bit memory access, I think we'll be ok performance wise.

- 512 KB (16-bit) SRAM, 512 KB (16-bit) Flash ROM (we run in x86 real-mode, max 1 MB memory space)

- 5 onboard RS232 serial; (no sync serial)

- a mixed-bag of I/Os: 20 TTL-level, 35 high-voltage sinking outputs, and 20 opto-coupler inputs.

- integrated (or expansion) CompactFlash interface for mass data storage (2 GB w/ FAT filesystem support),

- and maybe of most interest for you, it's available with the plug-in i2chip 100 base-T Ethernet module; offloads a lot of the buffering/ethernet MAC handling, but the TCP stack is processor level (code supplied),

- real-time clock (w/ alarm interrupt), 3 16-bit hardware timers, multiple external interrupts, watchdog, supervisor, etc, etc...

This isn't an exact match for your requirements, (no ADC on this board for example, and you will need to bit-bang your i2c), but it's close. We do offer more expansion boards if you'd like, but we also expose the data/address bus with the idea that OEM customers could easily integrate additional peripherals into your own motherboard design.

Price wise, if you take us up on all the features discussed above, I'd expect these units to be (very approximate until we get the configuration finalized) to run around $270 in single quantities (including the 100-baseT ethernet module), and probably $190 in quantities of 100+.

The RL isn't featured on the website as of yet, but if you drop me an email I'll be glad to send you more info!

Reply to
Chon Tang

This is a sketchy way to measure efficiency. Does it include code inside libraries functions? Does it include comments and whitespace? I just looked at a small Rabbit/DC program I'm working on and counted 68 lines of code including whitespace and comments for the four functions I wrote generating 506 bytes of code. This is much better than the 20 bytes per "line of code" some old fluff statements in some hardware manuals might imply. Library functions are called that make the overall program much bigger, of course.

It would be ashame if you wrote Rabbit off so quickly considering how closely the processor fits the needs you specified. I suggest buying an RCM3300 dev kit and trying it first. If you prefer the Softools compiler, there is a free, full, time-limited demo version available.

formatting link

You don't want to stream video, but you might be surprised how well it handles TCP/IP. Here are some live demos running HTTP servers on

22MHz boards:

http://69.104.38.49:8146 http://69.104.38.49:8147

The total code footprint on these is about 185K and 135K, and this includes all of the web pages and GIFs that are served and all the libraries functions that are brought in.

Reply to
Brian Murtha

Gee Brian, maybe you could comp the guy a dev kit seeing as your product is such a close fit?

Kelly

Reply to
Kelly Hall

... snip ...

The underlying architecture of the Rabbit is almost that of the Z80, but not quite (which makes all Z80 software useless on it). However it is much more conducive to good code generation than the

8051 architecture, if you need languages that meet their specifications. Of course when you cut the language back to the architecture capabilities things can be much different.
--
Chuck F (cbfalconer@yahoo.com) (cbfalconer@worldnet.att.net)
   Available for consulting/temporary embedded and systems.
 Click to see the full signature
Reply to
CBFalconer

While he could use a sig spelling out his relationship, his 'from' address makes that fairly obvious. And who else can more accurately spot the suitability of his product?

--
Chuck F (cbfalconer@yahoo.com) (cbfalconer@worldnet.att.net)
   Available for consulting/temporary embedded and systems.
 Click to see the full signature
Reply to
CBFalconer

I think you'd make your development life a lot easier by going for a cheap

32-bit chip - it will give you proper linear addressing over the whole range, plenty of speed for fast ethernet, and access to more ready-made network stacks and os'es. There are some very integrated ARM chips from Atmel (I've not used them, but our distributer keeps recommending them...), or something like the ColdFire MCF5234 (it has 100MB ethernet, a TPU unit which can easily give you 6 uarts and your pwms).

Forget 5V for the chip itself - you won't find many modern mcus with that sort of power that run directly from 5V. 5V tolerance is easy enough to make when needed, and 3V external memories are much cheaper and more available.

Most chips in your range should have jtag or on-chip debug, which can be used for programming.

Unless space is at a premium, there are a lot of advantages in external flash when you are looking at this size. Compare the prices of 32-bit micros with and without flash to see the cost of internal flash - you might pay five times as much for the internal flash. The situation is a bit different for manufacturers who are expert flash manufacturers who added a cpu, rather than expert cpu manufacturers who added a flash.

If you can get cheap ram (for example, the ColdFire supports sdram), then you can use the cheapest, slowest flash you can find - copy the program to sdram on start-up and run it from there.

That's a lot of extra pins. If you can afford the board space, there is a lot to be said for something as simple as 74573 latches, or serial-to-parallel 74 logic chips.

Or a ColdFire with TPU, which works fine as UARTs.

External is normally best for accuracy - you don't want to mix your high-speed digital signals and the analogue signals.

Reply to
David Brown

[...]

They're not around anymore! ;-)

Sorry, couldn't resist. I don't know enough to either agree or disagree with Stephen. All I know is that every time I submit an 8051 derivative as a candidate for a new project, it never makes it past the "Purchasing getting quotes" stage -- always too expensive.

Regards,

-=Dave

--
Change is inevitable, progress is not.
Reply to
Dave Hansen

Didn't mean to exclude the 165, just haven't come across it. My intention was to say that the 166, which isn't binary-compatible with the rest of the family (various SFRs move, for a start, and I recall there being some differences in the interrupt model) is a bit of a ginger-haired stepchild as far as the 16x family is concerned...

XC16x looks interesting, too....

pete

--
pete@fenelon.com "there's no room for enigmas in built-up areas"
Reply to
Pete Fenelon

Actually I didn't even realize you excluded it ... shows how much attention I was paying. As you know, the 165 is right in there with the 167 and the others. More than anything, I was bemoaning the fact that Infineon never jumped on the ethernet bandwagon with any of those parts.

True - the 166 seemed to be a dead duck fairly soon - the 167 should have killed it outright but didn't somehow.

Sure does - just wish it had ethernet ....

Casey

Reply to
Casey

Stephen writes

Thanks for all the various suggestions and comments. Would have got back sooner but we've been very busy in meetings and checking out all the various processors and modules! Rather than respond with lots of separate messages I'll just snip various bits into this one and reply singly.

We're still considering these and numerous other options, but due to some timescale and resourcing limitations we seem to be heading down the route of a more complete module rather than picking our favourite cpu (of which there are plenty that would suffice) and doing it all ourselves. We're also strongly tempted, for the right price, to make a move to a more powerful platform (we've been joking for quite a few years now that we need to replace some of our existing 8-bitters with an ARM!). This would enable us to use the same platform for all models in some of the ranges rather than the split platforms we were considering.

Ch>The "ideal" board I have in mind for you would be our R-Engine-L

We've definitely bookmarked your site for future use. If we don't end up using one of your boards on this job, I'm sure they will be very strong contenders for some of the other stuff which is coming up soon. Myself or more likely my client's technical director will very probably be in touch to get more info and negotiate prices.

Dave Hansen wrote:

Exactly :-) I'm not going to try and remember a full list - we were lucky and managed to avoid designing in some of the 8051s which did disappear too quickly (Dallas and Siemens I think) but we are currently redesigning a product using the Infineon/Siemens SAB80C537 (although in fairness we did get an acceptable number of years from it) and now we're also going to be forced to redesign its more recent sister product which is using the Infineon C509 (top of the range in my terminology, not necessarily from raw performance, but the amount of onboard toys and the

79 I/O pins (which we extended to about 104 with a CPLD which has now also gone EOL!!)).

Brian Murtha wrote:

Thanks for that info. We do like many aspects of the R3000. We have actually got a RCM3200 dev kit here and I was once-upon-a-time a total z80 boffin so I have familiarity with the technology, but based upon various aspects of our requirements we feel that it's a bit too close a call on whether the rabbit will cope with our base level product and certainly not the top level one (which is already crying out for a 32 bitter) and if we can work the pricing we're now considering the benefits of having (for the first time) much more processing power and memory which will enable sales and marketing to come back once the unit is selling and demand all the extra toys they want added which we've always had to reject in the past.

However, having spent some time looking at the rabbits for the past month, we're virtually certain we will be using them extensively in the other product in our system which is up for redesign next year hopefully (due to reasons other than 8051 obsolescence this time! but yes Jim, it is an 8051, but not a top of the range one, hence the reason why it's probably still around after 8 years :-)). This other application is probably more in line with a more "typical" rabbit system in terms of performance and memory requirements and as such the rabbit is perfectly suited.

Thanks to all for the comments and suggestions.

One of the other things we've found on our travels and are also investigating is the AMD Alchemy 1100 based Aurora board from

formatting link

Does anyone have any good/bad comments about this company, their products, or the AMD part?

Stephen

Reply to
Stephen

My understanding was the SAB80C537 became the SAB80C517A which then became the SAF-C517A - and that device has part numbers still in current production ? Certainly, for a clean sheet design, they may not be your first choice, but I think you can still continue production.

Since the 80C517 dates from the late 80's, that's actually a pretty impressive design life!

Their web site has this selector guide, April 2004,

formatting link
which I think shows what Infineon still consider 'active' products.

They do favour the OTP variants, over the external memory models, tho for a brand new design, you might choose a SiLabs FLASH device, or the STm uPSD33xx devices, which have mostly superset resource relative to the Infineon variants, and they are flash with In System Debug.

-jg

Reply to
Jim Granville

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.