Forum: Mikrocontroller und Digitale Elektronik Suche Arduino-Bootloader-Hex-Code für AT90CAN128


von Michael (k-mte)


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!

von Michael (k-mte)


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.

von Εrnst B. (ernst)


Lesenswert?

Pin F6 und F7 richtig beschaltet bzw. beim Reset auf dem richtigen Pegel 
gehabt?

DTR-nach-Reset-Schaltung eingebaut?

Beim Aufspielen des Bootloaders die Fuses richtig gesetzt? BOOTSZ=10, 
BOOTRST=0 oder so ähnlich?

Baudrate auf 19200?

von Michael (k-mte)


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.

von Michael (k-mte)


Lesenswert?

Kein Unterschied.

von Michael (k-mte)


Lesenswert?

Ich glaube, es wird Zeit für weitere Tremex AVR-Prog...

von Εrnst B. (ernst)


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.

von Arduino F. (Firma: Gast) (arduinof)


Lesenswert?

ÖÖÖmmm---
Kann Flip das nicht direkt?
https://www.microchip.com/en-us/development-tool/flip

von Michael (k-mte)


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.

von Arduino F. (Firma: Gast) (arduinof)


Lesenswert?

Michael schrieb:
> 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.

AVRdude spricht auch flip

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.