Hi guys,
I was working to get RadioHead lib same settings than RFM69 library (because I noticed that I've got better results with RFM69 lib defaults settings than with RadioHead defaults)
When I was looking at datasheet on the 3 registers of frequency (0x07, 0x08, 0x09) there are 3 possibilities on RFM69.h file, theese are :
#define RF_FRFMSB_433 0x6C
#define RF_FRFMID_433 0x40
#define RF_FRFLSB_433 0x00
#define RF_FRFMSB_434 0x6C
#define RF_FRFMID_434 0x80
#define RF_FRFLSB_434 0x00
#define RF_FRFMSB_435 0x6C
#define RF_FRFMID_435 0xC0
#define RF_FRFLSB_435 0x00
So for
433MHz = 0x6C4000 => frf=7094272 decimal
434MHz = 0x6C8000 => frf=7110656 decimal
435MHz = 0x6CC000 => frf=7127040 decimal
but when I apply formula on datasheet page saying frequency = frf * fstep
Frequency synthesizer step FSTEP = FXOSC/2^19 = 61.0Hz
433MHz = 7094272*61 = 432.750592 MHz
434MHz = 7110656*61 = 433.750016 MHz
435MHz = 7127040*61 = 434.749440 MHz
So let me know if I'm wrong but I think the real values should be
#define RF_FRFMSB_433 0x6C
#define RF_FRFMID_433 0x4F
#define RF_FRFLSB_433 0xF8
#define RF_FRFMSB_434 0x6C
#define RF_FRFMID_434 0x90
#define RF_FRFLSB_434 0x02
#define RF_FRFMSB_435 0x6C
#define RF_FRFMID_435 0xD0
#define RF_FRFLSB_435 0x0B
Of course I totally understand no change will be done to avoid any board effect, but it's just to know.
I think it's not really a problem, but I'm just wondering is there is any reason for this ?
Anyway, for RadioHead to be compatible (just for frequency) you need to setFrequency(432.75) and not setFrequency(433.0) as you would expect