Locale Icon
English
  • Forums

    Popular Forums

    • LTspice
    • RF and Microwave
    • Video
    • Power Management
    • Precision ADCs
    • FPGA Reference Designs
    • Linux Software Drivers

    Product Forums

    • Amplifiers
    • Microcontrollers
    • Clock and Timing
    • Data Converters
    • Direct Digital Synthesis (DDS)
    • Energy Monitoring and Metering
    • Interface and Isolation
    • MEMS Inertial Sensors
    • Power Management
    • Processors and DSP
    • Switches/Multiplexers
    • Temperature Sensors
    • Voltage References
    View All

    Application Forums

    • A2B
    • Audio
    • Automated Test Equipment (ATE)
    • Condition-Based Monitoring
    • Depth, Perception & Ranging Technologies
    • Embedded Vision Sensing Library
    • Motor Control Hardware Platforms
    • Precision Technology Signal Chains Library
    • Video
    • Wireless Sensor Networks Reference Library

    Design Center Forums

    • ACE Evaluation Software
    • ADEF System Platforms
    • Design Tools and Calculators
    • FPGA Reference Designs
    • Linux Software Drivers
    • Microcontroller no-OS Drivers
    • Power Studio Designer
    • Power Studio Planner
    • Reference Designs
    • Robot Operating System (ROS) SDK
    • Signal Chain Power (SCP)
    • Software Interface Tools
    • System Demonstration Platform (SDP) Support
  • Learn

    Highlighted Webinar

    The Burning Question: How can ADI Solutions Ensure Rechargeable Device Batteries are Genuine?

    On the global stage, products and equipment using rechargeable batteries continue to proliferate exponentially, expecting to reach a staggering $170B market...

    Places

    • ADI Academy
    • ADI Webinars
    • Video Annex
    • Virtual Classroom

    Libraries

    • 3D ToF Depth Sensing Library
    • Continuous-Wave CMOS Time of Flight (TOF) Library
    • Embedded Vision Sensing Library
    • Gigabit Multimedia Serial Link (GMSL) Library
    • Optical Sensing Library
    • Precision Technology Signal Chains Library
    • Software Modules and SDKs Library
    • Supervisory Circuits Library
    • Wireless Sensor Networks Library

    Latest Webinars

    • Power Management Fundamentals II Session 6: Key Layout Considerations for Power
    • A 16T/16R X-Band Direct Sampling Phased Array Subsystem using Apollo MxFE
    • Power Management Fundamentals II Session 5: Deeper Look into Power Protection
    • Power Management Fundamentals II Session 4: Isolated Converters Explained
    • Maximize Your Power Regulator: Key Considerations for Thermal Performance
    View All Webinars
  • Community Hub

    Challenge Yourself!

      KCC's Quizzes AQQ294 about a digital phase splitter design

      1. Quote of the month: "I've learned that people will forget what you said, people will forget what you did, but people will never forget how you made...

    View All

    What's Brewing

      Read a Blog, Take this Quiz for Another Chance to Win a Gift Card!

      Important: Read the blog first . The quiz questions are all based on the content from the blog: Let's Take a Field-Bus Trip Your field-bus engines...

    View All

    Places

    • Community Help
    • Logic Lounge
    • Super User Program
    • Analog Dialogue Quiz

    Resources

    • EZ Code of Conduct
    • EZ How To Help Articles
    • Getting Started Guide
    • ADI: Words Matter
    • Community Help Videos
    View All
  • Blogs

    Highlighted Blogs

    Balancing Enhanced Radar Resolution with FPGA-Based Pulse Compression

    Radar and sonar systems must balance range resolution with the energy required for reliable detection. Pulse compression resolves this by sending a long...

     

    ​​ISO 26262 Essentials: Ensuring Confidence in Your Software Tools ​

    By Ashish Iskande What is Tool Qualification and Why is it Important? In safety-critical automotive development, tools act as silent partners but can...

    Latest Blogs

    • Step-by-Step: Implementing a Complete DSP Chain for Signal Analysis
    • Galvanic Isolation in SMPS: Ensuring Safety and Protection: Part 1 of 4
    • Mature, Not Old! The Longevity of 4 – 20 mA
    • Turning up the Noise: .NOISE Simulations in LTspice: Part 1 of 3
    • The ABCs of SerDes
    Read All Blogs

    ADI Blogs

    • EZ Spotlight
    • The Engineering Mind
  • ContentZone

    Visit ContentZone

    ContentZone

    Technical articles. Blogs. Videos. Your ADI content, all in one place.

    View ContentZone

    Featured Content

    Featured Content Title

    Blurb About Content

    View Content By Industry

    • Aerospace and Defense Systems
    • Automotive Solutions
    • Consumer Technology Solutions
    • Data Center Solutions
    • Energy Solutions
    • Healthcare Solutions
    • Industrial Automation Technology Solutions
    • Instrumentation and Measurement Solutions
    • Intelligent Building Solutions
    • Wireless Communication Solutions

    View Content By Technology

    • A2B Audio Bus
    • ADI OtoSense Predictive Maintenance Solutions
    • Dynamic Speaker Management
    • Gallium Nitride (GaN) Technology
    • Gigabit Multimedia Serial Link (GMSL)
    • Industrial Vision
    • Power Solutions
    • Precision Technology
    • RF
    • Sensor Interfaces
    • SmartMesh
