I need to build a zigbee to ethernet gateway device and need some advice on selecting a micro for the ethernet part.
My current design uses a ethernet module and is fairly small etc. but the cost of this 3rd party module is obviously higher than what I want.
I’ve looked at some of the micro’s out there with integrated ethernet MAC/PHY and all of them have some problem or the other:
EtherPIC - Software (especially TCP/IP stack) is still work in progress.
Freescale - NE64: software sucks, very low mem ; coldfire MC52233 - ridiculous lead times)
One common trait in all these micros is they use light weight TCP/IP stacks, I have a very small application that I need to write, but I really don’t want to have to start working at a very low level with a stack (and definately not having to debug stack level problems), I’d rather be a simple user level app. Which leads me to uClinux or just plain linux.
ARM processors seem to have everything I need and seem to have a larger community around them, so my question is which one do I pick. Some of the factors I would consider are (fairly standard stuff I guess):
Minimal board space and relatively simple design. (I can do simple 4 layer boards but still consider myself a novice, so simple is good)
relatively low part count (seems like external Flash and RAM is inevitable - however the lowest part count is the important (see previous and next point)
Cost of final production board under 40 USD. (is this possible at all?)
Little or no investment in compilers and other tools (hence linux!)
Speed isn’t a HUGE factor, 50-60Mhz is more than enough.
of the arm processors I’ve seen (on SFE and Olimex) :
Cirrus - CS-E9301 (very nice software, however seems to have too many parts than I’d like, external reset, RTC etc etc)
I’m a big fan of the LPC2148 chip. It should be able to do what you need, and you can try [uIP or several other TCP/IP stacks that are freely available.](Svensk forskning för hållbar tillväxt| RISE)
I would advice you to use an AT91SAM7X256 with freeRTOS operating system and lwIP TCP/IP stack from www.freertos.org. It includes an webserver, DHCP, PPP, USB => RS232 interface and optianal apps are SNMP, FTP and TFTP, etc.
I’ve had some good experience with this IC. You can buy an development board at www.olimex.com. It comms with standard command line GCC compiler, so you can compile it under Linux (Linux rules :lol:). Which reduces your envirement costs. Only two chips will be needed. Eventhough I’m pro embedded Linux and uClinux I wouldn’t advice you to use this. Cause you’ll need to add extra Flash and RAM memory. Plus Linux and or embedded Linux or uClinux experience would be advisable in this case and seems rather ofer kill for and Zigbee ethermet interface. I’ve seen some of the Linux problems at this forum and people just suspect that everything always works :roll:. Production cost wil be around 15 USD. I would like to know of what kind application are you thinking? Will this be an webserver, or will you use UDP packets, etc?
I would suggest Micrel KSZ8841M Ethernet MAC w/ PHY if you’re searching an external Ethernet chip. The design is smarter than SMsC LAN9118 family and in fact cheaper.
Micrel KS8695X / PX might be a candidate for your application. While they are originally aimed for SOHO GW market, the price is a quite bargain considering 2 Ethernet MAC w/ 1+4 PHY and moderate I/O extensions capable for general applications.
How about NetSillicon ARM7/ARM9? It may be considered expensive, I’m afraid.
Correct me if I’m wrong but NicheLite for LPC by InterNiche stack is not open source. Which will make your design pretty expensive. I guess this is not what you want for a simple ethernet project. External ethernet chip could be an option, but remember that you’ll have to write your own routines if you dont find a suitable software for your microcontroler, which will take more effort and often doesn’t have the expected quilities. I would stick an open source designe. Olimex have a lot of design for TCP/IP with avialable source code. Kaiki if your are pretty new it’s best to stick with a simple 8 bit microcontroller, but if you rather have quility I would go for ARM7 or ARM9. Such as UIP on a STR912 or AT91SAM7X256 or lwip on a AT91SAM7X256 from www.freertos.org. These TCP/IP stacks might look difficult, but are very rewarding when you finish your project.
The problem I have with lwip and uip is scalability of the design. I’m sure there will be some sort of feature creep in the future and I’m just afraid if I design around a smaller stack (hence using smaller memory etc) I’ll be in a jam when new software features need to be added in.
Also I’ve played with uip when making a board with the freescale NE64, it was a real pain in the neck (didn’t help that the NE64 was severly memory constrainted as well!)
Interniche sounds good, however the lite version isn’t quite enough for me and I don’t think i’ll be able to play 10K+ USD for the full stack.
My app in the simplest form will just send out UDP packets from a zigbee radio, however there will need to be several other features, like : web server (for config) (maybe supporting SSL in the future), SNMP, TFTP, DHCP. (and these I can think of right now)
netsilicon and things like that are quite expensive (+ dev kits)
I found the LPC22xx or LPC23xx with ucLinux to be very interesting. (although I’d love to see a olimex board with the LPC23xx)
Indeed looking at your project it’s best to use uClinux. Since you didn’t noticed that you wanted to use SNMP and TFTP I suspected you wanted to keep the design simple so lwip or UIP was an obvios choice. I would go for Freescale designe like an MCF5208(160MHz at an price of 8USD) (maybe MCF5282 if speed isn’t an isue). I’ve made an design with an MCF5208 and uClinux Net-SNMP and FTP, etc. I have to say that starting with the thing was an nightmare since www.uclinux.org didn’t supported the MCF5208 at that time and only Freescale had an working compiler, but now everything is much better. It’s best that you’ll join the uclinux forum for more details. All these your wanted applications will be supported.
actually the MCF5208 was very high on my list, the biggest problem there was availability. I’ve had TONS of trouble in the past with freescale supply chain, and the last I had heard there was a 18 week lead time on those parts!