diff --git a/CHANGELOG.rst b/CHANGELOG.rst
index 0cf4ec8e..684db173 100644
--- a/CHANGELOG.rst
+++ b/CHANGELOG.rst
@@ -1,6 +1,11 @@
sc_usb_audio Change Log
=======================
+6.15.1
+------
+ - RESOLVED: DAC data mis-alignment issue in TDM slave mode
+
+
6.15.0
------
- CHANGE: Removed 32kHz sample-rate support when PDM microphones enabled (lib_mic_array
diff --git a/module_usb_audio/audio.xc b/module_usb_audio/audio.xc
index 6754b60a..de905b83 100755
--- a/module_usb_audio/audio.xc
+++ b/module_usb_audio/audio.xc
@@ -407,7 +407,7 @@ static inline void InitPorts(unsigned divide)
tmp += (I2S_CHANS_PER_FRAME * 32) - 32 + 1 ;
/* E.g. 2 * 32 - 32 + 1 = 33 for stereo */
- /* E..g 8 * 32 - 32 + 1 = 225 for 8 chan TDM */
+ /* E.g. 8 * 32 - 32 + 1 = 225 for 8 chan TDM */
#if (I2S_CHANS_DAC != 0)
#pragma loop unroll
@@ -421,7 +421,7 @@ static inline void InitPorts(unsigned divide)
#pragma loop unroll
for(int i = 0; i < I2S_WIRES_ADC; i++)
{
- asm("setpt res[%0], %1"::"r"(p_i2s_adc[i]),"r"(tmp+31));
+ asm("setpt res[%0], %1"::"r"(p_i2s_adc[i]),"r"(tmp-1));
}
#endif
#endif
@@ -656,7 +656,7 @@ unsigned static deliver(chanend c_out, chanend ?c_spd_out,
/* Output "even" channel to DAC (i.e. left) */
for(int i = 0; i < I2S_CHANS_DAC; i+=I2S_CHANS_PER_FRAME)
{
- p_i2s_dac[index++] <: bitrev(samplesOut[(frameCount)+i]);
+ p_i2s_dac[index++] <: bitrev(samplesOut[frameCount +i]);
}
#endif
@@ -761,7 +761,7 @@ unsigned static deliver(chanend c_out, chanend ?c_spd_out,
#pragma loop unroll
for(int i = 1; i < I2S_CHANS_DAC; i+=I2S_CHANS_PER_FRAME)
{
- p_i2s_dac[index++] <: bitrev(samplesOut[frameCount+i]);
+ p_i2s_dac[index++] <: bitrev(samplesOut[frameCount + i]);
}
#endif
diff --git a/xpd.xml b/xpd.xml
index 1922b7ce..25cdebda 100644
--- a/xpd.xml
+++ b/xpd.xml
@@ -96,7 +96,8 @@
-
+
+
XM-004720-SM
XMOS
@@ -105,4 +106,4 @@
1.0
-
+
\ No newline at end of file