하드웨어/lora lorawan

sx1276 spi 통신

구차니 2026. 2. 19. 15:53

 

CPOL=0 CPHA=0 으로 설정해주고

데이터가 전송되는 동안 NSS를 low로 유지

address 1byte(MSB wnr bit = 1 write, 0 read)

1byte data 로 데이터를 주고 받을수 있는 듯.

 

아쉽게도 통신 확인용 device id 레지스터는 없는 듯 한데..

그나마 그런용도로 쓸만한게 0x42 RegVersion 0x12 로 리턴되나 보면 될 듯

 

+

NRESET 핀을 HIGH로 해주어야 sx1276 이 살아나고

그 외엔 정상적으로 잘 읽는 듯 하다.

void sx1276_read_ver()
{
  uint8_t address = 0x42; // RegVersion
  uint8_t data = 0x00;
  uint16_t len = 1;

  HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, GPIO_PIN_SET);
  HAL_Delay(500);

  HAL_GPIO_WritePin(NSS_GPIO_Port, NSS_Pin, GPIO_PIN_RESET);
    HAL_SPI_Transmit(&hspi2, &address, len, 100);
    HAL_SPI_Receive(&hspi2, &data, len, 100);
  HAL_GPIO_WritePin(NSS_GPIO_Port, NSS_Pin, GPIO_PIN_SET);

  printf("sx1276 ver %X\r\n", data);
}

 

ver 0 나와서 당황.. -_-

sx1276 ver 0
sx1276 ver 12