From cbe4ea329552b9ca5eb35dccd5b180f7658781ce Mon Sep 17 00:00:00 2001 From: Sadeep Madurange Date: Sat, 23 Nov 2024 20:03:18 +0800 Subject: wip: RFM69 --- rf_test/rfm.c | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 rf_test/rfm.c (limited to 'rf_test/rfm.c') diff --git a/rf_test/rfm.c b/rf_test/rfm.c new file mode 100644 index 0000000..1b88773 --- /dev/null +++ b/rf_test/rfm.c @@ -0,0 +1,41 @@ +#include "rfm.h" +#include "spi.h" + +#define READ_MASK 0x7F +#define WRITE_MASK 0x80 + +static inline void send_cmd(uint8_t addr, uint8_t val) +{ + uint8_t ra, wa; + + ra = addr | READ_MASK; + wa = addr | WRITE_MASK; + + while (spi_recv(ra) != val) + spi_send(wa, val); +} + +void rfm_init(uint8_t addr) +{ + spi_init(); + + // mode: standby + packet + send_cmd(0x01, 0x44); + + // rx interrupt on DPIO0 + send_cmd(0x25, 0x40); + send_cmd(0x26, 0x07); + + // packet format: 8 bits + whitening + crc + addr filtering + send_cmd(0x37, 0x52); + send_cmd(0x38, 0x08); + send_cmd(0x38, addr); + + // disable encryption + send_cmd(0x3D, 0x02); +} + +void rfm_send(uint8_t addr, uint8_t data) +{ + +} -- cgit v1.2.3