ISP bei MEGAs

Gast #30400
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
Gast #30403
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
Gast #30406
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
Gast #30408
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
Gast #30410
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
Gast #30412
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.
Gast #30413
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
Gast #30417
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
Gast #30418
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.
Gast #30419
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
Gast #30420
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren