Moin, ich versuche, den Bootloader des pro Micro (kompatibles Arduino Leonard) anzusprechen. Mit der Arduino-IDE kann ich das Board problemlos programmieren. Ich muss ein altes AtmelStudio-Projekt umbauen, das für ein Teensy 2.0 gedacht ist. Das Teensy 2.0 ist angekündigt, und das "Folgemodell" verwendet einen anderen Controller. Jetzt würde ich gerne den Programmierablauf der Arduino-IDE emulieren, um das Board zu programmieren Wenn man das Board resettet (Reset per "Öffnen und Schließen der Schnittstelle mit 1200 Baud"), meldet sich der Bootloader für eine gewisse Zeit als weiteren Comport am Windows-Rechner an. Ich bin inzwischen auch so weit, dass ich diese COM herausfinde. Leider meckert AVRdude, dass es die Schnittstelle nicht mehr gibt. Die Arduino-IDE hat da keine Probleme... Wie kann ich AVRdude nun dazu bewegen, das Board doch zu programmieren? Vielen Dank und viele Grüße Rahul
Rahul D. schrieb: > Leider meckert AVRdude, dass es die Schnittstelle nicht mehr gibt. Wie sieht die Meldung genau aus? Und wie wird der COM Port vom Gerätemanager angezeigt? Ich meine mich grob zu erinnern, dass es da mal ein Timing-Problem gab mit Workaround. Kann mich aber gerade nicht an eine gutes Stichwort erinnern, um den Beitrag hier zu finden.
Steve van de Grens schrieb: > Ich meine mich grob zu erinnern, dass es da mal ein Timing-Problem gab > mit Workaround. Kann mich aber gerade nicht an eine gutes Stichwort > erinnern, um den Beitrag hier zu finden. -b 57600 afaik war die Option, der alte Bootloader kann nur "langsam".
Wf88 schrieb: > 57600 Uninteressant! Bei CDC, ist die Baudrate völlig irrelevant! Außer um mit einer kurzen Umschaltung auf 1200 Baud denn Bootloader zu starten. Was zu tun ist: 1. Alle COM Ports merken 2. Bootloader starten 3. Der neu hinzugekommene, ist der Bootloader Port.
Steve van de Grens schrieb: > Wie sieht die Meldung genau aus? avrdude: ser_open(): can't open device "\\.\COM11:": Das System kann die angegebene Datei nicht finden. Wf88 schrieb: > -b 57600 afaik war die Option, der alte Bootloader kann nur "langsam". Die Parameter habe ich von der Arduino-IDE übernommen (und sollten passen, da ich damit schon das Board programmiert habe - heute). Steve van de Grens schrieb: > Ich meine mich grob zu erinnern, dass es da mal ein Timing-Problem gab > mit Workaround. Das sehe ich auch so. Im Gegensatz zu dem hier (gerade gefunden), arbeite ich mit temporären Dateien (ich wusste keine andere Lösung): https://github.com/p1ne/arduino-leonardo-uploader
Rahul D. schrieb: > avrdude: ser_open(): can't open device "\\.\COM11:": Das System kann die > angegebene Datei nicht finden. Richtig so, der Com Port der Anwendung verschwindet, wenn der Bootloader seinen eigenen startet. Rahul D. schrieb: > 57600 Da kannst du jede beliebige Baudrate nutzen, ist voll egal welche. Spielt keine Rolle.
:
Bearbeitet durch User
Arduino F. schrieb: > Was zu tun ist: > 1. Alle COM Ports merken > 2. Bootloader starten > 3. Der neu hinzugekommene, ist der Bootloader Port. Genau so mache ich das. Das ist auch nicht das Problem, sondern, dass der wieder weg ist, wenn avrdude auf ihn zugreifen will. Ein python-script habe ich auch gefunden (und schon wieder verschlampt). Da ging es aber AFAIR nur um das Reset. Steve van de Grens schrieb: > Und wie wird der COM Port vom Gerätemanager angezeigt? "Arduino Leonardo bootloader"
Arduino F. schrieb: > Richtig so, der Com Port der Anwendung verschwindet, wenn der Bootloader > seinen eigenen startet. Das ist schon der Comport des Bootloaders :( Der App-Comport ist COM6:
Rahul D. schrieb: > Das ist auch nicht das Problem, sondern, dass der wieder weg ist, wenn > avrdude auf ihn zugreifen will. Dann bist du zu langsam. Soweit mir bekannt, bleibt der Bootloader 8 Sekunden in Wartestellung.
Arduino F. schrieb: > Soweit mir bekannt, bleibt der Bootloader 8 Sekunden in Wartestellung. Sowas in der Richtung sehe ich im Geräte-Manager.
Ich habe nach kleinen Änderungen keine Probleme mit deiner BAT Datei.
1 | E:\bin>REM COM6: ├Âffnen und schli├ƒen |
2 | |
3 | E:\bin>mode COM6: BAUD=1200 |
4 | Die Voreinstellung für die Datenbits ist 7. |
5 | Die Voreinstellung für die Parität ist gerade. |
6 | |
7 | Status von Gerät COM6: |
8 | ----------------------
|
9 | Baudrate: 1200 |
10 | Parität: Even |
11 | Datenbits: 7 |
12 | Stoppbits: 1 |
13 | Timeout: OFF |
14 | XON/XOFF: OFF |
15 | CTS-Handshaking: OFF |
16 | DSR-Handshaking: OFF |
17 | DSR-Prüfung: OFF |
18 | DTR-Signal: OFF |
19 | RTS-Signal: ON |
20 | |
21 | |
22 | E:\bin>REM kurze Pause |
23 | |
24 | E:\bin>PING localhost -n 2 1>NUL |
25 | |
26 | E:\bin>REM AVRdude aufrufen |
27 | |
28 | E:\bin>E:\Programme\arduino\portable\packages\arduino\tools\avrdude\6.3.0-arduino17/bin/avrdude -CE:\Programme\arduino\portable\packages\arduino\tools\avrdude\6.3.0-arduino17/etc/avrdude.conf -v -patmega32u4 -cavr109 -PCOM7 -b57600 -D -Uflash:w:E:\temp\Arduino/sketch_feb08c001.ino.hex:i |
29 | |
30 | avrdude: Version 6.3-20190619 |
31 | Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/ |
32 | Copyright (c) 2007-2014 Joerg Wunsch |
33 | |
34 | System wide configuration file is "E:\Programme\arduino\portable\packages\arduino\tools\avrdude\6.3.0-arduino17/etc/avrdude.conf" |
35 | |
36 | Using Port : COM7 |
37 | Using Programmer : avr109 |
38 | Overriding Baud Rate : 57600 |
39 | AVR Part : ATmega32U4 |
40 | Chip Erase delay : 9000 us |
41 | PAGEL : PD7 |
42 | BS2 : PA0 |
43 | RESET disposition : dedicated |
44 | RETRY pulse : SCK |
45 | serial program mode : yes |
46 | parallel program mode : yes |
47 | Timeout : 200 |
48 | StabDelay : 100 |
49 | CmdexeDelay : 25 |
50 | SyncLoops : 32 |
51 | ByteDelay : 0 |
52 | PollIndex : 3 |
53 | PollValue : 0x53 |
54 | Memory Detail : |
55 | |
56 | Block Poll Page Polled |
57 | Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack |
58 | ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- --------- |
59 | eeprom 65 20 4 0 no 1024 4 0 9000 9000 0x00 0x00 |
60 | flash 65 6 128 0 yes 32768 128 256 4500 4500 0x00 0x00 |
61 | lfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00 |
62 | hfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00 |
63 | efuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00 |
64 | lock 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00 |
65 | calibration 0 0 0 0 no 1 0 0 0 0 0x00 0x00 |
66 | signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00 |
67 | |
68 | Programmer Type : butterfly |
69 | Description : Atmel AppNote AVR109 Boot Loader |
70 | |
71 | Connecting to programmer: . |
72 | Found programmer: Id = "CATERIN"; type = S |
73 | Software Version = 1.0; No Hardware Version given. |
74 | Programmer supports auto addr increment. |
75 | Programmer supports buffered memory access with buffersize=128 bytes. |
76 | |
77 | Programmer supports the following devices: |
78 | Device code: 0x44 |
79 | |
80 | avrdude: devcode selected: 0x44 |
81 | avrdude: AVR device initialized and ready to accept instructions |
82 | |
83 | Reading | ################################################## | 100% 0.01s |
84 | |
85 | avrdude: Device signature = 0x1e9587 (probably m32u4) |
86 | avrdude: safemode: lfuse reads as FF |
87 | avrdude: safemode: hfuse reads as D8 |
88 | avrdude: safemode: efuse reads as CB |
89 | avrdude: reading input file "E:\temp\Arduino/sketch_feb08c001.ino.hex" |
90 | avrdude: writing flash (3972 bytes): |
91 | |
92 | Writing | ################################################## | 100% 0.67s |
93 | |
94 | avrdude: 3972 bytes of flash written |
95 | avrdude: verifying flash memory against E:\temp\Arduino/sketch_feb08c001.ino.hex: |
96 | avrdude: load data flash data from input file E:\temp\Arduino/sketch_feb08c001.ino.hex: |
97 | avrdude: input file E:\temp\Arduino/sketch_feb08c001.ino.hex contains 3972 bytes |
98 | avrdude: reading on-chip flash data: |
99 | |
100 | Reading | ################################################## | 100% 0.28s |
101 | |
102 | avrdude: verifying ... |
103 | avrdude: 3972 bytes of flash verified |
104 | |
105 | avrdude: safemode: lfuse reads as FF |
106 | avrdude: safemode: hfuse reads as D8 |
107 | avrdude: safemode: efuse reads as CB |
108 | avrdude: safemode: Fuses OK (E:CB, H:D8, L:FF) |
109 | |
110 | avrdude done. Thank you. |
111 | |
112 | |
113 | E:\bin>pause |
114 | Drücken Sie eine beliebige Taste . . . |
:
Bearbeitet durch User
Arduino F. schrieb: > Ich habe nach kleinen Änderungen keine Probleme mit deiner BAT Datei. Danke fürs Verifizieren. Dann wird es wohl an meiner avrdude-Version liegen. Vielleicht ist die etwas alt.
Arduino F. schrieb: > Glaube ich nicht. Ich habe jetzt in das Script von GitHub mal den Ping eingebaut: Zack! War die COM6: weg - das funktioniert also. Jetzt muss ich mir ein ISP-Adapter organisieren ;) Oder zumindest eine USB-CDC-Funktion in meine Firmware einbauen. Danke für die Unterstützung.
:
Bearbeitet durch User
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.