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

SAI (serial audio interface)

Для звука в STM32 есть два пути: интерфейс SPI в режиме I²S и отдельный блок SAI. SAI гибче — в нём два независимых аудиоблока, многоканальный TDM, вход для PDM-микрофонов и выход S/PDIF.

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

SAI (serial audio interface) — последовательный аудиоинтерфейс микроконтроллеров STM32. По RM0433 (разд. 51.1) в нём два независимых аудиоблока, у каждого свой генератор тактов, FIFO и линии ввода-вывода; блоки работают приёмниками или передатчиками, ведущими или ведомыми, синхронно или независимо. Несколько SAI можно синхронизировать между собой.

Протоколы

  • I²S, выравнивание по старшему или младшему биту;
  • PCM/DSP;
  • TDM — до 16 слотов настраиваемого размера;
  • AC'97;
  • свободный протокол: приложение само задаёт форму кадра, число и размер слотов, размер данных, положение и длительность синхроимпульса;
  • выход S/PDIF, когда блок работает передатчиком.

Размер данных — 8, 10, 16, 20, 24 или 32 бита, первым может идти старший или младший бит, режимы моно и стерео.

PDM-вход

У части экземпляров SAI есть интерфейс для PDM-микрофонов: до 4 пар цифровых микрофонов, каждая пара делит линию такта и данных, а вывод LR микрофона выбирает фронт (разд. 51.4.10). Поток PDM после этого нужно отфильтровать и проредить до частоты звука.

SAI в STM32H743 (табл. 430)

SAI1SAI2SAI3SAI4
I²S, PCM/DSP, TDM, AC'97естьестьестьесть
FIFO8 слов8 слов8 слов8 слов
S/PDIFестьестьестьесть
PDMесть——есть

SAI есть и в STM32F74x/F75x (RM0385, гл. 33); для аудиотактов у этих микроконтроллеров есть отдельные PLLI2S и PLLSAI, которые RM0385 упоминает рядом с системным PLL. Внешнему кодеку обычно нужен ещё мастер-такт MCLK. О подключении цифровых микрофонов — в статье «Микрофоны для микроконтроллера».

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

Чем SAI отличается от I²S на SPI в STM32?

SPI в режиме I²S — это один поток стерео в стандартном формате. В SAI два независимых аудиоблока со своими генераторами тактов и FIFO, свободная форма кадра, TDM до 16 слотов, PCM/DSP, AC'97, выход S/PDIF и, у некоторых экземпляров, вход PDM. Для многоканального звука и цифровых микрофонов удобнее SAI.

Можно ли подключить PDM-микрофон к SAI?

Да, если у экземпляра SAI есть интерфейс PDM: у STM32H743 он есть у SAI1 и SAI4. По RM0433 к нему подключают до 4 пар цифровых микрофонов; пара делит линию такта и данных, и вывод LR каждого микрофона задаёт, на каком фронте он выдаёт бит. Поток PDM затем нужно отфильтровать и проредить.

Сколько SAI в STM32H743?

Четыре — SAI1–SAI4 (RM0433, табл. 430). Все поддерживают I²S, LSB- и MSB-выравнивание, PCM/DSP, TDM, AC'97 и S/PDIF, у всех FIFO на 8 слов, а интерфейс PDM есть у SAI1 и SAI4.

Источники

  1. STMicroelectronics. RM0433: STM32H742, STM32H743/753 and STM32H750 Value line advanced Arm-based 32-bit MCUs. Reference manual, Rev 9 — разд. 51.1: SAI поддерживает множество аудиопротоколов; в режиме свободного протокола приложение задаёт форму кадра, число слотов, размер слота и данных; поддержаны I²S, LSB- и MSB-выравнивание, PCM/DSP, TDM, AC'97; выход S/PDIF, когда аудиоблок — передатчик; два независимых аудиоблока со своими генераторами тактов и линиями ввода-вывода; ведущий или ведомый, блоки — приёмники или передатчики, синхронно или нет; несколько SAI можно синхронизировать; разд. 51.2: FIFO на 8 слов в каждом блоке, данные 8, 10, 16, 20, 24, 32 бит, интерфейс PDM до 4 пар микрофонов, до 16 слотов, MSB или LSB первым, моно и стерео, флаги переполнения и опустошения, DMA на 2 канала; табл. 430 — у STM32H743 SAI1–SAI4, S/PDIF у всех, PDM у SAI1 и SAI4; разд. 51.4.10 — PDM: до 4 пар цифровых микрофонов, пара делит линию такта и данных, вывод LR задаёт фронт
  2. STMicroelectronics. RM0385: STM32F75xxx and STM32F74xxx advanced Arm-based 32-bit MCUs. Reference manual, Rev 9 — гл. 33 Serial audio interface (SAI), разд. 33.2 — основные возможности SAI в STM32F74x/F75x

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