ttgo lora sd
1.0.0
TTGOロラボードには、SDカードと一緒に使用する際にいくつかの問題があります。 SX1278とSDカードの両方は、SPIを通信バスとして使用しています。 SPIは、さまざまな構成で機能するプロトコルファミリーです。
TTGOロラボードのESP32には、ビルトインハードウェアSPI (HSPI)があり、エミュレーションを通じて仮想 /ソフトウェアSPI (VSPI)を実行できます。また、VSPIバスとHSPIをピンのいずれかにルーティングできます。

デフォルトの構成では、SX1278とSDライブラリの両方がHSPIを使用し、それによって互いに妨げられます。
SX1278およびSDカードを動作させるには、2つのSPIバスを使用する必要があります。ボードを実験している間、SX1278はハードウェアSPIでエラーが発生し、VSPIでSDカードを使用すると機能しなかったことが明らかになりました。
最終的なソリューションでは、SDとの通信のためにHSPIバスとSX1278のソフトウェアSPIを使用します。また、2つの別々のソフトウェアSPIバスを使用するオプションでもあります。
#define SD_CS 23
#define SD_SCK 17
#define SD_MOSI 12
#define SD_MISO 13
SPIClass sd_spi ( HSPI );
sd_spi . begin ( SD_SCK , SD_MISO , SD_MOSI , SD_CS );
if (! SD . begin ( SD_CS , sd_spi ))
Serial . println ( "SD Card: mounting failed." );
else
Serial . println ( "SD Card: mounted." ); RHSoftwareSPI sx1278_spi ;
RH_RF95 rf95 ( LORA_CS , LORA_IRQ , sx1278_spi );
sx1278_spi . setPins ( LORA_MISO , LORA_MOSI , LORA_SCK );
if (! rf95 . init ())
Serial . println ( "LoRa Radio: init failed." );
else
Serial . println ( "LoRa Radio: init OK!" );