Help Req for MAX98357 on custom carrier board

Hello @geopaxpvtltd,

I was able to get the MAX98357a codec to work with the Verdin iMX8MM.
Using the SD_MODE pin was required, but there may be a configuration where it is optional.
One thing that is incorrect from the schematics you provided is that I2S_1_D_IN is connected to DIN of the codec, however I2S_1_D_OUT should be connected to DIN.


Here is my configuration:

Hardware

Components

  • 0055 Verdin iMX8M Mini Quad 2GB WB IT
  • 0156 Verdin Development Board
  • MAX98357A Codec Board

Connections

With SoM → Codec:

  • GND → GND
  • V3.3_SW → VDD (Other supported voltages should work as well)
  • GPIO_3 (SODIMM_210) → SD#MODE#
  • I2S_1_BCLK (SODIMM_30) → BCLK
  • I2S_1_SYNC (SODIMM_32) → LRCLK
  • I2S_1_D_OUT (SODIMM_34) → DIN
  • GND → GAIN (Other values for a different gain should work as well)

Software

The monthly release of Torizon OS 6.7.0-devel-202405+build.23 was used.

Device Tree

The Verdin Development Board Device tree was used.

Only the following device tree overlay was used:

verdin-imx8mm_max98357a_overlay.dts (1.6 KB)

Other files

/etc/asound.conf:

asound.conf (2.8 KB)

/home/torizon/.asoundrc [Optional]:

.asoundrc (255 Bytes)

The .asoundrc file allows for software control of the output volume using alsamixer, so it is not stricly required for the codec to work. You can add it in a test container to change the volume with alsamixer.


The recommended way to use such a configuration in production is to configure a SoM and capture its changes using TorizonCore Builder.

Best Regards,
Bruno

1 Like