AnsweredAssumed Answered

AD9912 Register settings

Question asked by Mr.Brouwer on Aug 1, 2018
Latest reply on Aug 3, 2018 by Mr.Brouwer

Having the AD9912 with a SI5351 at 25Mhz/670mV/pp as input for the DDS.

The communication is working ok (I guess) I have a start frequence S4-S1 (0,1,0,0)

so I get the 77,75879Mhz. After a software 1-time run of updating the registers the frequency changes

to +/- 85,560Mhz. Here after doing a FTW programming, but no frequency is changed.

Do I need something to do with S4-S1 after startup? Or do I have my registers not good?

The datasheet is a bit unclear in my vision about this and setting multipliers.

 

/////////////////////////////////////////////////////
//                                                 //
// Power-down & enable                             //
// Register 0x0010 default 0xC0 or 0xD0 [2]        //
//                                                 //
/////////////////////////////////////////////////////

 

  uint8_t Powerdown_digital      = 0;       // bit 0
  uint8_t Powerdown_full         = 0;       // bit 1
  uint8_t Not_used_1             = 0;       // bit 2
  uint8_t Not_used_2             = 0;       // bit 3
  uint8_t Powerdown_sysclock_pll = 0;       // bit 4*
  uint8_t Enable_output_doubler  = 0;       // bit 5*
  uint8_t Enable_CMOS            = 0;       // bit 6*
  uint8_t Powerdown_HSTL         = 1;       // bit 7

 

/////////////////////////////////////////////////////
//                                                 //
// Register 0x0012 default 0x00 [3]                //
//                                                 //
/////////////////////////////////////////////////////

 

  uint8_t Reset_DDS              = 0;       // bit 0

 

/////////////////////////////////////////////////////
//                                                 //
// Power-down & reset                              //
// Register 0x0013 default 0x00 [4]                //
//                                                 //
/////////////////////////////////////////////////////

 

  uint8_t Not_used_3             = 0;       // bit 0
  uint8_t Reset_sdivider         = 0;       // bit 1
  uint8_t Not_used_4             = 0;       // bit 2
  uint8_t Reset_sdivider2        = 0;       // bit 3
  uint8_t Not_used_5             = 0;       // bit 4
  uint8_t Not_used_6             = 0;       // bit 5
  uint8_t Not_used_7             = 0;       // bit 6
  uint8_t Powerdown_fund_DDS     = 0;       // bit 7

 

/////////////////////////////////////////////////////
//                                                 //
// System clock N-divider                          //
// Register 0x0020 default 0x12 [5]                //
// 25Mhz = 20                                      //
/////////////////////////////////////////////////////

 

  uint8_t N_divider0             = 0;       // bit 0*
  uint8_t N_divider1             = 0;       // bit 1*
  uint8_t N_divider2             = 1;       // bit 2*
  uint8_t N_divider3             = 0;       // bit 3*
  uint8_t N_divider4             = 1;       // bit 4*
  uint8_t Not_used_8             = 0;       // bit 5
  uint8_t Not_used_9             = 0;       // bit 6
  uint8_t Not_used_10            = 0;       // bit 7

 

/////////////////////////////////////////////////////
//                                                 //
// PLL parameters                                  //
// Register 0x0022 default 0x04 [6]                //
//                                                 //
/////////////////////////////////////////////////////

 

  uint8_t Charge_pump1           = 0;       // bit 0*
  uint8_t Charge_pump2           = 0;       // bit 1*
  uint8_t VCO_range              = 1;       // bit 2
  uint8_t Reference_2x           = 0;       // bit 3*
  uint8_t Not_used_11            = 0;       // bit 4
  uint8_t Not_used_12            = 0;       // bit 5
  uint8_t Not_used_13            = 0;       // bit 6
  uint8_t VCO_autorange          = 0;       // bit 7

Outcomes