EngineerZone
EngineerZone
Clock and Timing
  • Log In
  • User
  • Site
  • Search
OR
Ask a Question
Clock and Timing
Clock and Timing
Documents AD9512 Phase setting not working
  • Forums
  • Docs/FAQs
  • Members
  • Tags
  • Cancel
  • +Documents
  • Clock and Timing Support Community
  • +AD9508: FAQ
  • +AD9510: FAQ
  • +AD9511: FAQ
  • -AD9512: FAQ
    • AD9512 evaluation board and Windows 7, 64 Bit driver issues
    • AD9512 evaluation board and  Windows 7, 64 Bit driver issues
    • AD9512 evaluation software and windows 7 64bit compatibleissues
    • AD9512 Phase setting not working
  • +AD9513: FAQ
  • +AD9514: FAQ
  • +AD9515: FAQ
  • +AD9517-1: FAQ
  • +AD9518-0: FAQ
  • +AD9518-4: FAQ
  • +AD951x: FAQ
  • +AD9520-3: FAQ
  • +AD9523-1: FAQ
  • +AD9523: FAQ
  • +AD9525: FAQ
  • +AD9548: FAQ
  • +AD9549BCPZ: FAQ
  • +AD9552: FAQ
  • AD9951: FAQ
  • AD9957: FAQ
  • +ADCLK846: FAQ
  • +LTC6952: FAQ
  • +LTC695x: FAQ
  • +AD2S99: FAQ
  • +AD9518-3: FAQ
  • +AD9523-1/PCBZ: FAQ
  • +AD9558: FAQ
  • +AD9560: FAQ
  • +AD9577: FAQ
  • +ADCLK925: FAQ
  • +ADN2812: FAQ
  • +ADN2814: FAQ
  • +ADN2816: FAQ
  • +ADN2817: FAQ
  • Can you share the thermal data of DS1672U-33+T&R?
  • Does reset output of DS3232 affect internal RTC counting?
  • +DS1023-50: FAQ
  • DS1023: FAQ
  • +DS1023S-100+: FAQ
  • +DS1050U-001: FAQ
  • +DS1080LU+: FAQ
  • +DS1086LU+: FAQ
  • +DS1090: FAQ
  • +DS1091LUA-330+T: FAQ
  • +DS1099: FAQ
  • +DS1110S-50+: FAQ
  • +DS1124U-25+: FAQ
  • +DS1244W-120+: FAQ
  • +DS1251W-120IND+: FAQ
  • +DS12887+: FAQ
  • DS12887: FAQ
  • +DS12C887+: FAQ
  • +DS12C887A+: FAQ
  • +DS12CR887-33+: FAQ
  • +DS1302+: FAQ
  • DS1302: FAQ
  • +DS1306+: FAQ
  • +DS1307+: FAQ
  • DS1307: FAQ
  • +DS1315-33+: FAQ
  • +DS1337: FAQ
  • +DS1338U-33+: FAQ
  • DS1339A: FAQ
  • +DS1339AU+: FAQ
  • +DS1339C-33#: FAQ
  • +DS1339U-3+: FAQ
  • +DS1340U-3+: FAQ
  • +DS1341: FAQ
  • +DS1342T+: FAQ
  • +DS1343D-18+: FAQ
  • +DS1347T+: FAQ
  • +DS1374: FAQ
  • +DS1375T+: FAQ
  • +DS1388Z-3+: FAQ
  • +DS1388Z-33: FAQ
  • +DS1390U-18+: FAQ
  • +DS1390U-33/V+T: FAQ
  • +DS1501: FAQ
  • +DS1554-70IND+: FAQ
  • DS1672U-33+T&R: FAQ
  • +DS1682: FAQ
  • +DS1682S+: FAQ
  • DS1683: FAQ
  • +DS1683S+: FAQ
  • +DS1687-3+: FAQ
  • +DS1687-3IND: FAQ
  • +DS1744W-120+: FAQ
  • +DS1744W-120IND+: FAQ
  • +DS1744WP-120+: FAQ
  • +DS1746W-120+: FAQ
  • +DS1747-70IND+: FAQ
  • +DS26503L+: FAQ
  • DS3231: FAQ
  • +DS3231M+: FAQ
  • DS3231M: FAQ
  • +DS3231MPMB1#: FAQ
  • +DS3231MZ/V+: FAQ
  • +DS3231S#: FAQ
  • +DS3231SN#T&R: FAQ
  • DS3232M: FAQ
  • +DS3232MZ+: FAQ
  • DS3232SN#T&R: FAQ
  • +DS3234S#: FAQ
  • +DS3234SN#: FAQ
  • +DS32KHZ/WBGA+: FAQ
  • +DS32KHZN/WBGA: FAQ
  • +HMC-T2220: FAQ
  • +HMC704X and HMC704XB: FAQ
  • +ICM7217: FAQ
  • +ICM7240C/D: FAQ
  • +LTC1799: FAQ
  • +MAX31329: FAQ
  • +MAX31331: FAQ
  • MAX31341BEWC+: FAQ
  • +MAX31341BEWC+T: FAQ
  • +MAX31343EKA+: FAQ
  • +MAX3841: FAQ
  • +MAX3872AETJ+: FAQ
  • +MAX9180EXT+: FAQ
  • +MAX9394EHJ+: FAQ
  • What is the FIT rate of the DS3231SN#T&R for different temperatures?

