Yes, I've been looking at the sx1231h as well. The RxBx > 2*Fdev rule didn't come from there, or the RFM69CW spec, I found it on a post which I'm now questioning.
The sx1231h datasheet says that the 20dB bandwidth of a modulated signal is 2*(Fdev + BR/2). If RxBw is actually the sideband bandwidth, and there are two sidebands, then RxBw is half that, i.e. Fdev + BR/2. This formula actually comes from Carson's rule, Bt = 2(Fdelta + Fm) where Fdelta is the maximum deviation from the centre frequency (i.e. Fdev), and Fm is the modulation frequency, but the maximum modulation frequency is half the bit rate (i.e. BR/2) when transmitted as an alternating sequence of 0's and 1's. Bt contains ~98% of the energy of the transmission.
So it appears the optimum bandwidth RxBw = Fdev + BR/2, and RxBw must be equal or greater to this. Just to confirm this thinking, there is a restriction that
Fdev + BR/2 < 500kHz, and 500kHz happens to be the maximum you can select for RxBw. It all fits..!
That's not the full story though as there could be a local oscillator offset (i.e. difference between transmitters LO and the receiver's LO), and that needs to be taken into account:
If not using AFC:
RxBw >= Fdev + BR/2 + LOoffset.
If using AFC you can program the RxBwAfc independently (although I'm not sure how this effects the sensitivity, it can't be made too wide either or you risk 'capturing' an adjacent channel transmission):
RxBw >= Fdev + BR/2
RxBwAfc >= Fdev + BR/2 + LOoffset
The crystal oscillator specification used on the RFM69 hasn't been disclosed by HopeRf, but has been empirically sampled by this guy who came to the conclusion that the deviation from worst case low frequency to worst case high frequency was around 10ppm at constant temperature/voltage, and at 868MHz this is around 8.68kHz. Very worst case is probably 20ppm, i.e. 17.36kHz as these are probably +/-10ppm crystals.
http://jeelabs.net/boards/6/topics/4624So the final set of rules I think looks like this (if using AFC):
1) 0.5 <= 2 * Fdev/BR <= 10 (modulation index, MI)
2) BR < 2*RxBw (bit rate)
3) RxBw >= Fdev + BR/2 (receiver bandwidth)
4) RxBwAfc >= Fdev + BR/2 + LOoffset (receiver AFC bandwidth)
5) Fdev + BR/2 < 500kHz (maximum RxBw setting)
Or this (if not using AFC):
1) 0.5 <= 2 * Fdev/BR <= 10 (modulation index, MI)
2) BR < 2*RxBw (bit rate)
3) RxBw >= Fdev + BR/2 + LOoffset (receiver bandwidth)
4) Fdev + BR/2 < 500kHz (maximum RxBw setting)
BTW the sx1231h appears to be rebadged by Microchip as MRF39RA, and also Freescale's MKW01Z128 and MC12311 look similar. The Freescale datasheets can sometimes be a little clearer to read.
I'm hoping someone can test this theory out with some range tests, I will be doing some tests at some point when I get some more hardware. Any comments on this welcomed.
Mark.