主要内容

用于STM32发现板的参数音频均衡器

此示例显示如何在ARM基于STMicroelectronics®STM32发现板上模拟三个带参数均衡器算法并在ARM®CortexM的STMicroelectronics®STM32发现板上运行。

必需的MathWorks产品:s manbetx 845

  • 马铃薯

  • 信号处理工具箱

  • DSP系统工具箱

  • 万博1manbetx

  • Matlab编码器

  • 万博1manbetxSimulink编码器

  • 嵌入式编码器

  • 用于STMicroelectr万博1manbetxonics发现板的嵌入式编码器支持包

需要硬件

  • STMicroelectronics STM32F4-Discovery或STM32F746G-Discovery Board

  • 耳机

  • 如果使用STM32F4-Discovery,用于监视和调整模拟的USB TTL-232适配器

介绍

这个例子是延伸的DSP参数均衡器来自DSP系统工具箱的示例,您可以用于模拟主机上的音频算法的行为。也参考ARM Cortex-M处理器的参数音频均衡器说明如何利用用于DSP功能的ARM Cortex-M代码替换库(CRL)。

在此示例中,您将学习如何:

  • 设置ARM Cortex-M CMSIS代码替换库(CRL)

  • 使用STM32F4-Discovery或STM32F746G-Discovery音频外设,并根据音频DMA中断安排算法。

  • 配置模拟模型以调整参数,并在STM32发现板上运行应用程序时监视实时数据。

此示例的可用版本:

先决条件

我们建议完成:

设置ARM Cortex-M CMSIS代码替换库(CRL)

ARM Cortex-M处理器万博1manbetx的嵌入式编码器支持包提供用于信号处理和数学操作的优化代码替换库。

你可以参考万博1manbetx支持ARM Cortex-M处理器的支持CMSI函数用于支持ARM Cortex-M的DSI块的CMSIS条件万博1manbetx帮助页面ARM Cortex-M处理器万博1manbetx的嵌入式编码器支持包有关更多信息的文档。

打开造型选项卡,然后按Ctrl + E要打开配置参数对话框。去代码生成>界面并选择代码替换库>ARM Cortex-M(CMSIS)为了用于STM32发现的参数音频均衡器模型:

使用STM32F4-Discovery音频外设并根据音频DMA中断安排算法。

在里面用于STM32F4-Discovery的参数音频均衡器示例模型,在STM32F4-Discovery板上可用的麦克风的音频数据执行音频均衡。该模型使用“麦克风”块STM32F4-Discovery Library从麦克风获取数据。该块输出16位音频样本的帧。

“麦克风”块设置为44100Hz的样本频率。帧大小设置为44.1 * 20,以获得包含882个16位音频样本的20 ms音频帧

按照以下步骤配置用于STM32F4-Discovery的参数音频均衡器模型:

1.双击麦克风接口块设置麦克风采样率

2.在块参数:麦克风对话框,将音频帧设置为20ms。

3.双击音频输出块设置音频采样率。“音频输出”块采样率必须匹配“MIC”块采样率。

4.确保模型中所有速率的同步。

一种。打开造型选项卡,然后按Ctrl + E要打开配置参数对话框。

硬件实现>操作系统/调度程序并选择基率触发器>“麦克风”块DMA中断..

5.确保“麦克风”块DMA中断作为基率触发器, 这麦克风接口必须以基本速率安排块。打开调试选项卡,选择信息覆盖,选择采样时间>颜色并确保麦克风接口块展示红色的这表明它以基本速率计划。

注意:您也可以选择“音频出版”阻止DMA中断作为基率触发器在步骤4中,在这种情况下,应以基本速率调度“音频输出”块。这将防止在模型中使用更快的速率。

使用STM32F746G-Discovery音频外设

在里面用于STM32F746G-Discovery的参数音频均衡器示例模型,在来自STM32F746G-Discovery板上可用的双麦克风的单声道音频数据上执行音频均衡。该模型使用“音频”块STM32F746G-Discovery Library从麦克风获取数据。该块输出2 * 16位音频样本的帧。因此,在模型中使用子替换块来提取单个通道,并且在输出阶段处,将相同的信道复制到另一个信道。

“音频”块设置为44100Hz的样本频率。帧大小设置为44.1 * 20,以获得包含882,2通道16位音频样本的20 ms音频帧

按照以下步骤配置用于STM32F746G-Discovery的参数音频均衡器模型:

1.双击音频in.块设置麦克风采样频率

2.在块参数:音频进入对话框,将音频帧设置为20ms。

3.双击音频输出块设置音频采样频率。“音频输出”块采样率必须匹配“音频”块采样频率。

在这个例子中,“音频”块DMA中断被自动选择为基率触发器对于模型。这将确保模型中所有速率的同步。

5.打开调试选项卡,选择信息覆盖,选择采样时间>颜色并确保音频in.块展示红色的这表明它以基本速率计划。

注意:使用模型中的音频输入或音频输出块将防止在模型中使用更快的速率。

配置用于监控和调整的硬件和模型

在此任务中,您将对模型执行监视器和调谐操作。当您是原型设计和开发算法时,在模型在硬件上实时运行时,可以监控信号和调谐参数是有用的。监视器和曲调启用此功能。

监视器和调谐动作使用与STM32发现板的串行通信接口。对于STM32F4-Discovery板,您必须使用串行适配器,如USB TTL-232,以在主机和电路板之间交换数据。在STM32F746G-Discovery Board上,您将使用通过编程所需的相同USB连接提供的串行USB。因此,在STM32F746G-Discovery板上不需要额外的串行连接。

打开与目标硬件对应的参数均衡器模型。默认情况下,该模型在主机上使用串行COM端口28。在硬件和模型之间成功的沟通,设置日志记录缓冲区大小(以字节为单位)到足够大的值以容纳记录的信号。例如,在此模型中,缓冲区大小被指定为20000。任何值少于20000可能会导致空白光谱分析仪块输出窗口。

请参阅任务4PIL和监控和调整的代码验证和验证配置模型的示例并在STM32发现板和主机之间设置正确的连接。

要有效地监控和调谐,您需要配置设置以减少目标所需的内存。

1。在这一点硬件选项卡,单击控制面板

2。点击信号和触发在这一点连接和触发对话框。

3.选择信号信号选择对话框并设置期间到'1'。

要启动监视器和调谐仿真,请切换模型仿真模式以监视和调整,然后单击播放按钮,如任务4所解释的PIL和监控和调整的代码验证和验证例子。

在此示例中默认情况下,默认情况下启用外部模式冗长模式,这使得可以显示每个监视器和调谐操作的调试消息。仿真启动后,双击参数音频均衡器块以启动用户界面以调整来自GUI的滤波器系数。您可以为GUI的三个均衡器带更改中心频率,带宽和增益。

GUI生成的新系数将被发送到目标。Matlab命令窗口上的详细模式消息“从Status OK获取ext_setParam_Response”将指示滤波器系数的成功更新。您可以使用Spectrum Analyzer观看在目标上运行的音频均衡器算法的响应。外部模式允许将数据从目标更新到频谱分析仪GUI。

概括

此示例显示了如何生成利用STM32 Discovery Loard可用的音频块的Arm Cortex-M CMSIS DSP功能的代码替换库(CRL)的代码。在音频算法上执行监视器和调整显示如何调谐参数并观看在目标上运行的实时数据。