Welcome, Guest
Username: Password: Remember me

NOTE: This is a "Community" forum. Please be mindful that community members are here to help as part of a community effort. We therefore appreciate your effort in keeping this forum a happy place!

If you have a specific issue (e.g. hardware, failure) and want help from our support team, please use our tech support portal (Support menu - > Contact Us).
Thanks a lot of your help in making a better community.

TOPIC: USBStreamer Kit TDM Specifications and Data Lines

USBStreamer Kit TDM Specifications and Data Lines 2 years 10 months ago #34752

  • p3droml
  • p3droml's Avatar
  • Offline
  • Fresh Boarder
  • Posts: 7
  • Karma: 0
Hi folks and @devteam,

while waiting for you to reply a question in this other topic I've already received my USBStreamer Kit and unsuccessfully tested using 2x NW-AUD-ICS52000 Mic Boards daisy chained and USBStreamer_PID16_TDM_v6_up firmware version.

  • Mic Array Boards are powered externally at 3.3V
  • Mic Array Boards are buffered
  • LRCLK is connected to LRCLK In in the Mic Array Board
  • BCLK is connected to BCLK in the Mic Array Board
  • TDM In is connected to SD out in the Mic Array Board
  • Grounds are tied together

When trying to record using REAPER together with the provided ASIO drivers I'm only getting constant white noise in some channels, see picture below. I've also tried Audacity using WASAPI drivers, same result.





About the data/clock lines I've been able to check the following:
  • I2S frame sync (LRCLK) is a 48KHz pulse signal (high time = 80ns)
  • Bit clock out (BCLK) is a 12.288MHz square signal
  • BCLK/LRCLK ratio is therefore 256, not 64. This ratio is the recommended one for 5-8 Microphone Arrays
  • TDMI In contains data, probably just not shifted in the appropriate timing


LRCLK


BCLK


TDM IN

Note this TDM clock lines are supposed to be valid for 48KHz sampling rate, if LRCLK high time is greater than the frame sync or word select minimum hold time of your slave device (i.e ICS-52000 WS_hold minimum time = 10ns < 80ns).

Questions:
1. What's the polarity used for LRCLK in the TDM firmware? Is the beginning of the frame indicated by the falling or rising edge?
2. What's the polarity of BCLK? Is the audio data shifted into the serial audio port in the falling or rising edge?
3. Is 24 Word Length (2's compliment, MSB first) format used on 32 bit/channel, so that positions 25-32 are ignored (zero-value)?
4. Your website indicates both 44.1 and 48KHz are supported for TDM, but there is only a 48KHz version of the firmware, how can I change it?

Thank you,
Pedro
Last Edit: 2 years 10 months ago by p3droml.
The administrator has disabled public write access.

USBStreamer Kit TDM Specifications and Data Lines 2 years 10 months ago #34756

  • p3droml
  • p3droml's Avatar
  • Offline
  • Fresh Boarder
  • Posts: 7
  • Karma: 0

Device properties showing proper functioning


Audacity unsuccessful recording
Last Edit: 2 years 10 months ago by p3droml.
The administrator has disabled public write access.

USBStreamer Kit TDM Specifications and Data Lines 2 years 8 months ago #35321

Having had similar problems I can share some things I found out:

The USBStreamer TDM firmware treats FS and DATA just as it does for its I2S firmwares with the exception of early FS (which is dictated by the I2S standard but apparently not used by the TDM firmware). This means that USBStreamer will drive FS/DATA on falling BCLK and sample DATA on rising BCLK. We tried to interface the USBStreamer with a device which used the opposite approach, driving signals on rising BCLK and sampling on falling which caused a sh*tload of funky problems, including white-ish noise.

Many devices are configurable when it comes to which BCLK flank to use for drive/sample but ours weren't (internal ASRC in 5-series SHARC). If your device can be configured for different TDM formats I'd suggest that you make sure that it uses the same TDM format used by USBStreamer. If your device cannot be configured you may be interested in knowing that I've requested a firmware compatible with drive-on-rising-BCLK TDM format, in the best of worlds this would be configurable...
The administrator has disabled public write access.

USBStreamer Kit TDM Specifications and Data Lines 2 years 8 months ago #35437

  • p3droml
  • p3droml's Avatar
  • Offline
  • Fresh Boarder
  • Posts: 7
  • Karma: 0
Hi, I also have an open support ticket where I'm asking for a custom firmware (no answer since December 29). As you point I got the following answer regarding TDM format used by USBStreamer firmware:
Tech support team replied:
1. What’s the polarity used for LRCLK in the TDM firmware? Is the
beginning of the frame indicated by the falling or rising edge?
Ans: The TDM on USB streamer is a one shot signal on the beginning of the first bits of the stream (ie first bit of channel one)

2. What’s the polarity of BCLK? Is the audio data shifted into the serial
audio port in the falling or rising edge?
Ans: sample at rising edge

3. Is 24 Word Length (2’s compliment, MSB first) format used on 32
bit/channel, so that positions 25-32 are ignored (zero-value)?
Ans: It indeed is a 24bits signal in a 32bits packet, but it is like I2S which is MSB first (ie bit 31~8 24bits audio data, 7-0 is ignored)


In my case, ICS-52000 microphones sample at rising BCLK while frame starts on FS rising edge (Minimum FS hold = 10 ns < USBStreamer pulse high time = 80ns). Thus, there is only one incompatibility issue:
- USBStreamer being a one shot signal (frame starts on falling instead of rising edge)

I hope we can get a solution, thank you for the information,
Pedro
Last Edit: 2 years 8 months ago by p3droml.
The administrator has disabled public write access.
Moderators: devteam