Moduł DAC PCM5102A I2S – przetwornik cyfrowo-analogowy z wyjściem stereo (jack 3,5 mm)
Szczegóły produktu
Moduł DAC PCM5102A zamienia cyfrowy sygnał audio I2S na wysokiej jakości analogowy sygnał stereo. Obsługa 32-bitowych danych audio oraz niski poziom szumów ułatwiają zastosowanie go w różnych projektach dźwiękowych.
Moduł obsługuje częstotliwości próbkowania do 384 kHz i oferuje wyjście stereo jack 3,5 mm. Dzięki interfejsowi I2S i niewielkim rozmiarom sprawdza się w projektach DIY Hi-Fi, odtwarzaczach sieciowych oraz innych urządzeniach audio.
🔧 Właściwości:
-
Układ: PCM5102A (Texas Instruments)
-
Interfejs: I2S (DIN, BCK, LCK)
-
Rozdzielczość: do 32 bitów / 384 kHz
-
Napięcie zasilania: 3,3–5 V
-
Wyjście: analogowe stereo, jack 3,5 mm (LOUT, ROUT)
-
Jakość wyjścia: niski poziom szumów, zintegrowane filtry
-
Obsługiwane formaty: I2S, Left Justified
-
Dostępne tryby układu: PCM5100 / PCM5101 / PCM5102A (zworka)
📦 Opakowanie zawiera:
-
1 × moduł PCM5102A
-
1 × zestaw przewodów Dupont
-
1 × prosta listwa pinowa
⚙️ Ustawianie funkcji za pomocą zworek:
| Funkcja | Pin | HIGH (3,3 V) | LOW (GND) | Opis |
|---|---|---|---|---|
| FLT | H1L | małe opóźnienie (IIR) | standardowe opóźnienie (FIR) | Wybór filtra; według źródła dla typowej pracy zalecany jest FIR. |
| DEMP | H2L | de-emfaza włączona (44,1 kHz) | de-emfaza wyłączona | Do starszych nagrań z preemfazą; zwykle wyłączona. |
| XSMT | H3L | wyciszenie wyłączone, łagodny start | wyciszenie aktywne | Sterowanie wyciszeniem wyjścia. |
| FMT | H4L | Left Justified | format I2S | W przypadku ESP32 zwykle używany jest format I2S. |
📌 Uwaga: Punkty konfiguracyjne H1L–H4L mogą nie być ustawione fabrycznie na wszystkich płytkach.
W przypadku ESP32 należy dobrać właściwy format I2S i pozostałe funkcje, w przeciwnym razie PCM5102A może nie odtwarzać dźwięku. Sprawdź układ połączeń danej płytki.
🔧 Zalecane ustawienie dla ESP32:
-
FLT (H1L) = LOW – filtr FIR o standardowym opóźnieniu.
-
DEMP (H2L) = LOW – de-emfaza wyłączona.
-
XSMT (H3L) = HIGH – wyłączenie wyciszenia, łagodny start dźwięku.
-
FMT (H4L) = LOW – standardowy format I2S.
| Pin | Funkcja | Zalecany stan dla ESP32 | Działanie |
|---|---|---|---|
| H1L | FLT | LOW (GND) | filtr FIR, standardowe opóźnienie |
| H2L | DEMP | LOW (GND) | de-emfaza wyłączona |
| H3L | XSMT | HIGH (3,3 V) | wyciszenie wyłączone |
| H4L | FMT | LOW (GND) | format I2S |
Przykład ustawień i połączenia pokazano na zdjęciu poniżej.

💻 Kod do testowania za pomocą ESP32
// Arduino Bluetooth A2DP Sink C++ kód
#include "BluetoothA2DPSink.h"
BluetoothA2DPSink a2dp_sink;
// Callback pre ovládanie hlasitosti
void volume_control_callback(int volume) {
Serial.printf("Current Volume: %d\n", volume);
}
// Callback pre prijímanie metaúdajov médií
void avrc_metadata_callback(uint8_t attribute_id, const uint8_t *value) {
if (value == nullptr) {
return;
}
// Konverzia z uint8_t na char
String metadata = String((const char *)value);
switch (attribute_id) {
case 1: // Názov
Serial.printf("Title: %s\n", metadata.c_str());
break;
case 2: // Interpret
Serial.printf("Artist: %s\n", metadata.c_str());
break;
}
}
void setup() {
Serial.begin(115200);
// I2S konfigurácia
i2s_pin_config_t my_pin_config = {
.bck_io_num = 26, // BCLK
.ws_io_num = 25, // LRC
.data_out_num = 27, // Din
.data_in_num = I2S_PIN_NO_CHANGE
};
a2dp_sink.set_pin_config(my_pin_config);
// Callback funkcie
a2dp_sink.set_on_volumechange(volume_control_callback);
a2dp_sink.set_avrc_metadata_callback(avrc_metadata_callback);
a2dp_sink.start("DENUINO");
Serial.println("Bluetooth A2DP Sink Started");
}
void loop() {
if (Serial.available()) {
String command = Serial.readStringUntil('\n');
command.trim();
if (command == "volume") {
Serial.println("Enter volume intensity (1-100):");
while (!Serial.available()) {
delay(10); // Čaká, kým prídu dáta
}
int volume = Serial.parseInt();
if (volume >= 1 && volume <= 100) {
a2dp_sink.set_volume(volume);
Serial.printf("Volume set to: %d\n", volume);
} else {
Serial.println("Invalid volume value. Please enter a value between 1 and 100.");
}
} else if (command == "media data") {
Serial.println("Requesting media metadata...");
// Metaúdaje sa automaticky zobrazia pomocou callback funkcie
} else {
Serial.println("Unknown command. Use 'volume' or 'media data'.");
}
}
}
Opinie
Brak opinii.



























































