Forum: Mikrocontroller und Digitale Elektronik Frage bezüglich Schaltplan in Datasheet (SPI Bus, OR-Gatter)


von Schlumpf (Gast)


Lesenswert?

Hallo zusammen,
ich hätte eine kleine Frage:
Und zwar in diesem Datasheet (S.15)
http://www.analog.com/static/imported-files/data_sheets/ADXL345.pdf
Ist beschrieben, dass wenn ich mehrere Slaves auf dem Bus habe, ich ein 
OR Gatter vor SDIO schalten soll.

Handelt es sich wirklich hier um ein OR Gatter? Für mich sieht das eher 
nach NOR Gatter aus.

Und den Zweck kann ich erschließen, aber die Funktionsweise noch nicht 
ganz. Ist SDIO dann nicht immer 0, außer ich spreche des ADXL an?

MfG und Danke :D

von Schlumpf (Gast)


Lesenswert?

...Noch eine Frage...

Da steht ja SDIO, was aber wenn ich 4-wire SPI verwende, also SDI und 
SDO?
Geht das dann nicht?

Was mich auch verwirrt: Mitten im Text wird vom 346 gesprochen statt 
345...


DANKE!

von Timmo H. (masterfx)


Lesenswert?

Steht doch deutlich beschrieben warum man das so machen sollte:
1
When the ADXL346 is used on a SPI bus with multiple devices, its CS 
2
pin is held high while the master communicates with the other devices.
3
There may be conditions where a SPI command transmitted to 
4
another device looks like a valid I2C command. In this case, the 
5
ADXL346 would interpret this as an attempt to communicate in 
6
I2C mode, and could interfere with other bus traffic. Unless bus 
7
traffic can be adequately controlled to assure such a condition 
8
never occurs, it is recommended to add a logic gate in front of 
9
the SDI pin as shown in Figure 36

: Bearbeitet durch User
von Schlumpf (Gast)


Lesenswert?

Das ist mir klar warum, mir ist nur nicht klar, wie ich das bei 4-wire 
SPI machen soll (kein SDIO, sonder SDI und SDO) und wie es funktioniert, 
weil es ja dann immer 1 ist egal welche Daten übertragen werden...


MfG

von Achim S. (Gast)


Lesenswert?

Schlumpf schrieb:
> weil es ja dann immer 1 ist egal welche Daten übertragen werden...

Das Gatter wird direkt vor den ADXL gebaut, nicht direkt hinter den µC. 
Die anderen Busteilnehmer sehen also die Originaldaten auf SDI (nicht 
den Ausgang des Or-Gatters).

Wenn der ADXL nicht angesprochen werden soll sieht er konstant eine 1 
(und kann damit nicht die Kommunikation mit einem anderen Busteilnehmern 
als IIC-Kommando fehlinterpretieren). Wenn der ADXL angesprochen werden 
soll liegt CS auf 0 und der Ausgang des Or-Gatters folgt dem SDI-Signal.

von Schlumpf (Gast)


Lesenswert?

Ahh ok,
Also ist es entgegen der Zeichnung ein Or Gatter und kein NOR Gatter.
Macht Sinn.

Also

(ADXL) CS  <----------------------------- CS (AVR)
                                     |
(ADXL) SDI <-- Or-Out |  Or A    <---
                      |  Or B    <--- SDO (AVR)
                                   |
           (anderer Slave)   SDI<---


(ADXL) SDO ----------------------> SDI (AVR)
                        ^
                        |
(anderer Slave) SDO------

(ADXL) CLK <--------------------   CLK (AVR
                             |
(anderer Slave) CLK <---------


DANKE!

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.