how to connect VS1053 to MA12070P?

Hello,
I have next chain:

ESP32 -> [SPI] -> VS1053 -> [I2S] -> MA12070P

Currently I am unable to tune I2S parameters on MS12070P to connect with VS1053.

VS1053 has next I2S parameters:
BCLK - 1.5Mhz
LRCLK - 48000 Hz
MCLK - 12.288 Mhz.

On Merus Audio board from Aliexpress MCLK is connected directly to BCLK with wired jumper.
So looks like frequency of BCLK connected to MCLK on MA12070p is not enough to play sound. And I hear silence.

But when I cut jumper and Connect MCLK from MA to MCLK from VS which has 12.288Mhz, I also hear silence.
Datasheet says that 12.288Mhz is correct clock for MA12070p
What can be issue?

I tried to grab I2S stream by logic analyzer and convert grabbed data to WAV file. File is ok. I can play it.
I also tried to send test I2S from ESP.
when BCLK == MCLK== 2.88Mhz MA is playing audio.

Is there any way to connect VS directly to MA?
 
You can use just three lines (BCLK, LRCLK and Data) if you tie together BCLK and MCLK at the MA12070p end. But there are some restrictions: At 48 KHz sampling rate (Fs) the minimum acceptable BCLK frequency is 64 X Fs = 3.072 MHz. See the "Clock System" section in the MA12070p datasheet for more information. So your BCLK needs to be doubled.

Infineon ran into the same problem when they designed an Arduino-compatible audio amplifier based on the MA12070p. They had to include a "clock doubling" circuit for the Arduino BCLK signal. See section 3.1.3 in their application note (LINK).

And, as stated by @frobek, it has to be Left Justified.
 
@ernperkins , I know about minimal frequency, and I still not understand how to connect VS1053.
VS1053 send 1.5Mhz on BCLK.
If connect BCLK to MCLK at MA it will not enough.

If use 12.288Mhz on MCLK from VS1053 it does not work also.

And I know about left justification. I use next parameters:

set_MA_i2s_format(0b100); // 16bit (0b100) left justified
set_MA_i2s_rightfirst(0); // left first (0)
set_MA_i2s_framesize(0b10); // 32 SCK period per WS period (0b10)
set_MA_i2s_order(0); // 0 - MSB (0)
set_MA_i2s_ws_pol(0); // 0 - First word PCM send on LOW WS (1)
set_MA_i2s_sck_pol(1); // 1- capture on rising edge of CLK (1)
set_MA_eh_dcShdn(0); // disable DC protection
set_MA_eh_clear(0); // clear errors
set_MA_eh_clear(1);
set_MA_eh_clear(0);
 
@mboxler
VS1053 does hw decoding of MP3/AAC audio streams from web radio. instead of using SW decoding.

As a result, I use ESP32 to convert I2s stream, to format which MA wants.

Whole pipeline is:

internet -> ESP32 -> VS1053 -> ESP32 again -> MS12070p.

It was a first time, when I try to use I2S protocol. For me, it is very strange, I use standard protocol, but I connect 2 devices, which both use standard i2s.

I have no such problems with connecting i2c devices, and spi devices. but i2s - is strange.
 
Don't get me wrong, I applaud your effort. It took me a long time to get the clocks on the ESP32 to send acceptable rates to the MA12070P. Also time consuming was setting the registers on the MA12070P to match the I2S formats from the ESP32. You can imagine how happy I was to finally get music!