Hello.
I'm learning XMOS one day.
So may be this is the duplicate question.
Is there supported configuration for 32channel adc conversion for usb application?
I spent some time to learn 8SoundsUSB project based on XS1-L16A-128-QF124. It uses two CS42448 6 channel codecs so i need 6 pcs but main.xc says that:
"#if I2S_WIRES_ADC > 7
#error I2S_WIRES_ADC value is too large!"
CS42448 uses 2 I2S wires so i need 12 to connects 6pcs.
So probably i cant use 6 pcs of CS42448 and i need more density ADC.
Could someone please help me with low cost adc P/N that fits my needs and supported by firmware?
Thanks!
32 channel ADC
-
- New User
- Posts: 3
- Joined: Thu Dec 21, 2017 10:11 pm
-
Verified
- XCore Legend
- Posts: 1153
- Joined: Thu May 27, 2010 10:08 am
By default the reference design can only handle 7 data wires in/out which gives 14 channels in/out for I2S. That's because each tile has 16 1b ports and you need at least two for LRCLK/BCLK (slave) and MCLK if you are master.
You can do 32ch but you'll need to use TDM mode. There are configs that support TDM (eg. 2i16o16xxxxx_tdm8_xcore_master) which would be a good starting point.
You are slightly in uncharted territory though as we do not test for 32ch. However the design supports 16in 16 out at 96k so I would expect it to work in theory..
Also, the highest sample rate you could use for 32ch is 48k because
48000 * 32 * 32 = 49Mbps. The limit is 64Mbps.
You can do 32ch but you'll need to use TDM mode. There are configs that support TDM (eg. 2i16o16xxxxx_tdm8_xcore_master) which would be a good starting point.
You are slightly in uncharted territory though as we do not test for 32ch. However the design supports 16in 16 out at 96k so I would expect it to work in theory..
Also, the highest sample rate you could use for 32ch is 48k because
48000 * 32 * 32 = 49Mbps. The limit is 64Mbps.
Engineer at XMOS
-
- New User
- Posts: 3
- Joined: Thu Dec 21, 2017 10:11 pm
Hi. Sorry but i comletely lost your answer due to disabled email notofocations.
In my app i dont need any audio outputs. Only 16 inputs.
So is it safe to midify this #error ?
"#if I2S_WIRES_ADC > 7
#error I2S_WIRES_ADC value is too large!"
To allow me to compile app with I2S_WIRES_ADC = 8?
I replaced 6ch codecs with 8 stereo I2S ADC UDA1361TS but still need I2S_WIRES_ADC = 8.
Thanks for assistance!
P.S. I asked this question few minutes ago in separate topic which can be removed.
In my app i dont need any audio outputs. Only 16 inputs.
So is it safe to midify this #error ?
"#if I2S_WIRES_ADC > 7
#error I2S_WIRES_ADC value is too large!"
To allow me to compile app with I2S_WIRES_ADC = 8?
I replaced 6ch codecs with 8 stereo I2S ADC UDA1361TS but still need I2S_WIRES_ADC = 8.
Thanks for assistance!
P.S. I asked this question few minutes ago in separate topic which can be removed.
-
Verified
- XCore Legend
- Posts: 1153
- Joined: Thu May 27, 2010 10:08 am
Yes, this should be safe, subject to the comment in the previous post.
Thanks for the note about the double post.
Thanks for the note about the double post.
Engineer at XMOS