Hi Erik,
I want to confirm a few things. What revision of the ML605 do you have? I have an ML605 + FMC151 with me so I tried a few tests for you, attached are my results.
ml605_fmc151.txt - Your console output should pretty much look exactly the same
fmc151_clock0.png - default settings for tapiod_clk, loooks good to me
fmc151_clock7.png - I set tapiod_clk = 0x7, now my signal is distorted
My distorted signal looks similar to yours. My guess is you have a different revision of the ML605 than me and the IODELAY must need to be adjusted.
Can you go into fmc15x_adc.cpp and at line 140 add the following:
if(rc!=SIPIF_ERR_OK)
return rc;
Sleep(10);
rc = sipif_writesipreg(bar_adc_phy+0, 0x08);
if(rc!=SIPIF_ERR_OK)
return rc;
Sleep(10);
}
printf("%x \n", tapiod_clk); ////////////////// // ADD THIS
printf("%x \n", tapiod_data); ///////////////// // ADD THIS
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// ADC SPI Test, read back one of the programmed registers to see programming was succesfull
rc = fmc15x_adc_readreg(bar_adc, 0x50, &dword);
Now try changing the tap values to
tapiod_clk = 0x07; tapiod_data = 0x05;
Can you attach your your console output and both your adc0.txt and adc1.txt. This will allow me to confirm your software build and firmware is working correctly.
If that all works then I think it is a matter of adjusting tapiod_clk to the correct delay.
Regards,
Luis