ttgo lora sd
1.0.0
TTGO LORA 보드에는 SD 카드와 함께 사용할 때 몇 가지 문제가 있습니다. SX1278과 SD 카드는 모두 SPI를 통신 버스로 사용합니다. SPI는 프로토콜 패밀리가 다양한 구성에서 작동 할 수 있습니다.
TTGO LORA 보드의 ESP32에는 내장 하드웨어 SPI (HSPI)가 있으며 에뮬레이션을 통해 VSPI ( Virtual / Software SPI )를 수행 할 수도 있습니다. 또한 HSPI뿐만 아니라 VSPI 버스는 모든 핀으로 라우팅 할 수 있습니다.

기본 구성에서 SX1278과 SD 라이브러리는 HSPI를 사용하여 서로를 방해합니다.
SX1278 및 SD 카드를 작동 시키려면 2 개의 SPI 버스를 사용해야합니다. 보드를 실험하는 동안 SX1278은 하드웨어 SPI에서 오류가 발생하고 VSPI에서 SD 카드를 사용할 때 작동 하지 않았다는 것이 분명해졌습니다.
최종 솔루션은 HSPI 버스를 사용하여 SD와의 통신 및 SX1278의 소프트웨어 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!" );