I solved the problem. Software MP3 decoder( i use Helix) produced (2*1152) bytes, but MQX SAI driver have a (2*512) bytes buffer as default. of course, I lost some decoded bytes when try send they into SAI buffer.
When I set SAI buffer size to "1152" (in BSP->BSP files->init_sai.c :
KSAI_INIT_STRUCT _bsp_ksai_init = {
0, /* Selected peripheral (HW channel) */
0, /* TX channel */
0, /* RX channel */
I2S_TX_ASYNCHRONOUS | /* TX is asynchronous */
I2S_RX_SYNCHRONOUS | /* RX hooked on TX */
I2S_TX_BCLK_NORMAL | /* Both TX and RX are clocked by the transmitter */
I2S_RX_BCLK_NORMAL, /* bit clock (SAI_TX_BCLK) */
I2S_TX_MASTER | /* SAI transmitter mode */
I2S_RX_MASTER, /* SAI receiver mode */
16, /* Data bits */
I2S_CLK_INT, /* Clock source */
FALSE, /* Tx Dummy */
5, /* Interrupt priority */
1152, /* Buffer size default setting is 512*/
CM_CLOCK_SOURCE_SYSTEM, /* Internal master clock source */
&_bsp_audio_data_init /* Audio init */
};
then i rebuild all the MQX lib's (BSP,PSP,MFS, RTCS, USB).
Now my MP3 decoder work correctly, sound is clear.
I hope my experience will be useful.
And i hope to find full descriptions for MQX i/o drivers in next release.
i can share my project(MQX mp3 usb player for FRDM-k64f) if someone will need to.