ben_fnr wrote on Thursday, January 31, 2008:
You are not very specific on some very important questions.
Firstly how are you storing the audio ? compressed ? sampling frequency ? If you are currently running your code on a PC you don’t have to worry about performance, but it will probably be an issue if you are compressing data, less so for decompressing.
You mention a microphone for input, but nothing about output ? Do you need to drive an external DAC ?
The I/O is not so much of a problem, for the keys you need at least 11 I/O pins (5x6 array) to digitally scan the keys. Alternatively you could use resistor chains connected to 1 or more ADC channels. This method would make it harder to work out multiple key presses, but would use less I/O
LED output again is simple, you can daisy chain some simple TTL shift registers and get as many bits as you like for about 4 I/O
As for the LCD displays, well that would depend on what type of displays you are using, most have 4bit,8bit & serial interfaces.
For external memory you have a choice. Does it need to be RAM ? have you thought about using an SD Card ? Ok you will run into the flash write limit at some point, but how often are you writing data ? Alternatively you could use some FRAM, these come with parallel and serial interfaces but I don’t think they are particularly cheap.
You need to sit down and try and work out some of the following before you start looking for a devboard/processor.
the amount of flash (code space)
the amount of ram required (for running code)
the amount of I/O and type required.
if you want it to run from battery, what sort of usage are you going to get ? will it be sitting idle most of the time or running. you will need to look at the power consumptions figures for the various chips. Be aware that some of the low power modes of these chips will have limitations in waking up.
Possibly the hardest will be working out how much processing power you need and if a processor is going to be fast enough. Most of the small ARM7/9/Cortex cores run at similar speeds.
When looking for a dev board, you probably won’t find one with everything you need so look for one with as much of the I/O as accessible as possible. Cost will also be an issue if you are on a tight budget, many dev kits are not cheap, then you also need to think about compilers( GCC is free and alot of the other ones do limited versions which may get you started, but you will probably need a full version which can be expensive) You will probably also need JTAG interface.
If you want to try something quickly and cheaply Luminary Micros do some very cheap dev boards with inbuilt JTAG interfaces. I have just got their CAN demo kit, which consists of 2 separate boards, one running at 25Mhz, with a couple of switches and a larger board with a 50Mhz processor and 128x64 pixel OLED display. Both boards have most of the I/O available, all for just 41 GBP which I thought was a very good deal, just need to find some time to play around with it.
Which ever processor you are thinking of using, I would suggest that you spend some time looking at the appropriate forums and see what level of support is offered and how many problems people have. Most of these chips have some problems in one form or another which may impact your design.