This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Tool/software:
Hi,
We've been using the ADC08DJ5200RF successfully for a while and recently decided to implement an automatic gain adjustment mechanism which uses ORA0 and ORA1 (we're operating in single channel mode). We are setting OVR_CFG during initialisation and following the recommended step order in the datasheet. We're setting the register to 0x0F to enable overrange detection and select maximum pulse duration for the overrange outputs.
The issue we're having is it seems like the OVR_CFG register is not holding the value that we're programming into it. Before initially setting it, it seems to have a value of 0x81, and after attempting to write to it, we're reading a value of 0x03. Is there any particular requirement that must be met before this register is set? As mentioned, we're following the exact steps according to the data sheet:
1. Power-up or reset the device.
2. Apply a stable device CLK signal at the desired frequency.
3. Perform a software reset by toggling SOFT_RESET to 1. Wait at least 1 μs before continuing.
4. Program JESD_EN = 0 to stop the JESD204C state machine and allow setting changes.
5. Program CAL_EN = 0 to stop the calibration state machine and allow setting changes.
6. Program the desired JMODE.
7. Program the desired KM1 value. KM1 = K–1.
8. Program SYNC_SEL as needed. Choose SYNCSE or timestamp differential inputs.
9. Configure device calibration settings as desired. Select foreground or background calibration modes and
offset calibration as needed.
10. Program CAL_EN = 1 to enable the calibration state machine.
11. Enable overrange via OVR_EN and adjust settings if desired.
Adc_SetReg(OVR_CFG, 0x0F);
Before the value is set:
Setting the register and reading it back:
Thanks in advance,
Juan
Update: I'm now noticing that quite a few of the registers are returning values other than what we're trying to program into them:
This is a snapshot taken after the initialisation routine has been executed, and we've attempted to set JMODE to 5, JESD_EN to 1 and CAL_EN to 1. Any ideas? I have a suspicion that I'm not retrieving the values correctly, because this is old code that has had the ADC functioning correctly for a while.
Thanks
Update 2: I realised I put the wrong part number on the title. I'm working with ADC08DJ5200RF
Hello,
Juan apologies for the delay. Are you able to read the chip type register and confirm it matches your the default value of 0x03 in the datasheet? My thought is that if you can program the part and getting it working the readback functionality might not be working on the adc or FPGA.
best,
Eric
Hey Eric. Thanks for the reply and apologies for the late reply myself. Yeah, this is one of the ones I tried reading back after I started suspecting the values I was getting back. CHIP_TYPE is returning a 0x03, so I'm currently debugging the SPI interface.
Thanks,
Juan