Hi Jack, Indeed you are right: it wasn’t anything to do with the cal routines. It looks like a sync pulse had come out of alignment which was causing the spectrum to offset erroneously.
A post-programming cal routine is just what I’m working towards. I think I’ve pretty much got it, however there’s one last thing which I’m a little confused by. The “original” cal facility includes a script which requires a 10MHz tone, however it looks like your disentangle branch removes this requirement. Is it definitely the case (and it looks this way from the scripts and functions) that both the IODelay cal and MMCM can take place with the adc5g in test mode, not requiring an input tone? Thanks Michael From: Jack Hickish [mailto:jackhick...@gmail.com] Sent: 08 December 2016 23:26 To: Michael D'Cruze; Primiani, Rurik; casper@lists.berkeley.edu Subject: Re: [casper] adc5g stuck in test mode Hi Michael, cc. List, Do you see glitches if you leave the adc in test ramp mode and grab lots of samples? If not, the problem isn't related to IO calibration. I might be misinterpreting your email, but just to be clear, you must recalibrate the MMCMs (or iodelays, or both) every time you program. These settings are not persistent over programming cycles. If you really wanted you could calibrate the MMCMs once and then each time you reprogram load in the same phases, but personally I don't see why this would be preferable to just making calibration part of the post-programming routine. If you're talking about adc core calibration delays, that's a different kettle of fish.... Cheers Jack On Thu, 8 Dec 2016, 15:08 Michael D'Cruze, <michael.dcr...@postgrad.manchester.ac.uk<mailto:michael.dcr...@postgrad.manchester.ac.uk>> wrote: Hi Rurik, That’s interesting.. Jack: could you comment on the effect I’m seeing, having performed the IODelay cal? I’ve confirmed now that it’s not a property of the analogue signal. In a 4k-channel spectrometer design, following the IODelay cal, glitches appear towards the top end of the spectrum. These are not present in the same design scaled up to 8k channels, to which a slightly different set of delay values are applied. Rurik: it sounds as though you are adopting a similar approach regarding MMCM cal as myself. In my case, my board is running 24/7 in a temperature-controlled environment, although the board is reprogrammed fairly frequently. In this case would you agree that infrequent MMCM cals (say, once a week or even less than that) should be sufficient? Thanks Michael From: Primiani, Rurik [mailto:rprimi...@cfa.harvard.edu<mailto:rprimi...@cfa.harvard.edu>] Sent: 08 December 2016 00:07 To: Michael D'Cruze Subject: RE: [casper] adc5g stuck in test mode Hi Michael, I'm not sure which delays you mean. Do you mean the IODELAYs? Is calibrate_all_delays part of Jack's fork of adc_tests? Sadly I'm not familiar with this function. Although I added the IODELAY elements to the adc5g gateware code we don't actually use them at SMA. We get by with only the MMCM calibration and the interleaving corrections. When we first program our bitcode we do a MMCM calibration with a sync, this one we call a "cold" cal., then after the chip has had a chance to warm up to its operating temperature (for us ~80 C) we run a "warm" cal. which is just another MMCM calibration but this time without a sync. For us this procedure has been enough to eliminate most of the spurs we see due to glitches in the interface. For now we have not bothered to do IODELAY calibration but we have the benefit of spurious components generally getting washed out by our Walshing (and to some extent our fringe rates). The major source of spurs for us is the Fs/4 spur due to the interleaving errors. These we measure and store generally once and remain quite constant with time. Best, Rurik On Dec 7, 2016 6:28 PM, "Michael D'Cruze" <michael.dcr...@postgrad.manchester.ac.uk<mailto:michael.dcr...@postgrad.manchester.ac.uk>> wrote: Hi Rurik, Just as an aside (it sounds like you’re pretty hot with the adc5g cal facility?), how reliable is the set of delays that are written into the cores? I only ask since the spectrum I’m getting since performing the cal looks like it has some glitches in. It could well be the analogue signal has these glitches and I’ll find out with a spec an tomorrow, but I’m sure these weren’t there before… Cheers Michael From: Primiani, Rurik [mailto:rprimi...@cfa.harvard.edu<mailto:rprimi...@cfa.harvard.edu>] Sent: 07 December 2016 17:17 To: Michael D'Cruze Cc: casper@lists.berkeley.edu<mailto:casper@lists.berkeley.edu> Subject: Re: [casper] adc5g stuck in test mode Hi Michael, Which version (git commit and fork) of mlib_devel did you use to compile your bitcode? Which version (git commit and fork) of the adc5g library are you using? What does the output of the following command show for the affected ADC after test mode has been unset? >>> adc5g.get_spi_control(roach2, zdok_n) Where roach2 is the FpgaClient instance and zdok_n is the ZDOK number of the affected ADC. Thanks, Rurik On Wed, Dec 7, 2016 at 11:28 AM, Michael D'Cruze <michael.dcr...@postgrad.manchester.ac.uk<mailto:michael.dcr...@postgrad.manchester.ac.uk>> wrote: Dear all, I have a somewhat serious issue in that my adc5g seems to have become stuck in test mode… I’ve messed around a bit with the very many functions within the calibrate_all_delays top-level function, and can see that the spi_registers are acknowledging set_test_mode and unset_test_mode, but in any case the output time stream indicates unset_test_mode is ineffective beyond this. I’d be grateful for any suggestions to remedy this – I can’t see this issue discussed on the mailing list. Cheers Michael