Suche Arduino-Bootloader-Hex-Code für AT90CAN128

#7896510
Lesenswert?

Hallo,

ich möchte einen AT90CAN128 über die serielle Schnittstelle programmieren. Dafür suche ich einen geeigneten Bootloader.

Im Internet habe ich "ATmegaBOOT_168_at90can.hex" und "AVR-CAN_UART.hex" gefunden und mit einem Tremex AVR-Prog geflasht. Anschließend habe ich versucht, mit folgendem Befehl ein LED-Blink-Programm zu programmieren:

avrdude -F -V -c arduino -p c128 -P /dev/ttyUSB0 -U flash:w:led.hex

Beide Male mit dem gleichen Ergebnis:

avrdude: stk500_recv(): programmer is not responding avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00 avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x00 avrdude: stk500_recv(): programmer is not responding avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x00 avrdude: stk500_recv(): programmer is not responding avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x00 avrdude: stk500_recv(): programmer is not responding avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x00 avrdude: stk500_recv(): programmer is not responding avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x00 avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x00 avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x00 avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x00 avrdude: stk500_recv(): programmer is not responding avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x00

avrdude done. Thank you.

Wenn ich mit obigen Befehl einen Arduino Uno programmiere, funktioniert alles perfekt.

Hätte jemand für mich einen geeigneten Bootloader?

Vielen Dank!

#7896524
Lesenswert?

Nachtrag

Ich habe eine Olimex AVR-CAN-Platine.

Wenn ich das Blink-Programm mit dem AVR-Prog herunterlade, erhalte ich folgendes:

avrdude -F -V -c avrispmkII -p c128 -P usb -U flash:w:0_blink_can128.hex:i

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e9781 (probably c128) avrdude: NOTE: "flash" memory has been specified, an erase cycle will be performed To disable this feature, specify the -D option. avrdude: erasing chip avrdude: reading input file "0_blink_can128.hex" avrdude: writing flash (236 bytes):

Writing | ################################################## | 100% 0.08s

avrdude: 236 bytes of flash written

avrdude: safemode: Fuses OK (E:FF, H:99, L:FF)

avrdude done. Thank you.

#7897035
Lesenswert?

Wenn mit den Pins F6 und F7 die gemeint sind, an denen auch ADC6 und ADC7, bzw. TDO und TDI anliegen: die habe ich gar nicht beschalten.

Ich steuere /RST über DTR und einen 100 nF-Kondensator an. Schutzschaltung 2 x 1N4148 nach 5 V und 0 V.

Meine Fuses sind wie oben gesetzt. Laut fusecalc sind BOOTSZ0 = 0, BOOTSZ1 = 0 und BOOTRST = 1.

Ich probiers mal mit BOOTRST = 0.

#7897055
Lesenswert?

Michael schrieb:

Kein Unterschied.

Ich würd' halt einfach mal die Fuses so setzen, wie sie im Makefile vom Bootloader angegeben sind. Und ein kleiner Blick in den Bootloader-Quelltext offenbart, für was die beiden Pins gut sind: Damit wählst du aus, ob nach dem Reset der Bootloader auf UART0 oder auf UART1 lauscht. Oder ob der direkt zum Hauptprogramm springt.

Und mit ein paar angepassten #defines kriegst du den Bootloader auch so eingestellt, dass er zu deiner Hardware passt, wenn die default-Settings im HEX-File, was du runtergeladen hast, nicht passen.

#7897515
Lesenswert?

Kann es - und es kann gut.

Unter Linux aber nur auf i386. Ich habe aber AMD64. Das letzte Mal, als ich Software installiert habe, die auf i386 läuft, hat mir das den PC so zugemüllt, dass ich ihn neu aufgesetzt habe.

Ich mag M$ nicht und möchte es vermeiden, wo es nur geht.

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