회사에서 LoRa 통신을 하게 되었다.
이걸 처리하기 위해서 예제 소스에 있는 라이브러리를 사용하기로 했다.
그런데, 여기서 문제가 발생했는데.
LoRa 통신에서 초반에설정하는 코드인
if (!LoRa.begin(915E6)) { // initialize ratio at 915 MHz |
이 부분에서 문제가 발생하는 것이다.
LoRa32u4에선 초기화가 되지 않고 루프가 걸리게 되어 있다.(Arduino와 LoRa Chip 따로 구해놓는다면, 연결을 제대로 한다면 문제가 없다.)
이유는 다음 그림을 보면, 이해가 되는데.
이것은 LoRa32u4의 회로도이다.
여기서 보면, 통신용(SPI로 통신한다.)의 Chip Select와 상태 피드백 등을 위해서 Modul 핀과 CPU 핀의 연결도를 표현되어 있다.
그리고, 다음은 해당 라이브러리의 정의이다.
이걸 보면, SS[Chip Select] pin과 RESET PIN, DIO0 PIN이 회로도랑 완전히 다르다는걸 알 수 있다.
즉, 회로도와 라이브러리와의 관계가 맞지 않는 상태.
이걸 맞추기 위해서 다음과 같이 수정한다.
이렇게하면, PIN이 이상없이 동작되는 것을 확인 할 수 있다.
해당 LoRa 라이브러리를 사용하다가 제대로 동작이 안되면, 고치길 바란다.
'Arduino' 카테고리의 다른 글
Arduino에서 millis()와 delay()가 제대로 동작안되는 경우. (0) | 2020.07.04 |
---|---|
[Arduino]Adafruit_SH1106에 SPI 정보가 변했을 경우 복구하는 소스로 라이브러리 수정 (0) | 2019.05.07 |
[Arduino] Adafruit_SH1106-master에게 직접 레퍼런스 번호를 할당 받아서 쓸 수 있게 라이브러리 수정하기 (0) | 2019.05.06 |