CAN AVR
CAN on AVR chipsets. for information about CAN/CANopen stack , go here CANopen.
ard'ware
Arduino AtmegaXXX have no CAN
actual design : Atmega serial TX/RX <-- RS232 --> FTDI chip <->[USB connector]<-- USB --> Host PC
with this MCU , with need something like CANSPI like http://www.mikroe.com/en/tools/can2/ So MCP2551 + MCP2515 . So we can agreed it's not cheap ( 5$ of components ).
But Atmel has Atmega with CAN support :
- ATmega16M1
- ATmega32M1
- ATmega64M1
- ATmega32C1
- ATmega64C1
M serie has one 12-bit High Speed PSC (Power Stage Controller) :
- Non Overlapping Inverted PWM Output Pins With Flexible Dead-Time
- Variable PWM duty Cycle and Frequency
- Synchronous Update of all PWM Registers
- Auto Stop Function for Emergency Event
supported by avr-libc , it that can be useful.
They have JTAG _AND_ ISP. Using ATmega let us in the arduino community , our tool set and knowledge.
So the more valuable is ATmega64M with 64kb like sanguino but the cheapest could fit needs of most people. We perharps need to add a DIP switch to configure CAN ID and a CAN transceiver.
more infos on this atmel products at http://atmel.com/products/canvan
To reduce cost, on a distributed network, we don't need the electronic part to program/debug in each node so we can make a minimalist board, like arduino mini pro. Such header board card should cost around ~8€ and can easily be integrate in our electronic parts.
Possible CAN transceiver
NXP : PCA82C250 ATMEL : ATA6660 / B10011S Microchip : MCP2551
JTAG
- AVR Dragon low cost JTAG/ICSP ( 50 $ ) , see :
- AVR JTAG ICE clone , kits start at 15 € , a good choice for DIY guy.
- low cost parallels jtag ( 5$ ) , slow but cheap ( for occasional needs as bootloader flashing ).
Of course, JTAG interface is not useful for user who don't need bootloader flashing and embedded software developing