Adding cc1101_power_down() to CC1101 driver
authorNathael Pajani <nathael.pajani@ed3l.fr>
Tue, 27 Sep 2016 21:09:32 +0000 (23:09 +0200)
committerNathael Pajani <nathael.pajani@ed3l.fr>
Tue, 8 Nov 2022 16:03:05 +0000 (17:03 +0100)
extdrv/cc1101.c
include/extdrv/cc1101.h

index 3dd40c6..9649da8 100644 (file)
@@ -389,6 +389,18 @@ void cc1101_set_channel(uint8_t chan)
        cc1101_write_reg(CC1101_REGS(channel_number), chan);
 }
 
+/* Enter power down mode
+ * Power down mode is exited by setting the chip select pin low (any access to the CC1101 will do so)
+ */
+void cc1101_power_down(void)
+{
+       cc1101_send_cmd(CC1101_CMD(state_idle));
+       msleep(1);
+       cc1101_send_cmd(CC1101_CMD(crystal_off));
+       msleep(1);
+       cc1101_send_cmd(CC1101_CMD(state_power_down));
+}
+
 /* Change a configuration byte.
  * This function places the CC1101 chip in idle state.
  */
index 3a50a13..39bb688 100644 (file)
@@ -267,6 +267,11 @@ void cc1101_set_address(uint8_t address);
  */
 void cc1101_set_channel(uint8_t chan);
 
+/* Enter power down mode
+ * Power down mode is exited by setting the chip select pin low (any access to the CC1101 will do so)
+ */
+void cc1101_power_down(void);
+
 /* Change a configuration byte.
  * This function places the CC1101 chip in idle state.
  */