Post Go back to editing

How to use AD9548 generate 1pps

Category: Hardware
Product Number: AD9548

Hello, I recently used the AD9548 evaluation board to generate 1hz and 10Mhz signals, using the external 10Mhz OCXO as the system clock and REFA reference as 1pps. The problem is that I don't know how to modify the ad9548 circuit board, and I don't have a good DPLL configuration yet. If you can help me, I would be very grateful. This is very helpful to my work.

[edited by: GenevaCooper at 1:07 PM (GMT -4) on 14 Sep 2023]
  • Hi,

    I recommend using the AD9545 to lock onto 1PPS clocks. The AD9548 is the older generation of products and it does not make sense to develop a new product using an old generation product.


  • Hello, I haven't passed this question in a long time. At present, I have produced a PCB circuit board, and I want to configure the AD9548 chip through the CPU (microcontroller), and the ultimate goal is to configure all registers. I have two questions:

    1. Now I want to verify whether the SPI communication between the controller and the chip is established, for example, I want to read the device ID number of the chip, its register address is 0X0003, the default value is 0X48, how should I operate?

    2. After establishing SPI communication, how to write operations?

    I will attach relevant pictures,please give me some advice.


    Thank you very much.


  • Hi, 

    the AD9548 rev G data sheet that you can download from here:

    contains a section at page 51 that explains the protocol you have to follow to read and write the AD9548 registers.


  • Thanks for your reply!

    Can you tell me the instruction set I wrote, because the first 16 bits include three R/W,W1,W0, and thirteen register addresses, but in the register address 0x0002 and 0x0003 occupy 16 bits, I do not understand them, I just want to verify whether I have established SPI communication? And according to the timing diagram in the datasheet, the clock polarity and clock phase of the SPI protocol are not known


  • Hi,

    The data sheet provides the protocol one has to follow to write and read AD9548 registers starting at page 53, figures 55, 56, etc.:

    So, for example, if you want to read register 0x0002, which is a read only register and it is equal to 0xC6:

    R/WB bit is 1 because it is a read operation.

    W1=W0=0 because the register has only one byte (Table 30 in the data sheet).

    The 13 bits of the address are the less significant 13 bits of the 0x00002 word.

    The AD9548 will then respond with a byte equal to 0xC6.

      Look at the figure above:

    CSB goes low to start the communication.

    Controller puts on the SDIO line every bit of the the 16 bit instruction header when SCLK goes high.

    The AD9548 receives each bit on SDIO line when SCLK goes low. Then, when it is its turn to put the register value on SDIO line (or SDO if the SPI is a 4 wire), it puts the bits  when SCLK goes high. The controller then receives them when the SCLK goes low.

    The communication ends when the controller brings CSB high. This should happen after SCLK goes high during the last bit of the register value.

    Take an AD9548 eval board, enter Debug Window and read a particular register while you probe the SPI lines with an oscilloscope. You can see then bit by bit what is happening.