[CC1101] Added missing RF switch control

This commit is contained in:
jgromes 2020-06-20 17:03:34 +02:00
parent 56360a2a05
commit 05f1e998d7

View file

@ -139,11 +139,18 @@ int16_t CC1101::receive(uint8_t* data, size_t len) {
} }
int16_t CC1101::standby() { int16_t CC1101::standby() {
// set idle mode
SPIsendCommand(CC1101_CMD_IDLE); SPIsendCommand(CC1101_CMD_IDLE);
// set RF switch (if present)
_mod->setRfSwitchState(LOW, LOW);
return(ERR_NONE); return(ERR_NONE);
} }
int16_t CC1101::transmitDirect(uint32_t frf) { int16_t CC1101::transmitDirect(uint32_t frf) {
// set RF switch (if present)
_mod->setRfSwitchState(LOW, HIGH);
// user requested to start transmitting immediately (required for RTTY) // user requested to start transmitting immediately (required for RTTY)
if(frf != 0) { if(frf != 0) {
SPIwriteRegister(CC1101_REG_FREQ2, (frf & 0xFF0000) >> 16); SPIwriteRegister(CC1101_REG_FREQ2, (frf & 0xFF0000) >> 16);
@ -163,6 +170,9 @@ int16_t CC1101::transmitDirect(uint32_t frf) {
} }
int16_t CC1101::receiveDirect() { int16_t CC1101::receiveDirect() {
// set RF switch (if present)
_mod->setRfSwitchState(HIGH, LOW);
// activate direct mode // activate direct mode
int16_t state = directMode(); int16_t state = directMode();
RADIOLIB_ASSERT(state); RADIOLIB_ASSERT(state);
@ -233,7 +243,7 @@ int16_t CC1101::startTransmit(uint8_t* data, size_t len, uint8_t addr) {
SPIwriteRegisterBurst(CC1101_REG_FIFO, data, len); SPIwriteRegisterBurst(CC1101_REG_FIFO, data, len);
// set RF switch (if present) // set RF switch (if present)
_mod->setRfSwitchState(true); _mod->setRfSwitchState(LOW, HIGH);
// set mode to transmit // set mode to transmit
SPIsendCommand(CC1101_CMD_TX); SPIsendCommand(CC1101_CMD_TX);
@ -253,7 +263,7 @@ int16_t CC1101::startReceive() {
RADIOLIB_ASSERT(state); RADIOLIB_ASSERT(state);
// set RF switch (if present) // set RF switch (if present)
_mod->setRfSwitchState(false); _mod->setRfSwitchState(HIGH, LOW);
// set mode to receive // set mode to receive
SPIsendCommand(CC1101_CMD_RX); SPIsendCommand(CC1101_CMD_RX);