Forum: Mikrocontroller und Digitale Elektronik Mikrocontroller über Mikrocontroller programmieren


von Hans (Gast)


Lesenswert?

Hallo!

Hat schon mal jemand einen Mikrocontroller nicht direkt über einen PC, 
sondern über einen Umweg ( PC -> Mikrocontroller -> Mikrocontroller ) 
programmiert? Ich würde gerne ein leicht zu transportierendes System 
entwickeln, dass ich bei meiner Hauptplatine anschließen kann mit dem 
man dann ohne PC Software-Updates auf den Flash des ATMega64 schreiben 
kann.

Im Datenblatt habe ich gesehen, dass man mittels JTAG oder ISP in den 
Flash schreiben kann.
* Welche Schnittstelle wäre dabei anzuraten?
* Wie bekomme ich das HEX-File vom PC zum portablen Programmiergerät und 
woher weiß ich dann auf welche Adresse ich was schreiben muss?
* Mit welchen Zeitaufwand müsste ein Profi dabei rechnen?

Grüße
Hans

von Johannes M. (johnny-m)


Lesenswert?

Hans wrote:
> Hallo!
>
> Hat schon mal jemand einen Mikrocontroller nicht direkt über einen PC,
> sondern über einen Umweg ( PC -> Mikrocontroller -> Mikrocontroller )
> programmiert?
Jau. Die Firma ATMEL verkauft sowas als AVRISP (mittlerweile Mk. II). 
Steht alles in der App.-Note AVR910 drin, wie es prinzipiell geht.

> Im Datenblatt habe ich gesehen, dass man mittels JTAG oder ISP in den
> Flash schreiben kann.
> * Welche Schnittstelle wäre dabei anzuraten?
JTAG kannste im Prinzip vergessen, weil ATMEL da ein eigenes Protokoll 
verwendet, das nicht offengelegt wird.

von Falk B. (falk)


Lesenswert?

@ Hans (Gast)

>programmiert? Ich würde gerne ein leicht zu transportierendes System
>entwickeln, dass ich bei meiner Hauptplatine anschließen kann mit dem
>man dann ohne PC Software-Updates auf den Flash des ATMega64 schreiben
>kann.

Das nennt sich Programmiergerät und ist in vielen Ausführungen bereits 
fertig zu kaufen.

>* Welche Schnittstelle wäre dabei anzuraten?

ISP oder JTAG, hängt vom Controller ab.

>* Wie bekomme ich das HEX-File vom PC zum portablen Programmiergerät und

USB? RS232? SD-Card?

>woher weiß ich dann auf welche Adresse ich was schreiben muss?
Das sit in den Hexfiles kodiert, typisch Intel oder Motorola HEX Format.

>* Mit welchen Zeitaufwand müsste ein Profi dabei rechnen?

Einen Tag. Ein Profi kauft sowas. Neuentwicklung kostet verdammt viel 
und bringt so ziemlich nichts.
MFg
Falk

von _CH_ (Gast)


Lesenswert?

Hallo,

sowas ähnliches habe ich für einen PIC mal gemacht. Die 
"Master"-Elektronik bekommt via CAN oder RS232 die binär-Daten 
zugesendet, der Master-Controller flasht dann via SPI den 
Slave-Controller.

Die Adressen weißt du aus dem Hex-File. Google mal danach wie ein 
Hex-File aufgebaut ist, dann kannst du dir leicht einen Reim draus 
machen was du zu tun hast um an den "Maschinencode" zu kommen.

Die Daten könntest du z.B. mit SD-Karte übertragen.

Zeitaufwand ist relativ. Kommt halt drauf an was du noch alles an 
Funktionen brauchst. Der reine "Programmieralgorithmus" steht 
normalerweise im Datenblatt des betreffenden Controllers beschrieben und 
sollte ziemlich fix implementiert sein... Wie lange ein Profi braucht 
weiß ich nicht, bin keiner ;)

Gruß,
Christian

von Hans (Gast)


Lesenswert?

Nur, damit ich etwaige Missverständnisse ausräume:

Ich will das HEX-File zum meinem portablen System mit Mikrocontroller 
übertragen und beispielsweise in einem EEPROM speichern. Dieses portable 
Gerät soll dann vom EEPROM - also ohne PC - das HEX-File zu dem 
Haupt-Gerät übertragen.

1. PC -> Portables System (µC-Routine schreibt gelesenes HEX-File in 
EEPROM)

2. Portables System -> Haupt-Gerät (schreibt HEX-File vom EEPROM in 
Flash des Hauptgerätes)

Hat jemand schon irgendwo einen Quellcode für so ein portables System 
gesehen?

von GRA (Gast)


Lesenswert?

Ja, sicher gibt's sowas. Sowas baut man, publiziert es aber nicht. Am 
Sinnvollsten wird es sein fuer den 2. Schritt einen Bootloader zu 
schreiben. Ist beides nicht viel.

von _CH_ (Gast)


Lesenswert?

Hab dich schon richtig verstanden.
Mach es doch so:
PC -> hex-file auf SD-Karte ==> SD-Karte an deinen Controller -> 
Controller dekodiert das hex-file und flasht auf Knopfdruck den 
Ziel-Controller - fertig

