www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik SPI- Ignoration


Autor: Stephan R. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Leo-Andres (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Sam .. (sam1994)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eine schöne Aufgabe für den Bootloader-Man.
Jeder MC kriegt einfach nen Bootloader mit nem anderen Paßwort.
Und alle hängen parallel am gleichen Bus (RS-485, I2C, CAN, ...).


Peter

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie wär's mit PeDas Single-Wire Bootloader?

Autor: Stephan R. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Stephan R. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oh, die Bootloadervariante kam zu spät. Aber klingt interessant...

Autor: Stephan R. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie teile ich denn dem uC sein "Passwort" mit und wo baue ich es beim 
Programmcode mit ein?

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.)

Autor: Stephan R. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hm. Werde mal zwischen Bootloader und Taktaufteilung nachdenken..... 
danke erstmal.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.