Forum: Mikrocontroller und Digitale Elektronik ADXL345/375 und weitere SPI-Peripherie


von Sebastian W. (wangnick)


Lesenswert?

Liebe Leute,

ich baue zur Zeit eine Fluglagesteuerung mit Teensy 3.2, dazu mit 
MPU9250, BMP280 und FL127S am SPI-Bus, und einem ADXL375 am I2C-Bus.

Ich würde den ADXL375 jedoch gerne häufiger als mit 800Hz auslesen. Laut 
Datenblatt reicht dazu I2C mit 400kHz nicht aus; stattdessen sollte SPI 
benutzt werden: "Use of the 3200 Hz and 1600 Hz output data rates is 
recom-
mended only with SPI communication speeds greater than or equal to 2 
MHz."

Die SPI-Implementierung des ADXL375 hat jedoch ein gravierendes Problem: 
Wenn auf dem SPI-Bus mit anderer Peripherie als dem ADXL375 kommuniziert 
wird, die !CS-Leitung also High bleibt, dann interpretiert der ADXL375 
solche Kommunikation als I2C und wird womöglich, falls zufällig 
adressiert, auch antworten!

Dazu empfiehlt das Datenblatt: "Unless bus traffic can be adequately 
controlled to ensure that such a condition never occurs, it is 
recommended that a logic gate be added in front of Pin 13 
(SDA/SDI/SDIO), as shown in Figure 24. This OR gate holds the SDA line 
high when CS is high to prevent SPI bus traffic at the ADXL375 from 
appearing as an I2C start command."

Mit welchen Komponenten lässt sich ein solches Oder-Gatter am 
einfachsten realisieren?

Reichen zwei 1N4148 (eine zwischen !CS und SDI, eine zwischen MOSI und 
SDI) und ein 100kΩ zwischen SDI und GND aus? Kann diese Diode an MOSI 
einen negativen Effekt auf die 25MHz-SPI-Kommunikation mit dem FL127S 
haben?

Vielen Dank im Voraus,
Sebastian

von Wolfgang (Gast)


Lesenswert?

Sebastian W. schrieb:
> Mit welchen Komponenten lässt sich ein solches Oder-Gatter am
> einfachsten realisieren?

Wie wäre es mit einem Oder-Gatter, z.B. SN74LVC1G32

> Reichen zwei 1N4148 ...

Mit Dioden kannst du nur ein wired-OR aufbauen. Die eine Flanke der 
Signale wird dabei langsam. Bau's auf und guck es dir mit einem Oszi an.

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.