飞凌嵌入式FET1052-C解决方案 实现7.1声道FLAC播放器

原创 2020-03-03 17:19:00 RT1052 iMXRT1052 RT1050

本文介绍了采用飞凌嵌入式FET1052-C核心板快速的实现7.1声道FLAC播放器。核心板CPU采用i.MX RT1052,具备528MHz的主频,其Arm Cortex-M7核心支持三个SAIs和SAI1有四个传输(TX)数据线,支持7.1环绕声数据传输。CPU的高性能和四线SAI为本方案的实现提供支持。

i.MX RT1052是NXP i.MX RT1050系列跨界处理器中性价比较高的一款,所谓跨界指的是其兼具MPU的高性能和MCU的低功耗与实时性。

1、i.MX RT1052 SAI特性介绍

•具有独立位时钟和帧同步的发送器,支持四条数据线。

•接收器与独立位时钟和帧同步,支持四数据线。

•每个数据线支持最大32字的帧大小。

•字大小从8位到32位可编程。

•帧的第一个字和其余字大小分别可配置。

•每个传输和接收数据线支持异步32×32位FIFO。

•支持在FIFO错误后自动重启,无需软件干预。

•支持将8位和16位数据打包到每个32位FIFO字中。

•支持将多数据线FIFOs组合成单数据线FIFO。

2、F LAC 解码

FLAC(Free Lossless Audio Codec)是一种类似于MP3但无损的音频格式,这意味着FLAC中的音频压缩没有任何质量损失。

我们所说的FLAC是自由(free)的不仅仅意味着你可以不花钱而得到它。更重要的是FLAC的文件格式是对公众完全开放的,你可以以任何目的使用它(FLAC 项目只FLAC保留维护 FLAC 格式规格和确认兼容特性的权利),FLAC的文件格式和编码/解码的实现方式都不受任何已知专利的限制。还有,所有的源代码都在开放源代码的授权方式下可以得到。它是第一个真正开放和免费无损音频格式。

八个频道分配是:前左、前右、前中、LFE、后左、后右、左、右。

FLAC在i.MX RT1052上的解码完全是通过软件实现的。

3、方案实现

 3 .1 硬件实现原理

基于RT1052设计 7.1声道系统架构.png

图1  7.1声道系统架构


RT1052核心板从SD卡和USB解码FLAC文件并将数据传输到SAI1, SAI1有四条传输数据线(一条数据线包含两个数据通道)。然后,Codec芯片CS42448 获取4个数据线和时钟来处理数据并使用DACs向后级功放传输8个声道的模拟音频信号。

笔者带着大家来熟悉使用PINMUX表选择核心板上的引脚,用于制作原理图。

首先打开“**_PINMUX.xlsx”文件,表头中Pin Name是引脚的名称,用这个名字可以从i.MX RT1052 CPU手册中找到关于引脚的详细说明;Coords是CPU的球号坐标;Alt0~7是引脚的8种功能描述。

那么我们以本文中最关键的SAI1功能做示例,从表中可以找到支持4个数据线的SAI1,如下图2:

iMXRT1052 PINMUX表.jpg

图2

根据这些CPU球号,就可以在飞凌提供的OK1052-C底板原理图中找到这些引脚在底板连接器上的位置(如图3),不过可以发现,这几个引脚已经被QSPI所占用,而QSPI在核心板上用做了QSPI的ROM,所以不建议使用这几个引脚了。

图3

换一组其它引脚,可以找到另外一组支持4 TX线的SAI1引脚,如下图:

图4

同样的方法,可以在OK1052-C底板原理图中找到引脚所在位置,通过图5可以看出,目前飞凌默认配置的是LCD的功能,但是本方案用不到LCD,可以将其用于SAI1的。

图5

按照表格中引脚功能名称,修改原理图标号如下:

图6

其它引脚的配置也是同样的方法,如果所用功能和飞凌OK1052-C底板一致的,可以不修改其功能引脚位置,这样也便于程序的修改、开发。

3 .2 软件实现流程


S1、CPU、功能引脚和时钟初始化,如USDHC、USB、IIC和SAI。

S2、看门狗初始化,以防止程序错误。

S3、使用IIC实现CS42448编解码器的初始化和配置。

S4、创建和初始化一个新的FLAC流解码器。

S5、检测FLAC文件的信息以配置SAI TX。

S6、解码过程中的音频回放。

S7、当一个音频文件结束,下一个文件开始(到步骤4)。如果SD卡上的所有文件都播放完成后,从头播放音频。

4、附件说明

4.1:《Sch》文件夹,参考原理图源文件。

4.2:《CDB42448_DB2.pdf》CS42448评估板参考手册

4.3:《CS42448_F5.pdf》CS42448芯片手册

4.4:《FET1052-C&FLAC7.1player_PINMUX.xlsx》FET1052-C核心板引脚配置表

附件下载地址:https://pan.baidu.com/s/17VXLkYe2GSJVlQTP4YlJMA


     i.MX RT1052核心板详细介绍以及关于RT1052的方案及资料您可联系页面左侧在线客服人员。


相关产品 >

  • OK1052-C开发板

    飞凌提供的i.MXRT105x系列单片机,iMXRT1052单片机基于NXP Cortex-M7 i.MX RT1052跨界处理器设计,底板+核心板分离结构,开发更简单,imxrt1052核心板仅售68元,欢迎致电400-699-6866咨询。推荐iMXRT单片机,性价比高。 了解详情
    OK1052-C开发板
  • OKMX6ULL-C开发板

    40*29mm,双网双CAN,8路串口| i.MX6ULL开发板是基于NXP i.MX6ULL设计开发的的一款Linux开发板 ,主频800MHz,体积小,其核心板仅40*29mm,采用板对板连接器,适应场景丰富。 了解详情
    OKMX6ULL-C开发板

推荐阅读 换一批 换一批