Nol.A SDK Library  24.11.0
For IoT System Software Development
Classes | Functions | Variables

Semtech SX1280/SX1281 Radio Transceiver. More...

Classes

class  SX1280Chip
 저전력 LoRaTM, FLRC, GFSK, 및 BLE 무선 통신을 지원하는 Semtech의 SX1280/SX1281을 지원합니다. More...
 
class  SX1280ChipSPI
 SPI 로 제어하는 SX1280Chip. More...
 

Functions

 SX1280Chip::SX1280Chip (int pinBusy, int pinRst, int pinDio1, int pinDio2, int pinDio3, uint16_t irqMaskDio1, uint16_t irqMaskDio2, uint16_t irqMaskDio3, bool useDcDc=false)
 
error_t SX1280Chip::begin () override
 
virtual error_t SX1280Chip::end ()
 
error_t SX1280Chip::readFrame (RadioPacket *frame) override
 수신 버퍼에서 프레임을 읽습니다. More...
 
bool SX1280Chip::bufferIsEmpty () override
 
void SX1280Chip::flushBuffer () override
 
void SX1280Chip::sleep () override
 
virtual void SX1280Chip::wakeup () override
 
error_t SX1280Chip::transmit (LoRa2GHzFrame *frame)
 frame 을 전송합니다. More...
 
error_t SX1280Chip::transmit (FLRCFrame *frame)
 frame 을 전송합니다. More...
 
error_t SX1280Chip::transmit (RadioPacket *frame) override
 frame 을 전송합니다. More...
 
bool SX1280Chip::cca () override
 채널이 혼잡한지 아닌지 검사합니다. More...
 
void SX1280Chip::setTxPower (int8_t dBm) override
 송신 출력을 설정합니다. More...
 
int8_t SX1280Chip::getTxPower () override
 현재 설정된 송신 출력을 반환합니다. More...
 
void SX1280Chip::setChannel (uint32_t channel) override
 채널(주파수)를 Hz 단위로 설정합니다. More...
 
uint32_t SX1280Chip::getChannel () override
 현재 설정된 채널을 반환합니다.
 
bool SX1280Chip::setLoRaMode (LoRa2GHzFrame::SF_t sf, LoRa2GHzFrame::BW_t bw, LoRa2GHzFrame::CR_t cr, uint8_t preambleLength=0x08, bool useHeader=true, bool useCrc=true, bool invertIQ=false)
 
error_t SX1280Chip::setFLRCMode (FLRCFrame::BitRate_t br, FLRCFrame::CR_t cr, FLRCFrame::ModShaping_t ms, uint8_t preambleLength=32, bool useSyncword=true, FLRCFrame::SyncWordRxMatch_t=FLRCFrame::SYNCWORD_1_2_3, bool useHeader=true, uint8_t crcBytes=3)
 
error_t SX1280Chip::setGFSKMode ()
 
bool SX1280Chip::setSyncword (uint8_t idx, const uint8_t *syncword)
 
Radio::Modulation_t SX1280Chip::getCurrentModulation ()
 
int16_t SX1280Chip::getRssi ()
 RSSI를 dB 단위로 읽습니다.
 
virtual void SX1280Chip::beginTransaction ()=0
 
virtual uint8_t SX1280Chip::transfer (uint8_t)=0
 
virtual void SX1280Chip::endTransaction ()=0
 
virtual void SX1280Chip::waitReadable ()=0
 
void SX1280Chip::WaitOnBusy ()
 
virtual void SX1280Chip::IoIrqInit (DioIrqHandler irqHandler) override
 

Variables

uint8_t SX1280Chip::rxBuffer [255]
 
uint8_t SX1280Chip::rxSize = 0
 
const int SX1280Chip::PIN_BUSY
 
const int SX1280Chip::PIN_RST
 
const int SX1280Chip::PIN_DIO1
 
const int SX1280Chip::PIN_DIO2
 
const int SX1280Chip::PIN_DIO3
 
const uint16_t SX1280Chip::IRQ_MASK_DIO1
 
const uint16_t SX1280Chip::IRQ_MASK_DIO2
 
const uint16_t SX1280Chip::IRQ_MASK_DIO3
 

Detailed Description

Semtech SX1280/SX1281 Radio Transceiver.

Function Documentation

