SPI- Ignoration

Gast #1859081
Lesenswert?

Moin!

Mein Ziel: 5 identische Eigenbau-uC-Karten sind alle verstreut in einem 
Modell eingebaut. Über einen Programmer an Bord einer derer 
(DatenVerteilerKarte genannt) sollen sich alle Karten zentral 
programmieren lassen.

Meine Vorstellung: alle Karten sind parallel an den Programmer 
angeschlossen, doch nur die zu programmierende Karte erhält (mittels 
Jumper) das Reset mit aufgebrummt.

Geht das?

Werden die nicht zu programmierenden Karten sich verhohlepiepelt fühlen 
wenn Signale auf ihren MISO- Ausgängen ankommen?

Bin nicht firm mit SPI, daher meine Frage.
Gast #1859096
Lesenswert?

Moin!

Wie wäre es mit einem Latch, z.B. 74HC244?
Über eine zusätzliche Schaltader kannst du dann jedes beliebige Board 
vom Bus abtrennen. Vielleicht lässt sich das auch irgendwie mit der 
Reset-Leitung vom Programm verschalten, kommt auf die Busstruktur an.

Außerdem könntest du so einen zentralen "Kontrolleur" einsetzen, der 
fehlerhafte Controller über eben dieses Latch vom Bus abtrennt, falls 
sie ihn für zu lange Zeit blockieren.
#1859106
Lesenswert?

Wenn du es noch nicht gebaut hast kannst du auch einen Bootloader nehmen 
und eine ID einprogrammieren. Die µCs werden alle gleichzeitig über UART 
angesprochen doch nur der die richtige ID hat meldet sich und wird 
programmiert. Da brauchst du nicht mal einen Master-µC denn die ID kann 
auch vom PC gesendet werden.
Gast #1859110
Lesenswert?

Sehr gut, genau das war bis gestern meine Lösung (mit Mux statt Latch), 
nur musste dieser aus Platzgründen leider die Biege machen.

Daher wüsst ich gern, ob etwas wirklich ganz extrem doll dagegen 
spricht, zu parallelisieren.
Moderator Persönliche Seite #1859126
Lesenswert?

Stephan R. schrieb:
> Meine Vorstellung: alle Karten sind parallel an den Programmer
> angeschlossen, doch nur die zu programmierende Karte erhält (mittels
> Jumper) das Reset mit aufgebrummt.
>
> Geht das?

Im Prinzip ja, nur solltest du bedenken, dass sich alle anderen
Controller dann nicht im Reset befinden, d. h. sie könnten (je
nach Firmware) versuchen, die entsprechenden SPI-Pins anderweitig
zu belegen.

Besser ist es, /RESET, MOSI und MISO an alle als Bus zu verteilen
und SCK per Jumper umzuschalten.  Dann musst du allerdings (per
Pulldown-Widerstand) sicherstellen, dass die inaktiven AVRs in
der Tat auch nicht aus versehen Taktflanken auf "ihrem" SCK sehen.

Sowas habe ich schon realisiert, das klappt.  (War ein 3-Wege-Jumper
bei mir: in der dritten Jumperstellung hatten beide Controller ihr
SCK miteinander verbunden, sodass sie im Betrieb einer SPI-Master
und der andere Slave sein können.)

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