CANopen

From RepRap
Revision as of 12:09, 7 March 2013 by Adrianbowyer (talk | contribs) (Reverted edits by Ipinson (Talk) to last revision by Glenn)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

CANopen Headquarter

Canopen-logo.gif

For people who are interesting in a CANopen architecture on reprap or other arduino/AVR/atmega projects. CAN & ethernet powerlink related stuff too.

People interested , add you there :

Some people are cons CANopen implementation , arguing it's expensive and complex. Since this protocol is made to be cheap and simple, and most of this people don't know CANopen, we can only waste our time trying to explain what it is here since there is a lot of information on the web. We understood that "It's already have been discussed" here :


Main CANopen Features from http://www.thaiio.com/CANinfo.html :

  • Network Management (Network Start-Up, Node Monitoring, Node Synchronization, etc.)
  • Master/Slave configuration, Multi-Master & direct communication between Slaves supported
  • Was originally designed for Motion Control
  • Supports device profiles for Digital I/O, Analog I/O, Motion Controllers, Sensors, Actuator, etc.
  • All CANopen devices “speak the same language”
  • Devices are interchangeable (plug & play)

Looks http://en.wikipedia.org/wiki/CANopen and links in bottom page for further information.

CiA profiles

Interesting profiles for reprap :

  • CiA 402: CANopen device profile for drives and motion control
  • CiA 406: Device profile for encoders (rotating and linear) - product example http://www.vicatronic.fr/fraba.htm
  • CiA 420 series: CANopen profiles for extruder downstream devices

find tutorial and presentation about CANopen here : http://www.canseminar.com/Tutorials.html


Hardware

hardware considerations have move on CAN_AVR page.

Software

CANopen stack

CanFestival

An AVR Port by Andreas GLAUSER and Peter CHRISTEN already exists in CanFestival for at90can128. I've worked to make it compile fine , fix some header and autotools. I've not commit yet my modification because i can't test it for the moment because i need the hardware. Why use this stack ?

  • because it's already available for PIC18, C51, AVR etc see http://www.canfestival.org/documentation/supported-platforms-and-can-devices . Future architecture could use specialized MCU sharing same pieces of softwares.
  • it's maintained by few company like Lolitech
  • it's quality code , revision 3, many years experiences
  • it's a more and more complete CANopen stack ( lot of profiles )
  • has tools as Object Dictionary editor, virtual master node ...

Ronan

Modification list :

  • remove static config.h
  • fix source header for avr-libc
  • add Makefile.in for drivers/AVR
  • add MCU switch in configure
  • convert example/AVR/Slave Makefile into a proper Makefile.in

CANopen bootloader

First thing we need after making CANopen working is a bootloader on CANopen.

links

share work with others open source projects

AT90S4433 and his external interrupt register.

  • http://ecomodder.com community need CAN/CANopen to communicate with their car and work with arduino.