Arduino Uno Bootloader verwenden

OP #7878924
Lesenswert?
• ▲
▼

Hallo,

ich programmiere AtMega328 mit einem Tremex AVR-Prog, der über das SPI mit dem Microcontroller verbunden ist.

Da ich diese Pins nun anderweitig brauche, möchte ich einen Arduino Uno wie die Arduino-IDE über die serielle / USB-Schnittstelle programmieren - allerdings ohne die Arduino-IDE.

Für Tips, wie ich das unter Linux hinbekomme kann, wäre ich dankbar.

OP #7878982
Lesenswert?
• ▲
▼

Sorry, ich habe mich vermutlich nicht richtig ausgedrückt.

Ich möchte den im Arduino Uno vorhandenen Bootloader weiterhin verwenden, ohne ihn zu ändern.

Ich suche ein Programm, das auf dem PC läuft und den von mir generierten Hex-Code (unter Verwendung des Bootloader-Protokolls) über die beim Einstecken des Uno generierte Schnittstelle (z. B. ttyUSB0) auf den Uno lädt und flasht.

OP #7879013
Lesenswert?
• ▲
▼

avrdude -F -V -c avrispmkII -p m328p -P /dev/ttyUSB0 -U flash:w:blink.hex

avrdude error: timeout avrdude error: timeout avrdude error: timeout avrdude error: timeout avrdude error: timeout avrdude error: timeout avrdude error: timeout communicating with programmer

Die Parameter "avrispmkII" und "/dev/ttyUSB0" habe ich der Arduini-IDE entnommen, dort funktionieren sie.

Wenn ich "blink.hex" mit dem AVR-Prog runterlade, funktioniert es.

Angehängte Dateien:
OP #7879019
Lesenswert?
• ▲
▼

Bei mir nicht:

Archiving built core (caching) in: /tmp/arduino_cache_132696/core/core_arduino_avr_uno_1621df717313d057c92202babd71649a.a

Der Sketch verwendet 930 Bytes (2%) des Programmspeicherplatzes. Das Maximum sind 32256 Bytes.

Globale Variablen verwenden 9 Bytes (0%) des dynamischen Speichers, 2039 Bytes für lokale Variablen verbleiben. Das Maximum sind 2048 Bytes.

Wenn ich dieses Programm mit dem AVR-Prog runterlade, funktioniert es:

1
#include <stdint.h>
2
#include <avr/io.h>
3
#include <util/delay.h>
4

5
void blink (void)
6
  {
7
  // Achtung: dies macht auch RXD zum Ausgang!
8

9
  DDRD = 255; // Alle Port-D-Pins sind Ausgänge
10

11
  while (1)
12
    {
13
    PORTD = 255;  _delay_ms(100);
14
    PORTD = 0;    _delay_ms(100);
15
    }
16
  }
17

18
int main (void)
19
  {
20
  blink ();
21

22
  return 0;
23
  }

Mir ist klar, dass ich den im Uno eingebauten Bootloader durch das Runterladen mit dem AVR-Prog zerstöre. Ich verwende deswegen zwei Unos, einen zur Programmierung mit dem AVR-Prog, bei dem der Bootloader überschrieben ist, und einen neuen zur Programmierung mit der Arduino-IDE, bei dem der Bootloader noch ok ist.

OP #7879038
Lesenswert?
• ▲
▼

Jetzt funktioniert es!

Ich habe aus der "ausführlichen Ausgabe" der Arduino-IDE folgende Zeile rauskopiert

/usr/bin/avrdude -C/etc/avrdude.conf -v -patmega328p -carduino -P/dev/ttyUSB0 -b115200 -D -Uflash:w:/tmp/arduino_build_466420/AnalogReadSerial.ino.hex:i

und so geändert, dass es die von mir erstellte blink.hex runterlädt

/usr/bin/avrdude -C/etc/avrdude.conf -v -patmega328p -carduino -P/dev/ttyUSB0 -b115200 -D -Uflash:w:blink.hex:i

Danke!

Angehängte Dateien:

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.