こんにちは、外部フラッシュと 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 モードを維持しないのはなぜですか?
- BitBanging と SPI Engine の両方の通信が問題なく動作するのに、SD カードが通信されていないのに SD カードの消費電流に影響するのはなぜですか?
制限事項
SPI ENGINE モードで FLASH を使用できないため、BitBanging のみを使用することが重要です。
デバイスは常に最小の電力を消費する必要があり、バッテリーで 1 年間動作する必要があります。