accelerometer BMA180 สามารถเป็น SPI slave หรือ I 2 C slave ก็ได้ พินสำหรับรถโดยสารทั้งสองนั้นใช้ร่วมกัน
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
ตามแผ่นข้อมูล (ดูบทที่ 8)การเลือกระหว่างรถเมล์จะทำผ่านพิน CSB เมื่อ CSB ต่ำอุปกรณ์จะเป็นทาส SPI เมื่อ CSB สูงอุปกรณ์จะเป็นทาสI 2 C
นี่คือโหมดความล้มเหลวที่ฉันกังวล สมมติว่า BMA180 อยู่บนรถบัส SPI นอกจากนี้ยังมีอุปกรณ์อื่นในรถบัสเดียวกันโดยมีการเลือกชิปของตัวเอง สมมติว่า SPI บัสหลักกำลังสื่อสารกับอุปกรณ์อื่นนั้น CSB สำหรับ BMA180 นั้นสูงดังนั้นฉันควรเปิดใช้งานฉัน2 C BMA180 เห็นขอบนาฬิกาของ SCL (SPI ของ SPI) และบิตบน SDA (SPI ของ MOSI) ที่บินผ่าน จะเกิดอะไรขึ้นถ้าบิตเหล่านี้บางส่วนดูเป็น BMA180 เหมือนกับจุดเริ่มต้นของธุรกรรมการอ่านI 2 C ที่ถูกต้องและ BMA180 เริ่มส่งออกข้อมูลและปิดกั้นธุรกรรม SPI ที่มีอยู่ การออกแบบ BMA180 จะป้องกันได้อย่างไร
นี่เป็นเรื่องของความอยากรู้อยากเห็น ฉันยังไม่ได้ทดลองกับปัญหาเหล่านี้ ฉันจะใช้ BMA180 บน SPI
ข้อเสนอแนะความเข้าใจหรือการอ้างอิงใด ๆ ชื่นชมจริงๆ!
ปรับปรุง พบสิ่งที่อยู่ในแผ่นข้อมูล (ดู 7.7.11) แนะนำให้ปิดใช้งาน I 2 C โดยการตั้งค่าdis_i2c
บิตถ้าสื่อสารกับ BMA180 ผ่าน SPI
เมื่อใช้อินเทอร์เฟซ SPI ขอแนะนำอย่างยิ่งให้ตั้งค่า dis_i2c เป็น 1 เพื่อหลีกเลี่ยงความผิดปกติ
BMA180 มี EEPROM ในตัว เนื้อหาการลงทะเบียนสามารถเก็บไว้ใน EEPROM และโหลดโดยอัตโนมัติตามลำดับการเปิดเครื่อง ดังนั้นเป็นไปได้ที่จะทำให้ BMA180 ไม่สนใจ I 2 C อย่างสมบูรณ์และตลอดเวลา
ปรับปรุง L3GD20 gyroเป็น IC อีกตัวหนึ่งซึ่งใช้พินระหว่าง I 2 C และ SPI ในลักษณะเดียวกัน ดูเหมือนว่าจะไม่มีการตั้งค่าเล็กน้อยสำหรับการปิดใช้งานโหมดI 2 C ดังนั้นมันจะต้องมีประตู OR เช่น ADXL345 ซึ่งเครื่องหมาย @ นำขึ้นมา
หัวขึ้น! Bosch หยุดจัดส่ง BMA180 ( จดหมายอย่างเป็นทางการที่นี่ )