Forum: Mikrocontroller und Digitale Elektronik Doppelnutzung MOSI,MISO,SCK


von MyTiny13A (Gast)


Lesenswert?

Hallo,

ich möchte eine Doppelnutzung MOSI,MISO,SCK realisieren. Jedoch ist mir 
nicht klar, wie ich das bewerkstelligen kann (Hardware). Wie müssen die 
Pins beschaltet werden, um neben ihren "normalen" Aufgaben weiterhin als 
Pins für die ISP-Funktion erhalten zu bleiben?

Grüße

Mathias

von Route_66 H. (route_66)


Lesenswert?

MyTiny13A schrieb:
> Wie müssen die
> Pins beschaltet werden, um neben ihren "normalen" Aufgaben weiterhin als
> Pins für die ISP-Funktion erhalten zu bleiben?

Das hängt einzig und allein von Deinen "anderen Aufgaben" ab!
Hellsehen kann hier niemand.

von Won K. (Firma: Outside the Asylum) (the_sane)


Lesenswert?

Das kommt darauf an, wie die Pins beschaltet sind.
Als Eingänge mußt Du dafür sorgen, daß ankommende Signale die 
Programmiervorgang nicht stören, meist reicht ein Widerstand 1-10k in 
Reihe, bei Ausgängen must Du sehen, was die Signale auf den 
ISP-Leitungen bewirken können. Ein Motortreiber auf den Leitungen könnte 
Dich gegen die Wand fahren wenn er beim Programmieren losläuft. Also 
entweder nur 'harmlose' Anzeigen hinterhängen oder nur Treiber mit 
Reset-Eingang der dann mit auf den Prozessorreset kommt.

von m.n. (Gast)


Lesenswert?

MyTiny13A schrieb:
> Wie müssen die
> Pins beschaltet werden, um neben ihren "normalen" Aufgaben weiterhin als
> Pins für die ISP-Funktion erhalten zu bleiben?

Sofern sie in der Schaltung als Ausgang verwendet werden, kann ISP 
parallel angeschlossen werden. Als Eingang betrieben, müssen die 
Leitungen über Widerstände (3k3) entkoppelt werden; nur der Prommer wird 
direkt an MOSI, MISO und CLK angeschlossen und kann damit die 
Eingangspegel überschreiben.

von Mosfred (Gast)


Lesenswert?

Wenn der Chip-Select der Slaves deaktiviert ist, kannst du mit 
MOSI,MISO,SCK machen was du willst.

von Peter D. (peda)


Lesenswert?

Es dürfen im Reset keine anderen Ausgänge dagegen treiben und auch keine 
zu großen Lasten dran hängen.

Erlaubt ist z.B. eine Taste, die man wärend des Programmierens nicht 
drückt.

von MyTiny13A (Gast)


Lesenswert?

Vielen Dank für´s erste. OK hab ich verstanden.

Hintergrund: Ich möchte per Multiplexer jeweils 4 Schieberegister 
Eingang und 4 Schieberegister Ausgang dranhängen, habe also Serial out / 
Serial in auf den PINs PB0,PB1,PB2 und wähle den MUX via PB5/Reset aus.

Mathias

von m.n. (Gast)


Lesenswert?

MyTiny13A schrieb:
> und wähle den MUX via PB5/Reset aus.

Gute Idee! Damit hat sich Deine Frage schon erledigt ;-)

von Alex (Gast)


Lesenswert?

Bei mir funktioniert es wie folgt problemlos:

Bei einer 6-achsige Robotersteuerung hängen sechs uCs alle am SPI Bus. 
Die SPI-Pins bei jedem uC sind mit 22Ohm Widerständen bestückt. Einer 
der uCs steuert als Master die anderen fünf an. Damit es zu keiner 
Datenkollision mit dem Master kommt, da ja nur er Daten sendet, teile 
ich ihm vor dem Programmieren aller anderen uCs mit einem einfachen 
Drucktaster mit, dass er nicht senden darf. Alle MOSI,MISO,SCK-Pins der 
uCs sind miteinander verbunden, ebenso die des Programmiergeräts. Nur 
die Reset-Pins von jedem einzelnen der sechs uCs sind einzeln 
rausgeführt und werden bei Programmierbedarf mit dem Programmiergerät 
einzeln per Taster verbunden.

Ein Beispiel:
Um den uC Nr.3 zu Programmieren halte ich zwei Tasten gleichzeitig 
gedrückt, den Reset-Pin des uCs Nr.3 und die "Nicht-Senden"-Taste des 
Masters.

Der ganze Aufbau besteht aus sieben Tastern auf einer Lochrasterplatine, 
die bei Programmierbedarf zwischen das Programmiergerät und dem SPI-Bus 
angeschlossen wird.

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.