AD9689
Recommended for New Designs
The AD9689 is a dual, 14-bit, 2.0 GSPS/2.6 GSPS analog-to-digital converter (ADC). The device has an on-chip buffer and a sample-and-hold circuit designed...
Datasheet
AD9689 on Analog.com
I wanted to ask what are the equations used to generate the PN9 and PN23 sequence of the ADC test patterns.
In the manual, it is said that the first values are:
PN9: 0x0092 -- 0x125B, 0x3C9A, 0x2660, 0x0c65, 0x0697
PN23: 0x3AFF -- 0x3FD7, 0x0002, 0x26E0, 0x0A3D, 0x1CA6
But I am unable to generate those using the typical LFSR shifted by one and X-ored. I believe there is a more complex equation behind, right?
Ok, I think the issue was that I was assuming that the LFSR was the random number itself. The idea is to get the last bit of fourteen consecutive LFSRegisters, and tie them together into a 14-bit word, right?
All right, I have managed to create a C++ code to reproduce these numbers.
Here is what I get por PN9 (notice that the seed given in the manual is big endian, so you need to swap it, but it does not make any difference):
125b 3c9a 2660 c65 697 3d16 eb2 33c7 3741 2b6e 305a 3eaa 14a 3cbb 2073 293d 1d44 219c bdb d0e 3c3f 383d 3c5c 3209 13b4 1e7c 362a 11c6 3571 c44 84 184e 1561 2f4d 3228 15a7
which matches quite well the manual, table 39. However, when I measure, I see totally different sequence (decimal):
3492, 9061, 14751, 5018, 6504, 8937, 4429, 11320, 10430, 13457, 12197, 8533, 7861, 9028, 16268, 14018, 699, 15971, 5156, 4849, 9152, 10178, 9123, 11766, 3147, 387, 10709, 3641, 10894, 5051, 8059, 1969, 2718, 12466, 11735, 2648, 9435, 12806, 4787, 12263, 11634, 5125, 5346, 1688, 15377, 16169, 10399, 12930, 2813, 14982, 575, 9773, 325, 15804, 4584, 12901, 6279, 15, 263, 12699, 7000, 1475, 8595, 2780, 15509, 10087, 15870, 7631, 14549, 12065, 14619, 3028, 3081
Why are the values not matching? Shouldn't the manual be updated?
Maybe related:
https://ez.analog.com/data_converters/high-speed_adcs/f/q-a/20506/ad9608-pn9-sequence
https://ez.analog.com/data_converters/high-speed_adcs/f/q-a/21831/ad9681-pn9-and-pn23
https://ez.analog.com/data_converters/high-speed_adcs/f/q-a/21448/ad9255-pn9-and-pn23-seed-values
https://ez.analog.com/data_converters/high-speed_adcs/f/q-a/21954/ad9653-pn9-and-pn23-clarification
https://ez.analog.com/data_converters/high-speed_adcs/f/q-a/21985/ad9230-how-to-generate-pn9-pn23-sequence
https://ez.analog.com/data_converters/high-speed_adcs/f/q-a/22140/pn9-testing-codes-for-ad9634
https://ez.analog.com/data_converters/high-speed_adcs/f/q-a/21099/verifying-pn23-data-on-the-ad9680
For PN23 (notice that the seed given in the manual is big endian, so you need to swap it, and it makes a big change if you do not swap it), my code predicts now for the first values:
3aff 3fd7 2 26e0 a3d 1ca6
which again matches well the manual, table 39, however when I measure I see a different sequence (decimal):
8232, 8189, 14623, 5570, ...
How are these related with data words from the manual ??
All right, I have managed to create a C++ code to reproduce these numbers.
Here is what I get por PN9 (notice that the seed given in the manual is big endian, so you need to swap it, but it does not make any difference):
125b 3c9a 2660 c65 697 3d16 eb2 33c7 3741 2b6e 305a 3eaa 14a 3cbb 2073 293d 1d44 219c bdb d0e 3c3f 383d 3c5c 3209 13b4 1e7c 362a 11c6 3571 c44 84 184e 1561 2f4d 3228 15a7
which matches quite well the manual, table 39. However, when I measure, I see totally different sequence (decimal):
3492, 9061, 14751, 5018, 6504, 8937, 4429, 11320, 10430, 13457, 12197, 8533, 7861, 9028, 16268, 14018, 699, 15971, 5156, 4849, 9152, 10178, 9123, 11766, 3147, 387, 10709, 3641, 10894, 5051, 8059, 1969, 2718, 12466, 11735, 2648, 9435, 12806, 4787, 12263, 11634, 5125, 5346, 1688, 15377, 16169, 10399, 12930, 2813, 14982, 575, 9773, 325, 15804, 4584, 12901, 6279, 15, 263, 12699, 7000, 1475, 8595, 2780, 15509, 10087, 15870, 7631, 14549, 12065, 14619, 3028, 3081
Why are the values not matching? Shouldn't the manual be updated?
Maybe related:
https://ez.analog.com/data_converters/high-speed_adcs/f/q-a/20506/ad9608-pn9-sequence
https://ez.analog.com/data_converters/high-speed_adcs/f/q-a/21831/ad9681-pn9-and-pn23
https://ez.analog.com/data_converters/high-speed_adcs/f/q-a/21448/ad9255-pn9-and-pn23-seed-values
https://ez.analog.com/data_converters/high-speed_adcs/f/q-a/21954/ad9653-pn9-and-pn23-clarification
https://ez.analog.com/data_converters/high-speed_adcs/f/q-a/21985/ad9230-how-to-generate-pn9-pn23-sequence
https://ez.analog.com/data_converters/high-speed_adcs/f/q-a/22140/pn9-testing-codes-for-ad9634
https://ez.analog.com/data_converters/high-speed_adcs/f/q-a/21099/verifying-pn23-data-on-the-ad9680
For PN23 (notice that the seed given in the manual is big endian, so you need to swap it, and it makes a big change if you do not swap it), my code predicts now for the first values:
3aff 3fd7 2 26e0 a3d 1ca6
which again matches well the manual, table 39, however when I measure I see a different sequence (decimal):
8232, 8189, 14623, 5570, ...
How are these related with data words from the manual ??