MCLK (мастер-тактовый сигнал I²S)
Кроме трёх линий I²S — битового такта, слова и данных — многие ЦАП и кодеки ждут четвёртый сигнал: мастер-такт в сотни раз быстрее частоты дискретизации. Без него одни молчат, другие собирают такт сами из BCK.
Обновлено Редакция GAW
MCLK (master clock, у разных производителей SCK, SCKI или MCK) — мастер-тактовый сигнал аудиоинтерфейса, частота которого кратна частоте дискретизации fs. Линии I²S — битовый такт BCK, такт слова LRCK (WS) и данные — переносят отсчёты, а MCLK тактирует цифровые фильтры и модулятор внутри ЦАП или АЦП. Espressif называет MCLK необязательной линией: нужна она или нет, решает ведомая микросхема.
Кратность частоте дискретизации
MCLK задают множителем к fs. По умолчанию это 256·fs: при 48 кГц — 12,288 МГц, при 44,1 кГц — 11,2896 МГц, как в таблице 10 даташита PCM5102A. У STM32F4 вывод MCK выдаёт ровно 256·fs, когда установлен бит MCKOE (RM0090). Какие множители PCM5102A принимает, зависит от fs (табл. 10): 64·fs не поддерживается ни при одной частоте, 128·fs и 192·fs работают только через PLL, а большие множители, вплоть до 3072·fs, допустимы лишь при низких частотах дискретизации — так, чтобы SCK не превышал 50 МГц. Например, при 8 кГц таблица допускает и 3072·fs (24,576 МГц), а при 48 кГц кратности 1152·fs и выше не поддерживаются.
| Длина слота | BCK на два канала | Подходящая кратность MCLK |
|---|---|---|
| 16 бит | 32·fs | 256·fs (делится на 32) |
| 32 бита | 64·fs | 256·fs (делится на 64) |
| 24 бита | 48·fs | 384·fs (делится на 48, а 256 — нет) |
Делимость в последнем столбце — наш пересчёт: BCK получают делением MCLK, и деление должно быть целым. Поэтому ESP-IDF требует для 24-битного слота множитель, кратный 3, например 384, иначе частота WS окажется неточной.
С MCLK и без него
ЦАП с собственной PLL могут обойтись без мастер-такта. PCM5102A, если SCK 16 периодов LRCK остаётся на земле, а BCK и LRCK идут, сам формирует системный такт из BCK. TI отмечает, что трёхпроводное подключение упрощает разводку и снижает излучение высокой частоты. Когда внешний SCK подан, PLL отключается, а SCK должен быть синхронен LRCK: если соотношение сдвинется больше чем на ±5 периодов SCK, выходы до ресинхронизации принудительно держатся на нуле.
Качество MCLK влияет на характеристики ЦАП: в разделе о требованиях к системному такту TI рекомендует источник с малым фазовым джиттером и шумом. Дорожку MCLK делают короткой, а на ESP32 помнят, что вывести MCLK можно только на GPIO0, GPIO1 или GPIO3, и GPIO0 при этом участвует в выборе режима загрузки.
Сокращение MCLK встречается и в другом смысле: в системе тактирования MSP430 это главный такт процессора, не связанный со звуком.
Частые вопросы
Можно ли подключить PCM5102A без MCLK?
Да. По даташиту TI микросхема стартует, ожидая внешний SCK, но если BCK и LRCK идут правильно, а SCK 16 периодов LRCK остаётся на земле, запускается встроенная PLL и формирует системный такт из BCK. Вывод SCK тогда соединяют с землёй. Если внешний SCK подан, PLL отключается, и он должен быть синхронен LRCK.
Почему при 24 битах ESP-IDF советует mclk_multiple 384?
BCLK получается делением MCLK, и деление должно быть целым. При слоте 24 бита на два канала BCLK = 48·fs, а 256·fs на 48 нацело не делится; 384·fs делится — получается 8 (наш пересчёт). Поэтому Espressif требует кратность, делящуюся на 3, иначе частота WS будет неточной.
Это тот же MCLK, что у MSP430?
Нет. В MSP430 MCLK — главный тактовый сигнал процессора от модуля тактирования, он не связан со звуком. В аудиотехнике MCLK — мастер-такт ЦАП и кодеков, кратный частоте дискретизации; у TI в PCM5102A он называется SCK, у ST — MCK. Смысл сокращения определяйте по разделу даташита.
Источники
- Texas Instruments. PCM510xA 2.1 VRMS, 112/106/100 dB Audio Stereo DAC with PLL and 32-bit, 384 kHz PCM Interface (SLAS859C, May 2012, revised May 2015) — Features и Recommended Operating Conditions: кратности системного такта fSCK — 64, 128, 192, 256, 384, 512, 768, 1024, 1152, 1536, 2048, 3072·fS, до 50 МГц; табл. 10: допустимые кратности зависят от fs — 64·fS не поддерживается, 128 и 192·fS — через PLL, старшие кратности только при низких fs; разд. 9.1: встроенная PLL позволяет обойтись без системного такта («master clock») и использовать трёхпроводной I²S, снижая излучение; разд. 9.3.5: интерфейс — SCK, BCK, LRCK, DIN, PLL формирует внутренние такты из SCK или BCK; разд. 9.3.5.2: SCK до 50 МГц, частота распознаётся автоматически, табл. 10: 48 кГц — 12,288 МГц при 256·fS; разд. 9.3.5.3: PLL отключается, как только подан внешний SCK; если BCK и LRCK идут, а SCK 16 периодов LRCK остаётся на земле, PLL запускается и формирует SCK из BCK; разд. 9.3.2.1: LRCK и SCK должны быть синхронны, при сдвиге больше ±5 SCK выходы до ресинхронизации держатся на нуле; Timing Requirements: для лучших характеристик — источник такта с малым фазовым джиттером и шумом
- Espressif. ESP-IDF Programming Guide v6.1, ESP32: Inter-IC Sound (I2S) — MCLK — необязательная линия, опорный такт для ведомого; BCLK получают из MCLK; MCLK должен быть кратен и частоте дискретизации, и BCLK; mclk_multiple по умолчанию 256, при 24-битном слоте нужна кратность, делящаяся на 3, например I2S_MCLK_MULTIPLE_384, иначе частота WS будет неточной; на ESP32 MCLK можно вывести только на GPIO0, GPIO1 или GPIO3, GPIO0 — вывод режима загрузки
- STMicroelectronics. RM0090 Reference manual STM32F405/415, STM32F407/417, STM32F427/437, STM32F429/439 (Rev 21, June 2024) — разд. 28.4.2: вывод MCK в режиме ведущего при установленном бите MCKOE в SPI_I2SPR выдаёт такт 256 × FS; разд. 28.4.4: при включённом MCK FS = I2SxCLK / [(16·2)·((2·I2SDIV) + ODD)·8] для 16-битного кадра канала и I2SxCLK / [(32·2)·((2·I2SDIV) + ODD)·4] для 32-битного
Нашли ошибку?
Смотрите также
- I²S (шина цифрового звука)Трёхпроводная шина для передачи звука: такт, выбор канала, данные
- PLLУмножитель частоты: ФАПЧ в тактировании МК
- ДжиттерОтклонение фронтов сигнала от их идеального положения во времени
- ЦАПКод в напряжение: формула, опорное, разрядность, INL и DNL, примеры
- Тактирование MSP430DCO, FLL, кварцы и делители: Basic Clock+ у G2xx, CS у FR2xx и FR5xx