ttgo lora sd
1.0.0
與SD卡一起使用時,TTGO LORA板有一些問題。 SX1278和SD卡都使用SPI作為通信總線。 SPI是協議系列可以在許多不同的配置中起作用。
TTGO LORA板上的ESP32具有內置的硬件SPI (HSPI),還可以通過仿真進行虛擬 /軟件SPI (VSPI)。另外,VSPI總線以及HSPI也可以路由到任何銷釘。

在默認配置中,SX1278和SD庫都使用HSPI,從而相互阻礙。
為了使SX1278和SD卡工作,需要使用兩個SPI公交車。在嘗試板時,也很明顯,SX1278在硬件SPI上容易出錯,並且在VSPI上使用SD卡時無效。
最終解決方案使用HSPI總線與SX1278的SD和軟件SPI進行通信。它也是使用兩個單獨的軟件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!" );