Configuration of HMC703 automatic double path sweep mode

Hello! I am using HMC703 and HMC513 to design the scavenging module, the decimal mode can be locked, but the dual path automatic frequency sweep mode can not be realized. How does the dual automatic sweep mode register be configured? What are the requirements for the order of configuration?

  • I've attached a spreadsheet to help setup the sweep configuration.  I think by "dual automatic sweep mode" you mean "2 way auto" mode (set Reg 0x06[7:5]=111b).  The programming sequence is described on page 6-28 of the datasheet and the spreadsheet will give the correct values for Reg 0x0A, 0x0C and 0x0D depending on your sweep speed and reference frequency.

                     

    SweepStopFreqCalculatorRev3.xls
  • HIDouble scan mode is set according to the specification document, but it is still not possible to enter the mode. What's the reason, the following is me

    We used internal SPI triggering, but we never entered the dual automatic sweep mode. Please teach the solution.

     

    //Reg 01h 
    SPI_FLASH_CS=1; 
    SPI1_ReadWriteByte(0x02); 
    SPI1_ReadWriteByte(0x00); 
    SPI1_ReadWriteByte(0x00); 
    SPI1_ReadWriteByte(0x04); 
    delay_ms(50); 
    SPI_FLASH_CS=0; 
    delay_ms(100);


    ///////////////////////////////////
    //06h
    //////////////////////////////////////
    SPI_FLASH_CS=1; 
    SPI1_ReadWriteByte(0x0C); //
    SPI1_ReadWriteByte(0x00);
    SPI1_ReadWriteByte(0x7A);
    SPI1_ReadWriteByte(0x3C); 
    delay_ms(50); 
    SPI_FLASH_CS=0; //
    delay_ms(100);

    //02h 
    SPI_FLASH_CS=1; //
    SPI1_ReadWriteByte(0x04); //
    SPI1_ReadWriteByte(0x00); 
    SPI1_ReadWriteByte(0x00); 
    SPI1_ReadWriteByte(0x02); 
    delay_ms(50); 
    SPI_FLASH_CS=0; 
    delay_ms(100);

    //Reg 03h 
    SPI_FLASH_CS=1; 
    SPI1_ReadWriteByte(0x06); 
    SPI1_ReadWriteByte(0x00); 
    SPI1_ReadWriteByte(0x00); 
    SPI1_ReadWriteByte(0x68); 
    delay_ms(50); 
    SPI_FLASH_CS=0; 
    delay_ms(100);

    /Reg 04h 
    SPI_FLASH_CS=1; 
    SPI1_ReadWriteByte(0x08); 
    SPI1_ReadWriteByte(0x08); 
    SPI1_ReadWriteByte(0x00); 
    SPI1_ReadWriteByte(0x00);
    delay_ms(50); 
    SPI_FLASH_CS=0; 
    delay_ms(100);

    //Reg 05h 
    SPI_FLASH_CS=1; 
    SPI1_ReadWriteByte(0x0B); 
    SPI1_ReadWriteByte(0xBD); 
    SPI1_ReadWriteByte(0x5B); 
    SPI1_ReadWriteByte(0x7C); 
    delay_ms(50); 
    SPI_FLASH_CS=0;
    delay_ms(100); 

    //Reg 07h 
    SPI_FLASH_CS=1;
    SPI1_ReadWriteByte(0x0E); 
    SPI1_ReadWriteByte(0x20); 
    SPI1_ReadWriteByte(0x90); 
    SPI1_ReadWriteByte(0x8A); 
    delay_ms(50); 
    SPI_FLASH_CS=0; 
    delay_ms(100);


    //Reg 08h 
    SPI_FLASH_CS=1; 
    SPI1_ReadWriteByte(0x10);
    SPI1_ReadWriteByte(0x06); 
    SPI1_ReadWriteByte(0xDF); 
    SPI1_ReadWriteByte(0xFF); 
    delay_ms(50); 
    SPI_FLASH_CS=0; 
    delay_ms(100);

    //Reg 09h 
    SPI_FLASH_CS=1; 
    SPI1_ReadWriteByte(0x12); 
    SPI1_ReadWriteByte(0x6B); 
    SPI1_ReadWriteByte(0xFD); 
    SPI1_ReadWriteByte(0xFA); 
    delay_ms(50); 
    SPI_FLASH_CS=0; 
    delay_ms(100);

    //,Reg 0Bh 
    SPI_FLASH_CS=1; 
    SPI1_ReadWriteByte(0x16); 
    SPI1_ReadWriteByte(0x03); 
    SPI1_ReadWriteByte(0xC0); 
    SPI1_ReadWriteByte(0xE2); 
    delay_ms(50); 
    SPI_FLASH_CS=0; 
    delay_ms(100);

    //,Reg 0Fh 
    SPI_FLASH_CS=1; 
    SPI1_ReadWriteByte(0x1E); 
    SPI1_ReadWriteByte(0x00); 
    SPI1_ReadWriteByte(0x00); 
    SPI1_ReadWriteByte(0x2E); 
    delay_ms(50); 
    SPI_FLASH_CS=0; 
    delay_ms(100);

    //ÐReg 0Ah 
    SPI_FLASH_CS=1; 
    SPI1_ReadWriteByte(0x14); 
    SPI1_ReadWriteByte(0x00); 
    SPI1_ReadWriteByte(0x02); 
    SPI1_ReadWriteByte(0xA0); 
    delay_ms(50); 
    SPI_FLASH_CS=0; 
    delay_ms(100);

    //Reg 0Ch 
    SPI_FLASH_CS=1; 
    SPI1_ReadWriteByte(0x18); 
    SPI1_ReadWriteByte(0x00); 
    SPI1_ReadWriteByte(0x00); 
    SPI1_ReadWriteByte(0x6C); 
    delay_ms(50); 
    SPI_FLASH_CS=0;
    delay_ms(100);

    //дReg 0Dh ,
    SPI_FLASH_CS=1;
    SPI1_ReadWriteByte(0x1A); 
    SPI1_ReadWriteByte(0xFF); 
    SPI1_ReadWriteByte(0xFF); 
    SPI1_ReadWriteByte(0x00); 
    delay_ms(50); 
    SPI_FLASH_CS=0; 
    delay_ms(100);




    //////////////////////////
    //Reg 06h 
    //sweep
    //////////////////////////


    SPI_FLASH_CS=1; 
    SPI1_ReadWriteByte(0x0C); //·
    SPI1_ReadWriteByte(0x00); 
    SPI1_ReadWriteByte(0x7B); 
    SPI1_ReadWriteByte(0xFC); 
    delay_ms(50); 
    SPI_FLASH_CS=0;
    delay_ms(100);

    ////Reg 0Eh 
    SPI_FLASH_CS=1; 
    SPI1_ReadWriteByte(0x1C); 
    SPI1_ReadWriteByte(0x00); 
    SPI1_ReadWriteByte(0x00); 
    SPI1_ReadWriteByte(0x00); 
    delay_ms(50); 
    SPI_FLASH_CS=0; 
    delay_ms(100);

    SPI_FLASH_CS=1; 
    SPI1_ReadWriteByte(0x1C); 
    SPI1_ReadWriteByte(0x00); 
    SPI1_ReadWriteByte(0x00); 
    SPI1_ReadWriteByte(0x02); 
    delay_ms(50); 
    SPI_FLASH_CS=0; 
    delay_ms(1000);

    SPI_FLASH_CS=1; 
    SPI1_ReadWriteByte(0x1C); 
    SPI1_ReadWriteByte(0x00); 
    SPI1_ReadWriteByte(0x00); 
    SPI1_ReadWriteByte(0x00); 
    delay_ms(50); 
    SPI_FLASH_CS=0;
    delay_ms(100);

  • HI!Double scan mode is set according to the specification document, but it is still not possible to enter the mode. What's the reason, the following is me!

    We used internal SPI triggering, but we never entered the dual automatic sweep mode. Please teach the solution.

     

    //Reg 01h

    SPI_FLASH_CS=1;

    SPI1_ReadWriteByte(0x02);

    SPI1_ReadWriteByte(0x00);

    SPI1_ReadWriteByte(0x00);

    SPI1_ReadWriteByte(0x04);

    delay_ms(50);

    SPI_FLASH_CS=0;

    delay_ms(100);

    ///////////////////////////////////

    //06h

    //////////////////////////////////////

    SPI_FLASH_CS=1;

    SPI1_ReadWriteByte(0x0C); //

    SPI1_ReadWriteByte(0x00);

    SPI1_ReadWriteByte(0x7A);

    SPI1_ReadWriteByte(0x3C);

    delay_ms(50);

    SPI_FLASH_CS=0; //

    delay_ms(100);

    //02h

    SPI_FLASH_CS=1; //

    SPI1_ReadWriteByte(0x04); //

    SPI1_ReadWriteByte(0x00);

    SPI1_ReadWriteByte(0x00);

    SPI1_ReadWriteByte(0x02);

    delay_ms(50);

    SPI_FLASH_CS=0;

    delay_ms(100);

    //Reg 03h

    SPI_FLASH_CS=1;

    SPI1_ReadWriteByte(0x06);

    SPI1_ReadWriteByte(0x00);

    SPI1_ReadWriteByte(0x00);

    SPI1_ReadWriteByte(0x68);

    delay_ms(50);

    SPI_FLASH_CS=0;

    delay_ms(100);

    /Reg 04h

    SPI_FLASH_CS=1;

    SPI1_ReadWriteByte(0x08);

    SPI1_ReadWriteByte(0x08);

    SPI1_ReadWriteByte(0x00);

    SPI1_ReadWriteByte(0x00);

    delay_ms(50);

    SPI_FLASH_CS=0;

    delay_ms(100);

    //Reg 05h

    SPI_FLASH_CS=1;

    SPI1_ReadWriteByte(0x0B);

    SPI1_ReadWriteByte(0xBD);

    SPI1_ReadWriteByte(0x5B);

    SPI1_ReadWriteByte(0x7C);

    delay_ms(50);

    SPI_FLASH_CS=0;

    delay_ms(100);

    //Reg 07h

    SPI_FLASH_CS=1;

    SPI1_ReadWriteByte(0x0E);

    SPI1_ReadWriteByte(0x20);

    SPI1_ReadWriteByte(0x90);

    SPI1_ReadWriteByte(0x8A);

    delay_ms(50);

    SPI_FLASH_CS=0;

    delay_ms(100);

    //Reg 08h

    SPI_FLASH_CS=1;

    SPI1_ReadWriteByte(0x10);

    SPI1_ReadWriteByte(0x06);

    SPI1_ReadWriteByte(0xDF);

    SPI1_ReadWriteByte(0xFF);

    delay_ms(50);

    SPI_FLASH_CS=0;

    delay_ms(100);

    //Reg 09h

    SPI_FLASH_CS=1;

    SPI1_ReadWriteByte(0x12);

    SPI1_ReadWriteByte(0x6B);

    SPI1_ReadWriteByte(0xFD);

    SPI1_ReadWriteByte(0xFA);

    delay_ms(50);

    SPI_FLASH_CS=0;

    delay_ms(100);

    //,Reg 0Bh

    SPI_FLASH_CS=1;

    SPI1_ReadWriteByte(0x16);

    SPI1_ReadWriteByte(0x03);

    SPI1_ReadWriteByte(0xC0);

    SPI1_ReadWriteByte(0xE2);

    delay_ms(50);

    SPI_FLASH_CS=0;

    delay_ms(100);

    //,Reg 0Fh

    SPI_FLASH_CS=1;

    SPI1_ReadWriteByte(0x1E);

    SPI1_ReadWriteByte(0x00);

    SPI1_ReadWriteByte(0x00);

    SPI1_ReadWriteByte(0x2E);

    delay_ms(50);

    SPI_FLASH_CS=0;

    delay_ms(100);

    //ÐReg 0Ah

    SPI_FLASH_CS=1;

    SPI1_ReadWriteByte(0x14);

    SPI1_ReadWriteByte(0x00);

    SPI1_ReadWriteByte(0x02);

    SPI1_ReadWriteByte(0xA0);

    delay_ms(50);

    SPI_FLASH_CS=0;

    delay_ms(100);

    //Reg 0Ch

    SPI_FLASH_CS=1;

    SPI1_ReadWriteByte(0x18);

    SPI1_ReadWriteByte(0x00);

    SPI1_ReadWriteByte(0x00);

    SPI1_ReadWriteByte(0x6C);

    delay_ms(50);

    SPI_FLASH_CS=0;

    delay_ms(100);

    //дReg 0Dh ,

    SPI_FLASH_CS=1;

    SPI1_ReadWriteByte(0x1A);

    SPI1_ReadWriteByte(0xFF);

    SPI1_ReadWriteByte(0xFF);

    SPI1_ReadWriteByte(0x00);

    delay_ms(50);

    SPI_FLASH_CS=0;

    delay_ms(100);

    //////////////////////////

    //Reg 06h

    //sweep

    //////////////////////////

    SPI_FLASH_CS=1;

    SPI1_ReadWriteByte(0x0C); //·

    SPI1_ReadWriteByte(0x00);

    SPI1_ReadWriteByte(0x7B);

    SPI1_ReadWriteByte(0xFC);

    delay_ms(50);

    SPI_FLASH_CS=0;

    delay_ms(100);

    ////Reg 0Eh

    SPI_FLASH_CS=1;

    SPI1_ReadWriteByte(0x1C);

    SPI1_ReadWriteByte(0x00);

    SPI1_ReadWriteByte(0x00);

    SPI1_ReadWriteByte(0x00);

    delay_ms(50);

    SPI_FLASH_CS=0;

    delay_ms(100);

    SPI_FLASH_CS=1;

    SPI1_ReadWriteByte(0x1C);

    SPI1_ReadWriteByte(0x00);

    SPI1_ReadWriteByte(0x00);

    SPI1_ReadWriteByte(0x02);

    delay_ms(50);

    SPI_FLASH_CS=0;

    delay_ms(1000);

    SPI_FLASH_CS=1;

    SPI1_ReadWriteByte(0x1C);

    SPI1_ReadWriteByte(0x00);

    SPI1_ReadWriteByte(0x00);

    SPI1_ReadWriteByte(0x00);

    delay_ms(50);

    SPI_FLASH_CS=0;

    delay_ms(100);

  • Some of your code does not match the values in your table.  For example Reg 3 in your table is set to 0x13E but the code sets the register to 0x34.  In any case your code has set the following:

    Start frequency Nint=0x34, Nfrac=0x008000.

    Stop frequency Nint=0x36, Nfrac=0x7FFF80.

    Fractional step size = 0x150

    This fractional step size does not fall on the stop frequency boundary.  This is required from step 5 shown above.