We have a product based around the PIC18F6680 which is now becoming a rare and expensive part. Since it looks like ARM devices are winning the popularity war, the chips are cheap and plentiful. The question is, with so many vendors and parts to choose from which one should we go with? The main requirements for this application, in order of importance, are:
1) availability - having devices in stock at Digikey/Mouser is almost a necessity since we can't wait 12 weeks for backordered parts from some distributor; two weeks is probably the maximum 2) price - since our original PIC18 is now at $9.47 each (qty 100) pretty much any device that comes in under this price will be better 3) 64K FLASH - since ARM code is more compact than PIC18 this should be more than enough 4) 4K RAM 5) 128 bytes EEPROM 6) CAN controller 7) timers with 1 output compare and 2 input captures 8) SPI 9) 2 UARTs 10) 8-bit DAC (or PWM) 11) a DMA controller that works with the SPI would be nice but not essential 12) two comparators 13) 10-bit ADC 14) under 0.2 mA when stoppedProcessing speed and power consumption aren't too critical. I've given up trying to find built-in comparators on any ARM device so I guess those will have to be external from now on. Low standby current is important, but I can always cut power to the whole device if required. I've found one (LPC2364) that has a built-in DAC but those seem to be rare. The only ones I've found with built-in EEPROM are the LPC2927/ LPC2929. I also can't decide between ARM7, ARM9, Cortex-M0 and Cortex- M3. Right now Cortex-M3 appears to be more popular and the three leading choices are: Texas Instruments - Stellaris NXP - LPC series ST - STM32 series Given the above criteria there are still dozens of devices to choose from that would fit most of the requirements. NXP seems to have the best pricing; other than that I'm lost. Any suggestions or are there any other choices that I've overlooked?