Hello to all, I'm looking since many days something about my problem without find nothing interesting so I'm going to post it. I have a system of 4 different closed boxes: the Main box based on an Linux ARM9 processor with a static IP and the A, B and C boxes each one based on an AT90CAN128 microprocessor. The 4 boxes are connected all toghether with CAN-BUS. Let's say... my system is located in USA and I'm in Italy. I can connect to my system with TCP/IP. My scope is to reprogram the 3 AVR uP from Italy. So I have to put a CAN booloader on the 3 AVRs (naturally with JTAG and before send the system in USA). Than I can telnet from Italy the Main box, transfer the new 3 hex files on it and than using CAN Bus upload the AVRs firmware. So I need both the CAN Bootloader for AVRs and a script for the ARM to download the hex file into AVR flash memory. I had a look of those codes on the net but I didn’t find too much. The only interesting thing is Flip tool by ATmel but is just works with x86 architecture and not support CAN Bus. Any example code for my purpose? Any suggestion? Just for information, the Main box is this board http://www.embeddedarm.com/products/board-detail.php?product=TS-7200 with the TS-CAN1 module. Many thanks to all, Daniele
Programming AVR from ARM using CAN Bus interface
Started by ●June 9, 2008
Reply by ●June 10, 20082008-06-10
pidy wrote:> Hello to all, > > I'm looking since many days something about my problem without find > nothing interesting so I'm going to post it. > > I have a system of 4 different closed boxes: the Main box based on an > Linux ARM9 processor with a static IP and the A, B and C boxes each one > based on an AT90CAN128 microprocessor. > > The 4 boxes are connected all toghether with CAN-BUS. > > Let's say... my system is located in USA and I'm in Italy. > > I can connect to my system with TCP/IP. > > My scope is to reprogram the 3 AVR uP from Italy. So I have to put a CAN > booloader on the 3 AVRs (naturally with JTAG and before send the system in > USA). > > Than I can telnet from Italy the Main box, transfer the new 3 hex files on > it and than using CAN Bus upload the AVRs firmware. > > So I need both the CAN Bootloader for AVRs and a script for the ARM to > download the hex file into AVR flash memory. > I had a look of those codes on the net but I didn’t find too much. > The only interesting thing is Flip tool by ATmel but is just works with > x86 architecture and not support CAN Bus. > > Any example code for my purpose? Any suggestion? > > Just for information, the Main box is this board > http://www.embeddedarm.com/products/board-detail.php?product=TS-7200 with > the TS-CAN1 module. > > Many thanks to all, > DanieleIf you can decide for using CANopen as a higher layer protocol, implement a bootloader understanding the SDO domain transfer on the AVRs and put an CANopen implementation on your ARM9 linux. That's it. Heinz
Reply by ●June 12, 20082008-06-12
>pidy wrote: > >> Hello to all, >> >> I'm looking since many days something about my problem without find >> nothing interesting so I'm going to post it. >> >> I have a system of 4 different closed boxes: the Main box based on an >> Linux ARM9 processor with a static IP and the A, B and C boxes eachone>> based on an AT90CAN128 microprocessor. >> >> The 4 boxes are connected all toghether with CAN-BUS. >> >> Let's say... my system is located in USA and I'm in Italy. >> >> I can connect to my system with TCP/IP. >> >> My scope is to reprogram the 3 AVR uP from Italy. So I have to put aCAN>> booloader on the 3 AVRs (naturally with JTAG and before send the systemin>> USA). >> >> Than I can telnet from Italy the Main box, transfer the new 3 hex fileson>> it and than using CAN Bus upload the AVRs firmware. >> >> So I need both the CAN Bootloader for AVRs and a script for the ARMto>> download the hex file into AVR flash memory. >> I had a look of those codes on the net but I didn’t find too much. >> The only interesting thing is Flip tool by ATmel but is just workswith>> x86 architecture and not support CAN Bus. >> >> Any example code for my purpose? Any suggestion? >> >> Just for information, the Main box is this board >> http://www.embeddedarm.com/products/board-detail.php?product=TS-7200with>> the TS-CAN1 module. >> >> Many thanks to all, >> Daniele > >If you can decide for using CANopen as a higher layer protocol, >implement a bootloader understanding the SDO domain transfer on the AVRs >and put an CANopen implementation on your ARM9 linux. That's it. > >Heinz > > >What You mean for SDO domain? and what is it CANopen?? Thanks, Daniele
Reply by ●June 13, 20082008-06-13
pidy wrote:>> >>If you can decide for using CANopen as a higher layer protocol, >>implement a bootloader understanding the SDO domain transfer on the AVRs >>and put an CANopen implementation on your ARM9 linux. That's it. >> >>Heinz >> >> >> > > > What You mean for SDO domain? > and what is it CANopen?? > > Thanks, > DanieleCANopen is a protocol which uses CAN as Data Link Layer. It defines for example things that are not possible with CAN. CAN frames can transport in maximum 8 bytes. CANopen has a definition for a larger data stream, which is called 'domain'. SDO means 'Service Data Object', which is a special kind of point to point client server communication. Please look at http://www.can-cia.org/index.php?id=171 Heinz