AD9914在扫频模式下的跳频输出

CFR2 设置为00 0E 40 00,同时增加了寄存器OX09和OX0A,测试时输出不调频,问题出在哪了

  • 0
    •  Analog Employees 
    on Nov 28, 2019 7:44 AM over 1 year ago

    Hi,

    With this CFR2 setup, there will be a digital ramp that has frequency jump that does not dell high or low. Registers 0x09 and 0x0A only programs the lower and upper values of the frequency jump. Registers 0x04, 0x05, 0x06, 0x07 and 0x08, should be programmed for the digital ramp lower limit, upper limit, rising ramp step size, falling ramp step size and ramp rate, respectively. With this, the ramp will start from the lower limit (0x04) using the rising step size (0x06) and ramp rate (0x08 [15:0]) up until the lower value of the frequency jump (0x09). Then the ramp instantly jumps to the upper value of the frequency jump (0x0A) and continues to ramp up until the upper limit (0x05). Once the ramp reaches the upper limit, it ramps down using the falling step size (0x07) and falling ramp rate (0x08 [16:31]) up until the upper value of the frequency jump (0x0A). Then the ramp instantly jumps to the lower value of the frequency jump (0x09) and continues to ramp down until the lower limit (0x04). After reaching the lower limit, the ramp goes up again.

    Best regards,

    Mark

  • My frequency sweep function is normal. 0x01 ~ 0A registers are set as follows

    //------CFR1--------------------------------------------------------------------------------
    RegisterData_DDS[3] = 0x00;
    RegisterData_DDS[2] = 0x01;
    RegisterData_DDS[1] = 0xC0;
    RegisterData_DDS[0] = 0x00;
    WriteToAD9914ViaSpi(0x00,4,RegisterData_DDS);//#define CFR1 0x00 //控制功能寄存器1(32位)

    //------CFR2--------------------------------------------------------------------------------
    RegisterData_DDS[3] = 0x00;
    RegisterData_DDS[2] = 0x0E;//选择驻留或者非驻留
    RegisterData_DDS[1] = 0x40;//扫频模式下的跳频使能
    RegisterData_DDS[0] = 0x00;
    WriteToAD9914ViaSpi(0x01,4,RegisterData_DDS);//#define CFR2 0x00 //控制功能寄存器1(32位)

    //------CFR3--------------------------------------------------------------------------------

    RegisterData_DDS[3] = 0x00;
    RegisterData_DDS[2] = 0x00;
    RegisterData_DDS[1] = 0x00;
    RegisterData_DDS[0] = 0x00;//电荷泵电流选择
    WriteToAD9914ViaSpi(0x02,4,RegisterData_DDS);//#define CFR3 0x00 //控制功能寄存器1(32位)

    //------CFR4--------------------------------------------------------------------------------
    RegisterData_DDS[3] = 0x01;
    RegisterData_DDS[2] = 0x05;
    RegisterData_DDS[1] = 0x31;
    RegisterData_DDS[0] = 0x20;
    WriteToAD9914ViaSpi(0x03,4,RegisterData_DDS);//#define CFR3 0x00 //控制功能寄存器1(32位)

    //------数字斜坡下限值寄存器--------------------------------------------------------------------------------
    RegisterData_DDS[3] = 0x15;
    RegisterData_DDS[2] = 0xF1;
    RegisterData_DDS[1] = 0x5F;
    RegisterData_DDS[0] = 0x15;
    WriteToAD9914ViaSpi(0x04,4,RegisterData_DDS);//#define 数字斜坡下限值寄存器 300MHz

    //------数字斜坡上限值寄存器--------------------------------------------------------------------------------
    RegisterData_DDS[3] = 0x49;
    RegisterData_DDS[2] = 0x24;
    RegisterData_DDS[1] = 0x92;
    RegisterData_DDS[0] = 0x4A;
    WriteToAD9914ViaSpi(0x05,4,RegisterData_DDS);//#define 数字斜坡上限值寄存器 1000MHz

    //------上升数字斜坡步长寄存器--------------------------------------------------------------------------------
    RegisterData_DDS[3] = 0x00;
    RegisterData_DDS[2] = 0x00;
    RegisterData_DDS[1] = 0x0E;
    RegisterData_DDS[0] = 0x5E;
    WriteToAD9914ViaSpi(0x06,4,RegisterData_DDS);//#define 上升数字斜坡步长寄存器(频率M*1.2271335131428571428571428571429)


    //------下降数字斜坡步长寄存器--------------------------------------------------------------------------------
    RegisterData_DDS[3] = 0x00;
    RegisterData_DDS[2] = 0x00;
    RegisterData_DDS[1] = 0x0E;
    RegisterData_DDS[0] = 0x5E;
    WriteToAD9914ViaSpi(0x07,4,RegisterData_DDS);//#define 下降数字斜坡步长寄存器
    //1E7个点

    //------数字斜坡斜率寄存器--------------------------------------------------------------------------------
    RegisterData_DDS[3] = 0x00;
    RegisterData_DDS[2] = 0x10;
    RegisterData_DDS[1] = 0x00;
    RegisterData_DDS[0] = 0x10;
    WriteToAD9914ViaSpi(0x08,4,RegisterData_DDS);//#define 数字斜坡斜率寄存器(时间M*6.8571428571428571428571428571429-9)


    //------最低跳频寄存器--------------------------------------------------------------------------------
    RegisterData_DDS[3] = 0x24;
    RegisterData_DDS[2] = 0x92;
    RegisterData_DDS[1] = 0x49;
    RegisterData_DDS[0] = 0x24;
    WriteToAD9914ViaSpi(0x09,4,RegisterData_DDS);//

    //------最高跳频寄存器--------------------------------------------------------------------------------
    RegisterData_DDS[3] = 0x3A;
    RegisterData_DDS[2] = 0x83;
    RegisterData_DDS[1] = 0xA8;
    RegisterData_DDS[0] = 0x3B;
    WriteToAD9914ViaSpi(0x0A,4,RegisterData_DDS);