Controlling a FPV receiver tuner module

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:

1.3 GHz Wireless AV Receiver

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 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.

FPV Receiver tuner control
FPV Receiver tuner control
Version: 1.0
207.6 KB
FPV Receiver tuner control
FPV Receiver tuner control
Version: 1.0
207.6 KB

5 thoughts on “Controlling a FPV receiver tuner module

  1. ontrol my FPV transmitter (TSA5520 PLL) in flight with Arduino:)

    Receiver is controled same time on same frequency.

    divider = mhz * 1000000 / prescaler / (xtal / referencedivider);
    divider = 1010 * 1000000 / 8 / (8000000 / 640);

  2. Hi there,
    I found your page looking for info on how to re-program the channels on a 1.2-1.3GHz FPV receiver.
    question: would it also be possible to change the channels on a standard chinese video transmitter (like the one you have pictured above)??? I’d like to be able to purchase any generic chinese transmitter and have the channels match those on my receiver…

    • Possible, but requires a complete new circuit and programming.
      Might be possible that you need a customized circuit for each transmitter, depending on it’s internal hardware.

  3. question:
    where did you get the 480MHz value that you needed to subtract in order to find the final frequency? I checked the entire datasheet, but couldn’t see how you came about that value or where you found the formula that described the need to subtract it from the calculated intermediate frequency value.

    • First measured, second verified by I2C configuration and PLL frequency calculation. I believe the IF frequency depends on the reference crystal and is a multiple of its fundamental.

Leave a Reply

Your email address will not be published. Required fields are marked *

Comments will be moderated! Spam deleted immediately!
Before you submit form:
Human test by Not Captcha