Forum: Mikrocontroller und Digitale Elektronik Zwei AVRs über SPI programmieren


von Markus (Gast)


Lesenswert?

Hallo!

Ich habe in einem System zwei Atmel AVRs, die über SPI miteinander 
kommunizieren und die gleiche Stromversorgung haben. Ist es möglich 
weiterhin beide über den SPI Bus mit einem ISP zu programmieren ohne die 
Verbindung zu trennen? Kann man eventuell den zu programmierenden Atmel 
über die SS Leitung auswählen etc.?

VG
Markus

von Falk B. (falk)


Lesenswert?

@ Markus (Gast)

>weiterhin beide über den SPI Bus mit einem ISP zu programmieren ohne die
>Verbindung zu trennen?

Nicht ohne weiteres.

> Kann man eventuell den zu programmierenden Atmel
>über die SS Leitung auswählen etc.?

Nein.

MfG
Falk

von Johannes M. (johnny-m)


Lesenswert?

Du kannst sie höchstens über die Resets auswählen, wenn die getrennt 
sind. Das musste dann aber auch händisch machen (z.B. mit nem Jumper). 
\SS hat beim ISP keine Funktion.

von holger (Gast)


Lesenswert?

Das mit der Resetleitung dürfte nicht funktionieren.
Man denke nur der eine AVR rennt los und aktiviert seine SPI Leitungen.
Am einfachsten dürfte sein jeweils einem AVR die
SCK Leitung abzuklemmen.

von Markus (Gast)


Lesenswert?

Wäre es dann möglich einen AVR über Reset "lahmzulegen" (z.B. über einen 
Kippschalter) und den anderen dann zu programmieren? Ansonsten sendet 
der eine ja munter weiter über SPI.
Naja muss ich mal ausprobieren.

VG
Markus

von Falk B. (falk)


Lesenswert?

@ holger (Gast)

>Man denke nur der eine AVR rennt los und aktiviert seine SPI Leitungen.
>Am einfachsten dürfte sein jeweils einem AVR die
>SCK Leitung abzuklemmen.

Und rennt der dann nciht los?

Mann muss den inaktiven AVR vom Reset/ISP Stcker abtrennen und das Reset 
auf LOW halten (per Jumper). Dann passt das.

MfG
Falk

von Johannes M. (johnny-m)


Lesenswert?

holger wrote:
> Das mit der Resetleitung dürfte nicht funktionieren.
> Man denke nur der eine AVR rennt los und aktiviert seine SPI Leitungen.
Hängt davon ab, was passiert, wenn er Müll empfängt. Wenn nichts 
schlimmes passieren kann, dann lass ihn rennen. Wenn natürlich vom 
Programmer zufällig der Befehl kommt, die Bombe zu zünden, dann sollte 
man sich ne andere Methode suchen.

> Am einfachsten dürfte sein jeweils einem AVR die
> SCK Leitung abzuklemmen.
Das ist eine weitere Möglichkeit.

von Joerg W. (joergwolfram)


Lesenswert?

RESET des einen mit einem INT-Pin des anderen Controllers verbinden 
(über Kreuz). Die INT-Routine schaltet SPI ab und die PINS hochohmig und 
blockiert, bis das Programmieren des anderen Controllers abgeschlossen 
ist.

Gruß Jörg

von holger (Gast)


Lesenswert?

>Mann muss den inaktiven AVR vom Reset/ISP Stcker abtrennen und das Reset
>auf LOW halten (per Jumper). Dann passt das.

Nein, das alleine reicht nicht. ISP passiert doch bei Reset low.
Wenn beide Resets low sind bekommen auch beide die ISP
Befehle mit. Wenn bei einem von beiden Reset high wird besteht
die Gefahr das bei einigen AVR die ISP Schnittstelle blockiert
wird, weil beim laufenden AVR evtl. das SPI Modul aktiviert wird.
Am besten ist beide in Reset zu halten, und dann jeweils bei einem
den Empfang der ISP Befehle zu verhindern. Dafür bietet sich SCK an.

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.