Нет выходного сигнала от PCM5102 I2S DAC

Я пытаюсь подключить HiLetgo PCM5102 I2S DAC к Teensy 4.0, но звук не выводится. Я подключил его следующим образом:

SCK - GND
BCK - BCLK1 (21)
DIN - OUT1A (7)
LCK - LRCLK1 (20)
GND - GND
VIN - +3.3v

В техническом описании подтверждается, что если я не установлю SCK, то для синхронизации часов будет использоваться фазовая автоподстройка частоты от BLK.

Красный индикатор на звуковой плате загорается: доска с зажженной подсветкой

Проверяя с помощью осциллографа, я вижу правдоподобные значения для трех цифровых входов. Вот лево-правые часы, показывающие 44,1 кГц, как и должно быть:

часы слева направо

Вот битовая тактовая частота, показывающая 2,85 МГц:

тактовая частота бита

Деление, это 64 бита на выборку, что, я полагаю, составляет по четыре байта для левого и правого каналов. Мне это кажется высоким, хотя в техническом описании говорится, что он может это выдержать.

VIN-номер также выглядел правдоподобно, хотя я забыл сделать фотографию.

Есть ли что-то еще, что стоит попробовать, прежде чем решить, что звуковая плата неисправна?


Вот мой код, который должен выдавать синусоидальную волну:

#include <Audio.h>
#include <Wire.h>
#include <SPI.h>
#include <SD.h>
#include <SerialFlash.h>

// GUItool: начать автоматически сгенерированный код
AudioSynthWaveformSine   sine1;          //xy=212,327
AudioOutputI2S           i2s1;           //xy=566,307
AudioConnection          patchCord1(sine1, 0, i2s1, 0);
AudioControlSGTL5000     sgtl5000_1;     //xy=449,467
// GUItool: завершение автоматически сгенерированного кода

void setup() {
  Serial.begin(9600); // Инициализация последовательной связи
  while (!Serial) {}  // Ожидание открытия последовательного монитора

  Serial.println("Initializing audio...");

  AudioMemory(10);
  sgtl5000_1.enable();
  sgtl5000_1.volume(1);  // при необходимости отрегулируйте громкость
  sine1.frequency(440);    // устанавливаем начальную частоту 440 Гц (A4)

  Serial.println("Audio initialized.");

}

void loop() {
  // здесь ничего не нужно делать, синусоида непрерывно генерируется в фоновом режиме

  Serial.println("Running loop...");
  delay(10000);
}

, 👍1


1 ответ


2

После более внимательного прочтения обзоров Amazon проблема заключалась в том, что есть четыре контактные площадки, которые нужно припаять:

  • 1 / FLT - Выбор фильтра: Нормальная задержка (Низкая) / Низкая задержка (Высокая)
  • 2 / DEMP - Управление коррекцией предыскажений для частоты дискретизации 44,1 кГц: Выкл. (Низкая) / Вкл. (Высокая)
  • 3 / XSMT - Мягкое отключение звука (1): Мягкое отключение звука (низкий уровень) / Мягкое включение звука (высокий уровень)
  • 4/ FMT - Выбор аудиоформата: I2S (низкий) / выравнивание по левому краю (высокий)

Я спаял 3 высоких и 1, 2 и 4 низких. Теперь работает!

паяные перемычки

,