Ok Dan, here you go. 😉
A short summary of my attempts to control the tuner modules of widely spread 1.3GHz FPV receivers.
The description covers the receivers coming with two sets shown below:
The first one is a 23 channel receiver, the second a 4 channel only.
Both receivers are equipped with the same tuner module which uses a TA1322FN down converter. The tuner module is driven by a micro-controller via I2C bus. Details about the internal I2C bus protocol can be found in the TA1322FN datasheet.
The tuner module is set by a single 4 byte data frame in both receivers.
The following is an example from the 4 channel receiver setting the receiving frequency to 1080Mhz:
Data frame send to tuner: 0xC2 0x30 0xBC 0x8E
Split up in accordance with the datasheet:
ADDR 1 1 0 0 0 0 1 0 = 0xC2 MA1 MA0 R/W DIV1 0 0 1 1 0 0 0 0 = 0x30 N14 N13 N12 N11 N10 N09 N08 DIV2 1 0 1 1 1 1 0 0 = 0xBC N07 N06 N05 N04 N03 N02 N01 N00 CTRL 1 0 0 0 1 1 1 0 = 0x8E CP T1 T0 TS2 TS1 TS0 OS
ADDR = tuner module I2C address
DIV1 & DIV2 = PLL divider
CTRL = PLL control byte
Band switch byte is not send and therefore not used.
From the control byte the PLL is set to:
– 50uA charge pump current
– normal operation mode & charge pump on
– reference divider 1/64 resulting in 62.5 KHz reference frequency
The divider is set to 12476. With the following math it´s possible to calculate the reception frequency:
fosc = 2 x fr x divider = 2 x 62.5 KHz x 12476 = 1559.5 MHz
To high? No, you must subtract the 1. IF with 480 MHz, so 1559.5 MHz – 480 MHz = 1079.5 MHz
The 23channel receiver uses a slightly different data frame 0xC2 0x30 0xC8 0x8E which results in a reception frequency of 1081 MHz.
For my tests I used a USB-I2C interface. The USB-ISS from robot-electronics.co.uk is very handy for this purpose and supports not only I2C but also other bus types.
VS2010 Source code for PC based MFC program is attached to this post. The program will just let you set the reception frequency in a range from 850 MHz to 2200 MHz.