Forum: Mikrocontroller und Digitale Elektronik AVR programmiert anderen AVR ?!


von ,,,, (Gast)


Lesenswert?

Hallo Leute!

Ich hab ne Frage und zwar wie es möglich ist einen AVR mit einem
anderen zu programmieren. Wenn auf dem einen ein Bootloader ist kann
ich ihn ja über RS232 vom PC programmieren. Wenn ich ihn jetzt mit
TX/RX an nen andern AVR hänge (über Kreuz natürlich) kann der andere
ihn dann auch programmieren??

Normal sendet ja der PC die Hex Datei zum Controller. Wenn ich jetzt
die Hex auf dem Controller liegen habe der den Zielcontroller
programmieren soll (z.B. im EEProm) wie muss ich ihn dann über die
serielle Schnittstelle senden ??

Gibt es dazu Quellen?
Hoff mal ihr versteht!
Bin für jede Hilfe dankbar.

Gruß

von ,,,, (Gast)


Lesenswert?

Also hab grad noch gegoogelt und hab bissle z.B. über den Megaload
Bootloader gelesen. Wenn ich den auf den einen Avr mache was muss der
andere genau senden. Steh grad bissle auf m Schlauch. Nach dem Reset
kommt doch erst ein gewisses Wort, dass dem Bootloader mitteilt, dass
jetzt der Programmcode kommt. Was kommt dann? Muss ich das Hex file
byte für byte senden? Oder wie? Wo findet man dazu informationen?

gruß

von A.K. (Gast)


Lesenswert?

Ich nehme an, du meinst ein System mit mindestens 2 Controllern. Denn
sonst sehen ich keinen Sinn in der Konstellation.

So ähnlich läuft es beim STK500. Sind 2 Controller drauf, wobei der
eine (AT90S1200) sogar nur dazu da ist, die Firmware seines Kollegen
(AT90S8515) aufzufrischen, weil die AT90 keine Bootloader können.
Allerdings wird der Kollege sinnvollerweise per ISP programmiert, nicht
per Bootloader.

Also: Controller #1 hat Bootloader und ISP-Verbindung zu Controller #2.
Da ISP über anderweitig verwendbare Pins läuft, gehen #2 keine Pins
verloren. Und zwischenpuffern muss man so garnicht.

von Johannes.A (Gast)


Lesenswert?

Moin!

Also wenn es nur um EEPROM-Daten geht, ist es das einfachste, ein
eigenes Protokoll mit Anzahl der Daten, Zieladresse und Prfüsumme zu
basteln, das jeweils einen Datenblock überträgt und nach dem Brennen
irgendwie Bescheid sagt, dass die nächsten Daten kommen können, und bei
Ü-Fehler zum Nochmal-Senden auffordert. Ich verwende für sowas gerne
intel-hex als Datenformat, das ist schlicht, bewährt und gut
dokumentiert.

Wenn es auch um Neuprogrammieren des Flash geht, kannst Du entweder auf
dem Zielcontroller ebenfalls einen Bootloader intstallieren - es ist ja
nicht verboten, statt des PC eine andere serielle Quelle zu verwenden
-, oder den Zielcontroller mit einer abgespeckten Version der AppNote
AVR910 mittels SPI und RESET in-system-reprogrammieren. Die zweite
Variante hat den Vorteil, dass Du damit auch kleine Tinys (neu)laden
kannst, die nicht genug Platz für einen Bootloader mehr haben oder den
benötigten SPM-Befehl (noch) nicht kennen.

Ich hoffe, Dir weitergeholfen zu haben.

Gruß Johannes

von ,,,, (Gast)


Lesenswert?

Mh ja ich meine ein System mit 2 Controllern. Ganz einfach gesagt: Ich
will das ein AVR einen anderen programmiert. Dann bedeutet das, dass
der eine AVR den anderen einfach per ISP programmieren kann?? Naja ist
irgendwie auch logischer, als dieses Bootloader Gewirr! Gibt es dazu
irgendwelche Dokumentationen? Peils grad net so ganz..

von Frank (Gast)


Lesenswert?

lies die Datenblätter, da ist genau beschrieben wie so ein Chip
programmiert wird. Das, was sonst eben die Brennsoftware macht musst du
dem Einen der Chips einfach beibringen und dann kann er nen Kollegen
programmieren. Machen eigentlich alle Brenner so, die einen Controller
drin haben. Die empfangen auf irgeneine Weise die HEX-Datei und sorgen
sich dann selbst darum wie es der BRennkandidat benötigt. Vorteil einer
solchen Schaltung ist, das man z.B. mehrere Zielkandidaten (also PICs
und AVRs und auch andere Chips) mit einem Gerät programmieren kann. Der
steuernde Controller muss eben nur die Algorithmen der Zielchips
beherrschen.

bye

Frank

von A.K. (Gast)


Lesenswert?

Siehe Atmels Datasheets: Memory Programming / Serial Downloading.

von A.K. (Gast)


Lesenswert?

PS: Beispielcode findet sich in jedem Quellcode eines AVR
ISP-Programmers für den Parallelport, z.B. dem SP12-Programmer. Muss
man nur anpassen, weil man ggf. SPI/USI von #1 verwenden kann.

von ,,,, (Gast)


Lesenswert?

Dankeschön ;)
War ja iwie klar ^^ Naja im nachhinein kann mans ja sagen ^^
also danke, les mich dann mal durch

gruß

von ... (Gast)


Lesenswert?

dir geht es nur darum das ein avr den anderen proggt ?  ouh mann das
macht jeder programmer nach dem avr910 schon mal  die seite
http://mikrocontroller-projekte.de/ angeguggt? ode die
http://www.avr-projekte.de/

von ,,,, (Gast)


Lesenswert?

Ja das merk ich jetzt ja auch wieder ^^ hab ja gesagt ich steh voll aufm
schlauch

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.