0

こんにちは、外部フラッシュと SD カードの間で共有 SPI ラインを使用しています。SD カードには MSP430 の SPI エンジンを使用しますが、外部フラッシュには同じ SPI ラインを使用していますが、GPIO BitBanging と同じです。

SD カードはめったに使用されないため、init 関数でさえ呼び出されません。

問題: SD カードが挿入されているが一度も使用されておらず、外部フラッシュにアクセスすると、電流が急激に増加し (13mA)、SD カードが取り外されるまで減少しないことがわかりました。SD カードが挿入されていない場合、そのような問題はありません。

SD カードの CHIP SELECT は決して触れられず、常に HIGH ですが、FLASH を介した通信は SD カードのスリープ モードに影響を与えています。Sandisk のデータシートによると、SD は自動的にスリープ モードに入ります。

所見:

Ø Both SD and flash use common SPI lines, all 4 lines state is observed in both HIGH and LOW current states and observed no difference
    **LINE      HIGH Current    Low Current**
    Clock           H             H
    D_Out           H             H
    D_In            H             H
    SD_CS           H             H

Ø **SD Card Removed**
    Clock           H             H
    D_Out           H             H
    D_In            H             H
    SD_CS           H             H

> FLASH カードと SD カードの両方で BitBanging を SPI ENGINE に変更しても、現時点ではそのような問題は発生しないことがわかりました。

SPI エンジンで使用されている場合はラインの状態を確認しましたが、すべての信号が同じであることがわかりました。使用しないときはすべての信号を LOW にしてみましたが、違いはありませんでした。

クエリ? 1. SD カードの Chip SELECT が HIGH (CS がアクティブ LOW) の場合、SD カードが SLEEP モードを維持しないのはなぜですか?

  1. BitBanging と SPI Engine の両方の通信が問題なく動作するのに、SD カードが通信されていないのに SD カードの消費電流に影響するのはなぜですか?

制限事項

SPI ENGINE モードで FLASH を使用できないため、BitBanging のみを使用することが重要です。

デバイスは常に最小の電力を消費する必要があり、バッテリーで 1 年間動作する必要があります。

4

1 に答える 1