회사에서 LoRa 통신을 하게 되었다.

 

 이걸 처리하기 위해서 예제 소스에 있는 라이브러리를 사용하기로 했다.

 

sandeepmistry/arduino-LoRa

An Arduino library for sending and receiving data using LoRa radios. - sandeepmistry/arduino-LoRa

github.com

 그런데, 여기서 문제가 발생했는데.

 LoRa 통신에서 초반에설정하는 코드인

  if (!LoRa.begin(915E6)) {             // initialize ratio at 915 MHz
    Serial.println("LoRa init failed. Check your connections.");
    while (true);                       // if failed, do nothing
  }

 이 부분에서 문제가 발생하는 것이다.

 

 LoRa32u4에선 초기화가 되지 않고 루프가 걸리게 되어 있다.(Arduino와 LoRa Chip 따로 구해놓는다면, 연결을 제대로 한다면 문제가 없다.)

 

 이유는 다음 그림을 보면, 이해가 되는데.

 

 

이것은 LoRa32u4의 회로도이다.

 

 여기서 보면, 통신용(SPI로 통신한다.)의 Chip Select와 상태 피드백 등을 위해서 Modul 핀과 CPU 핀의 연결도를 표현되어 있다.

 

 그리고, 다음은 해당 라이브러리의 정의이다.

 

 

 이걸 보면, SS[Chip Select] pin과 RESET PIN, DIO0 PIN이 회로도랑 완전히 다르다는걸 알 수 있다.

 즉, 회로도와 라이브러리와의 관계가 맞지 않는 상태.

 

 이걸 맞추기 위해서 다음과 같이 수정한다.

 

 

 이렇게하면, PIN이 이상없이 동작되는 것을 확인 할 수 있다.

 

 해당 LoRa 라이브러리를 사용하다가 제대로 동작이 안되면, 고치길 바란다.

Posted by JunkMam
,