Programmierung eines Atmega über SPI einer anderen CPU

OP #4181788
Lesenswert?
• ▲
▼
Hallo zusammen,
wir haben ein Projekt, in dem eine Host-CPU (iMX6) einen Atmega88p 
programmieren soll. Als Hardwareschnittstelle sollte eine SPI 
Schnittstelle genommen werden, die an die ISP des Atmega geklemmt werden 
soll. Das sollte gehen.
Auf dem iMX6 soll Linux laufen.
1. Gibt es ein Tool (avrdude?), womit ich den Atmega über den SPI 
programmieren kann?
2. Wenn nicht, hat jemand source code für so einen Fall?

Danke
Alex
#4181795
Lesenswert?
• ▲
▼
Alexander H. schrieb:
> Hallo zusammen,
> wir haben ein Projekt, in dem eine Host-CPU (iMX6) einen Atmega88p
> programmieren soll. Als Hardwareschnittstelle sollte eine SPI
> Schnittstelle genommen werden, die an die ISP des Atmega geklemmt werden
> soll. Das sollte gehen.
> Auf dem iMX6 soll Linux laufen.
> 1. Gibt es ein Tool (avrdude?), womit ich den Atmega über den SPI
> programmieren kann?

Sicher. Nur avrdude setzt natürlich auf ein Interface (aka Programmer) 
auf. Wie hier avrdude über deine Host-CPU einen AVR programmieren soll, 
kann ich mir momentan nicht so recht vorstellen.

> 2. Wenn nicht, hat jemand source code für so einen Fall?

avrdude ist doch open source. Da drin sollte man doch alles finden was 
man an Code zum flashen eines avr braucht.

Außerdem wird der Programmiervorgang im Datenblatt recht gut geschildert 
und ist nicht gerade Raketenwissenschaft.
#4181858
Lesenswert?
• ▲
▼
@ Alexander H. (alex1)

>programmieren soll. Als Hardwareschnittstelle sollte eine SPI
>Schnittstelle genommen werden, die an die ISP des Atmega geklemmt werden
>soll. Das sollte gehen.

Ja, ist aber einiges an Entwicklungsaufwand.

>1. Gibt es ein Tool (avrdude?), womit ich den Atmega über den SPI
>programmieren kann?

Nein, AVRdude läuft über UART bzw. andere Schnittstellen. Es redet nicht 
mit dem Zielprozessor sondern dem Programmieradapter.

Ich würde einfach einen kleinen AVR als Programmieradapter 
zwischenschalten. Das kostet vielleicht 1-2 Euro an Hardware, erspart 
aber tausende von Euro an Entwicklungskosten. Von Atmel gibt es eine 
App-Note, wo alles für den Programmieradapter drin ist, incl. Hex-File.
Gast #4183763
Lesenswert?
• ▲
▼
Hi, Alexander,

> wir haben ein Projekt, in dem eine Host-CPU (iMX6) einen Atmega88p
> programmieren soll. Als Hardwareschnittstelle sollte eine SPI
> Schnittstelle genommen werden, die an die ISP des Atmega geklemmt werden
> soll.

Warum keinen Bootloader für den AtMega88 programmieren, der ab 
Power-On-Reset
a) Seine SPI-Schnittstelle auf Empfang stellt.
b) Ein paar Minuten auf ein neues Application Program vom Host wartet.
c) Wenn das kommt, dies dann in seine Application Area lädt.
d) Wenn nichts kommt, das alte Programm aufruft.

Zur Sicherheit gegen Missbrauch kann das Bootloading über SPI mit einem 
Dialog zum Austausch von Kennwörtern verfeinert werden. Sogar 
Verschlüsselung soll gemacht worden sein.

Schau im Datenblatt zum Atmega88 auf Seite 279.
Im Web findest Du jede Menge Beispiele, wo das Application Program über 
USART geladen wird. Das lässt sich leicht umschreiben auf SPI.


Ciao
Wolfgang Horn

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.