BMA180加速度計。I2CとSPIの間でピンを共有する方法を教えてください。


11

BMA180加速度計は、SPIスレーブまたはI 2 Cスレーブのいずれかです。両方のバスのピンは共有されています。

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バスマスターが他のデバイスと通信しているとします。BMA180のCSBが高いため、I 2 Cを有効にする必要があります。BMA180は、SCL(SPIのSCLK)上のクロックエッジとSDA(SPIのMOSI)上のビットが飛んでいるのを見ます。これらのビットの一部が有効なI 2 C読み取りトランザクションの開始のようにBMA180に見え、BMA180がデータの出力を開始し、既存のSPIトランザクションを破壊する場合はどうなりますか?BMA180の設計はそれをどのように防止しますか?

これは好奇心の問題です。私はこれらの問題をまだ実験していません。SPIでBMA180を使用します。

提案、洞察、参照は本当にありがたいです!

更新。データシートに 何かが見つかりました(7.7.11を参照)。SPI経由でBMA180と通信する場合は、ビットを設定してI 2 Cを無効にすることをお勧めしdis_i2cます。

SPIインターフェイスを使用する場合、誤動作を避けるためにdis_i2cを1に設定することを強くお勧めします。

BMA180はEEPROMを内蔵しています。レジスターの内容はEEPROMに保存され、パワーアップシーケンスで自動的にロードされます。したがって、BMA180にI 2 Cを完全かつ常に無視させることができます。

更新。 L3GD20ジャイロは、同様の方法でI 2 CとSPIの間でピンを共有する別のIC です。I 2 Cモードを無効にするためのビット設定がないようです。したがって、@ markragesが提唱したADXL345のようなORゲートが必要になります。

注意喚起! ボッシュはBMA180(公式レターはこちら)の発送を中止しました。

回答:


14

同じI2C / SPI選択スキームを使用するADXL345で恐れている動作を正確に確認しました。異なるクロック極性を使用する別のSPIデバイスがあり、たまたまI2Cスタートコードをエミュレートしました。ADXL345はI2Cとして順番通りに話そうとしました。悪いニュース。

ペリフェラルを使用する代わりに、SPIをビットバンとして注意深く書き直し、クロックが高いときにMOSIラインを変更しないようにしました。(これはI2C開始条件です。)これで問題は解決したようです。

ゼロから始めた場合は、代わりにI2Cバスを使用するか、ADXL345の専用SPIポートを使用します。

どうやらこれに遭遇するのは私だけではないようです。この段落は、ADXL345データシートの新しいリビジョンに含まれています。

ここに画像の説明を入力してください


+1そしてありがとう!データシートでBMA180にI2C無効ビットがあることがわかりました(7.7.11を参照)。BMA180にORゲートが組み込まれていることも考えられますが、データシートで明示的に言及されていないだけです。
Nick Alexeev

1
ORゲートはI2Cモードを効果的に無効にするため、チップに組み込まれていません。(チップ設計者が余分なピンを
節約

以前の投稿で「あまりにも」書くべきではなかった。「あまりに」とは、「I2C無効ビットに加えて」を意味します。このスキームでは、ORゲートが加速度計ICに恒久的に組み込まれる可能性があることも間違っていました。それは永久にI2Cを無効にします。その前のコメントを書き直します。
Nick Alexeev

BMA180には、3x DNC /予約済みピンがあります。多分、それらはすでに工場目的で使用されています。
Nick Alexeev

1
デジタル加速度計は互いにピン互換性がある傾向があることに気づきました。それは未使用のピンを説明するかもしれません。またはあなたが言ったような工場テスト。
2012年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.