62939

[i] Работа с модулем видеокамеры и аудиокодека на отладочной плате К1967ВН044. Аудиокодек: Echo и вывод Sin

Дата последнего изменения: 23.01.2026 15:59:16

В данной статье будет рассмотрен пример работы аудиокодека, входящего в состав модуля "Модуль видеокамеры и аудиокодека для отладочной платы К1967ВН044". Разработанный проект, описанный в данной статье, позволяет выводить Echo-сигнал через наушники, захватывая звук через микрофон, а также генерировать функцию Sin с заданными характеристиками.

Проект доступен для загрузки в подразделе "Файлы для скачивания" сразу после статьи.

В установленном виде на "Модуль отладочный для микросхемы К1967ВН044" модуль выглядит так, как показано на рисунке 1.

Рисунок 1 - Модуль отладочный для микросхемы К1967ВН044 с подключенным модулем видеокамеры и аудиокодека

Подключение модуля производится в разъемы XS7 и XS8. Подробнее о том, какие выводы использует каждый модуль, а также к каким разъемам необходимо выполнять подключение, описано на одной из страниц с часто задаваемыми вопросами "[i] Выводы, используемые модулями, на отладочной плате К1967ВН044". Описание модулей также доступно из паспорта на отладочный комплект производства компании Миландр.

На рисунке 1 выделена микросхема аудиокодека TLV320AIC23B, именно она участвует в выводе и захвате звука, обмениваясь информацией с микросхемой ЦОС К1967ВН044. При этом для обмена используются линии SSI0, все операции по взаимодействию в разработанном проекте реализованы при помощи программного интерфейса SPI.

Особенности проекта:

  1. В состав входят файлы для управления микросхемой аудиокодека - tlv320aic23b.c и tlv320aic23b.h. В них присутствует описание всех регистров установленной на модуль микросхемы, а также описаны основные функции для работы с ней;
  2. Программный SPI описан в файлах spi_soft.c и spi_soft.h;
  3. Используется библиотека HAL производства компании Миландр (из состава IDE CM-LYNX 2.09.00). В приложенном проекте библиотека уже подключена;
  4. Из hal_audio для режима Echo и Sin используются следующие функции: HAL_AUDIO_StartDMA_TX_2BUF, HAL_AUDIO_StartDMA_RX_2BUF, HAL_AUDIO_I2SInit. Использование функций для приёма/передачи с двумя буферами обусловлено тем, что такой подход рационален при обработке информации, так как пока данные в одном буфере принимаются, данные в другом буфере кодируются;
  5. Выбор режима работы аудиокодека, Echo или вывод Sin, осуществляется при помощи выбора одной из директив #define в файле tlv320aic23b.c. Директивы имеют описание ECHO и SIN. Соответственно, комментируя одну из двух, активным становится оставшийся режим;
  6. При выборе режима, когда выводится Sin, стоит отметить, что высчитывание точек происходит в функции vTlv320MakeSin файла tlv320aic23b.c. Для регулировки частоты используются директивы #define SIN_FREQ, SIN_MAX, SIN_AUDIO_FREQ в файле tlv320aic23b.h. Таким образом можно получить сигнал синуса в слышимом диапазоне от самого низкочастотного до ультразвука;
  7. Запуск работы аудиокодека происходит единожды в файле main.c при помощи функции vTlv320Init, которая запускает процесс обмена по DMA с помощью библиотеки HAL;
  8. В бесконечном цикле while() на отладочной плате периодически моргают светодиоды.

Сохранить статью в PDF

Файлы для скачивания

Документация

Теги

Была ли статья полезной?