Post Go back to editing

Cannot load settings from EEPROM on AD9544

Category: Hardware
Product Number: AD9544

I've created a working configuration in ACE and tested it on the evaluation board. I converted it to a bin file using the python script, which works although it gives a number of warning messages:

Missing data for Register: 0x301.
 Using Default Data.
Missing data for Register: 0x302.
 Using Default Data.
Missing data for Register: 0x303.
 Using Default Data.
Missing data for Register: 0x1029.
 Using Default Data.
Missing data for Register: 0x10c0.
 Using Default Data.
Missing data for Register: 0x10c1.
 Using Default Data.
Missing data for Register: 0x10c2.
 Using Default Data.
Missing data for Register: 0x10c3.
 Using Default Data.
Missing data for Register: 0x10c4.
 Using Default Data.
Missing data for Register: 0x10c5.
 Using Default Data.
Missing data for Register: 0x10c6.
 Using Default Data.
Missing data for Register: 0x10c7.
 Using Default Data.
Missing data for Register: 0x10c8.
 Using Default Data.
Missing data for Register: 0x10c9.
 Using Default Data.
Missing data for Register: 0x10ca.
 Using Default Data.
Missing data for Register: 0x10cb.
 Using Default Data.
Missing data for Register: 0x10cc.
 Using Default Data.
Missing data for Register: 0x10cd.
 Using Default Data.
Missing data for Register: 0x10cf.
 Using Default Data.
Missing data for Register: 0x10d0.
 Using Default Data.
Missing data for Register: 0x10d1.
 Using Default Data.
Requested Register: 0x1429 does not exist.
 Using Data = 0x00.
Missing data for Register: 0x14c0.
 Using Default Data.
Missing data for Register: 0x14c1.
 Using Default Data.
Missing data for Register: 0x14c2.
 Using Default Data.
Missing data for Register: 0x14c3.
 Using Default Data.
Missing data for Register: 0x14c4.
 Using Default Data.
Missing data for Register: 0x14c5.
 Using Default Data.
Missing data for Register: 0x14c6.
 Using Default Data.
Missing data for Register: 0x14c7.
 Using Default Data.
Missing data for Register: 0x14c8.
 Using Default Data.
Missing data for Register: 0x14c9.
 Using Default Data.
Requested Register: 0x14ca does not exist.
 Using Data = 0x00.
Requested Register: 0x14cb does not exist.
 Using Data = 0x00.
Requested Register: 0x14cc does not exist.
 Using Data = 0x00.
Requested Register: 0x14cd does not exist.
 Using Data = 0x00.
Missing data for Register: 0x14cf.
 Using Default Data.
Missing data for Register: 0x14d0.
 Using Default Data.
Requested Register: 0x14d1 does not exist.
 Using Data = 0x00.
Requested Register: 0x14d5 does not exist.
 Using Data = 0x00.
Requested Register: 0x14d9 does not exist.
 Using Data = 0x00.
Requested Register: 0x2015 does not exist.
 Using Data = 0x00.
Requested Register: 0x2204 does not exist.
 Using Data = 0x00.
Missing data for Register: 0x2800.
 Using Default Data.
Missing data for Register: 0x2801.
 Using Default Data.
Missing data for Register: 0x2802.
 Using Default Data.
Missing data for Register: 0x2803.
 Using Default Data.
Missing data for Register: 0x2804.
 Using Default Data.
Missing data for Register: 0x2805.
 Using Default Data.
Missing data for Register: 0x2806.
 Using Default Data.
Missing data for Register: 0x2807.
 Using Default Data.
Missing data for Register: 0x2808.
 Using Default Data.
Missing data for Register: 0x2809.
 Using Default Data.
Missing data for Register: 0x280a.
 Using Default Data.
Missing data for Register: 0x280b.
 Using Default Data.
Missing data for Register: 0x280c.
 Using Default Data.
Missing data for Register: 0x280d.
 Using Default Data.
Missing data for Register: 0x280e.
 Using Default Data.
Missing data for Register: 0x280f.
 Using Default Data.
Missing data for Register: 0x2810.
 Using Default Data.
Missing data for Register: 0x2811.
 Using Default Data.
Missing data for Register: 0x2812.
 Using Default Data.
Missing data for Register: 0x2813.
 Using Default Data.
Missing data for Register: 0x2814.
 Using Default Data.
Missing data for Register: 0x2815.
 Using Default Data.
Missing data for Register: 0x2816.
 Using Default Data.
Missing data for Register: 0x2817.
 Using Default Data.
Missing data for Register: 0x2818.
 Using Default Data.
Missing data for Register: 0x2819.
 Using Default Data.
Missing data for Register: 0x281a.
 Using Default Data.
Missing data for Register: 0x281b.
 Using Default Data.
