Hi,
A while ago, I was involved with an open source VoIP phone design. But, too many of those folks have "other commitments" and this isn't a big priority for them. OTOH, *I* would like to get some devices made for use, here, ASAP.
So, I've decided to "go it alone". This makes things a *lot* easier as I no longer have to worry about other folks' needs/wants/etc. Instead, I can just focus on getting the job done as I see fit (for *my* needs).
And, in harmony with my other design principles. :>
I think what I need (hardware) can be summarized as:
- SoC (real estate is critical -- perhaps 2 sq in)
- low power (existing phone is powered from CO battery so there is NO cost for that -- why would I want to increase my power consumption in the station set when I will already have to deal with the hub/switch's power needs 24/7!)
- 10 bit (?) linear CODEC at ~10KHz (or a companding CODEC)
- 10Mb/s Network interface
- 2 or 3 digital I/O's (things like hookswitch, etc.)
- probably 8KB RAM would be enough (optionally, move the entire application into RAM with a tiny ROM/FLASH loader)
- depending on RAM (and CODEC characteristics), probably 16K of TEXT -- maybe less (depends on how I chose to implement the network stack)
- reasonably low MIPS as the most complex thing here is packet handling
- one timer (more is nicer but not essential -- depending on how capable the instruction set is)
- some sort of watchdog to handle silicon glitches (there won't be any software bugs -- so the hardware has to behave 24/7/365)
- available in low volumes and reasonable cost (I only want to buy a dozen or so -- ideally, just a "sample" lot)
- friendly fabrication (i.e., no BGA's)
- free toolchain
I think this covers *all* of the requirements. So, any capabilities above and beyond aren't worth anything in terms of cost, board space, power consumption, etc. OTOH, anything that gives me an alternative to some of these might have offsetting justifications (e.g., a BT transceiver replacing the 10BaseTX interface).
The goal here is for me to learn something for other upcoming projects while tackling a current need at the same time. "Make one to throw away".
I'd be interested in folks' recommendations as to specific parts. And, pointers to any reference designs (mainly for the hardware as I suspect my software implementation will be radically different from a traditional approach).
Thanks!
--don