Guten Morgen!
Kann mir jemand vielleicht sagen, wie ich diesen Receiver (Anhang)
richtig einsetze. Mir ist folgendes unklar:
1. Damit bei deaktivierten Treibern am Bus die Ausgänge der zugehörigen
nicht betriebenen Receiver im definierten HIGH-Zustand bleiben, dürfen
laut Datenblatt (Seiten 7, 8) die Signale an den betriebenen Receivern
bei LOW-Zustand nicht die Schwelle von 0.4V unterschreiten. Dazu muss
die Gleichtakt-Spannung z.B. ca. 1.5 V betragen und die
Differenzspannung der beiden Eingänge ca. +/- 2V. Aber wie erreicht man
das?
2. Der vorletzte Satz auf S. 7 lautet:
As in all data transmission applications, it is necessary to provide a
return ground path between the two remote grounds (driver and receiver
ground references) to avoid ground differences.
Heißt das, dass man zusätztlich zu den 2 Signalleitungen noch eine
Masseleitung führen sollte, oder verstehe ich was falsch? Das wäre doch
aufwändig!
3. In Abbildung 10 ist ein Bus dargestellt mit 4-fach-Treiber und
4-fach-Receiver. Und es heißt, dass wenn 2 von den Treibern
anwendungsbedingt deaktiviert werden können müssen, muss man die hier
unter 1. genannten Maßnahmen treffen. Wenn man es aber wie in Abbildung
11 gemacht wird, dann sind die Maßnahmen nicht nötig. Dabei verstehe ich
nicht, wieso es so ist.
Bin für jede Hilfe sehr dankbar!!
Ich gehe mal davon aus, dass es hier um den früher skizzierten SPI-Bus
geht.
Das in Datasheet skizzierte Problem mit teilweise offenen teilweise
aktiven Leitungen stellt sich hier doch garnicht. Der Master schaltet
sowieso nichts ab, der Slave schaltet alle seine Transmitter
gleichermassen und das sind sämtliche Receiver-Leitungen des Masters.
Der Pegel von nicht genutzten Receivern interessiert niemanden.
Ein GND für alle reicht aus. Ist ja bei Differenzsignalen (hoffentlich)
weitgehend stromfrei.
Hallo A. K.!
>Das in Datasheet skizzierte Problem mit teilweise offenen teilweise>aktiven Leitungen stellt sich hier doch garnicht. Der Master schaltet>sowieso nichts ab, und der Slave schaltet alle seine Transmitter>gleichermassen. Und der Pegel von unbenutzen Receivern interessiert>niemanden.
Die Treiber des Masters bleiben tatsächlich immer aktiv. Der Master hat
für SOMI-Signal einen Receiver, der mit den Treibern aller Slaves
verbunden ist. Nur der Treiber des gerade sendenden Slaves ist aktiv und
andere Treiber deaktiviert. Wenn aber keiner der Slaves sendet sind alle
Treiber deaktiviert und dies würde am Ausgang des Master-Receivers einen
undefinierten Zustand produzieren. Oder sollte man einen Slave immer
aktiv lassen, auch wenn länger kein SPI-Datentransfer stattfindet?
Wenn auch es zu diesem Problem gar nicht kommt, würde mich das
interessieren, wie man z.B. die Gleichtaktspannung anhebt. Etwa indem
man an GND-Anschluss statt 0V einen Offset legt? Oder geht das auch so,
wie in der angehängten Abbildung(hab die aus Datenblatt eines anderen
Receivers). Dann wäre ja auch keine Masseleitung nötig.
noips schrieb:
> andere Treiber deaktiviert. Wenn aber keiner der Slaves sendet sind alle> Treiber deaktiviert und dies würde am Ausgang des Master-Receivers einen> undefinierten Zustand produzieren.
Die Eingangsbeschaltung eines Receivers sorgt bei offener Leitung selbst
für einen kontrollierten Pegel, siehe Schaltbild im Datasheet.
Bild 10/11 und Tabelle 1 beziehen sich auf den Fall, dass ein Teil der
verwendeten Receiver eine aktive Busleitung und ein Teil der verwendeten
Receiver eine offene Busleitung vorfinden. Da alle deine entsprechenden
Leitungen gleichermassen entweder offen oder aktiv sind, können einzig
die unbenutzten Receiver spinnen. Na lass sie, wenn ihnen Spass macht.
> Wenn auch es zu diesem Problem gar nicht kommt, würde mich das> interessieren, wie man z.B. die Gleichtaktspannung anhebt. Etwa indem> man an GND-Anschluss statt 0V einen Offset legt?
Nein. Wenn man den Receivern das partout nicht selbst zutraut, dann kann
man es so machen wie in deinem Anhang.
PS: Zu beachten wäre allerdings, dass eine rücklaufende Taktleitung (wie
früher skizziert) im offenen Zustand beim Master als "1" ankommt. Das
wird zu einer fallenden Taktflanke auf der Empfangsseite des Masters
führen, wenn in Mode 0+1 die Transmitter des Slaves aktiviert werden.
Bei Mode 0 interessiert ihn die diese Flanke wohl nicht, aber bei Mode 1
wäre das nicht so gut.
>Die Eingangsbeschaltung eines Receivers sorgt bei offener Leitung selbst>für einen kontrollierten Pegel, siehe Schaltbild im Datasheet.
Ja, die interne Schaltung sorgt für kontrollierte Pegel, aber da steht
auf S. 7 noch folgendes:
The internal fail-safe circuitry was designed such that the input
common-mode (VIC) and differential (VID)voltages must be observed. In
order to ensure the outputs of unused or inactive receivers remain in a
high state when the inputs are open-circuited, shorted, or terminated,
extra precaution must be taken on the active signal. In applications
where the drivers are placed in a high-impedance mode or are
powered-down, it is recommended that for 1, 2, or 3 active receiver
inputs, the low-level input voltage (VIL) should be greater than 0.4 V.
Das vestehe ich so, dass die interne fail-safe-Schaltung nur unter der
Voraussetzung immer für definierte Zustände an nicht aktiven Ausgängen
sorgt, dass man an den aktiven Receivereingängen den LOW-Pegel mit
irgend welchen Maßnahmen über 0.4V hält. Wie sonst ist dieser Abschnitt
zu verstehen?
Ich lese dies so, dass dies nur von Bedeutung ist, wenn an den überhaupt
verwendeten Receivern gleichzeitig sowohl aktive wie auch inaktive
Busleitungen auftreten. Gibt es hier nicht.
Wobei das überhaupt nur beim skizzierten rücklaufenden Takt relevant
ist. Hast du das noch vor? Wenn nicht, dann gibt es keine einzige
Leitung, deren Pegel bei inaktivem Bus irgendwen interessiert. Die
Master=>Slave Leitungen sind nie offen und der Zustand von SOMI ist
uninteressant.
>wenn unter den überhaupt verwendeten Receivern gleichzeitig sowohl aktive >wie
auch inaktive Busleitungen auftreten.
Das ist einleuchtend. Dann verstehe ich auch die Abbildungen 10 und 11.
Aber ich habe dies aus dem Text nicht sehen können.
>Wobei das auch nur beim skizzierten rücklaufenden Takt relevant ist. Hast >du das
noch vor?
Nein. Es wurde beschlossen, die schnellsten Driver/Receiver zu verwenden
und die Datenrate unter der Grenze zu halten, ab der die Delays zu
problemen führen. Darum habe ich ja andere Bausteine ausgesucht. Habe
davor andere verwendet, bevor ich überhaupt das Problem mit Delays
wahrgenommen habe.
>dann gibt es keine einzige Leitung, deren Pegel bei inaktivem Bus >irgendwen
interessiert.
Wie ist es eigentlich mit nichtdefinierten Zuständen an den
Logikeingängen. Sind sie nicht grundsätzlich zu vermeiden, auch wenn die
Funktion der betroffenen Schaltungsteile gerade nicht gebraucht wird.
Ich habe irgend wo gelesen, dass undefinierte Zustände an Logik zum
Oszillieren führen können.
Es gibt Situationen in denen undefinierte Eingänge ein Problem sind. In
diesem Fall aber nicht, wobei manche Controller wie beispielsweise die
AVRs mit ihren Schmitt-Triggern überhaupt keine analogen Zwischenpegel
kennen. Jedenfalls sind undefinierte Zustände an MISO/MOSI ausserhalb
der Transfers schon prinzipbedingt normal.