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)
| SAI1 | SAI2 | SAI3 | SAI4 | |
|---|---|---|---|---|
| I²S, PCM/DSP, TDM, AC'97 | есть | есть | есть | есть |
| FIFO | 8 слов | 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.
Источники
- 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 задаёт фронт
- 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
Нашли ошибку?
Смотрите также
- I²S (шина цифрового звука)Трёхпроводная шина для передачи звука: такт, выбор канала, данные
- TDM (time division multiplexed audio)Цифровой звук с несколькими каналами в слотах одного кадра на одной линии данных
- PDM-микрофонЦифровой MEMS-микрофон с 1-битным выходом: такт, выбор канала, децимация
- S/PDIF (IEC 60958)Однопроводной цифровой аудиоинтерфейс с бифазным кодом и блоками по 192 кадра
- MCLK в I²SМастер-такт аудио: кратность частоте дискретизации, 256·fs, 384·fs, PLL от BCK
- STM32H7Cortex-M7 от 280 до 600 МГц, двухъядерные H745/H747 — линейки, память, загрузка и распиновки
- Микрофоны MEMS, PDM и I²SАналоговые и цифровые MEMS-микрофоны, чувствительность в дБВ и дБFS, ICS-43434 по I²S, уровень в дБ SPL