Forum: Mikrocontroller und Digitale Elektronik Bootloader auf Atmega328 PCB


von Jut (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich hoffe ich bekomme hier Hilfe.

Ich habe mir ein PCB entworfen und habe mir dieses fertigen und 
bestücken lasse.

Schaltplan im Anhang.

Auf dem Pub ist eine "minimal" Schaltung für ein Arduino Pro Mini mit 
drauf.

genau darum geht es nun.

Ich möchte einen Bootloader drauf machen.

Da ich leider beim Entwurf vergessen habe, die notwendigen Pins fürs 
flashen rauszuführen, habe ich kleine Adern an die entsprechenden Pins 
gelötet.

Anschließend habe ich mit einem Arduino Uno geflachst. Auf dem UNO ist 
das ISP Sketch drauf.

Einstellungen im Arduino IDE:

Board: Arduino Pro oder Pro Mini
Prozessor: Atmega328P 5V 16Mhz
Port: mein Uno
Programmer: Arduino as ISP

Dann bootloader brennen. Das Ergebnis sieht IMHO auch gut aus.


______________


Hier der Log dazu:

/private/var/folders/x1/01k3w63s0bx567bd7zl218280000gq/T/AppTranslocatio 
n/50355F96-98A2-4588-8629-A863A14A26AA/d/Arduino.app/Contents/Java/hardw 
are/tools/avr/bin/avrdude 
-C/private/var/folders/x1/01k3w63s0bx567bd7zl218280000gq/T/AppTranslocat 
ion/50355F96-98A2-4588-8629-A863A14A26AA/d/Arduino.app/Contents/Java/har 
dware/tools/avr/etc/avrdude.conf  -v -patmega328p -cstk500v1 
-P/dev/cu.usbmodem141101 -b19200 -e -Ulock:w:0x3F:m -Uefuse:w:0xFD:m 
-Uhfuse:w:0xDA:m -Ulfuse:w:0xFF:m

avrdude: Version 6.3-20190619
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is 
"/private/var/folders/x1/01k3w63s0bx567bd7zl218280000gq/T/AppTranslocati 
on/50355F96-98A2-4588-8629-A863A14A26AA/d/Arduino.app/Contents/Java/hard 
ware/tools/avr/etc/avrdude.conf"
         User configuration file is "/Users/XXXXX/.avrduderc"
         User configuration file does not exist or is not a regular 
file, skipping

         Using Port                    : /dev/cu.usbmodem141101
         Using Programmer              : stk500v1
         Overriding Baud Rate          : 19200
         AVR Part                      : ATmega328P
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PC2
         RESET disposition             : dedicated
         RETRY pulse                   : SCK
         serial program mode           : yes
         parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         ByteDelay                     : 0
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

                                  Block Poll               Page 
Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages 
MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ 
----- ----- ---------
           eeprom        65    20     4    0 no       1024    4      0 
3600  3600 0xff 0xff
           flash         65     6   128    0 yes     32768  128    256 
4500  4500 0xff 0xff
           lfuse          0     0     0    0 no          1    0      0 
4500  4500 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0 
4500  4500 0x00 0x00
           efuse          0     0     0    0 no          1    0      0 
4500  4500 0x00 0x00
           lock           0     0     0    0 no          1    0      0 
4500  4500 0x00 0x00
           calibration    0     0     0    0 no          1    0      0 
0     0 0x00 0x00
           signature      0     0     0    0 no          3    0      0 
0     0 0x00 0x00

         Programmer Type : STK500
         Description     : Atmel STK500 Version 1.x firmware
         Hardware Version: 2
         Firmware Version: 1.18
         Topcard         : Unknown
         Vtarget         : 0.0 V
         Varef           : 0.0 V
         Oscillator      : Off
         SCK period      : 0.1 us

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 
0.02s

avrdude: Device signature = 0x1e950f (probably m328p)
avrdude: erasing chip
avrdude: reading input file "0x3F"
avrdude: writing lock (1 bytes):

/private/var/folders/x1/01k3w63s0bx567bd7zl218280000gq/T/AppTranslocatio 
n/50355F96-98A2-4588-8629-A863A14A26AA/d/Arduino.app/Contents/Java/hardw 
are/tools/avr/bin/avrdude 
-C/private/var/folders/x1/01k3w63s0bx567bd7zl218280000gq/T/AppTranslocat 
ion/50355F96-98A2-4588-8629-A863A14A26AA/d/Arduino.app/Contents/Java/har 
dware/tools/avr/etc/avrdude.conf  -v -patmega328p -cstk500v1 
-P/dev/cu.usbmodem141101 -b19200 
-Uflash:w:/private/var/folders/x1/01k3w63s0bx567bd7zl218280000gq/T/AppTr 
anslocation/50355F96-98A2-4588-8629-A863A14A26AA/d/Arduino.app/Contents/ 
Java/hardware/arduino/avr/bootloaders/atmega/ATmegaBOOT_168_atmega328.he 
x:i  -Ulock:w:0x0F:m
Writing | ################################################## | 100% 
0.01s

avrdude: 1 bytes of lock written
avrdude: verifying lock memory against 0x3F:
avrdude: load data lock data from input file 0x3F:
avrdude: input file 0x3F contains 1 bytes
avrdude: reading on-chip lock data:

Reading | ################################################## | 100% 
0.01s

avrdude: verifying ...
avrdude: 1 bytes of lock verified
avrdude: reading input file "0xFD"
avrdude: writing efuse (1 bytes):

Writing | ################################################## | 100% 
0.01s

avrdude: 1 bytes of efuse written
avrdude: verifying efuse memory against 0xFD:
avrdude: load data efuse data from input file 0xFD:
avrdude: input file 0xFD contains 1 bytes
avrdude: reading on-chip efuse data:

Reading | ################################################## | 100% 
0.01s

avrdude: verifying ...
avrdude: 1 bytes of efuse verified
avrdude: reading input file "0xDA"
avrdude: writing hfuse (1 bytes):

Writing | ################################################## | 100% 
0.01s

avrdude: 1 bytes of hfuse written
avrdude: verifying hfuse memory against 0xDA:
avrdude: load data hfuse data from input file 0xDA:
avrdude: input file 0xDA contains 1 bytes
avrdude: reading on-chip hfuse data:

Reading | ################################################## | 100% 
0.01s

avrdude: verifying ...
avrdude: 1 bytes of hfuse verified
avrdude: reading input file "0xFF"
avrdude: writing lfuse (1 bytes):

Writing | ################################################## | 100% 
0.01s

avrdude: 1 bytes of lfuse written
avrdude: verifying lfuse memory against 0xFF:
avrdude: load data lfuse data from input file 0xFF:
avrdude: input file 0xFF contains 1 bytes
avrdude: reading on-chip lfuse data:

Reading | ################################################## | 100% 
0.01s

avrdude: verifying ...
avrdude: 1 bytes of lfuse verified

avrdude done.  Thank you.


avrdude: Version 6.3-20190619
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is 
"/private/var/folders/x1/01k3w63s0bx567bd7zl218280000gq/T/AppTranslocati 
on/50355F96-98A2-4588-8629-A863A14A26AA/d/Arduino.app/Contents/Java/hard 
ware/tools/avr/etc/avrdude.conf"
         User configuration file is "/Users/XXXXX/.avrduderc"
         User configuration file does not exist or is not a regular 
file, skipping

         Using Port                    : /dev/cu.usbmodem141101
         Using Programmer              : stk500v1
         Overriding Baud Rate          : 19200
         AVR Part                      : ATmega328P
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PC2
         RESET disposition             : dedicated
         RETRY pulse                   : SCK
         serial program mode           : yes
         parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         ByteDelay                     : 0
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

                                  Block Poll               Page 
Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages 
MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ 
----- ----- ---------
           eeprom        65    20     4    0 no       1024    4      0 
3600  3600 0xff 0xff
           flash         65     6   128    0 yes     32768  128    256 
4500  4500 0xff 0xff
           lfuse          0     0     0    0 no          1    0      0 
4500  4500 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0 
4500  4500 0x00 0x00
           efuse          0     0     0    0 no          1    0      0 
4500  4500 0x00 0x00
           lock           0     0     0    0 no          1    0      0 
4500  4500 0x00 0x00
           calibration    0     0     0    0 no          1    0      0 
0     0 0x00 0x00
           signature      0     0     0    0 no          3    0      0 
0     0 0x00 0x00

         Programmer Type : STK500
         Description     : Atmel STK500 Version 1.x firmware
         Hardware Version: 2
         Firmware Version: 1.18
         Topcard         : Unknown
         Vtarget         : 0.0 V
         Varef           : 0.0 V
         Oscillator      : Off
         SCK period      : 0.1 us

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 
0.02s

avrdude: Device signature = 0x1e950f (probably m328p)
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 
"/private/var/folders/x1/01k3w63s0bx567bd7zl218280000gq/T/AppTranslocati 
on/50355F96-98A2-4588-8629-A863A14A26AA/d/Arduino.app/Contents/Java/hard 
ware/arduino/avr/bootloaders/atmega/ATmegaBOOT_168_atmega328.hex"
avrdude: writing flash (32670 bytes):

Writing | ################################################## | 100% 
0.00s

avrdude: 32670 bytes of flash written
avrdude: verifying flash memory against 
/private/var/folders/x1/01k3w63s0bx567bd7zl218280000gq/T/AppTranslocatio 
n/50355F96-98A2-4588-8629-A863A14A26AA/d/Arduino.app/Contents/Java/hardw 
are/arduino/avr/bootloaders/atmega/ATmegaBOOT_168_atmega328.hex:
avrdude: load data flash data from input file 
/private/var/folders/x1/01k3w63s0bx567bd7zl218280000gq/T/AppTranslocatio 
n/50355F96-98A2-4588-8629-A863A14A26AA/d/Arduino.app/Contents/Java/hardw 
are/arduino/avr/bootloaders/atmega/ATmegaBOOT_168_atmega328.hex:
avrdude: input file 
/private/var/folders/x1/01k3w63s0bx567bd7zl218280000gq/T/AppTranslocatio 
n/50355F96-98A2-4588-8629-A863A14A26AA/d/Arduino.app/Contents/Java/hardw 
are/arduino/avr/bootloaders/atmega/ATmegaBOOT_168_atmega328.hex 
contains 32670 bytes
avrdude: reading on-chip flash data:

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

avrdude: verifying ...
avrdude: 32670 bytes of flash verified
avrdude: reading input file "0x0F"
avrdude: writing lock (1 bytes):

Writing | ################################################## | 100% 
0.02s

avrdude: 1 bytes of lock written
avrdude: verifying lock memory against 0x0F:
avrdude: load data lock data from input file 0x0F:
avrdude: input file 0x0F contains 1 bytes
avrdude: reading on-chip lock data:

Reading | ################################################## | 100% 
0.01s

avrdude: verifying ...
avrdude: 1 bytes of lock verified

avrdude done.  Thank you.


_______________


Danach Uno abgezogen und mein FTDI232 dran um einen Sketch aufzuspielen.

Und hier mein Problem:

Ich bekomme folgende Fehlermeldung:

__________________

Der Sketch verwendet 924 Bytes (3%) des Programmspeicherplatzes. Das 
Maximum sind 30720 Bytes.
Globale Variablen verwenden 9 Bytes (0%) des dynamischen Speichers, 2039 
Bytes für lokale Variablen verbleiben. Das Maximum sind 2048 Bytes.
/private/var/folders/x1/01k3w63s0bx567bd7zl218280000gq/T/AppTranslocatio 
n/50355F96-98A2-4588-8629-A863A14A26AA/d/Arduino.app/Contents/Java/hardw 
are/tools/avr/bin/avrdude 
-C/private/var/folders/x1/01k3w63s0bx567bd7zl218280000gq/T/AppTranslocat 
ion/50355F96-98A2-4588-8629-A863A14A26AA/d/Arduino.app/Contents/Java/har 
dware/tools/avr/etc/avrdude.conf  -v -patmega328p -carduino 
-P/dev/cu.usbserial-A50285BI -b57600 -D 
-Uflash:w:/var/folders/x1/01k3w63s0bx567bd7zl218280000gq/T/arduino_build 
_474282/Blink.ino.hex:i

avrdude: Version 6.3-20190619
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is 
"/private/var/folders/x1/01k3w63s0bx567bd7zl218280000gq/T/AppTranslocati 
on/50355F96-98A2-4588-8629-A863A14A26AA/d/Arduino.app/Contents/Java/hard 
ware/tools/avr/etc/avrdude.conf"
         User configuration file is "/Users/XXXXXXXX/.avrduderc"
         User configuration file does not exist or is not a regular 
file, skipping

         Using Port                    : /dev/cu.usbserial-A50285BI
         Using Programmer              : arduino
         Overriding Baud Rate          : 57600
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00


__________________


Das programer is not respondier geht dann 10 mal.

Habe das ganze mit einem Original Arduino Pro Mini ausprobiert. Das 
flashen sieht vom Log genau so aus. Danach kann ich aber ein Sketch 
hochladen. Da geht das ohne Probleme. Bzw. wenn auf einem original 
ProMini ein Sketch drauf ist und ich den Bootloader neu flache, bleibt 
dann der Sketch trotzdem drauf (Das ist bei mir der fall).

Was mache ich bei meinem Board falsch? Bin ich ratlos... und hoffe auf 
Hilfe.

: Verschoben durch Moderator
von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Forum: Projekte & Code

Hier könnt ihr eure Projekte, Schaltungen oder Codeschnipsel vorstellen 
und diskutieren. Bitte hier keine Fragen posten!

Ich verschiebe das mal nach "µC und Eelktronik".

von Jut (Gast)


Lesenswert?

Danke fürs verschieben!

von Micha (nichtgast)


Lesenswert?

Moin,

wie schließt du denn dein Board an den PC an. Der AVR gibt nur UART aus 
und dein PC spricht RS232. Das sind unterschiedliche Pegel. Du brauchst 
einen passenden Konverter.

von Jut (Gast)


Lesenswert?

meinst du den Uno für das flashen des Bootloader oder den FTDI232 zum 
aufspielen des Sketchs?

Den Uno schließe ich per USB an. daran dann die entsprechenden Pins 
10,11,12,13, VCC und GND vom UNO an die entsprechenden Pins vom 
Atmega328.

10 an Reset (PIN 29)
11 an MOSI(PIN 15)
12 an MISO (PIN 16)
13 an SCK (PIN 17)
VCC an VCC
GND an GND

Beim FTDI232. diesen habe ich auch per USB an den Rechner angeschlossen.
Dann die 6 Pins an meine 6-fach Pin Leiste, wie auf dem Schaltplan zu 
sehen. Das funktioniert auch beim original Arduino Pro Mini

von Spess53 (Gast)


Lesenswert?

Hi

>Was mache ich bei meinem Board falsch? Bin ich ratlos... und hoffe auf
>Hilfe.

Elementarer Fehler: Blockkondensatoren an allen VCC und Gnds fehlen.

MfG spess

von Jut (Gast)


Lesenswert?

Aber auch wenn ich nicht VCC / GND der Pins nutze sondern Spannung 
mittels USB gebe (Spannung ist da, habe ich getestet) funktioniert es 
nicht. Hatte meine Schaltung hier eigentlich eingestellt. Wurde nichts 
bzgl. den fehlenden Blockkondensatoren bemängelt...

von Jut (Gast)


Lesenswert?

... C8 und C9 habe ich ja aber auch dran...

von Spess53 (Gast)


Lesenswert?

Hi

>Wurde nichts Wurde nichts bzgl. den fehlenden Blockkondensatoren >bemängelt...

Es kommt nich darauf das irgend welche Kondensatoren da sind sondern wo 
sie angeordnet sind. Beim ATMega328 liegen VCC-GND direkt neben 
einander. Und da müssen die Kondensatoren so nah wie möglich hin. Aus 
deiner Schaltung ist das keineswegs ersichtlich.

MfG spess

von Stefan F. (Gast)


Lesenswert?

Teste mal deinen FTDI Adapter, indem du seinen Tx Ausgang mit seinem Rx 
Eingang verbindest. Alles was du in einem Terminal Programm sendest, 
müsste dann als Echo zurück kommen.

Probiere 115200 Baud. Der "neue" Bootloader kommuniziert schneller als 
wir gewohnt sind.

von Jut (Gast)


Angehängte Dateien:

Lesenswert?

Hier noch das PCB. Zumindest die TOP Seite.

von Jut (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Teste mal deinen FTDI Adapter, indem du seinen Tx Ausgang mit
> seinem Rx
> Eingang verbindest. Alles was du in einem Terminal Programm sendest,
> müsste dann als Echo zurück kommen.
>
> Probiere 115200 Baud. Der "neue" Bootloader kommuniziert schneller als
> wir gewohnt sind.

Aber mit einem original Arduino Pro Mini funktioniert ja der FTDI 
Adapter.

Ich habe auch auf der Konsole versucht beim avrdude mit -b115200. Gab 
den gleichen Fehler...

von Brain 2.0 (Gast)


Lesenswert?

Das Flashen des Bootloaders geht nur über ISP.
Wenn das bei deinem Board nicht geht, kannst du auch keinen Bootloader 
flashen.

Löte dir die Anschlüsse zum ISP direkt auf das Board und flashe darüber.

von Stefan F. (Gast)


Lesenswert?

Jut schrieb:
> Aber mit einem original Arduino Pro Mini funktioniert ja der FTDI
> Adapter.

Jetzt vielleicht nicht mehr.

von Jut (Gast)


Lesenswert?

Brain 2.0 schrieb:
> Das Flashen des Bootloaders geht nur über ISP.
> Wenn das bei deinem Board nicht geht, kannst du auch keinen Bootloader
> flashen.
>
> Löte dir die Anschlüsse zum ISP direkt auf das Board und flashe darüber.

Das verstehe ich nicht so ganz.

Habe doch oben geschrieben, dass ich mir adern direkt an die Pins 
gelötet habe und darüber geflachst habe. Der Log dazu ist oben zu 
finden. Der sieht meiner Meinung nach gut aus (bin aber kein Profi). 
Somit "dachte" ich dass der Bootloader drauf ist. Aber nun kann ich 
mittels FTDI kein Sketch hochladen.

von Stefan F. (Gast)


Lesenswert?

Brain 2.0 schrieb:
> Das Flashen des Bootloaders geht nur über ISP.

Das hat der TO ja auch gemacht.

Jetzt will den nächsten Schritt versuchen: Das Blink.ino.hex über den 
seriellen Port flashen.

von Jut (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Jut schrieb:
>> Aber mit einem original Arduino Pro Mini funktioniert ja der FTDI
>> Adapter.
>
> Jetzt vielleicht nicht mehr.

Wieso? Was meinst du damit? Habe es eben gerade versucht. Das 
funktioniert.

von Brain 2.0 (Gast)


Lesenswert?

Hast du an deinem Uno einen Elko 10μF von Reset gegen GND ?
Der muss da noch ran.

von Stefan F. (Gast)


Lesenswert?

Probiere mal, den Reset Taster zu halten und in dem Moment los zu 
lassen, wo avrdude seine ersten Meldungen ausgibt.

von Jut (Gast)


Lesenswert?

Brain 2.0 schrieb:
> Hast du an deinem Uno einen Elko 10μF von Reset gegen GND ?
> Der muss da noch ran.

Nein das habe ich nicht. Brauche ich den? Dürfte das dann nicht 
eigentlich gar nicht funktionieren? Ich meine laut Log sieht ja alles 
gut aus (ohne den Elko)

von Stefan F. (Gast)


Lesenswert?

Brain 2.0 schrieb:
> Hast du an deinem Uno einen Elko 10μF von Reset gegen GND ?
> Der muss da noch ran.

Welcher Uno? Er benutzt sein eigenes Board mit einem USB-UART Adapter.

Und da würde ein Elko am Reset Pin den Auto-Reset durch C5 verhindern.

von Jut (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Probiere mal, den Reset Taster zu halten und in dem Moment los zu
> lassen, wo avrdude seine ersten Meldungen ausgibt.

Leider kein Erfolg....

von Brain 2.0 (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Brain 2.0 schrieb:
>
>> Das Flashen des Bootloaders geht nur über ISP.
>
> Das hat der TO ja auch gemacht.
> Jetzt will den nächsten Schritt versuchen: Das Blink.ino.hex über den
> seriellen Port flashen.

Ok, sorry, hatte das Log falsch interpretiert.

von Stefan F. (Gast)


Lesenswert?

Jut schrieb:
> Leider kein Erfolg....

Dann weiß ich auch nicht mehr weiter.

von Jut (Gast)



Lesenswert?

Hier nochmal Bilder vom Anschluss.

Gibt es eine Möglichkeit zu überprüfen das mein Bootloader richtig drauf 
ist. Muss ich an den Fuses etwas anderes einstellen?

Nutze einen 16Mhz Quarz

von Brain 2.0 (Gast)


Lesenswert?

Jut schrieb:
> Hier nochmal Bilder vom Anschluss.
> Gibt es eine Möglichkeit zu überprüfen das mein Bootloader richtig drauf
> ist. Muss ich an den Fuses etwas anderes einstellen?
> Nutze einen 16Mhz Quarz

Hast du beim Flashen den 10μ Elko dran ?

von Brain 2.0 (Gast)


Lesenswert?

Sorry, beim Flashen des Bootloaders muss am Uno ein Elko 10μ an den 
Reset gegen GND.

von Brain 2.0 (Gast)


Lesenswert?

Jut schrieb:
> Brain 2.0 schrieb:
>
>> Hast du an deinem Uno einen Elko 10μF von Reset gegen GND ?
>> Der muss da noch ran.
>
> Nein das habe ich nicht. Brauche ich den? Dürfte das dann nicht
> eigentlich gar nicht funktionieren? Ich meine laut Log sieht ja alles
> gut aus (ohne den Elko)

Ja, das muss, damit nicht der Uno geflasht wird, sondern dein Board.
So steht es auch auf den Seiten von Arduino.cc

von Jut (Gast)


Lesenswert?

oh, ok. das heißt es kann sein, dass mein Uno nun geflachst wurde und 
nicht mein angeschlossenes Board.

Ist es egal zwischen welchen GND und 5V Pin ich den Elko anschließe?
oder genau an den wo ich dann auch mit GND und 5V an mein Board gehe? 
Also einfach den Elko in die Leitung vom Uno zu meinem Board?

Wieso steht das in den Anleitungen nirgends?
https://wolles-elektronikkiste.de/arduino-pro-mini-programmieren

https://www.instructables.com/Burn-a-New-Bootloader-Arduino-Pro-Mini/

von Jut (Gast)


Lesenswert?

Acho sorry, muss ja zwischen Reset und GND.

Ok, das heißt Elko an Reset und GND und vom Elko am Reset dann weiter an 
mein Board...

von Jut (Gast)


Lesenswert?

Ok, sorry. Bin grad selbst verwirrt :) :)

Mein Reset von meinem Board geht ja an Pin 10 vom Uno. Somit ist der 
Reset vom Uno ja "frei" für den Elko.

Aber trotzdem die Frage wieso das in den Anleitungen nie steht.

von Brain 2.0 (Gast)


Lesenswert?

Jut schrieb:
> oh, ok. das heißt es kann sein, dass mein Uno nun geflachst wurde
> und nicht mein angeschlossenes Board.
> Ist es egal zwischen welchen GND und 5V Pin ich den Elko anschließe?
> oder genau an den wo ich dann auch mit GND und 5V an mein Board gehe?
> Also einfach den Elko in die Leitung vom Uno zu meinem Board?
> Wieso steht das in den Anleitungen nirgends?
> https://wolles-elektronikkiste.de/arduino-pro-mini-programmieren
> https://www.instructables.com/Burn-a-New-Bootloader-Arduino-Pro-Mini/

Nicht zwischen Plus und GND, sondern an Reset und GND.
Und viele Tutorials sind leider fehlerhaft, da funktioniert es durch 
Zufall eben mal.

von Stefan F. (Gast)


Lesenswert?

Jut schrieb:
> Aber trotzdem die Frage wieso das in den Anleitungen nie steht.

Es steht in der "offiziellen" Anleitung: 
https://www.arduino.cc/en/Tutorial/BuiltInExamples/ArduinoISP

von Jut (Gast)


Lesenswert?

Ok, kann ich auch einen 100uF nutzen. So einen habe ich noch hier 
liegen...

Ist es eigentlich von Bedeutung ob ich beim UNO (Programmer) die ISP 
Steckkontakte nutze oder direkt die Pins?

von Jut (Gast)


Lesenswert?

Und nochmal die Frage. Wenn ich einen Bootloader von einem Pro Mini neu 
Flashe ist dann das zuvor drauf gewesene Sketch weg oder weiterhin da?

von Stefan F. (Gast)


Lesenswert?

Jut schrieb:
> Ist es eigentlich von Bedeutung ob ich beim UNO (Programmer) die ISP
> Steckkontakte nutze oder direkt die Pins?

Lies doch mal die offizielle Doku zu der ich gerade den Link gepostet 
habe. Dort ist deine Frage beantwortet:

11 or ICSP-4
12 or ICSP-1
13 or ICSP-3

> Wenn ich einen Bootloader von einem Pro Mini neu Flashe ist
> dann das zuvor drauf gewesene Sketch weg oder weiterhin da?

Ja, weil dabei der Flash Speicher gelöscht werden muss.

von Jut (Gast)


Lesenswert?

Ok. Ich besorge mir jetzt 10uF Elkos beim C und teste es heute Abend 
nochmal.

von Brain 2.0 (Gast)


Lesenswert?

Jut schrieb:
> Ok, kann ich auch einen 100uF nutzen. So einen habe ich noch hier
> liegen...

Zum testen kannst du auch einen 100 µF nehmen.

von Wolfgang (Gast)


Lesenswert?

Jut schrieb:
> Muss ich an den Fuses etwas anderes einstellen?

Bei den Fuses musst du dem µC schon sagen, dass er nicht den 1:8 
Vorteiler mit internem Takt benutzen soll. Im Auslieferungszustand läuft 
der nur mit 1MHz

von Stefan F. (Gast)


Lesenswert?

Wolfgang schrieb:
>> Muss ich an den Fuses etwas anderes einstellen?

> Bei den Fuses musst du dem µC schon sagen, dass er nicht den 1:8
> Vorteiler mit internem Takt benutzen soll.

Darum kümmert sich allerdings die Arduino IDE, wenn sie den Bootloader 
installiert.

von Wolfgang (Gast)


Lesenswert?

Jut schrieb:
> Hier der Log dazu:
> ...

Was für Sourcecode gilt, trifft auf für Logs zu: "Längeren Sourcecode 
nicht im Text einfügen, sondern als Dateianhang"

Soviel Transferleistung muss drin sein ;-)

von Einer K. (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Darum kümmert sich allerdings die Arduino IDE, wenn sie den Bootloader
> installiert.
Yes!
Kann man auch klar und deutlich im Log sehen.
Ist also auch keine Frage/Irritation wert.

von Jut (Gast)


Lesenswert?

Hmmm, also auch mit einem 10uf Elko klappt es nicht. Ich habe auch das 
Gefühl dass ich immer den UNO (programmer) flashe und nicht den 
entschlossenen Arduino Pro Mini.

Also ich teste es aktuell erstmal einfach mit einem Pro Mini und nicht 
mit einem Board um eine Fehlerquelle auzuschließen...

Wenn ich einen Sketch offen habe und sage in der IDE Bootloader brennen, 
schreibt er auch anschließend automatisch das Sketch drauf? Denn nach 
dem Flashen ist das Blink Sketch weiterhin auf den Pro Mini und 
zusätzlich blinkt dann im genau gleichen Intervall auch der Uno...

Ich bin echt irritiert...

von dirk (Gast)


Lesenswert?

Gruss zum Abend

Zitat heise Make 4.2015 S.96 :

... im Menue "Tools" die Option "Bootloader installieren" anklicken.

Dabei muss man vor dem Klick auf "Upload"
die Shift-Taste drücken und halten.
So erkennt die Arduino IDE, dass der Arduino
als Programmer genutzt werden soll.
Zitat Ende

Ps. der Text hat einen Textfolge Fehler, aber erst
 im späteren. So direkt gibt es den Artikel
"Arduino im Eigenbau" vom heise-Verlag im Internet nicht. Aber so 
einiges zum Thema.

Dirk St

von Jut (Gast)


Lesenswert?

Gibt es hier jemanden in der Nähe von Frankfurt / Wiesbaden der sich mit 
der Thematik auskennt. Ich bin echt lost :(

Oder kann ich jemandem mein Uno und eines von meinen Boards zuschicken 
und er kann mich dabei unterstützen?

Ich weiß nicht mehr weiter.... :(

von dirk (Gast)


Lesenswert?

Gruss

Hast Du meine Erwähnung von 21:45 gelesen?
Du schriebst ja bis 20:46.

Dirk St

von dirk (Gast)


Lesenswert?

Sorry 21:46
Dirk St

von Brain 2.0 (Gast)


Lesenswert?

Jut schrieb:
> Hmmm, also auch mit einem 10uf Elko klappt es nicht. Ich habe auch
> das
> Gefühl dass ich immer den UNO (programmer) flashe und nicht den
> entschlossenen Arduino Pro Mini.
>
> Also ich teste es aktuell erstmal einfach mit einem Pro Mini und nicht
> mit einem Board um eine Fehlerquelle auzuschließen...
>
> Wenn ich einen Sketch offen habe und sage in der IDE Bootloader brennen,
> schreibt er auch anschließend automatisch das Sketch drauf? Denn nach
> dem Flashen ist das Blink Sketch weiterhin auf den Pro Mini und
> zusätzlich blinkt dann im genau gleichen Intervall auch der Uno...
>
> Ich bin echt irritiert...

Je nach dem welchen Bootloader du flashst, ist da ein Blinken mit drin.

Flash doch einfach mal einen "Blink-Sketch" per ISP, der eine schnellere 
Blinkfrequenz hat.

von Sonstiges (Gast)


Lesenswert?

Brain 2.0 schrieb:
> Flash doch einfach mal einen "Blink-Sketch" per ISP, der eine schnellere
> Blinkfrequenz hat.

Ja, das ist eine gute Idee. Bei jedem Neuprogrammieren die Blinkfrequenz 
deutlich abändern.

Ansonsten fällt mir auf, daß du auf deinem eigenen Board einen CTS 
Ausgang fix auf GND gelegt hast, der laut deinen Bildern auch mit dem 
FTDI Adapter verbunden ist. Diese Signalleitung gibt es beim Arduino Pro 
Mini nicht, und das könnte den Unterschied ausmachen.

Wenn es dir gelungen ist den Bootloader auf dein Board zu bringen, und 
das Programmieren über das Serielle Inteface immer noch nicht 
funktioniert, dann würde ich CTS Leitung zum FTDI mal versuchsweise 
unterbrechen.

von dirk (Gast)


Lesenswert?

Gruss in die Runde

Ich schreib noch folgendes dazu:

Das mit dem C 10µF, hatte ich schon mal im Forum angemerkt, der ist in 
Internet Beiträgen zum Arduino ISP nicht überall referiert.

Zum Thema Arduino UNO als IS
Programmer gibt es noch die Artikel:

https://m.heise.de/make/artikel/Microcontroller-flashen-Arduino-Uno-als-In-System-Programmer-2769246.html

, das war mal in der Make 1.2014 S.138ff.
Mit Darstellung der Fuses und des weiteren
  mit Programmierung von PICs
 und ist im Internet frei verfügbar.

Von Heise gibt es noch:
Arduino im Eigenbau, im Internet allg. ein Thema, war auch in der Make 
4.2015 S.94ff.
Der Artikel in der Make hat aber einen Fehler in der Textabfolge (S.96). 
Ein Textabschnitt sollte vorher positioniert sein.
Besonders ist hier die Erwähnung der gedrückten Shift Taste während des 
Uploads mit der Arduino IDE, wenn ein Bootloader auf einen Atmega 
mittels Arduino ISP soll.

Bei/In der Make sind
die alten Forenbeiträge eventuell nicht mehr erreichbar. Dafür sind aber 
die Themen im Internet reichlich vertreten.


"avrdude flash lesen" ( resp. Variation, s. Internet)
 gehört u.a. zu den Grundlagen im Umgang
 mit avrdude und das sollte man sich
 anfänglich erarbeiten. Das geht auch in eine Datei.
Wenn das selten gebraucht wird oder ein Projekt abgeschlossen ist, das 
Erarbeitete auch
dokumentieren.

Eventuell, im Zusammenhang, noch zu erwähnen "wäre"  "atmega Bootloader 
mit 8MHz"
( intern, extern geht auch in Variation). (usw.)

Eine gute Nacht wünsche ich Euch.

Dirk St

von Christoph (Gast)


Lesenswert?

Hallo Jut,

Hat es einen bestimmten Grund, warum am Schaltplan bei JP1 die Pin 
Reihenfolge GND-GND-VCC-TX-RX-DTR ist, aber auf deiner Platine 
GND-GND-VCC-RX-TX-DTR beschriftet ist? Kann es sein, dass du einfach RX 
und TX vertauscht hast? Würde auch zur Fehlermeldung "Programmer ist not 
responding" passen.

Gute Nacht
Christoph

von Stefan F. (Gast)


Lesenswert?

Jut schrieb:
> Ich habe auch das
> Gefühl dass ich immer den UNO (programmer) flashe und nicht den
> entschlossenen Arduino Pro Mini.

Das lässt sich ganz leicht mit ein paar LED's an den ISP-Leitungen 
kontrollieren. Wenn sie flackern, wird dein Target programmiert.

von Stefan F. (Gast)


Lesenswert?

Jut schrieb:
> Wenn ich einen Sketch offen habe und sage in der IDE Bootloader brennen,
> schreibt er auch anschließend automatisch das Sketch drauf?

Nein

> Denn nach dem Flashen ist das Blink Sketch weiterhin auf den Pro Mini
> und zusätzlich blinkt dann im genau gleichen Intervall

Weil der Bootloader ein Blink-Programm enthält.

von Einer K. (Gast)


Lesenswert?

dirk schrieb:
> Besonders ist hier die Erwähnung der gedrückten Shift Taste während des
> Uploads mit der Arduino IDE, wenn ein Bootloader auf einen Atmega
> mittels Arduino ISP soll.
Also....

Das ist doch Unfug, oder?
Da hilft es auch nicht das zwei mal in diesem Thread zu widerholen

dirk schrieb:
> Dabei muss man vor dem Klick auf "Upload"
> die Shift-Taste drücken und halten.
> So erkennt die Arduino IDE, dass der Arduino
> als Programmer genutzt werden soll.
> Zitat Ende

Das ist Unsinn!

Die Arduino IDE Erkennt den Programmer daran, dass man ihn im Werkzeug 
Menü einstellt.
Das wars dann schon.

von Jut (Gast)


Lesenswert?

ES GEHT!!!! Danke euch.

Habe nochmals alles neu gemacht inkl. dem 10uF Elko.

Wichtigster Hinweis war, dass ich tatsächlich in meinem Layout RX und TX 
vertauscht habe :(

Nun klappt alles. Bootloader ist drauf und Sketch kann ich auch mittels 
FTDI aufspielen. Merci vielmals!

von Brain 2.0 (Gast)


Lesenswert?

Ist doch schön....wenn man es richtig macht, funktioniert es.

von Jut (Gast)


Lesenswert?

So, alle 10 Boards geflasht. Hat ohne Murren geklappt. :)

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.