Closed carlocaione closed 7 months ago
Hi Carlo,
Would you email me at frank.kim@nxp.com for this issue follow-up?
Regards, Frank
Hi @carlocaione, thanks for reporting the issues, I have also assigned developer to check the issues internally. Feedback may be delayed, appreciate for your patience.
This is due to a misconfiguration of the I2S instance on my side.
To read 16-channels we need at least I2S instances (for example I2S4
and I2S5
), configured as follows:
s_RxConfig.masterSlave = kI2S_MasterSlaveNormalSlave;
s_RxConfig.mode = kI2S_ModeDspWsShort;
s_RxConfig.dataLength = 32;
s_RxConfig.frameLength = 32 * 16U;
s_RxConfig.position = 0;
I2S_RxInit(I2S5, &s_RxConfig);
I2S_EnableSecondaryChannel(I2S5, kI2S_SecondaryChannel1, false, (64 * 1));
I2S_EnableSecondaryChannel(I2S5, kI2S_SecondaryChannel2, false, (64 * 2));
I2S_EnableSecondaryChannel(I2S5, kI2S_SecondaryChannel3, false, (64 * 3));
s_RxConfig.position = 256;
I2S_RxInit(I2S4, &s_RxConfig);
I2S_EnableSecondaryChannel(I2S4, kI2S_SecondaryChannel1, false, 256 + (64 * 1));
I2S_EnableSecondaryChannel(I2S4, kI2S_SecondaryChannel2, false, 256 + (64 * 2));
I2S_EnableSecondaryChannel(I2S4, kI2S_SecondaryChannel3, false, 256 + (64 * 3));
To be perfectly honest the user manual is not crystal clear about how and when to use multiple instances and channels pairs. Thank you @frankybkimz for your support.
Closing this down.
Using the
EVK MIMXRT685
asI2S
SLAVE configured as:Let's take as example the transmission as depicted here:
0x000001FF
on channel 10x00000200
on channel 20x000003FF
on channel 30x00001000
on channel 16I2S
is configured in interrupt mode, as follows: