mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik SPI 1 MASTER N SLAVEs verdrahtung problem bei zusatzleitung


Autor: Patrick Kaplan (kaplan)
Datum:
Angehängte Dateien:

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

Autor: Jörg X. (Gast)
Datum:

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

Autor: Patrick Kaplan (kaplan)
Datum:

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

Autor: Patrick Kaplan (kaplan)
Datum:

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

Autor: Michael Wilhelm (Gast)
Datum:

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

Autor: Patrick Kaplan (kaplan)
Datum:

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


Autor: Patrick Kaplan (kaplan)
Datum:

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

Autor: Jörg X. (Gast)
Datum:

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

Autor: Patrick Kaplan (kaplan)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Super, wird umgesetzt und getestet :)

danke vielmals

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.