◆ cca()

bool SX1280Chip::cca ( )
overridevirtual

채널이 혼잡한지 아닌지 검사합니다.

채널이 혼잡하다고 감지되는 순간, onChannelBusy 가 가리키는 콜백함수가 호출됩니다.

Implements PacketRadioChip.

◆ getTxPower()

int8_t SX1280Chip::getTxPower ( )
inlineoverridevirtual

현재 설정된 송신 출력을 반환합니다.

Returns
송신 출력 (단위: dBm)

Implements PacketRadioChip.

131  {
132  return this->defTxPower;
133  }

◆ readFrame()

error_t SX1280Chip::readFrame ( RadioPacket frame)
overridevirtual

수신 버퍼에서 프레임을 읽습니다.

Returns
  • ERROR_SUCCESS : 성공
  • ERROR_FAIL : 실패 (수신한 프레임이 없음)
  • ERROR_INVALID_ARGS : frame 이 NULL 이거나, frame 내부 버퍼가 충분히 크지 않아서 실패

Implements PacketRadioChip.

◆ setChannel()

void SX1280Chip::setChannel ( uint32_t  channel)
inlineoverridevirtual

채널(주파수)를 Hz 단위로 설정합니다.

Parameters
channel2,400,000,000 ~ 2,500,000,000 사이의 주파수 (단위: Hz)

Implements PacketRadioChip.

140  {
141  this->defFreq = channel;
142  this->SetRfFrequency(channel);
143  }

◆ setTxPower()

void SX1280Chip::setTxPower ( int8_t  dBm)
inlineoverridevirtual

송신 출력을 설정합니다.

Parameters
dBm-18 ~ 13 사이의 송신 출력 (단위: dBm)

Implements PacketRadioChip.

127  {
128  this->defTxPower = dBm;
129  }

◆ transmit() [1/3]

error_t SX1280Chip::transmit ( FLRCFrame frame)

frame 을 전송합니다.

Parameters
frame전송할 프레임

frame의 power 가 -18 ~ 13 dBm 사이이면 해당 출력으로 송신됩니다. 그렇지 않으면 setTxPower() 로 설정한 세기로 송신됩니다.

frame의 freq 가 2.4 ~ 2.5 GHz 사이이면 해당 주파수로 송신됩니다. 그렇지 않으면 setChannel() 로 설정한 주파수로 송신됩니다.

frame의 br 이 FLRCFrame::BW_UNSPECIFIED 인 경우, setLoRaMode(), setFLRCMode(), setGFSKMode() 등에 의해 설정된 파라미터를 이용하여 전송됩니다. 이 경우 frambuf RadioPacket::len 만이 사용됩니다.

frame의 len 는 6~127 사이의 값이어야 합니다.

◆ transmit() [2/3]

error_t SX1280Chip::transmit ( LoRa2GHzFrame frame)

frame 을 전송합니다.

Parameters
frame전송할 프레임

frame의 power 가 -18 ~ 13 dBm 사이이면 해당 출력으로 송신됩니다. 그렇지 않으면 setTxPower() 로 설정한 세기로 송신됩니다.

frame의 freq 가 2.4 ~ 2.5 GHz 사이이면 해당 주파수로 송신됩니다. 그렇지 않으면 setChannel() 로 설정한 주파수로 송신됩니다.

frame의 sf LoRa2GHzFrame::SF_UNSPECIFIED 이거나, bw LoRa2GHzFrame::BW_UNSPECIFIED 인 경우, setLoRaMode(), setFLRCMode(), setGFSKMode() 등에 의해 설정된 파라미터를 이용하여 전송됩니다. 이 경우 frambuf RadioPacket::len 만이 사용됩니다.

◆ transmit() [3/3]

error_t SX1280Chip::transmit ( RadioPacket frame)
overridevirtual

frame 을 전송합니다.

Parameters
frame전송할 프레임 frame의 power 가 -18 ~ 13 dBm 사이이면 해당 출력으로 송신됩니다. 그렇지 않으면 setTxPower() 로 설정한 세기로 송신됩니다.

frame의 freq 가 2.4 ~ 2.5 GHz 사이이면 해당 주파수로 송신됩니다. 그렇지 않으면 setChannel() 로 설정한 주파수로 송신됩니다.

Implements PacketRadioChip.