www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Bootloader für AVR über nur eine Leitung?


Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich suche einen Bootloader für die AVR-Prozessoren, der folgende zwei 
Kriterien erfüllt:

1. Es gibt nur eine serielle Leitung, der AVR kann also nur empfangen 
und nichts zurücksenden.
2. Als Initialisierungsbefehl für den Bootloader können nur Befehle an 
den AVR geschickt werden, eine Aktivierung über einen Taster soll es 
nicht werden.

Gibt es da bereits etwas fertiges? Alle Bootloader, die ich bislang 
gefunden habe, senden auch irgendwas zurück.

Gruß
Christian

Autor: Stefan Kleinwort (_sk_)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du willst die Daten "einfach" an den mc schicken, ohne ein Programm, was 
ein Boot-Protokoll fährt, verstehe ich Dich richtig?

Damit das funktioniert, müssen ein paar Bedingungen erfüllt sein:

Entweder
der PC, von dem Du das schicken willst, kann Dein Boot-Timing einhalten. 
Dann schickt er die Daten für eine Page, gibt das Programmier-Kommando, 
und wartet dann, bis der ATmega worstcase fertig ist (ca. 10ms). Dann 
das Spiel für die nächste Page von neuem.

Oder
der PC schickt die Daten komplett am Stück an den ATmega. Da Du nur eine 
Ltg und damit keine Handshake-Möglichkeit hast, musst Du die Baudrate so 
niedrig halten, dass der ATmega mit dem Programmieren hinterherkommt. 
Ausserdem muss der UART-Empfang interruptgesteuert sein und einen 
Eingangspuffer füllen, damit während den Programmierphasen keine Daten 
verloren gehen. Je nach AVR und damit nach Pagegröße sind aber 115200 
Baud oder mehr möglich).
Ausserdem  kann der Bootloader NUR die NRWW-Sektion programmieren: Beim 
Schreibzugriff auf die RWW-Sektion würde der AVR "Pause" machen -> 
Datenverlust. Sinnvollerweise wählst Du als Bootloadergröße gleich die 
Maximal-Bootloadergröße, dann deckt der Bootloader die RWW-Sektion 
komplett ab.

Einen Bootloader zu programmieren ist auch nicht wesentlich aufwändiger 
als ein "normales" Programm, wenn man einige Besonderheiten beachtet. 
Die AVR-libc unterstützt einen Bootloader schon ganz prima.

Gruß, Stefan

Autor: SIGINT112 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei langsamen Uebertragungsraten ist sogar eine bidirektionale 
Kommunikation (halbduplex) moeglich:
http://de.wikipedia.org/wiki/1-Wire

Gruss,
  SIGINT

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.