AN10129 (1.0.1) - TDM speed
-
- XCore Expert
- Posts: 580
- Joined: Thu Nov 26, 2015 11:47 pm
Nicely done! EDIT: Does your TDM slave code include sync loss detect? Is there a way to make this efficient? The XMOS I2S slave code seems to lose some throughput due to its syncerror detection (e.g. 3i/3o for slave vs 4i/4o for master IIRC).
-
- XCore Legend
- Posts: 1126
- Joined: Thu May 27, 2010 10:08 am
.I actually have 32 channels @ 96kHz in and out as TDM slave working fine in the simulator. I used 4 x 4-bit port2 and I4S on each data line (bit clock is now 12.5Mhz instead of the more challenging 25 Mhz). I ended up having one task dedicated ot i/o and another task that does the zip/unzip and a small amount of processing. I use a shared memory block declared in .asm to support simple pingpong
I have to say, good work!
Yes, often the way and when dealing with the last few cycles, it's nice to be sure exactly what instructions are being excuted. As long as one side writes and the other side reads (and you know when values change) then a piece of shared memory effectively gives you a multi-channel shallow lockless FIFO.I know in theory I could use movable pointers and swap operations, but it seemed simpler just to use a block of memory.
-
- Active Member
- Posts: 35
- Joined: Wed Dec 18, 2013 9:20 pm
Apologies to dig up this older thread.
I need a TDM interface with 8 channels, 32-bit at 192KHz.
Which results in a 49.152 MHz bit clock.
I have looked at the IO ports and clock block datasheets and found no real evidence that this could not work.
Could please anyone prove me wrong ? (because of missed info or personal experience)
br,
Simon
I need a TDM interface with 8 channels, 32-bit at 192KHz.
Which results in a 49.152 MHz bit clock.
I have looked at the IO ports and clock block datasheets and found no real evidence that this could not work.
Could please anyone prove me wrong ? (because of missed info or personal experience)
br,
Simon