Перейти к содержанию

TDM (аудиоинтерфейс с временным разделением)

I²S передаёт по линии данных два канала — левый и правый. Если каналов больше, например четыре микрофона или восемь усилителей, используют TDM: тот же трёхпроводный интерфейс, но кадр разбит на много слотов.

Обновлено Редакция GAW

TDM (time division multiplexed) — формат цифрового звука, в котором несколько каналов передаются по одной линии данных с временным разделением: кадр делят на N слотов, и каждый канал занимает свой. Линии те же, что у I²S: такт бита, такт кадра и данные. По белой книге InvenSense TDM нужен, когда каналов больше двух, — их может быть до шестнадцати.

Устройство кадра

  • Слоты. Каждый канал занимает 1/N кадра; N обычно округляют до степени двойки — 2, 4, 8 или 16, лишние слоты остаются пустыми.
  • Такт кадра. В I²S это меандр со скважностью 50 %, в TDM часто короткий импульс шириной в один бит.
  • Частоты. По InvenSense такты выше 25 МГц для TDM обычно не используют: на плате начинаются проблемы разводки. Например, 8 слотов по 32 бита при 48 кГц — это 12,288 МГц (наш расчёт).

Несколько устройств на одной линии

TDM удобен в двух случаях: много источников на один вход (несколько микрофонов или АЦП) или один источник на много приёмников (несколько усилителей). Когда источников несколько, каждый выдаёт данные только в своём слоте, а в остальное время переводит выход в третье состояние.

Стандарта у TDM нет, в отличие от I²S. Микросхемы разных производителей различаются полярностью тактов, местом первого слота и поведением в пустых слотах, поэтому временные диаграммы сверяют по даташитам обеих сторон.

В микроконтроллерах

В STM32 TDM формирует блок SAI: по RM0433 он поддерживает I²S, PCM/DSP, TDM и AC'97, а в режиме свободного протокола позволяет задать до 16 слотов, размер слота и данных и форму синхроимпульса. Цифровые микрофоны чаще подключают по I²S или PDM — об этом статья «Микрофоны для микроконтроллера».

Частые вопросы

Чем TDM отличается от I²S?

I²S передаёт два канала, а такт слова — меандр: половина кадра левый канал, половина правый. В TDM кадр делят на N слотов, обычно 4, 8 или 16, и синхроимпульс кадра часто короткий, шириной в один бит. Линии те же: такт бита, такт кадра, данные. InvenSense подчёркивает, что единого стандарта TDM нет.

Как несколько микросхем делят одну линию TDM?

Каждый источник выдаёт данные только в своём слоте, а в чужих переводит выход в третье состояние, чтобы не мешать другим. Номер слота задают выводами или регистрами микросхемы. Поэтому при подключении проверяют, что все устройства одинаково понимают начало кадра и полярность тактов.

Поддерживает ли STM32 формат TDM?

Да, через блок SAI, который есть, например, в STM32F7 и STM32H7. По RM0433 SAI поддерживает TDM и свободный протокол: можно задать до 16 слотов, размер слота и данных, форму синхроимпульса кадра. Обычный интерфейс SPI/I²S таких кадров не формирует.

Источники

  1. InvenSense. Lewis J. Inter-IC Digital Audio Interfaces (WP, Revision 1.0, 12/18/2013) — кроме I²S есть варианты той же трёхпроводной схемы — left-justified, right-justified, PCM; TDM используют, когда по одной линии данных нужно передать больше двух каналов: до шестнадцати каналов, конфигурация линий данных и тактов как у I²S; каждый канал занимает слот шириной 1/N кадра, N обычно округляют до степени двойки (2, 4, 8, 16), лишние слоты пустые; тактовый сигнал кадра часто — импульс шириной в один бит, а не меандр со скважностью 50 %, как у I²S; частоты выше 25 МГц для TDM обычно не используют; при нескольких источниках на одной шине каждый выдаёт данные только в своём слоте и в остальное время переводит выход в третье состояние; стандарта TDM нет — полярность тактов, размещение каналов и поведение в пустых слотах у микросхем разные
  2. STMicroelectronics. RM0433: STM32H742, STM32H743/753 and STM32H750 Value line advanced Arm-based 32-bit MCUs. Reference manual, Rev 9 — разд. 51.1–51.2: SAI поддерживает I²S, LSB- и MSB-выравнивание, PCM/DSP, TDM и AC'97; в режиме свободного протокола приложение задаёт форму кадра, число слотов, размер слота и данных; до 16 слотов настраиваемого размера, размер данных 8, 10, 16, 20, 24, 32 бит, активный уровень, смещение и длительность синхроимпульса кадра настраиваются

Нашли ошибку?