BMA180 accelerometer dapat berupa budak SPI atau budak I 2 C. Pin untuk kedua bus dibagi.
SPI mode I2C mode
---------------------------------------------------
SDI input SDA bidirectional (!)
SDO output ADDR address bit, input
SCLK input SCL input
CSB chip select, input I2C mode select, input
Menurut datasheet (lihat bab 8) , pemilihan antar bus dilakukan melalui pin CSB. Ketika CSB rendah, perangkat adalah budak SPI. Ketika CSB tinggi, perangkat adalah budak I 2 C.
Inilah mode kegagalan , yang saya khawatirkan. Misalkan, BMA180 ada di bus SPI. Ada juga perangkat lain di bus yang sama dengan chip pilih sendiri. Misalkan, master bus SPI berkomunikasi ke perangkat lain itu. CSB untuk BMA180 tinggi, jadi I 2 C harus diaktifkan. BMA180 melihat clock edge pada SCL (SPI's SCLK) dan bit pada SDA (SPI's MOSI) terbang oleh. Bagaimana jika sebagian dari bit-bit ini terlihat ke BMA180 seperti permulaan dari transaksi pembacaan I 2 C yang valid , dan BMA180 mulai menghasilkan data dan mengganggu transaksi SPI yang ada? Bagaimana desain BMA180 mencegah itu?
Ini adalah masalah rasa ingin tahu. Saya belum bereksperimen dengan masalah ini. Saya akan menggunakan BMA180 di SPI.
Setiap saran, wawasan atau referensi sangat dihargai!
Memperbarui. Menemukan sesuatu di lembar data (lihat 7.7.11) . Ini merekomendasikan menonaktifkan I 2 C dengan mengatur dis_i2c
bit, jika berkomunikasi dengan BMA180 via SPI.
Ketika antarmuka SPI digunakan, sangat disarankan untuk mengatur dis_i2c ke 1 untuk menghindari kerusakan.
BMA180 memiliki EEPROM bawaan. Isi register dapat disimpan dalam EEPROM dan secara otomatis dimuat pada urutan power-up. Jadi, dimungkinkan untuk membuat BMA180 mengabaikan I 2 C sepenuhnya dan selalu.
Memperbarui. L3GD20 gyro adalah IC lain, yang berbagi pin antara I 2 C dan SPI dengan cara yang serupa. Tampaknya tidak memiliki pengaturan sedikit untuk menonaktifkan mode I 2 C. Jadi, itu akan membutuhkan gerbang OR seperti ADXL345, yang dibesarkan @markrages.
Kepala! Bosch menghentikan pengiriman BMA180 ( surat resmi di sini ).