Missing data for Register: 0x281c.
 Using Default Data.
Missing data for Register: 0x281d.
 Using Default Data.
Missing data for Register: 0x281e.
 Using Default Data.
Missing data for Register: 0x2840.
 Using Default Data.
Missing data for Register: 0x2841.
 Using Default Data.
Missing data for Register: 0x2842.
 Using Default Data.
Missing data for Register: 0x2843.
 Using Default Data.
Missing data for Register: 0x2844.
 Using Default Data.
Missing data for Register: 0x2845.
 Using Default Data.
Missing data for Register: 0x2846.
 Using Default Data.
Missing data for Register: 0x2847.
 Using Default Data.
Missing data for Register: 0x2848.
 Using Default Data.
Missing data for Register: 0x2849.
 Using Default Data.
Missing data for Register: 0x284a.
 Using Default Data.
Missing data for Register: 0x284b.
 Using Default Data.
Missing data for Register: 0x284c.
 Using Default Data.
Missing data for Register: 0x284d.
 Using Default Data.
Missing data for Register: 0x284e.
 Using Default Data.
Missing data for Register: 0x284f.
 Using Default Data.
Missing data for Register: 0x2850.
 Using Default Data.
Missing data for Register: 0x2851.
 Using Default Data.
Missing data for Register: 0x2852.
 Using Default Data.
Missing data for Register: 0x2853.
 Using Default Data.
Missing data for Register: 0x2854.
 Using Default Data.
Missing data for Register: 0x2855.
 Using Default Data.
Missing data for Register: 0x2856.
 Using Default Data.
Missing data for Register: 0x2857.
 Using Default Data.
Missing data for Register: 0x2858.
 Using Default Data.
Missing data for Register: 0x2859.
 Using Default Data.
Missing data for Register: 0x285a.
 Using Default Data.
Missing data for Register: 0x285b.
 Using Default Data.
Missing data for Register: 0x285c.
 Using Default Data.
Missing data for Register: 0x285d.
 Using Default Data.
Missing data for Register: 0x285e.
 Using Default Data.
Missing data for Register: 0x2a00.
 Using Default Data.
Missing data for Register: 0x2a01.
 Using Default Data.
Missing data for Register: 0x2a02.
 Using Default Data.
Missing data for Register: 0x2a03.
 Using Default Data.
Missing data for Register: 0x2a04.
 Using Default Data.
Missing data for Register: 0x2a05.
 Using Default Data.
Missing data for Register: 0x2a06.
 Using Default Data.
Missing data for Register: 0x2a07.
 Using Default Data.
Missing data for Register: 0x2a08.
 Using Default Data.
Missing data for Register: 0x2a09.
 Using Default Data.
Missing data for Register: 0x2a0a.
 Using Default Data.
Missing data for Register: 0x2a0b.
 Using Default Data.
Missing data for Register: 0x2a0c.
 Using Default Data.
Missing data for Register: 0x2a0d.
 Using Default Data.
Missing data for Register: 0x2a0e.
 Using Default Data.
Missing data for Register: 0x2a0f.
 Using Default Data.
Missing data for Register: 0x2a10.
 Using Default Data.
Missing data for Register: 0x2a11.
 Using Default Data.
Missing data for Register: 0x2a12.
 Using Default Data.
Missing data for Register: 0x2a13.
 Using Default Data.
Missing data for Register: 0x2a14.
 Using Default Data.
Missing data for Register: 0x2a15.
 Using Default Data.
Missing data for Register: 0x2a16.
 Using Default Data.
Missing data for Register: 0x2a17.
 Using Default Data.
Checksum is: 0xb4206fd

I removed the EEPROM and put it in an external programmer and verified that the bytes were copied.  Next I put the EEPROM back into the evaluation board, and set the M3 jumper as described in the wiki:

This lights up a red LED and puts TP603 to 1.8V, but on power up the PLL has no output.  If I power up, then remove the M3 jumper, I can read back the registers in ACE, which are default.  

