Zwei über SPI verbundene µC brennen

OP #3588433
Lesenswert?

Hallo Leute!

Ich experimentiere hier im Mom mit zwei Atmega 8 und tausche zwischen 
den beiden über SPI Daten aus.

Das Problem was ich habe, wenn ich an einem der beiden µC ein neues 
Programm aufspielen will, muss ich immer den SPI zu dem zweiten µC 
trennen. Sonst funktioniert es nicht. Gibt es da ein Trick, damit ich 
das nicht immer trennen muss?

LG

Christian
Gast #3588473
Lesenswert?

Ich habe das mit einem Jumper in der CLK-Leitung gelöst.

Guest schrieb:
> Aber was passiert, wenn du die
> Resetleitung auftrennst und während dem Programmieren den andern uC auf
> Reset hälst?

Beim Programmieren wird der uC im Reset gehalten. Nur dann ist 
Programmieren möglich.
Deshalb müsste man den uC, den man nicht programmieren will, nicht im 
Reset halten. Aber dann würde er unter Umständen das SPI treiben.

Also über CLK machen.
OP #3588601
Lesenswert?

Danke für die schnellen Antworten.

Wenn ich beide auf Reset halte, überträgt der auf beide das Programm. 
Ich hab also dann auf beiden µC das gleiche Programm...

Das mit dem clk funktioniert aber auch iwi nicht so ganz.
Wenn ich den clk unterbreche, wird die Übertragung mit Fehlermeldung 
abgebrochen. Lege ich beide µC auf Reset und unterbreche den clk, wird 
das Programm übertragen. Leider sind die beiden µC danach so 
durcheinander, das ich die Spannungsversorgung kurz unterbrechen muss.

Ist das, dass Ende vom Lied?

LG
#3588728
Lesenswert?

Christian Betzen schrieb:

> Ist das, dass Ende vom Lied?

Nö. Nimm einen Vierfach 2:1 Analogmultiplexer wie

FST3257 (Fairchild)
74CBT3257 (TI)
74FST3257 (ON)

Wenn Reset auf Low gezogen wird, schaltet der Multiplexer die 
Prozessorpins auf den ISP-Stecker. Bei Reset auf Hi schaltet der 
Multiplexer die Pins auf die restliche Schaltung.

Das funktioniert immer.

fchk
Angehängte Dateien:
Gast #3588895
Lesenswert?

Hey,

das SPI-Interface hat noch eine vierte Verbindung, mit welcher der 
Master einen von mehreren Slaves am Bus auswählt, meist als !CS 
gekennzeichnet, d.h. der Slave ist aktiv, wenn das Signal low ist. Ist 
der Slave inaktiv, schaltet er seine PINs als Eingang und stört den Bus 
nicht weiter. Das sollte schon mal den einen µC (Slave) schützen.
    Der andere, also der Master, müsste seine PINs als Eingang schalten, 
wenn er grad nichts senden will.
    Zum Proggen wird dann der entsprechende µC über seinen !Reset 
ausgewählt und für den normalen Datenaustausch, der SPI am Master 
aktiviert und dem Slave über !CS mitgeteillt, dass Daten für ihn kommen.

So sollte es funktionieren, ob's das tut hab ich noch nicht probiert.
OP #3588943
Lesenswert?

Hi!

> das SPI-Interface hat noch eine vierte Verbindung, mit welcher der
> Master einen von mehreren Slaves am Bus auswählt.

Ne, funktioniert nur bei einem der beiden µC alles sehr experimentell.
Die Sache mit dem Multiplexer gefällt mir. Alternativ kann  man bestimmt 
noch was mit nem 4066 CMOS IC machen. Sowas hab ich da, ich werds mal 
versuchen.

LG

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