

The PCM1808 is a high-performance stereo analog-to-digital converter (ADC) designed for audio applications. It features a 24-bit resolution and supports single-ended analog inputs, making it ideal for capturing high-quality audio signals. This component is widely used in audio recording, signal processing, and digital audio systems due to its low noise and high dynamic range.
Common applications include:








The PCM1808 ADC board is built around the Texas Instruments PCM1808 IC and includes supporting components for easy integration into projects. Below are the key technical details:
The PCM1808 board typically includes a header for easy connection. Below is the pinout:
| Pin Name | Description |
|---|---|
| VCC | Power supply input (3.3V or 5V, depending on board) |
| GND | Ground |
| L_IN | Left channel analog input |
| R_IN | Right channel analog input |
| BCK | Bit clock for I²S interface |
| LRCK | Left-right clock for I²S interface |
| DATA | Digital audio data output (I²S format) |
| MCLK | Master clock input (optional, depending on board) |
Below is an example of how to interface the PCM1808 with an ESP32 using the I²S protocol:
#include <driver/i2s.h>
// I²S configuration for PCM1808
#define I2S_NUM I2S_NUM_0 // Use I²S peripheral 0
#define I2S_BCK_PIN 26 // Bit clock pin
#define I2S_LRCK_PIN 25 // Left-right clock pin
#define I2S_DATA_PIN 22 // Data output pin
void setup() {
// Configure I²S interface
i2s_config_t i2s_config = {
.mode = I2S_MODE_MASTER | I2S_MODE_RX, // Master mode, receive data
.sample_rate = 44100, // Sampling rate: 44.1 kHz
.bits_per_sample = I2S_BITS_PER_SAMPLE_24BIT, // 24-bit resolution
.channel_format = I2S_CHANNEL_FMT_RIGHT_LEFT, // Stereo format
.communication_format = I2S_COMM_FORMAT_I2S, // I²S standard
.intr_alloc_flags = 0, // No specific interrupt flags
.dma_buf_count = 8, // Number of DMA buffers
.dma_buf_len = 64 // Length of each DMA buffer
};
// Configure I²S pins
i2s_pin_config_t pin_config = {
.bck_io_num = I2S_BCK_PIN, // Bit clock pin
.ws_io_num = I2S_LRCK_PIN, // Left-right clock pin
.data_out_num = -1, // Not used for PCM1808
.data_in_num = I2S_DATA_PIN // Data input pin
};
// Install and start I²S driver
i2s_driver_install(I2S_NUM, &i2s_config, 0, NULL);
i2s_set_pin(I2S_NUM, &pin_config);
}
void loop() {
// Buffer to store audio data
uint8_t audio_data[128];
size_t bytes_read;
// Read audio data from PCM1808
i2s_read(I2S_NUM, audio_data, sizeof(audio_data), &bytes_read, portMAX_DELAY);
// Process audio data (e.g., send to storage or perform DSP)
}
No Audio Output:
Distorted Audio:
I²S Data Not Received:
Q: Can I use the PCM1808 with an Arduino UNO?
A: The Arduino UNO does not natively support I²S. You will need an external I²S interface or a microcontroller with built-in I²S support.
Q: What is the maximum sampling rate supported by the PCM1808?
A: The PCM1808 supports sampling rates up to 96 kHz.
Q: Do I need an external master clock (MCLK)?
A: Some PCM1808 boards include an onboard oscillator, eliminating the need for an external MCLK. Check your board's specifications.
Q: How do I reduce noise in the audio signal?
A: Use decoupling capacitors near the power supply pins, ensure proper grounding, and minimize interference from nearby components.
This concludes the documentation for the PCM1808 Audio Stereo ADC Single-Ended Analog-Input Decoder 24bit Amplifier Board.