Arduino und Hex

#4642841
Lesenswert?

Hallo,

der Mega328 auf dem UNO hat einen Bootloader drauf und wird seriell 
programmiert.
Ein fertiges HEX-File kannst Du nur per ISP auf dem Mega328 bekommen, 
vermutlich mußt Du dann auch due Fuse_Bits entsprechend anpassen und der 
UNO ist dann kein "UNO" mehr.

Was hast Du also genau vor? Ein HEX von einem anderen Projekt auf den 
Mega328 Deines UNO zu flashen? Wozu?
Ansonsten Mega328 beschaffen, Schaltung aufbauen (Dein HEX-File wird ja 
einen Sinn haben sollen), den UNO mit dem Sketch ISP-Programmer laden 
und dann den anderen Mega328 per ISP flashen.

Gruß aus Berlin
Michael
Gast #4642847
Lesenswert?

Guten Morgen,

man kann auch avrdude, mit dem Arduino-Bootloader verwenden.
Ich schreibe dann als Programmieradapter avr109 oder arduino, je nach 
verwendetem Bootloader.
1
$ avrdude -?
2
Usage: avrdude [options]
3
Options:
4
  -p <partno>                Required. Specify AVR device.
5
  -b <baudrate>              Override RS-232 baud rate.
6
  -B <bitclock>              Specify JTAG/STK500v2 bit clock period (us).
7
  -C <config-file>           Specify location of configuration file.
8
  -c <programmer>            Specify programmer type.
9
  -D                         Disable auto erase for flash memory
10
  -i <delay>                 ISP Clock Delay [in microseconds]
11
  -P <port>                  Specify connection port.
12
  -F                         Override invalid signature check.
13
  -e                         Perform a chip erase.
14
  -O                         Perform RC oscillator calibration (see AVR053). 
15
  -U <memtype>:r|w|v:<filename>[:format]
16
                             Memory operation specification.
17
                             Multiple -U options are allowed, each request
18
                             is performed in the order specified.
19
  -n                         Do not write anything to the device.
20
  -V                         Do not verify.
21
  -u                         Disable safemode, default when running from a script.
22
  -s                         Silent safemode operation, will not ask you if
23
                             fuses should be changed back.
24
  -t                         Enter terminal mode.
25
  -E <exitspec>[,<exitspec>] List programmer exit specifications.
26
  -x <extended_param>        Pass <extended_param> to programmer.
27
  -y                         Count # erase cycles in EEPROM.
28
  -Y <number>                Initialize erase cycle # in EEPROM.
29
  -v                         Verbose output. -v -v for more.
30
  -q                         Quell progress output. -q -q for less.
31
  -l logfile                 Use logfile rather than stderr for diagnostics.
32
  -?                         Display this usage.
#4642860
Lesenswert?

Hallo!
Danke für die Rückmeldungen!
Ich möchte keinen Bootloader laden sondern ein fertiges Programm für ein 
Radio-Projekt.
In der Vergangenheit machte ich es so: AVR MKII an das Arduino Uno 
gehängt, Atmega 328 dort reingesteckt, Programm geflasht, fertig!
Also so wie hier im Video: https://www.youtube.com/watch?v=EsLOMdu50YU
Leider funktioniert das AVR Studio nicht mehr, habe schon 1000 Versionen 
davon installiert, immer gibt's Probleme mit der Verbindung vom MKII 
oder sonst irgendwas! Ich drehe hier im Roten!
Gast #4642864
Lesenswert?

Hallo Frank S.,

ok, jetzt verstehe ich, du hast einen neuen/ leeren atmega328p und 
möchtest eine Programm über einen ISP Programmer übertragen.

Bitte das setzen der Fusebits nicht vergessen - eine neuer atmega328p 
läuft intern mit 1MHz !

Du benötigst dann NUR avrdude, einen ISP Programmieradapter und den 
passenden Treiber, falls ein WinOS im Spiel ist.

Man kann avrdude über die Kommandozeile steuern, oder man verwendet ein 
grafisches Frontend zu avrdude.

Das kann auch eine IDE sein, z.B. von LunaAVR.
Gast #4642872
Lesenswert?

Nachtrag für das Wissen(-schaft),

es gibt auch den Gscheiduino (Arduino™/Genuino™ Clon) mit einem richtig 
ISP Programmieradapter on Board.

http://www.ehajo.de/baus%C3%A4tze/bedrahtete-baus%C3%A4tze/gscheiduino-arduino%E2%84%A2genuino%E2%84%A2-clon.html

Darüber hinaus kann man einen atmega328p auch auf ein Brotbrett stecken, 
richtig beschalten, mit Abblock C=100nF und den ISP Programmieradapter 
direkt anschließen.

Die benötigten Pins dazu stehen im Datenblatt des atmega328p und in 
mind. einer Application Note von Atmel.
Gast #4643037
Lesenswert?

Frank S. schrieb:
> Hallo!
> Das bringt auch nichts solange diese Probleme nicht gelöst sind.
> Natürlich kann ich jetzt flashen, und im Status zeigt es dann auch OK
> an. Aber auf dem Controller selbst ist dann kein funktionierendes
> Programm drauf.

Wenn im Status nach dem Flashen "ok" steht, warum sollte dann kein 
funktionierendes Programm drauf sein? Ich gehe mal davon aus, dass die 
Quellen ok sind. Wenn du natürlich Mist programmiert hast, dann kann es 
auch nicht funktionieren, obwohl das Flashen in Ordnung ging.
Du hast doch hoffentlich vor dem Flashen den µC gelöscht und nach dem 
Flashen ein Verify durchgeführt?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren