Hallo Zusammen! Ich möchte gerne ein HEX File auf einen Atmega328P flashen. Ich habe hier ein Arduino Uno Board und neueste Software auf dem PC. Ich kapiere nicht wie ich damit das Hex auf den Controller hochkriege. Kann mir da jemand helfen? Gruss Frank
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
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. |
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!
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.
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.
Frank S. schrieb: > Hier noch ein Problem mit dem ich nicht weiterkomme als Bildanhang. Verstehe ich nicht, da weden doch nur Statusmeldungen ausgegeben. Was erwartest Du bei setzen der Fuse-Bits?
Frank S. schrieb: > Hallo! > Hier noch ein Problem mit dem ich nicht weiterkomme als Bildanhang. Ich sehe auf dem Bild bei jeder Meldung ein "ok" dahinter. Was sollte denn deiner Meinung dastehen, damit du es nicht mehr als Problem siehst?
Weis jemand wo da das Problem liegt? Verifying Flash...Failed! address=0x0002 expected=0x34 actual=0x58
Frank S. bisher schreibst Du nichts in den atmega328p ! Also kann es auch kein Problem geben.
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.
:
Bearbeitet durch User
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?
Das selbe Programm habe ich auf einem anderen Controller, welches ja läuft. Darum kann man Programmfehler komplett ausschliessen. Die Bausteine sind leer, auch mit neuen geht es nicht. Verify, alles ok...
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.