On the transmit side, it has two triangle wave synthesizers. The frequency of one can be altered by the data in pin, and the other one can be mixed in for DTMF.
On the receive side, it takes the input, heterodynes it with some square waves, and then filters I and Q over a 31 tap FIR filter. Finally, a phase detector is applied, that output is differentiated, and filtered for glitches. The noise immunity of this approach is questionable.
# | Input | Output |
---|---|---|
0 | clock | data_out |
1 | reset | valid_out |
2 | cs_n | samples_out[0] |
3 | sck | samples_out[1] |
4 | mosi | samples_out[2] |
5 | data_in | samples_out[3] |
6 | samples_out[4] | |
7 | samples_in | samples_out[5] |