XU208 USB audio I2S's TDM mode init

Technical discussions around xCORE processors (e.g. xcore-200 & xcore.ai).
Post Reply
Ezreal
Junior Member
Posts: 6
Joined: Wed Oct 23, 2019 2:58 pm

XU208 USB audio I2S's TDM mode init

Post by Ezreal »

I am woking on a custom hardware based on XU208 with 8 input and 8 output. 8 Electret Condenser Microphones connect to XU208 with 2 ADCs(each for 4 channels).With AN01027 i port the USB2.0 audio from XE216 to XU208. now I can record with USB cable.
But some channels didn't work well.I can get PCM data from channel 1,3,5,7.channel 2,4,6,8 has no data to HOST.

I initialize ADCs in audiohw.xc with I2C.But i don't see any initialization of I2S's TDM mode.I also searched "tdm_master",but the result is nothing.our demo that can successfully read 8 channels PCM data has set offset and sync_len in struct i2s_config_t with tdm.init(). TDM has a couple of audio data format.I think my issue may case by this.
Image

I appreciate your helps!!!
Attachments
{2409115D-3D5D-4224-B21B-D005F87C5EA7}_20191029114301.jpg
TDM audio data format
(85.18 KiB) Not downloaded yet
{2409115D-3D5D-4224-B21B-D005F87C5EA7}_20191029114301.jpg
TDM audio data format
(85.18 KiB) Not downloaded yet


User avatar
mon2
XCore Legend
Posts: 1913
Joined: Thu Jun 10, 2010 11:43 am
Contact:

Post by mon2 »

The ADCs are configured over I2C.

Are the microphones for channels 2, 4, 6, 8 on the same ADC as microphones 1, 3, 5, 7?

Can you confirm that the I2C communication is solid with the ADC that is responsible for channels 2, 4, 6, 8? With your code, ping the I2C slave address and read out some simple ID register, etc. to validate this leg of the design. Start with the ADC (assumed to be the same ADC p/n and specs) that is mapping channels 1, 3, 5, 7. Once you are confident you can ping the working batch of microphones, repeat with the I2C slave address for the non-working ADC. What are the results?
Post Reply