1

I'm trying to connect a HiLetgo PCM5102 I2S DAC to a Teensy 4.0, but I'm not getting any audio out. I have it wired as:

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

The datasheet confirms that if I don't set SCK then it will use a phase-locked loop from BLK to sync its clock.

The red light on the audio board does come on: board with lit light

Checking with the oscilliscope, I see plausible values for the three digital inputs. Here's the left-right clock showing 44.1kHz as it should:

left-right clock

Here's the bit clock, showing 2.85MHz:

bit clock

Dividing, this is 64 bits per sample, which I guess is four bytes each for left and right. This seems high to me, though the datasheet says it can take it.

The VIN also looked plausible, though I forgot to take a picture.

Is there anything else worth trying before deciding that the audio board is defective?


Here's my code, which should be putting out a sine wave:

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

// GUItool: begin automatically generated code
AudioSynthWaveformSine   sine1;          //xy=212,327
AudioOutputI2S           i2s1;           //xy=566,307
AudioConnection          patchCord1(sine1, 0, i2s1, 0);
AudioControlSGTL5000     sgtl5000_1;     //xy=449,467
// GUItool: end automatically generated code

void setup() {
  Serial.begin(9600); // Initialize serial communication
  while (!Serial) {}  // Wait for serial monitor to open

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

  AudioMemory(10);
  sgtl5000_1.enable();
  sgtl5000_1.volume(1);  // adjust the volume if necessary
  sine1.frequency(440);    // set the initial frequency to 440 Hz (A4)

  Serial.println("Audio initialized.");

}

void loop() {
  // nothing to do here, sine wave is generated continuously in the background

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

1 Answer 1

1

After reading the Amazon reviews more carefully, the problem was that there are four pads that need soldering:

  • 1 / FLT - Filter select : Normal latency (Low) / Low latency (High)
  • 2 / DEMP - De-emphasis control for 44.1kHz sampling rate: Off (Low) / On (High)
  • 3 / XSMT - Soft mute control(1): Soft mute (Low) / soft un-mute (High)
  • 4/ FMT - Audio format selection : I2S (Low) / Left justified (High)

I soldered 3 high and 1, 2, and 4 low. Now it works!

soldered jumpers

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.