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

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.