AD9512 Phase setting not working

Question

We have a problem setting up the AD9512. We have set to clock divider to 5, and
should therefore be able to change the phase delay to 0,1,2,3,4.
But we can’t see any changes at all when scoping this.
Schematics and SW setup is attached.

--
On the first output we are using divider = 5, so it means we do have 5 choices
of shifting the phase. The problem is that even applying changes to the
registers (tried all 5 values out) and successfully reading register value back
those changes are not visible on the oscilloscope.
In mean time we are able to change output's amplitude & divider ratio and those
changes are clearly visible on the oscilloscope. For the first two outputs we
have the same divider ratio applied. So we are able to compare signals at the
same time if something changes, but unfortunately it doesn't...

Do we need to update some special bit in correct register in order to see
changes for phase offset?

We manage to set the divider and amplitude, but somehow we cannot see any
change in the output when setting the phase offset value (on output 0 and 1).
We measure by looking at two outputs (0 and 1) from the clock-divide (They both
have the same divider value).
What can be the error?

The register writing is as follows (always 3 byte, control byte + 2 data bytes,
default MSB mode):

                instr_table[tab_size++] = (LVDS_1_REG_ADDR |
AD9512_BTC_2_BYTES) << 16
                                                                               
| /*LVDS_0_TO_2_REGS_VALUE*/lvds_1 << 8 |
/*LVDS_0_TO_2_REGS_VALUE*/lvds_0;              // LVDS_1_REG_ADDR &
LVDS_0_REG_ADDR
                instr_table[tab_size++] = (LVDS_3_REG_ADDR |
AD9512_BTC_2_BYTES) << 16
                                                                               
