Forum: Projekte & Code CAN Bootloader für AVRs und MCP2515


von Fabian G. (kjion) Benutzerseite


Angehängte Dateien:

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

von Frank (Gast)


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?

von Pepe (Gast)


Lesenswert?

Hallo
Ich wollte mal fragen ob schon einer eine Gui für Win umgesetzt hat?
Es gibt nicht viele Bootloader für den MCP2515.. Ich hab bisher nur den 
hier gefunden.

von Ulrich E. (ulrich_e)


Lesenswert?

Ich habe den Python Code von:
http://www.kreatives-chaos.com/artikel/can-bootloader
auf Github gepushed:
https://github.com/uescher/can-bootloader-python

Falls jemand die zwei Erweiterungsvorschläge von mir kommentieren 
möchte, ist er gerne eingeladen dies auf dem jeweiligen Pullrequest zu 
tun.

Pullrequests:
https://github.com/uescher/can-bootloader-python/pulls

MFG

von Frank (Gast)


Lesenswert?

Hallo,gibt es bezüglich Gui schon was neues? Auf der Kreatives Chaos 
Seite gibts ja leider nix neues.
gruss

von Thomas (kosmos)


Lesenswert?

Atmel hat da übrigends auch einen fertigen CAN Bootloader für die 
AT90CAN... AVRs und die ATMEGA16M1/32M1/64M1

http://www.atmel.com/images/doc8247.pdf
http://www.atmel.com/Images/AVR076.zip

von Micha (Gast)


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

von Ulrich E. (ulrich_e)


Lesenswert?

Ich habe es bisher nur unter Linux verwendet.
Aber unter windows müsste es auch gehen.
Was sind den die genauen Ausgaben wenn du über die Kommandozeile python 
bootloader.py mit den entsprechenden Parametern aufrufst?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.