Version: 1.3
Status: Public release
License: Custom Licence
Download: /files/project_builds/XAI-I2S loopback_with_LCD_button_touch_framebuffer_dual_vector_stereo-resampling.zip
This project aims to post updated source code that runs on the XDK-G4-XAI code - proven to work under XDE 10.4 and with the XAI on the right side on the XDK.
Ckeck out the XAI user guide for DIP-Switches settings on the XDK at "https://www.xmos.com/published/xaiqs"
XMOS is planning to release updated code in the future - but until that date - feel free to begin with this one!
Images:
XAI source code
-
- XCore Expert
- Posts: 956
- Joined: Fri Dec 11, 2009 3:53 am
- Location: Sweden, Eskilstuna
XAI source code
Probably not the most confused programmer anymore on the XCORE forum.
-
- XCore Expert
- Posts: 956
- Joined: Fri Dec 11, 2009 3:53 am
- Location: Sweden, Eskilstuna
The Clock synthesizer can generate clocks up to 75 MHz.
The CODEC doesn't want frequencies above 51.2 MHz, but that's too high speed anyway for an unbuffered XMOS serial inport ( in port wck).
Up to 45 MHz seems to work during test.
Thus, 176.4 kHz fs is on the limit in master mode (MCLK=45.1284 MHz)
with a 256xFs QSM => Latency = 111 us.
Lowest possible MCLK=6 MHz => fs=11718,75 Hz @ 512xFs- SSM => Latency = 2.4 ms
The CODEC doesn't want frequencies above 51.2 MHz, but that's too high speed anyway for an unbuffered XMOS serial inport ( in port wck).
Up to 45 MHz seems to work during test.
Thus, 176.4 kHz fs is on the limit in master mode (MCLK=45.1284 MHz)
with a 256xFs QSM => Latency = 111 us.
Lowest possible MCLK=6 MHz => fs=11718,75 Hz @ 512xFs- SSM => Latency = 2.4 ms
Probably not the most confused programmer anymore on the XCORE forum.
-
- XCore Expert
- Posts: 956
- Joined: Fri Dec 11, 2009 3:53 am
- Location: Sweden, Eskilstuna
With a MCLK/BLCK = 2 we can achieve fs=200 kHz with a MCLK=25.6 MHz
There is no danger to starve the XMOS out of time due to a very high MCLK.
But as the code is implemented it's not possible to run the thread in 50 MHz and fs @ 200 kHz; the process will be starved out of time. And this is only for stereo in - stereo out.
Is it really possible to run 6 channels in and 8 channels out at 192 kHz. At the moment I'm not sure at all. But using more active channels shouldn't be a headache for the I2S routine since all date is streamed in only one XMOS channel.
The latency is around 110us at 200 kHz.
There is no danger to starve the XMOS out of time due to a very high MCLK.
But as the code is implemented it's not possible to run the thread in 50 MHz and fs @ 200 kHz; the process will be starved out of time. And this is only for stereo in - stereo out.
Is it really possible to run 6 channels in and 8 channels out at 192 kHz. At the moment I'm not sure at all. But using more active channels shouldn't be a headache for the I2S routine since all date is streamed in only one XMOS channel.
The latency is around 110us at 200 kHz.
Probably not the most confused programmer anymore on the XCORE forum.
-
- XCore Expert
- Posts: 956
- Joined: Fri Dec 11, 2009 3:53 am
- Location: Sweden, Eskilstuna
Added VU meters + 6->6 channels loopback (reversed stereo chan)
Probably not the most confused programmer anymore on the XCORE forum.
-
- XCore Expert
- Posts: 956
- Joined: Fri Dec 11, 2009 3:53 am
- Location: Sweden, Eskilstuna
Added:
Linebuffer to the LCD
Buttons & Leds
Touchscreen
Graph/data vier with 144 dB of zoom in Y-led based on touch
Channel 1&2 are sent to DSPcore(0) & DSPcore(1) where resampled 1:24, then loopbacked.
Channel 3,4,5,6 are loopbacked directly.
2 empty screens for user code (Black and Blue) buttons
Not yet tested or optimized above 44.1 kHz
Linebuffer to the LCD
Buttons & Leds
Touchscreen
Graph/data vier with 144 dB of zoom in Y-led based on touch
Channel 1&2 are sent to DSPcore(0) & DSPcore(1) where resampled 1:24, then loopbacked.
Channel 3,4,5,6 are loopbacked directly.
2 empty screens for user code (Black and Blue) buttons
Not yet tested or optimized above 44.1 kHz
Probably not the most confused programmer anymore on the XCORE forum.