I am desiging a CAN-based networking solution, and I need some help choosing a microcontroller. Price is always a factor. So far I am considering:
Available in several sizes, inexpensive, 8-bit. Requires external CAN transceiver. Can run at 3.3V or 5V.
32-bit ARM Cortex-M0 core. Includes CAN and CANopen drivers in ROM. Also has the CAN transceiver on the chip, so an external one is not required. Needs 3.3V (MCU) and 5V (transceiver).
Are there any other similar parts that I should be considering? Does anyone have any experience with either of these?
I worked on a few projects that used CAN bus but it was years ago. I beleive we were using a control from Siemens with an external CAN transciever. This paper has some information related to options with Microchip.
I have been very impressed with the power and performance of Silabs products and have used them in several products. I recomend the SDCC compiler which can be used with the free IDE from Silabs and allows full access to all the memory on the chip. The compiler that comes with the dev board only supports a few K and then costs like $5K. SDCC is FREE!
Pic18 tops out at 16mips but the silab's parts due up to 100mips. Lots more memory and IO as well. Better off with the PIC18 if you don't need the processing speed / A/D resources / memory. I neaded all 3.
I used a PIC24 in a previous CAN project. It has the same architecture as the dsPIC, but without the DSP instructions. The errata on the CAN controller really crippled the usefulness of the chip. I spent a lot of software development time working around the limitations. #TWiPad
This is a good time to look at www.embeddeddeveloper.com. You can pick a supplier or suppliers, choose 8/16 or 16/32 bit core, and specify a CAN port (or multiple ports) and you'll have a nice list.