I'm not sure what else to try.  Perhaps I have made the bin file incorrectly?

  •  V 		q2����@@�@@H �t��
     H �t��
    @u�V��r���
    `H �t��
    �
    
    �
    
     �
    
    �
    
    @�
    
    �
    
    `�
    
    �
    
    ����
    
    �
    
    ��
    
    �
    
    ��U��\���̩�����y��M��+מ��!���
    8����5q��D�5O ��@��`��������+��ɠ�"���
    8��
    ��#T!
    ���=C� ��@��`�������� !"(@()*���B������������������������������������������������������������������������������������������������������������������������������������������

    Sorry, bin file needed to be renamed to attach.

  • Attempting to attach the bin file was rejected, and renaming it to .txt got my account disabled, fortunately we had another account handy, so I will use this one for now.  If someone at Analog could unban me, that would be appreciated.  

    Is there a way I can attach the bin file that is allowed by the software?  7.919khz_updated_2.txt

  • Hi,

    could you please send me the cso file you have used as the input to the python script? I ran the script under Python 3.9 and definitely does not give the messages you show. I only get these messages:

    Then, on the board, I have these indications to make sure the EEPROM is connected to the AD9545 and after power up, the AD9545 will download the EEPROM into its registers:

    • Plug P603 and P602 between pins 2 and 3 (DUT), so the AD9545 can access the EEPROM through I2C. You seem to have done this.
    • Take P601 out, so the EEPROM is not write protected. You seem to have done this.
    • At P604, plug jumpers for M1 and M2 between middle pin and VDD label, so the I2C lines have pull up resistors: MP1_PULL between 4 and 5, MP2_PULL between 7 and 8. Please note that boards with versions other than C2 have the VDD label put vice versa with GND, so you may have to     connect the jumpers toward GND label. You do not seem to have done this.
    • M3 pin must be set high at P604, so after power up, the AD9545 downloads the EEPROM content. You seem to have done this, but check the board version based on the note at the previous bullet

    Petre

  • Hi,

    I'm sorry, but this message did not appear by default. This is why I responded to the first message only.

    The bin file does not help me. Please send me the cso file, maybe with the txt extension instead.

    Petre

  • The text file above is the .cso file.  I had to rename it to upload.  

  • The missing M1 and M2 pull ups were the key.  I'm not sure why I got the warnings, but it seems like the bin file works as expected.

    One additional question now that I can test independently of ACE:  I notice that if the ref input drops, the PLL locks to it automatically, but does not come up with zero delay (very often I get ~ 180 degree delay).  I have to manually issue a sync command in ACE for the delay to be zeroed.  I'm using the internal zero delay when locking, which I thought would automatically give no delay when locking.  Am I doing something wrong or is that how the system works?  

  • HI,

    I'm glad you found the problem. Regarding the cso file you sent, I found that in the DPLL1 profile had the Ignore FB tags box checked. Why did you do this? The tags mean the output clock has an embedded clock and this is not your case. I suggest uncheck this box and leave the profile to work with the tag mode being untagged. The loop bandwidth of 100Hz is fine and is is lower more than 20 times than REFB=7.919kHz

    You also enabled Ref Sync. This is good if the REFB is available after power up/reset. Otherwise, the outputs are not generated until REFB becomes available. I am not sure this feature is useful in this configuration. Ref Sync is used for 1PPS cases that work with very low loop bandwidths and fastens the lock. In this case, 100Hz bandwidth seems pretty fast to me.

    " I notice that if the ref input drops, the PLL locks to it automatically, but does not come up with zero delay (very often I get ~ 180 degree delay)"

    OUT1B is 124.96MHz. REFB is 7.919kHz. You want to say that OUT1B rising edge is not aligned to the rising edge of REFB?

    "I have to manually issue a sync command in ACE for the delay to be zeroed. "

    This should not be necessary because the you have Auto sync mode to Immediate. It may be something related to Ref Sync and the fact REFB may not be valid after power up.

    REFB on the eval board has also R318=50ohm load. Measure with the oscilloscope there to see if the clock arriving at the AD9545 meets the 1.8V CMOS levels from the data sheet

    Bottom line: start debugging by not using Ref Sync and disable the Ignore FB Tags. See if the behavior persists. Work first in ACE. Then play with the EEPROM.

    Petre

  • I had thought that the ref tag feature was specific to the AD9545, so I thought it should be ignored.  I will change that setting.  

    I was looking at the delay between the 7.9 KHz reference and the 7.9 KHz output.  I would actually prefer to take the zero delay from there, but ACE does not allow that:

    I did not understand why 7.9 KHz was not allowed, but thought taking the MHz signal would be an ok workaround, although perhaps the difference is too large between the reference and output frequency to lock to the correct delay and I end up off by a multiple of 1/(124.96 MHz)?  Is there a way I can make take the 7.92 KHz output for ZDM?

    I am driving the ref input with a clean, 1.7V (0-P) square wave.  

  • HI,

    I was able to set DPLL1 in internal zero delay with feedback from OUT1A=7.919kHz in Configuration Wizard:

    Try it.

    Petre

  • Hi Petre, mgiacomelli

    1,We have a question about the frequency change of Ref input 7919HZ. When power on the frequency will change several Hz maybe because of temperature change. The Loop Bandwidth 100 Hz may solve the problem? Thanks.

    2, The phase of output 7919 Hz (OUT1A) and 124.96MHz (OUT1B) clock is aligned when we choose Auto Sync Mode immediate? 

    Regards. Have a nice day.

    Zhangmn