SPI 1 MASTER N SLAVEs verdrahtung problem bei zusatzleitung

OP #587821
Lesenswert?
• ▲
▼
Servus,

ich bin auf folgendes Problem gestossen:

mein master (atmega644) wählt meine Slaves (ATmega644) über verschiedene 
CS Leitungen an. Diese melden sich ueber eine gemeinsame "Busy" Leitung 
zurueck. Alle nicht gewaehlten Slaves stellen dabei die Busy Leitung auf 
eingang.
Nur der gewaehlte Slave per CS Leitung setzt die "Busy"Leitung auf 
Ausgang. Das vermeidet Kurzschluesse... aber ich glaube der Master 
erkennt somit eien undefinierten zustand wenn gerademal alle Slaves Busy 
auf eingang gestellt haben.

Wichtig ist, dass der MAster auf jeden Fall immer einen definierten 
Zustand an der BusyLeitung bemerkt. sonst klappt die synchronisation 
nicht.


jetzt hab ich mir ueberlegt dass ich das analog zur LED verschaltung 
beim STK500 realisieren könnte. Dann waere  bei allen Slaves BUSY immer 
als Ausgang definiert. Nur der aktivierte Slave setzt dann BUSYauf Low 
(also das ganze Low active). siehe anhang!!!

Aber fliesst dann nicht zu viel Strom? ich will nicht dass was 
durchbrennt.

hat jemand ne Idee?

vielen dank
Patrick
Angehängte Dateien:
Gast #587880
Lesenswert?
• ▲
▼
Open-Drain -leitung: beim Master auf eingang & Pull-up (evtl. einen 
'stärkeren' externen, die Slaves schalten zwischen High-Z (Eingang ohne 
Pull-up) und ausgang-low hin und her, wie  z.B. beim I2C, 1wire etc.

Aber das wäre dir bestimmt gleich auch allein eingefallen :)

hth. Jörg
OP #587936
Lesenswert?
• ▲
▼
Hallo Jörg,
ich bin total verwirrt. die ganzen ausdruecke verwechsel iich 
andauernd...

high-z > EINGANG, no PULL UP

open-drain heisst doch EINGANG und KEIN interner PULLUP oder???

open-source: AUSGANG, HIGH   ???
mann oh mann ich gfind da auch im netz keine gscheite uebersicht. immer 
dieses denglish, sorry
OP #587971
Lesenswert?
• ▲
▼
was haltet ihr davon:

Der Master ist Input, kein internal pull up.

Alle Slaves sind auf high-z, eingang ohne pull up

Es wird ein externer 10k Pull Up widerstand verwendet.

ein aktivierter Slave wechselt seine BUSY leitung auf ausgang low (=open 
drain?)


der master sieht somit immer ein HIGH signal,
nur wenn ein slave seinen ausgang aktiviert, sieht er LOW.

passt das?
Gast #587981
Lesenswert?
• ▲
▼
Ich würde es so machen:

Master Busy-Eingang mit den 10k, die du angesprochen hast.

Alle Slaves sind auf Ausgang geschaltet und im inaktiven Zustand high.

Wenn ein Slave sich meldet, zieht er die Busy-Leitung über eine Diode 
auf Masse. Nach dem Datentransfer setzt der Slave die Leitung wieder 
high.

MW
OP #587992
Lesenswert?
• ▲
▼
> Alle Slaves sind auf Ausgang geschaltet und im inaktiven Zustand high.
>
> Wenn ein Slave sich meldet, zieht er die Busy-Leitung über eine Diode
> auf Masse. Nach dem Datentransfer setzt der Slave die Leitung wieder
> high.


also soll die diode den strom im inaktiven zustand sperren?
Also pro slave eine diode. Diode vom Master eingang zum Slave ausgang in 
Sperrrichtung?

MASTER
  In
   |
   +-------+----- ...
   |       |
  _|__    _|__
  \  /    \  /
  _\/_    _\/_
   |       |
   |       |
   |       |
Slave1   Slave2    ...
 out      out

OP #588015
Lesenswert?
• ▲
▼
Alternativ muesste doch auch das hier gehen:

Der Master sieht high = alle Slaves inaktiv

                        VDD
                         |
                         |
                         |
                       R 10k
                         |
                         |
MASTER in, o---R150------+-------+---SLAVE Eingang no pull up
no pull up                       |
                                 |
                                 +---SLAVE Eingang no pull up
                                 |


Der Master sieht low = ein Slave hat umgeschalten

                        VDD
                         |
                         |
                         |
                       R 10k
                         |
                         |
MASTER in, o---R150------+-------+---SLAVE AUSGANG LOW
no pull up                       |
                                 |
                                 +---SLAVE Eingang no pull up
                                 |


die widerstaende sollen den strom begrenzen...
Gast #588040
Lesenswert?
• ▲
▼
Genau so hab ich das gemeint :)
der 150Ohm Widerstand ist sicher unnötig: aus dem Slave-ausgang kommt 
kein Strom, bei Low-Pegel und aus dem Master Eingang auch nicht, und die 
5/10000=500µA , die durch den Pull-Up kommen.. ;)

hth. Jörg

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.