Add cc1101_send_calibration_request() and cc1101_enter_fstxon_state() functions
authorNathael Pajani <nathael.pajani@ed3l.fr>
Thu, 17 Sep 2015 19:00:11 +0000 (21:00 +0200)
committerNathael Pajani <nathael.pajani@ed3l.fr>
Tue, 8 Nov 2022 16:03:04 +0000 (17:03 +0100)
extdrv/cc1101.c
include/extdrv/cc1101.h

index 939dba3..5f81055 100644 (file)
@@ -174,7 +174,15 @@ static uint8_t cc1101_enter_tx_mode(void)
        return 0;
 }
 
+void cc1101_enter_fstxon_state(void)
 {
+       uint8_t status = (cc1101_read_status() & CC1101_STATE_MASK);
+       if (status != CC1101_STATE_FSTON) {
+               if ((status != CC1101_STATE_TX) && (status != CC1101_STATE_RX)) {
+                       cc1101_send_cmd(CC1101_CMD(state_idle));
+               }
+               cc1101_send_cmd(CC1101_CMD(start_freq_synth));
+       }
 }
 
 
@@ -197,6 +205,12 @@ uint8_t cc1101_get_link_quality(void)
 }
 
 
+/* Request a calibration */
+void cc1101_send_calibration_request(void)
+{
+       cc1101_send_cmd(CC1101_CMD(synth_calibration));
+}
+
 /***************************************************************************** */
 /* Rx fifo state :
  * Return 0 when fifo is empty, or number of remaining bytes when non empty and no
index 396e721..d3a02eb 100644 (file)
@@ -186,6 +186,8 @@ uint8_t cc1101_read_pkt_status(void);
 /***************************************************************************** */
 /* Enter Rx mode */
 void cc1101_enter_rx_mode(void);
+/* Prepare for entering Tx mode by moving to FSTXON state */
+void cc1101_enter_fstxon_state(void);
 
 
 /***************************************************************************** */
@@ -196,6 +198,8 @@ uint8_t cc1101_get_signal_strength_indication(void);
 /* Return the link quality indication based in the last packet received */
 uint8_t cc1101_get_link_quality(void);
 
+/* Request a calibration */
+void cc1101_send_calibration_request(void);
 
 /***************************************************************************** */
 /* Rx fifo state :