ADXL345/375 und weitere SPI-Peripherie

#5777135
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren