查看: 4037|回复: 3

[原创] 【LPC55S69移植RT-Thread】第六篇 音乐播放器开发--I2S驱动开发1

[复制链接]
  • TA的每日心情
    奋斗
    7 天前
  • 签到天数: 116 天

    连续签到: 1 天

    [LV.6]常住居民II

    10

    主题

    207

    帖子

    0

    高级会员

    Rank: 4

    积分
    762
    最后登录
    2025-8-9
    发表于 2023-3-5 17:31:21 | 显示全部楼层 |阅读模式
    目前的BSP暂时不支持I2S驱动,所以就自己动手适配一个吧。
    第一步,阅读开发手册,手册的37章就是对I2S接口的介绍。

    1. I2S简介
    I2S是Flexcomm接口的一个功能,需要通过Flexcomm接口来配置使能它;
    工作模式上,支持主机和从机。当使用多通道时,仅有一个通道可以配置为主机,其他通道配置为从机;
    一个Flexcomm接口的多通道I2S则共享信号引脚,并且使用相同的模式、数据配置、帧配置。多通道分时复用;

    2. I2S初始化流程如下:
    外设时钟:确保AHBCLKCTRL1寄存器中的Flexcomm接口始终开启;
    Flexcomm接口始终:选择Flexcomm接口的时钟源,接口始终不超过100MHz;
    可选的,通过PRESETCTRL1寄存器复位Flexcomm接口;
    确保AHBCLKCTRL0寄存器中的IOCON使能,并且通过IOCON相关寄存器选择I2S引脚及引脚模式;
    I2S速率:主机模式,I2S速率的速率由第二步中选择的的时钟决定,可通过DIV寄存器进行修改。从机模式直接使用输入的I2S时钟;
    中断:通过FIFOINENSET、FIFOINTENCLR和FIFOINTSTAT来使能和使用I2S通道组的中断。NVIC中Flexcomm相关的中断必须使能;
    DMA:可通过FIFOCFG寄存器使能DMA控制器来操作主机模式或从机模式的I2S通道组。

    3.术语
    通道组(Channel Pair):在经典I2S中两个通道的数据(左右声道)可以在单个数据线上传输;在微控制器中,通常是在I2S接口的单个实例中实现。

    4. 例程
    通过MCUXpresso IDE导入i2s_interrupt的例程。
    4.1 初始化I2C总线和编解码芯片:
    a) 函数调用过程:
    CODEC_Init->HAL_CODEC_Init->HAL_CODEC_WM8904_Init->WM8904_Init->CODEC_I2C_Init->HAL_I2cMasterInit
    b) HAL_I2cMasterInit函数定义:
    hal_i2c_status_t HAL_I2cMasterInit(hal_i2c_master_handle_t handle, const hal_i2c_master_config_t *config);
    需要由一个I2C的handle和配置信息。
    c) WM8904_Init函数:
    先初始化I2C总线,然后通过I2C配置WM8904。
    4.2 初始化I2S:
    通过I2S_TxInit进行I2S配置。
    4.3 启动播放
    StartSoundPlayback->I2S_TxTransferNonBlocking
    播放g_Music中的音乐,完了之后会在播放完成回调函数中再次启动。

    5. 驱动开发计划
    a) 基于库开发drv_i2s,主要是I2S的初始化;
    b) 根据例程移植WM8904驱动;
    c) 适配音频框架;
    d) 搭建wav播放器;

    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    2016-12-2 08:40
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    103

    主题

    869

    帖子

    7

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    4346
    最后登录
    2025-8-14
    发表于 2023-3-6 00:01:08 | 显示全部楼层
    wow~
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2025-7-11 08:53
  • 签到天数: 301 天

    连续签到: 2 天

    [LV.8]以坛为家I

    3916

    主题

    7534

    帖子

    0

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    39870
    最后登录
    2025-8-15
    发表于 2023-3-6 09:46:17 | 显示全部楼层
    点个赞
    qiandao qiandao
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    2025-2-21 12:40
  • 签到天数: 16 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    11

    主题

    1681

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    3718
    最后登录
    2025-8-15
    发表于 2023-3-6 10:04:09 | 显示全部楼层
    哈哈,我也搞到块了,现在卡在ii2s_out脚没波形
    ~~~~~~~~~~~~
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-8-16 02:59 , Processed in 0.083726 second(s), 22 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表