Hallo zusammen, jetzt muss ich doch mal paar Fragen stellen. Irgendwie komme ich nicht weiter. Ich arbeite mit Arduino 1.8.1 unter Win10 und benutze den ATmega168PA "nackt" mit ext. 8MHz, kein Arduino Board. 1) momentan mein Hauptproblem ist der Bootloader. Ich hab den Bootloader durch Änderung der boards.txt draufbekommen. avrdude sagt mir auch "Device signature = 0x1e940b (probably m168p)". Doch wenn ich dann über serial ein Program uploade ist die Signature "Device signature = 0x1e9406 (probably m168)". Ich denke das kommt aus dem Bootloader, aber wo/wie bekomme ich den Bootloader mit der richtigen Signatur? 2) Im Internet sieht man Anleitungen, das man eigene Boards definieren kann. Aber irgendwie funktioniert das bei mir nicht ganz. Ich benutze dazu den "BOARDS.TXT Editor". Wenn ich z.B. eine Kopie vom Pro Mini mache und den Identifier auf "NEW" anpasse, dann bekomme ich "Board NEW (Plattform avr, Paket arduino) ist unbekannt". Und wenn ich den Identifier "pro" verwende, und dort eine neue "CPU" (bei mir Test bzw. 8MHzatmega168p) hinzufüge, dann bekomme ich vom Compiler "avr-g++: error: missing device or architecture after '-mmcu='". Irgendwie scheint es KeyWords fürs boards.txt zugeben (pro, 8MHzatmega168, 16MHzatmega168, ...), aber wo ist sowas definiert? wie kann ich neue Boards eintragen? Anbei meine jetzige boards.txt Schon mal danke für euer Feedback, Tomasz
:
Bearbeitet durch User
Tomasz L. schrieb: > Ich denke das kommt aus dem Bootloader, Ja. > aber wo/wie bekomme ich den > Bootloader mit der richtigen Signatur? Woher hast du denn den jetzigen?
Ich benutze den mit Arduino mitgelieferten ATmegaBOOT_168_pro_8MHz.hex, auch zu finden unter https://github.com/arduino/Arduino/tree/master/hardware/arduino/avr/bootloaders/atmega
Dort findest du auch die C-Quelle, aus der das compiliert worden ist. Die müsstest du passend ändern.
Ja, das habe ich mir heute auch schon etwas angeschaut. Mal schauen, ob ich den Compiler heute Abend angeschmissen bekomme, ist nicht gerade meine Stärke. Muss ich da nach Anpassung des C Codes das ganze einfach mit "make pro8" lostreten oder wie mache ich das unter Win10?
Tomasz L. schrieb: > Muss ich da nach Anpassung des C Codes das ganze einfach mit "make pro8" Vermutlich, aber ich blicke bei den vielen vorgesehen Targets im Makefile nicht durch. > lostreten oder wie mache ich das unter Win10? Da müsstest du insbesondere zusehen, dass der Compiler (avr-gcc) im %PATH% erreichbar ist. Die zu ändernde Stelle wäre:
1 | #elif defined __AVR_ATmega168__
|
2 | #define SIG2 0x94
|
3 | #define SIG3 0x06
|
4 | #define PAGE_SIZE 0x40U //64 words
|
Entweider du hackst dort direkt die andere Signatur hinein, oder wenn du es sauber machen willst, dann ergänzt du den ATmega168P:
1 | // alt:
|
2 | #elif defined __AVR_ATmega168__
|
3 | #define SIG2 0x94
|
4 | #define SIG3 0x06
|
5 | #define PAGE_SIZE 0x40U //64 words
|
6 | // neu:
|
7 | #elif defined __AVR_ATmega168P__
|
8 | #define SIG2 0x94
|
9 | #define SIG3 0x0b
|
10 | #define PAGE_SIZE 0x40U //64 words
|
Dann müsstest du an allen Stellen, wo derzeit ein ATmega168 getestet wird, aber auch den '168P nachtragen, bspw. hier:
1 | // bisher
|
2 | //#elif defined(__AVR_ATmega168__) || defined(__AVR_ATmega328P__) || defined (__AVR_ATmega328__)
|
3 | // danach:
|
4 | #elif defined(__AVR_ATmega168__) || defined(__AVR_ATmega168P__) || defined(__AVR_ATmega328P__) || defined (__AVR_ATmega328__)
|
Abschließend im Makefile MCU_TARGET auf "atmega168p" ändern.
:
Bearbeitet durch Moderator
OK, danke erstmal. Das mit den Änderungen sollte funktionieren. Ich vermute, dass ich mit dem Compiler etwas rumprobieren muss bis er mir was ausspuckt. Werd heute Abend mich dran versuchen.
So, Punkt 1 ist jetzt erledigt, hab jetzt einen Bootloader für den ATmega168pa. Musste dafür folgendes tun: 1) Make für Windows installieren 2) Source File um den 168P erweitert 3) Makefile angepasst 4) hex generiert :o) Jetzt noch das zweite Problem mit dem boards.txt ...
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.