Post Go back to editing

No ac output on AD5934

Thread Summary

The user encountered issues with the AD5934 on the CN0349 evaluation board, where the sweep did not start and no AC voltage was detected on TP2. The problem was resolved by setting the clock source to external in register 0x81, as the AD5934 does not have an internal oscillator. The user also confirmed that the VOUT pin was at 0V and that setting the PGA gain to 1x is recommended to avoid clipping the ADC input.
AI Generated Content

Hi,

I'm working the the AD5934 in the CN0349 evaluation board, and able to communicate properly with the AD5934 over I2C, but I can't get it to actually start its sweep - I can't detect any AC voltage on TP2 (or anywhere else on the board other than the clock).

Example:

NB: The CN0349 has a 1 M Hz clock

I want a sweep from 1 kHz, 500 Hz step, 5 steps.

Start freq: 2^27 * 1 000 * 16 / 1 000 000 = 2 147 483 = 0x20C49B

Step: 2^27 * 500 * 16 / 1 000 000 = 1 073 741 = 0x10624D

Steps: 5 = 0x0005

All of this data is loaded into 0x82 to 0x89, and I can read it back and it all seems OK

Enter Standby with 2v range, x5 pga gain: Load 0xB0 into 0x80.

I never see any change at the test point, the status register 0x8F always contains 0x30 or 0x70.

What am I doing wrong?

Parents
  • Sometimes, when the AD5933 code is reused, the internal oscillator gets selected as the source of MCLK. The AD5934 does not have the internal oscillator, and that causes the described symptom.

    What is the DC voltage level at the VOUT pin while there is no AC? If it is zero, the chip might be stuck in Standby mode. Is the Enter Standby Mode command followed by Initialize with Start Frequency command (bit D12 is set to 1 in the control register 0x80)? After that the chip should be outputting AC voltage at the start frequency.

  • I'm not re-using any code - I'm using a Pi Pico and there doesn't seem to be a lot of Micropython code around for this - maybe because the standard i2c library in register access mode doesn't play nicely with the AD5934, so I've implemented the register access functions myself. I'll share it once I'm happy it's actually working!

    On the real issues: - the hint to check the clock source is useful - the AD5934 data sheets says set to 0x81 D3 to 1 but doesn't say what it's for (thought I've now found it in the AD5933 datasheet), and I suspect that register is powering up in the wrong state - I have a vague memory of seeing it as 0x00 despite the data sheet saying it should be 0x08.

    I have set the unit into "Initialize with start frequency" state after "Standby" ie. (load 0x10 into 0x80) and it hasn't made any difference. I think Vout stays at 0v.

    I'll confirm both of those bits of info when I'm back in the lab on Monday.

    Thanks for your help.

  • I should have said ''...especially when the AD5933 code is reused." 

    Not really much of a help: with this remote guessing there is always a possibility of embarking on a wild-goose chase. Best of luck with your project!

Reply Children
No Data