diff options
| author | Sadeep Madurange <sadeep@asciimx.com> | 2024-11-23 20:03:18 +0800 |
|---|---|---|
| committer | Sadeep Madurange <sadeep@asciimx.com> | 2024-11-23 20:03:18 +0800 |
| commit | cbe4ea329552b9ca5eb35dccd5b180f7658781ce (patch) | |
| tree | 4ef34988ff846c3c5d24a3f6be462a53c0856975 /rf_test/rfm.c | |
| parent | 96631bbf2575ad3fa28d3ecb7fcd970accd07615 (diff) | |
| download | smart-home-cbe4ea329552b9ca5eb35dccd5b180f7658781ce.tar.gz | |
wip: RFM69
Diffstat (limited to 'rf_test/rfm.c')
| -rw-r--r-- | rf_test/rfm.c | 41 |
1 files changed, 41 insertions, 0 deletions
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) +{ + +} |
