CAN Bootloader für AVRs und MCP2515

OP Persönliche Seite #987296
Lesenswert?

Moin,

da kein CAN Bootloader für AVRs und den MCP2515 zu finden war, habe ich 
selbst einen geschrieben:

Um andere Kommunikation auf dem CAN Bus möglichst wenig zu stören werden 
nur zwei CAN Identifier verwendet, nämlich 0x7ff (PC zu AVR) und 0x7fe 
(AVR zu PC).
Der Code (hauptsächlich in C mit ein bisschen Assembler) belegt im 
Moment ungefähr 1200 Bytes und benötigt damit leider noch ein 1024 Words 
großes Plätzchen im Bootloaderbereich des AVRs. Da aber bisher nur wenig 
optimiert wurde sollte es durchaus möglich sein das auf unter 1024 Bytes 
zu drücken.

Der PC Teil wurde in Python geschrieben und sollte mit allen 
Lawicel-kompatiblen CAN<>PC Adaptern funktionieren (allerdings habe ich 
es nur meinen CAN Debugger ausprobiert).

Getestet ist das Ganze bisher mit ATMega168, ATMega16/32 und ATMega644, 
andere AVRs sollten aber genauso funktionieren.
Auch auf einem voll ausgelasteten Bus im Roboter sind bisher keine 
Fehler aufgetreten. Es dauert nur entsprechend länger, da die beiden 
Identifier die niedrigsten Prioritäten haben.

Geschwindigkeit liegt bei ungefähr 10-15 Sekunden für 20 kByte (je nach 
Puffergröße es AVRs) bei einem "leeren" Bus.

Eine genauere Dokumentation und den jeweils aktuellsten Quelltext gibt 
es unter http://www.kreatives-chaos.com/artikel/can-bootloader

Viel Spaß damit ;-)

Grüße
Fabian
Angehängte Dateien:
Gast #1411311
Lesenswert?

Hallo,

Hat diesen Bootloader schon mal jemand mit einem anderen Interface zum 
laufen gebracht? Ich habe ein Eigenbau Can Rs232 Interface und es bleibt 
bei der Kommunikation mit dem Bootloader auf dem AVR stecken. Mein 
Interface geht mit einem VC++ Programm (senden/lesen). Von dem Python 
Programm verstehe ich leider nicht viel um den Fehler zu suchen.
Frank


P.s. Gibts schon eine GUI?
Gast #4056322
Lesenswert?

Hallo,

ich suche auch einen CAN Bootloader.
Kreatives Chaos scheint echt spitze zu sein! Kriege leider das Phyton 
Programm nicht zum laufen und kann deswegen den Bootloader nicht testen! 
Weiss jemand wie man es macht? Ich habe versucht das Phyton Programm zu 
öffnen. Phyton 2.7 ist installiert. Da das Programm angspasst wurde sind 
die Endungen anders. Ich habe versucht jedes File zu starten, jedes 
Fenster macht auf und macht sofort zu! Ausser bei dem bootloader.py da 
wird eine neue Datei can.pyc erstellt. Diese wird aber beim aufmachen 
auch sofort zugemacht. Was mache ich falsch? Über CMD klappt auch 
nichts!
Ich kenne mich mit Phyton gar nicht aus. Würde aber eine GUI schreiben, 
wenn ich weiss das alles funktioniert und dass es läuft. Habe den CAN 
Debugger auch nachgebaut, kriege diese Phyton Sache einfach nicht zum 
laufen!

Ich würde gerne auch den CAN-Bootloader von Atmel ausprobieren, ist aber 
leider für IAR Compiler! Hat das vielleicht jemand auf Atmel Studio 6 
umgesetzt?

Gruss

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren