I2S and sound

Introduction

In order to play audio files we need:

  • the audio file itself, which we expect to be in uncompressed wav format
  • a file system from which to read the file. This is available in MicroPython either in its internal flash or on an SD card
  • a fast 16 bit DAC to convert the audio data into an analogue form that can be consumed by a loadspeaker
  • an amplifier to get enough signal power needed for the loadspeaker
  • a software driver implementing the I2S protocol
The digital data must be transferred to the DAC, which is done through the I2S protocol invented by Philips in the end 1980 ies.

There are two cheap I2S boards converting digital audio data to an analogue audio signal and communicating through the I2S protocol:

  • the ! MAX98357A, a mono converter board with integrated amplifier to which we can directly connect a loadspeaker
  • the PCM5102a, a stereo converter board with a connector for head phones. If we want to connect a loudspeaker to this board we have to pass through an audio amplifier.

Connecting the MAX98357A

max98357a.png

Here is a table showing how I connected the MAX98357A to the ESP32 board:

MAX98357A pin pin on ESP32 CPU card signification
Gnd Gnd  
Vcc 3.3V  
SD n.c.  
Gain Gnd important: don't leave this pin floating!
Din D2: GPIO 21 audio data
BCLK D3: GPIO 17 bit clock
LRC (LRCLK) D1: GPIO 22 left/right clock

Connecting the PCM5102:

pcm5102.png pcm5102back.png

PCM5102 pin pin on ESP32 CPU card signification
Vcc 3.3V  
Gnd Gnd  
BCK D3: GPIO 17 bit clock
Din D2: GPIO 21 audio data
Lck (LRCLK) D1: GPIO 22 left/right clock
FMT Gnd  
Xmt Vcc  
-- Uli Raich - 2021-01-24

Comments

Topic attachments
I Attachment History Action Size Date Who Comment
PNGpng max98357a.png r1 manage 203.5 K 2021-01-24 - 16:23 UliRaich  
PNGpng pcm5102.png r1 manage 127.0 K 2021-01-24 - 16:23 UliRaich  
PNGpng pcm5102back.png r1 manage 88.2 K 2021-01-24 - 17:48 UliRaich  
Edit | Attach | Watch | Print version | History: r5 < r4 < r3 < r2 < r1 | Backlinks | Raw View | Raw edit | More topic actions...
Topic revision: r2 - 2021-01-24 - UliRaich
 
  • Edit
  • Attach
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback