Forum: Mikrocontroller und Digitale Elektronik ISP bei MEGAs


von A. Arndt (Gast)


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

von Klaus (Gast)


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

von absolut beginner (Gast)


Lesenswert?

Selbstprogrammierend = bootloader

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

von A. Arndt (Gast)


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 ????

von BAB (Kai K.) (Gast)


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

von Andreas S. (andreas) (Admin) Benutzerseite


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.

von Matthias (Gast)


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

von A. Arndt (Gast)


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

von Günter König (Gast)


Lesenswert?

die können doch auch wie normale Ports benutzt werden.

Günter

von Matthias (Gast)


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

von A. Arndt (Gast)


Lesenswert?

Alles klar, vielen Dank für die Hilfe(n).

Gruss
A. Arndt

von Markus Burrer (Gast)


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

von Günter König (Gast)


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

von Markus Burrer (Gast)


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.

von Günter König (Gast)


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

von Andreas S. (andreas) (Admin) Benutzerseite


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.

von Markus Burrer (Gast)


Lesenswert?

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

von A. Arndt (Gast)


Lesenswert?

Hallo,

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

Gruss
A. Arndt

von Markus Burrer (Gast)


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

von Sascha Weitkunat (Gast)


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.

von Matthias (Gast)


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

von Andreas (Gast)


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

von Peter D. (peda)


Lesenswert?


von Markus Burrer (Gast)


Lesenswert?


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
Noch kein Account? Hier anmelden.