Our customer need to find the PCM encode protocol files, in addition, is the Y(n) of Equation 1 on datasheet Page 11 compatible with PCM encode protocol?
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.
Unfortunately our expert on the ADS1281 has limited access to the internet at this time. I'm not sure what you are asking for with respect to PCM encode protocol files. This would seem to me more relevant for an audio codec as opposed to the ADS1281. Can you give me more detail as to the customer application. You can email me the details at:
The M0 and M1 signals are serial bit streams that can be read directly at the output of the Delta-Sigma modulator, bypassing the built-in digital filter in case you wanted to implement your own digital filter (using a DSP or FPGA for example) with a different type of response.
Y[n] is an array of signed integers, representing the modulator's quantization level, where "n" represents the array index.
M0[n] and M1[n] are bit-streams (which can be represented as an array of 1's and 0's) and are combined according to equation 1 to calculate the quantization level. For example, the "6M0[n-3]" term is taking the the value of M0 from three samples ago and multiplying it by six. Note because of the "M0[n-4]" term, you have to collect at least four bits from both the bitstreams before you can calculate the integer value of "Y[n]".
Please refer to this Excel file: ADS128x-Bitstream.xlsx
Alternatively, you don't have to use the ADS1281's modulator output mode to implement your own filter. To save on processing power you can instead configure the ADS1281 to use the SINC filter and run it at a faster data rate. After collecting the ADC data (filtered by the internal SINC filter) you can then pass this data to your post-processing filter in your FPGA to apply an additional filter. Using the ADS1281 this way, you benefit from not having to capture the modulator data at the higher mod clock frequency, and the built-in SINC filter provides some additional anti-aliasing for your post-processing filter.
I hope that helps!
Thanks for your reply. It is very useful.
I have tested it follow your instruction.However, there is something wrong with it.
As you know, 'Y' can take on values between -49 and +49.
For example, the input voltage is 1v and the ref is 5v. We get the average value of Y per 2000 mclk period.
The We get the result is 610 or 646 etc. The 1st voltage is (610/2000)*1.25*2.5=0.953125; The 2nd voltage is (646/2000)*1.25*2.5=1.009375;
The result is very different every time.
Could you tell us the reason and how long result will be stable?
In my opinion, the big change of value of 'Y' is the key.
If I understand correctly, you've collected multiple data sets and in one case you calculated an average value of Y as 0.305 (= 610/2000) and another resulted in an average value of 0.323 (= 645/2000), is that correct?
From that description I don't see any unexpected behavior; however, I also don't know how much noise to expect when collecting the modulator data apart from what the noise spectrum looks like:
Would you be able to share the data that you've collected? I think taking an FFT of the Y values and comparing it to Figure 21 (from the datasheet) would be helpful to see if you are measuring the expected amount of noise.
Also if you have a schematic of your circuit that you can share, that would also be very helpful to me! Feel free to send it to our email list: email@example.com