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!" );