Source habe ich schon gesehen, sogar selber gestrickt, darf ich dir aber 
leider nicht geben, da hätte die Firma wahrscheinlich was dagegen :)
Wie gesagt stehen die Routinen aber meist im Datenblatt. Mit ISP 
brauchst du die Daten nur seriell rüber-toggln und gut ist.

Gruß,
Christian

von Karl H. (kbuchegg)


Lesenswert?

> * Welche Schnittstelle wäre dabei anzuraten?
> * Wie bekomme ich das HEX-File vom PC zum portablen Programmiergerät

PC überträgt das HEX-File über die UART an dein 'portables Gerät'.
Dieses speichert das HEX-File zwischen.

Dann steckst du das portable Gerät an deine Zielhardware
und der 'Programmer' überspielt das HEX-File wieder über
die UART an deine Zielhardware. In der Zielhardware lauert
ein Bootloader, der den Flash der Zielhardware updated.

> und woher weiß ich dann auf welche Adresse ich was schreiben
> muss?

Das steht im HEX-File drinnen.


Bootloader findest du zb ueber diesen Link
http://www.mikrocontroller.net/articles/AVR_Softwarepool#Bootloader

von Stefan B. (stefan) Benutzerseite


Lesenswert?


von J.J. (Gast)


Lesenswert?

Hallo,

Sowas in der art?
http://www.fischl.de/usbasp/

von déjà vu (Gast)


Lesenswert?

also ich benutze fuer sowas das:
http://palmavr.sourceforge.net/

zusammen mit dem:
http://www.klaus-leidinger.de/mp/Mikrocontroller/AVR-Prog/AVR-Programmer.html

auf nem palm m100. der hat ein aufsteckbares serielles kabel, man muss 
also nicht das cradle mit rumschleppen. gibts fuern zwanni bei e*ay.

---

buttload ist allerdings auch interessant...

von Michael W. (wiebel42)


Lesenswert?

Hier http://www.fourwalledcubicle.com/ButtLoad.php
Der nutzt den Dataflash des Butterflys um Programme zwischenzulagern um 
sie dann autark an entsprechende uCs weiterzugeben. -wiebel

von Hans (Gast)


Lesenswert?

Danke, danke, danke!!! :-)

von Christian U. (z0m3ie)


Lesenswert?

>JTAG kannste im Prinzip vergessen, weil ATMEL da ein eigenes Protokoll
>verwendet, das nicht offengelegt wird.

Quark, JTAG ist ein offener Standart nur den zu implementieren wird dich 
locker n halbes jahr mehr kosten als die Woche um ne ISP basierte Lösung 
zu entwickeln.

von Johannes M. (johnny-m)


Lesenswert?

Christian Ulrich wrote:
> Quark, JTAG ist ein offener Standart nur den zu implementieren wird dich
> locker n halbes jahr mehr kosten als die Woche um ne ISP basierte Lösung
> zu entwickeln.
JTAG ist zwar ein offener Standar*D*, was die Schnittstelle betrifft, 
aber ATMEL verwendet afaik ein eigenes Protokoll. Das "Quark" kannste 
Dir sparen!

von Christian U. (z0m3ie)


Lesenswert?

Atmel kann kein eigenes Protokoll für einen offenen Standart verwenden. 
Wozu ist es ein Standart ? Wenn es ein eigenes Protokoll wäre würde es 
z.b. Mhm überleg ... DebugWire heissen oder soo ;)

Für JTAg ala Boundary Scan brauch man eigentlich nur die beschreibungs 
files dann kannst auch jede andere JTAG Hard und Software nehmen um z.b. 
deine AVRS oder Schaltung zu testen.

von Rahul D. (rahul)


Lesenswert?

>Atmel kann kein eigenes Protokoll für einen offenen Standart verwenden.
>Wozu ist es ein Standart ? Wenn es ein eigenes Protokoll wäre würde es
>z.b. Mhm überleg ... DebugWire heissen oder soo ;)

1. Standard wird mit D geschrieben - egal wie oft du es falsch 
schreibst.
2. Das JTAG-Protokoll bzw. die Statemachine die darin zum Einsatz kommt, 
ist standardisiert. Wie aber die Daten im Controller landen, ist dem 
Hersteller des Controllers überlassen. JTAG bietet nur eine 
Kommunikation an.

von Christian U. (z0m3ie)


Lesenswert?

>1. Standard wird mit D geschrieben - egal wie oft du es falsch
>schreibst.

entschuldige bitte

>2. ...

Ist BSDL nur ein Quasi Standard ? sehe gerad es gibt tatsächlich keine 
BSDL files für AVRś.

Naja dann halt Plan B und man nimmt einfach den Quelltext vom avarice 
und zieht sich die Sachen zum flashen raus, baut ne jtagice kompatible 
Hardware zu der im netz nicht nur ein Schaltplan kursiert fertig.

von Christian U. (z0m3ie)


Lesenswert?

Ach hab doch noch BSDL Files für die AVRś gefunden also nix mit nicht 
Standardisiertem Protokoll und ko.

von Johannes M. (johnny-m)


Lesenswert?

Sehe grad, dass es die BSDL-Files mittlerweile tatsächlich offiziell von 
ATMEL gibt. Das ist aber anscheinend recht neu (OK, ist ne Weile her, 
dass ich mich letztmalig peripher damit befasst habe...). Anfangs hieß 
es immer, da gibts nix, vermutlich weil ATMEL Nachbauten der (teuren) 
JTAGICEs verhindern wollte.

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.