Hallo,
ich baue zur Zeit ein Bussystem mit mehreren AT90CAN128 auf. Das
funktioniert soweit sehr gut. Seit einer Woche versuche ich den CAN
Bootloader von Atmel zu integrieren. Er scheint auch zu funktionieren
aber Das Programm startet nicht oder wird nicht richtig ausgeführt. Ich
hab mich auch schon durch GOOGLE und Foren gewühlt. Den entscheidenden
Tip konnte ich aber noch nicht finden.
Den Code und die Dokumentation gibt es auf
http://www.atmel.com/devices/AT90CAN128AUTOMOTIVE.aspx?tab=documents
(Atmel AVR076: AVR CAN - 4K Boot Loader)
1. ich habe mir IAR Embedded Workbench runtergeladen
2. ich habe folgende Änderungen, ergänzungen vorgenommen
- isp_lib.h
geändert:
1 | #define NNB_DEFAULT 0x01 // Adresse des CAN-Teilnehmers definiert
|
- config.h
geändert:
1 | #define FOSC 4000 // Tackt angepasst
|
ergänzt:
1 | #define CAN_BAUDRATE 125 // Baudrate in kBit
|
- can_drv.h
1 | #elif FOSC == 4000 //!< Fclkio = 4 MHz
|
2 | # if CAN_BAUDRATE == 125 //!< -- 125Kb/s, 16x Tscl, sampling at 75%
|
3 | # define CONF_CANBT1 0x02 // Tscl = 4x Tclkio = 500 ns
|
4 | # define CONF_CANBT2 0x0C // Tsync = 1x Tscl, Tprs = 7x Tscl, Tsjw = 1x Tscl
|
5 | # define CONF_CANBT3 0x37 // Tpsh1 = 4x Tscl, Tpsh2 = 4x Tscl, 3 sample points
|
6 | # elif CAN_BAUDRATE == CAN_AUTOBAUD // Treated later in the file
|
7 | # define CONF_CANBT1 0x00 // Unused
|
8 | # define CONF_CANBT2 0x00 // Unused
|
9 | # define CONF_CANBT3 0x00 // Unused
|
10 | # else
|
11 | # error This CAN_BAUDRATE value is not in "can_drv.h" file
|
12 | # endif
|
3. mit dem Output Format intel-extended die hex datei erzugt
4. FuseBits entsprechend Docu gesetzt
5. mit AVR Studio 6 über ISP (Atmel MKII) den AT90CAN geflasht
Ergebnis: FLIP (mit PEAK CAN / USB) findet den Controller, ich kann ihn
beschreiben und danach erfolgreich verifizieren. Der Bootloader scheint
auf den ersten Blicl zu funktionieren. Aber er startet das Programm
nicht, oder der hex-file wird zwar geschrieben nur nicht richtig, ist
vieleicht nicht ausführbar. Ich habe ein Programm genommen das vorher
einwandfrei lief.
Kann es seien das FLIP nicht mit dem hex Format von AVRStudio klar
kommte?
Oder habe ich in den Dateien vom Bootloader vergessen etwas zu ändern?
Ich bin schon leicht am verzweifeln. Vielleicht hat ja schon jemand
Erfahrungen mit diesem Bootloader gesammelt.
Ich bin dankbar für jede Hilfe. :)
Ulli