| LVDS_3_TO_4_REGS_VALUE << 8 | /*LVDS_0_TO_2_REGS_VALUE*/ lvds_2; //
LVDS_3_REG_ADDR & LVDS_2_REG_ADDR
                instr_table[tab_size++] = (REG_ADDR_AFTER_LVDS_4 |
AD9512_BTC_2_BYTES) << 16
                                                                               
| LVDS_3_TO_4_REGS_VALUE; // REG_ADDR_AFTER_LVDS_4 = 0 & LVDS_4_REG_ADDR
                // CLK1 and CLK2
                instr_table[tab_size++] = (AD9512_CLK1_CLK2_REG_ADDR |
AD9512_BTC_1_BYTE) << 16 | AD9512_CLK1_CLK2_REG_VALUE << 8;  // CLK1_CLK2

                // Setting LVDS Outputs Phase based on the input parameters, if
not changed, set to 0
                if(LVDS_0_PHASE_VALUE != 0x00)
                                printk("AD9512 | LVDS_0_PHASE_VALUE has been
changed to hex = 0x%X | dec = %d\n", LVDS_0_PHASE_VALUE, LVDS_0_PHASE_VALUE);
                if(LVDS_1_PHASE_VALUE != 0x00)
                                printk("AD9512 | LVDS_1_PHASE_VALUE has been
changed to hex = 0x%X | dec = %d\n", LVDS_1_PHASE_VALUE, LVDS_1_PHASE_VALUE);
                if(LVDS_2_PHASE_VALUE != 0x00)
                                printk("AD9512 | LVDS_2_PHASE_VALUE has been
changed to hex = 0x%X | dec = %d\n", LVDS_2_PHASE_VALUE, LVDS_2_PHASE_VALUE);
                if(LVDS_3_PHASE_VALUE != 0x00)
                                printk("AD9512 | LVDS_3_PHASE_VALUE has been
changed to hex = 0x%X | dec = %d\n", LVDS_3_PHASE_VALUE, LVDS_3_PHASE_VALUE);
                if(LVDS_4_PHASE_VALUE != 0x00)
                                printk("AD9512 | LVDS_4_PHASE_VALUE has been
changed to hex = 0x%X | dec = %d\n", LVDS_4_PHASE_VALUE, LVDS_4_PHASE_VALUE);

                // DIVIDERS | Setting up LVDS Outputs & Phase | Divider = 5
                instr_table[tab_size++] = (LVDS_0_DIV_PHASE_ADDR |
AD9512_BTC_2_BYTES) << 16 | LVDS_0_PHASE_VALUE << 8 |
LVDS_0_DIVIDER_VALUE;     // PHASE = 0 & LVDS_0_DIV_ADDR = DIV5
                instr_table[tab_size++] = (LVDS_1_DIV_PHASE_ADDR |
AD9512_BTC_2_BYTES) << 16 | LVDS_1_PHASE_VALUE << 8 |
LVDS_1_DIVIDER_VALUE;     // PHASE = 0 & LVDS_1_DIV_ADDR = DIV5
                instr_table[tab_size++] = (LVDS_2_DIV_PHASE_ADDR |
AD9512_BTC_2_BYTES) << 16 | LVDS_2_PHASE_VALUE << 8 | LVDS_2_DIVIDER_VALUE
/*LVDS_CHOOSEN_DIV_MK1*/;   // PHASE = 0 & LVDS_2_DIV_ADDR = DIV5, changed to
DIV10 - Henning
                instr_table[tab_size++] = (LVDS_3_DIV_PHASE_ADDR |
AD9512_BTC_2_BYTES) << 16 | LVDS_3_PHASE_VALUE << 8 |
LVDS_3_DIVIDER_VALUE;     // PHASE = 0 & LVDS_3_DIV_ADDR = DIV30
                instr_table[tab_size++] = (LVDS_4_DIV_PHASE_ADDR |
AD9512_BTC_2_BYTES) << 16 | LVDS_4_PHASE_VALUE << 8 |
LVDS_4_DIVIDER_VALUE;     // PHASE = 0 & LVDS_4_DIV_ADDR = DIV14

                // Do Soft Sync AND set function pin to SyncB
                instr_table[tab_size++] = (LVDS_FUNTION_REGISTER_ADDR |
AD9512_BTC_1_BYTE) << 16 | (LVDS_SOFT_SYNC_FUNTION_REGISTER_VALUE |
LVDS_SYNCB_FUNTION_REGISTER_VALUE) << 8;      // Soft SYNC bit

                instr_table[tab_size++] = (LVDS_FUNTION_REGISTER_ADDR |
AD9512_BTC_1_BYTE) << 16 | LVDS_SYNCB_FUNTION_REGISTER_VALUE <<
8;              // Reset Soft SYNC bit
               
                //Update Registers
                instr_table[tab_size++] = (LVDS_UPDATE_REGISTERS_ADDR |
AD9512_BTC_1_BYTE) << 16 | LVDS_UPDATE_REGISTERS_VALUE << 8;               //
Update REGS

Answer

In order to see a change on the phase, they need to issue an output sync. This
can either be done as a hardware sync using the SYNCB function or issuing a
software sync using Register 0x58.

The exact sequence for a soft sync is:
R0x58=0x04 ; stalls the outputs
R0x5A=0x01 ; update the live registers so that the write to 0x58 takes effect.
R0x58=0x00 ; releases the outputs.
R0x5A=0x01; ; update the live registers so that the write to 0x58 takes effect.

Tags: clock and timing ad9512 4CEX3729
  • Share
  • History
  • Cancel
analog-devices logo

About Analog Devices

  • Who We Are
  • Careers
  • Newsroom
  • What We Do (Signals+)
  • Investor RelationsExternalLink
  • Quality & Reliability
  • Sales and Distribution
  • What's New on Analog.com
  • Contact Us

Find Help

  • Support
  • Resources
  • WikiExternalLink
  • Analog Dialogue
  • ADI Developer PortalExternalLink

myAnalog

Interested in the latest news and articles about ADI products, design tools, training, and events?

Go to myAnalog
  • Instagram page
  • Twitter page
  • Linkedin page
  • Youtube page
  • Facebook
  • Legal and Risk
  • Accessibility
  • Privacy Policy
  • Privacy Settings
  • Cookie Settings

©2025 Analog Devices, Inc. All Rights Reserved

analog-devices

About Analog Devices

Down Up
  • Who We Are
  • Careers
  • Newsroom
  • What We Do (Signals+)
  • Investor RelationsExternalLink
  • Quality & Reliability
  • Sales and Distribution
  • What's New on Analog.com
  • Contact Us

Find Help

Down Up
  • Support
  • Resources
  • WikiExternalLink
  • Analog Dialogue
  • ADI Developer PortalExternalLink

myAnalog

Interested in the latest news and articles about ADI products, design tools, training, and events?

Go to myAnalog
Instagram page Facebook Twitter page Linkedin page Youtube page
  • Legal and Risk
  • Accessibility
  • Privacy Policy
  • Privacy Settings
  • Cookie Settings

©2025 Analog Devices, Inc. All Rights Reserved