www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ISP bei MEGAs


Autor: A. Arndt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich fange gerade mit dem Basteln mit Mega8 und Mega16 an,

kenne aber bis jetzt nur 4433, ist das mit dem ISP gleich und was 
bedeutet das SELF PROG., übersetzt "selbstprogrammierend".

Vielleicht kann mir das ja mal jemand erklären.

Gruss
A. Arndt

Autor: Klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist ganz genauso wie bei den "alten" AVRs.
Nur die MOSI und MISO Pins darfst du jetzt nicht mehr benutzen, sondern 
die nennen sich jetzt PDO und PDI. Steht aber im Datenblatt!

Selbstprogrammierend bedeutet, daß er sich selbst programmieren kann und 
du dich zur Ruhe setzen kannst gg

Ne, daß bedeutet einfach nur, daß der µC von sich aus eine 
Programmierung herbeiführen kann.
Beispielsweise könnte das Ding prüfen, ob ein Update verfügbar ist und 
sich dann selber updaten...

Gruß,
 Klaus

Autor: absolut beginner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Selbstprogrammierend = bootloader

hiermit kann der flash speicher über die rs232 upgedatet werden.

Autor: A. Arndt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Klaus:

Im TDS des Mega16 gibt es aber noch mosi und miso...

Gruss
A. Arndt

Heisst es etwa auch, ich kann die Programmierung später komplett über 
rs-232 machen ????

Autor: BAB (Kai K.) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>> Im TDS des Mega16 gibt es aber noch mosi und miso...

die gibts bei allen megas du kannst diese aber nicht mehr für isp 
benutzen sondern wie gesagt über PDO und PDI.

>> Heisst es etwa auch, ich kann die Programmierung später komplett über rs-232 
machen ????

wenn du dir den bootloader programmierst ja.

Gruss,
BAB

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ATmega163 Datasheet:
"Both the Flash and EEPROM memory arrays can be programmed using the 
serial SPI bus while RESET is pulled to GND. The serial interface 
consists of pins SCK, MOSI (input) and MISO (output)."

Der ATmega16 ist als Ersatz für den 163 gedacht, also wird es da genauso 
sein.

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

klar ist das auch beim Mega16 so. PDO und PDI gibts dort garnicht. Die 
gibts beim MEga128 und dort müssen sie auch benutzt werden.

Matthias

Autor: A. Arndt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

lt. A. Schw. und Matthias sind die Pins so geblieben, die Programmierung 
ist hier also wie beim 4433 ???, lese ich so raus.

Wenn man die MISO usw. nicht für Prog. nutzen kann, welchen Sinn haben 
sie denn dann noch...

Gruss
A. Arndt

Autor: Günter König (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
die können doch auch wie normale Ports benutzt werden.

Günter

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

du kannst sie als SPI-Schnittstelle zu anderen Bausteinen benutzen. Es 
gibt z.B. EEPROM's und AD-Wandler mit SPI-Interface.
Aber wie gesagt:
Es werden weiterhin alle AVR's (mit Ausnahme von MEGA64, MEGA103 und 
MEGA128) über MOSI und MISO programmiert. Bei den genannten Außnahmen 
geht man über RxD und TxD oder wie die auch gennant werden PDI und PDO.

Matthias

Autor: A. Arndt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alles klar, vielen Dank für die Hilfe(n).

Gruss
A. Arndt

Autor: Markus Burrer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also hier scheinen einige Leute was zu verwechseln. Mega8, 16, 32 werden 
weiterhin über die altbekannte ISP Schnitstelle mit MOSI, MISO und SCK 
programmiert. Nur Mega64/128 verwenden statt MOSI/MISO die Pins des 
UART0, nämlich PD0 und PD1

Und Self Programming ist nicht gleich Bootloader. Der Bootloader ist nur 
eine Möglichkeit, die Self Programming bietet. Self Programming generell 
heißt erstmal, das es jetzt ein paar neue ASM Befehle gibt die es einem 
Programm ermöglichen, beliebige Daten während der Programmlaufzeit in 
das Flash zu programmieren. Das kann dann zum einen ein Bootloader sein, 
der ein neues Programm von praktisch jeder beliebigen Quelle empfangen 
und in das Flash schreiben kann, das kann aber auch ein Programm sein, 
das z.b. die Texte für ein Menu in einer anderen Sprache im Flash ablegt

