Although there is no explicit AFSK demodulation support on our Si446x product portfolio, with a carefully chosen receive configuration and a piece of decoding SW running on the host MCU it may be pulled off.
AFSK modulation is typically two audio tones 2FSK modulated onto a carrier. One tone represents marking the other spacing.
Form the EZRadioPro receiver’s perspective an AFSK signal is an FSK signal whose DR changes with the two audio tones’ frequency. As an example take the Bell 202 modulation format where one audio frequency is 1200 Hz while the other is 2200 Hz. From the receiver’s perspective these signals translate to 2400 bps and 4400 bps DR streams, respectively. The reason the DR is twice as much as the audio tone frequency is that a full cycle on the audio tone translates to two bits: a 1 and 0 (or vice versa).
There are a couple of limitations on EZRadiPro that make the demodulation of such a signal troublesome. (1) EZRadioPro’s receive architecture is designed to operate on a single data rate throughout the whole radio packet and (2) there are no analog signals available from anywhere within the demodulation process, only digital signals come out.
The solution to overcome above issues is:
The limitations (and their mitigation) of above solution are:
The ultimate question after such a receive algorithm implementation is sensitivity. You will have to verify this for yourself on your own implementation.
From WDS start off from a direct Rx mode project with above considerations and you can start measuring straight away. As a 1st check hook up your GPIOs with both RX_DATA and RX_RAW_DATA on a scope (that is triggered off of the beginning of the AFSK packet in air) and observe (eyeball) the signal quality. Change the input power level and check where the signals fall apart, this quick experiment will give you a 1st feeling on sensitivity performance.