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

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