Der Bootloader ist zwar ziemlich flexibel und mächtig, aber leider auch 
etwas komplizierter einzurichten. Hierfür wird ein gewisser bereich am 
Ende des Programmspeichers reserviert und gegebenenfalls auch gegen 
Überschreiben geschützt. Dann muß man den Bootloader einmal mittels ISP 
(Man kommt also auch da nicht drum rum) in das Flash schreiben. Jetzt 
gibt es zwei Möglichkeiten den Bootloader aufzurufen:
1. Direkt bei Reset wird der Bootloader angesprungen. Jetzt kann der 
Bootloader z.B. einen Port abfragen, ob ein Jumper gesteckt ist oder 
nicht. Ist er z.B. gesteckt wartet der Bootloader, bis das neue Programm 
über eine Schnittstelle kommt und speichert es im Flash. Anschließend 
startet er das Programm.
2. Bei einem Reset wird ganz normal die Applikation angesprungen. Die 
Applikation kann nun den Bootloader aufrufen. Das kann man z.B. über ein 
Menu (Software Update) machen.

So, war zwar jetzt viel Text, aber ich hoffe es hat sich gelohnt.

Gruß
Markus

Autor: Günter König (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Markus,

das ja im Prinzip, das im Programmflash eine Routine stehen kann, die 
nur dazu dient ein weiteres Programm aus z.B. Eprom zu laden, oder?

Günter

Autor: Markus Burrer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Günter,
richtig, der Bootloader ist ein Programm, das am Ende des 
Programmspeichers steht und mit dem man andere Programme, z.b. über die 
serielle Schnittstelle oder sogar über Ethernet enpfangen und an den 
Anfang des Flash Speichers schreiben kann.

Autor: Günter König (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die aber jederzeit wieder durch andere Programmteile ersetzt werden 
können denke ich mal.
Also ein Beispiel:

Mainroutine im Flash
div Programmteile im EPROM (z.B.512KB)
Aufruf der Programmteile durch externe Ereignisse (Interrupts, Ports)

Das Ganze wäre dann so zu behandeln wie ein Main Programm mit externen 
Subroutinen wenn ich das richtig verstanden habe. Oder Denke ich schon 
wieder zu weit?

Günter

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Theoretisch wäre das Nachladen von Teilprogrammen wohl möglich, aber da 
Atmel für den Flash nur 10.000 Schreibzyklen garantiert macht das in der 
Praxis keinen Sinn.

Autor: Markus Burrer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und extern lassen sich ja keine Programme ausführen. Einer der wenigen 
Nachteile der AVR.

Autor: A. Arndt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

macht diese Bootloader-Geschichte über Menüansteuerung beim Mega8 soweit 
Sinn, die ISP-Geschichte einzustampfen ?

Gruss
A. Arndt

Autor: Markus Burrer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Über Sinn oder Unsinn entscheidet wohl die Anwendung. Es ist in jedem 
Fall eine Alternative die aber nur Sinn macht wenn sowieso ein RS232 
Treiber vorhanden ist. In Zeiten, in denen die klassischen 
Schnittstellen wegfallen werden die aber seltener

Autor: Sascha Weitkunat (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nicht unbedingt, schließlich braucht der Bootloader auch Speicher... und 
wenn er nicht unbedingt benötigt wird ist er schlicht überflüssig.

Den Bootloader halte ich bzw. nur für sinnvoll wenn der Anwender dazu in 
der lage sein soll/muss die Controllersoftware zu erneuern.

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Ein Bootloader hat ja zwingend nichts mit einer RS232 zu tun. Er braucht 
die Daten einfach nur irgendwo her. In meinem nächsten Projekt wird ein 
Softwareupdate über USB möglich sein. Da man das Gerät nach dem 
Zusammenbau nur ungern auseinandernimmt und der USB die einzige externe 
Schnittstelle ist ist da der Bootloader durchaus sinnvoll.

Matthias

Autor: Andreas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo @ all,
alles recht interessant, aber welche möglichkeit bzw.
bootloader gibt es denn für den serialport.

bootloader ist ja schon und gut, und welche passende soft
gibt es denn für den pc


Andreas

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Markus Burrer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

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.