Нет выходного сигнала от 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);
}
@Jeff Kaufman, 👍1
1 ответ
После более внимательного прочтения обзоров Amazon проблема заключалась в том, что есть четыре контактные площадки, которые нужно припаять:
- 1 / FLT - Выбор фильтра: Нормальная задержка (Низкая) / Низкая задержка (Высокая)
- 2 / DEMP - Управление коррекцией предыскажений для частоты дискретизации 44,1 кГц: Выкл. (Низкая) / Вкл. (Высокая)
- 3 / XSMT - Мягкое отключение звука (1): Мягкое отключение звука (низкий уровень) / Мягкое включение звука (высокий уровень)
- 4/ FMT - Выбор аудиоформата: I2S (низкий) / выравнивание по левому краю (высокий)
Я спаял 3 высоких и 1, 2 и 4 низких. Теперь работает!
- Файл Wave не воспроизводится с Teensy 3.5
- Хочу создать Bluetooth audio control (увеличение/уменьшение громкости, воспроизведение, пауза и т.д.) для смартфона
- Как подключить ардуино к разъему для наушников?
- Подключить Arduino к телефонной линии?
- DFPlayer Noise: исследован, испытан и бип бип бип бип
- Генерация белого шума звуковой частоты с помощью Arduino Mini Pro
- Транзисторный усилитель для управления динамиком с использованием ШИМ Arduino
- Вложенный цикл