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
Looking for suggestions for processor/module/sbc with ethernet
Started by ●August 24, 2004
Reply by ●August 24, 20042004-08-24
Stephen <spambox42@yahoo.co.uk> wrote:> 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 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 by ●August 24, 20042004-08-24
Pete Fenelon said...> Stephen <spambox42@yahoo.co.uk> wrote: > > > 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 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 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 by ●August 24, 20042004-08-24
Stephen wrote:> Hello<snip>> - 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.Examples ?> 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.Lots of supposition there: you probably should get one, and try it. [ Sounds a reasonably close fit to what you want... ]> > 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.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 by ●August 24, 20042004-08-24
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! Stephen <spambox42@yahoo.co.uk> wrote in message news:<LKVniIATZ4KBFwPw@rtsoft.demon.co.uk>...> 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 by ●August 24, 20042004-08-24
Stephen <spambox42@yahoo.co.uk> wrote in message news:<LKVniIATZ4KBFwPw@rtsoft.demon.co.uk>...> 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.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. http://www.rabbitsemiconductor.com/products/rcm3200/index.shtml> Software-only based TCP/IP on a 8 bit is also a concern, not having done > this before.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 by ●August 24, 20042004-08-24
Brian Murtha wrote:> 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.Gee Brian, maybe you could comp the guy a dev kit seeing as your product is such a close fit? Kelly
Reply by ●August 25, 20042004-08-25
Stephen wrote:>... snip ...> > 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 > around 6 to 8 times less compared to our 8051 running 60000 lines > in around 150KB makes it 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.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. <http://cbfalconer.home.att.net> USE worldnet address!
Reply by ●August 25, 20042004-08-25
Kelly Hall wrote:> Brian Murtha wrote: > >> 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. > > Gee Brian, maybe you could comp the guy a dev kit seeing as your product > is such a close fit?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. <http://cbfalconer.home.att.net> USE worldnet address!
Reply by ●August 25, 20042004-08-25
"Stephen" <spambox42@yahoo.co.uk> wrote in message news:LKVniIATZ4KBFwPw@rtsoft.demon.co.uk...> > 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. >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).> - 5V technology, or 3V with 5V compliant inputs/outputs. Surface mount. >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.> - 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. >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.> - 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.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.> > - 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). >Or a ColdFire with TPU, which works fine as UARTs.> - 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. >External is normally best for accuracy - you don't want to mix your high-speed digital signals and the analogue signals.> - 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