QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

发新帖

84

主题

16

听众

2930

积分

超级版主

Rank: 8Rank: 8Rank: 8Rank: 8

该用户从未签到

最后登录
2015-5-31
威望
0
金钱
2418
贡献
0
注册时间
2012-5-1
积分
2930
帖子
492
主题
84
精华
4
UID
2
发表于 2013-6-21 23:38:25 |显示全部楼层
更多
本帖最后由 reille 于 2013-6-22 00:40 编辑

/*****************************************************************************
**
**                                   说  明
**
** Copyright (C) 2013 eCos技术网(http://www.52ecos.net). All Rights Reserved.
**
** Author: reille
** Date  : 2013.06.21
** Ver   : Ver0.1
**
*****************************************************************************/

【组件简介】:

STM32平台eCos I2S驱动组件,即eCos声卡驱动(eCos sound card driver, that is, eCos i2s driver)。

包含两个组件包:
1> STM32 I2S驱动组件包;
2> wm8978芯片驱动组件,wm8978是一个I2S接口立体声codec芯片,采用I2C通信协议;

设计的时候,I2S驱动组件采用DMA+中断的方式实现。而wm8978芯片驱动的大部分源码拷贝自安富莱开发板光盘例程中的源码。STM32 I2S驱动设备作为wm8978芯片驱动的依赖设备。它们之间的关系类似于ecos中tty驱动与serial驱动的关系!


【组件使用】:

1. 把01_驱动源码目录下的sound文件夹拷贝到\ecos\packages\devs\目录下;
2. 在ecos.db中添加组件包:

package CYGPKG_DEVS_SOUND_I2S_CORTEXM_STM32 {
        alias                { "I2S bus driver for STM32 family of CortexM controllers" i2s_stm32 }
        hardware
        directory        devs/sound/i2s/cortexm/stm32
        script                i2s_stm32.cdl
    description "
        This package provides a generic I2S device driver for the on-chip
        I2S peripherals in STM32 processors."
}

package CYGPKG_DEVS_SOUND_I2C_WM8978 {
        alias                { "WM8978 driver for WOLFSON stereo codec with speaker driver" sound_wm8978 }
        hardware
        directory        devs/sound/i2c/wm8978
        script                wm8978.cdl
    description "
        This package provides a sound card driver - WM8978 for
                WOLFSON stereo codec with speaker driver."
}

3. 然后把上述两个组件包添加到你板子对应的target中。

4. 使用图形配置工具配置这两个组件包的配置项:

1> 使能ST STM32 I2S bus 2对应的配置项CYGHWR_DEVS_SOUND_I2S_CORTEXM_STM32_BUS2,由于STM32的SPI1和I2S2是共用的,所以默认没有启用该配置项;

2> 设置Bounce buffer size大小,这个是用作STM32 I2S DMA的缓存,参考值1024;

3> 其它配置项可以保持默认配置即可。




【测试程序】:

测试程序由多个程序文件组成,其中:

sound.c:    测试程序的主体实现;
wave_data.h:这个文件中定义了一个音频文件数据;
wave_file.h:wav文件格式解析所需的头文件;

这个测试程序实现了3个功能的测试:

1. 录音和回放的测试,对应sound_record()函数;

2. 播放存储在Nor flash 0x6402 0000位置上wav文件,对应sound_play_wav()函数。wav文件对应03_i2s wav音频文件目录下的谢谢使用 再见.wav文件,测试时,只需要把这个wav文件烧写到or flash 0x6402 0000位置上即可;

3. 播放wave_file.h文件中存储的音频数据,对应sound_play_wave_data()函数;


注意:

1. 这个测试程序可不能直接使用。你可以把它融合到你的测试程序中。
如果要使用,需要添加应用程序入口:cyg_user_start,以及上述3个测试功能函数的调用。

2. 以上驱动和测试程序在安富莱开发板测试过。


【存在问题】:

Ver0.1版本:

本版本还存在一些的问题,比如录音回放,目前使用8K采用频率效果较好,而使用16K采用频率则完全噪音;

下载地址:

游客,如果您要查看本帖隐藏内容请回复

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册会员 新浪微博账号登陆

回复

使用道具 举报

22

主题

1

听众

457

积分

中级工程师

Rank: 3

  • TA的每日心情
    开心
    2013-4-28 20:45
  • 签到天数: 1 天

    [LV.1]初来乍到

    最后登录
    2013-11-3
    威望
    0
    金钱
    344
    贡献
    0
    注册时间
    2013-4-28
    积分
    457
    帖子
    93
    主题
    22
    精华
    4
    UID
    279
    发表于 2013-6-22 07:28:49 |显示全部楼层
    reille又贡献代码啦!我都有转移到STM32平台的冲动!
    专注于工业控制领域的数字电路和嵌入式软件
    回复

    使用道具 举报

    22

    主题

    1

    听众

    457

    积分

    中级工程师

    Rank: 3

  • TA的每日心情
    开心
    2013-4-28 20:45
  • 签到天数: 1 天

    [LV.1]初来乍到

    最后登录
    2013-11-3
    威望
    0
    金钱
    344
    贡献
    0
    注册时间
    2013-4-28
    积分
    457
    帖子
    93
    主题
    22
    精华
    4
    UID
    279
    发表于 2013-6-22 07:59:42 |显示全部楼层
    本帖最后由 weddedbonze 于 2013-6-22 08:01 编辑

    提点小建议:可以打包成package distribution file格式,方便其他人引用
    专注于工业控制领域的数字电路和嵌入式软件
    回复

    使用道具 举报

    22

    主题

    1

    听众

    457

    积分

    中级工程师

    Rank: 3

  • TA的每日心情
    开心
    2013-4-28 20:45
  • 签到天数: 1 天

    [LV.1]初来乍到

    最后登录
    2013-11-3
    威望
    0
    金钱
    344
    贡献
    0
    注册时间
    2013-4-28
    积分
    457
    帖子
    93
    主题
    22
    精华
    4
    UID
    279
    发表于 2013-6-22 08:00:41 |显示全部楼层
    有个疑问:开发板对应的target是不是要添加对这两个包的引用?
    专注于工业控制领域的数字电路和嵌入式软件
    回复

    使用道具 举报

    10

    主题

    0

    听众

    377

    积分

    中级工程师

    Rank: 3

  • TA的每日心情
    奋斗
    2015-2-2 00:50
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    最后登录
    2015-11-15
    威望
    0
    金钱
    350
    贡献
    0
    注册时间
    2013-6-15
    积分
    377
    帖子
    27
    主题
    10
    精华
    0
    UID
    331
    发表于 2013-6-22 09:53:20 |显示全部楼层
    遵循大师的教导,学习高手的做法。
    回复

    使用道具 举报

    23

    主题

    2

    听众

    898

    积分

    高级工程师

    Rank: 4Rank: 4

  • TA的每日心情
    难过
    2013-9-3 21:37
  • 签到天数: 31 天

    [LV.5]常住居民I

    最后登录
    2014-7-16
    威望
    0
    金钱
    821
    贡献
    0
    注册时间
    2013-5-8
    积分
    898
    帖子
    77
    主题
    23
    精华
    0
    UID
    295
    发表于 2013-6-25 09:13:31 |显示全部楼层
    stm32 ecos i2s第一次搞,有什么不懂的地方请多多指教
    回复

    使用道具 举报

    3

    主题

    0

    听众

    99

    积分

    初级工程师

    Rank: 2Rank: 2

  • TA的每日心情
    慵懒
    2013-7-8 10:36
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    最后登录
    2013-7-17
    威望
    0
    金钱
    88
    贡献
    0
    注册时间
    2013-6-28
    积分
    99
    帖子
    11
    主题
    3
    精华
    0
    UID
    350
    发表于 2013-7-5 16:09:42 |显示全部楼层
    rrrrrrrrrr完再看
    回复

    使用道具 举报

    0

    主题

    0

    听众

    137

    积分

    初级工程师

    Rank: 2Rank: 2

    该用户从未签到

    最后登录
    2017-9-28
    威望
    0
    金钱
    119
    贡献
    0
    注册时间
    2013-6-18
    积分
    137
    帖子
    18
    主题
    0
    精华
    0
    UID
    334
    发表于 2013-8-2 08:44:37 |显示全部楼层
    ddddddddddddddddddddd
    回复

    使用道具 举报

    0

    主题

    0

    听众

    137

    积分

    初级工程师

    Rank: 2Rank: 2

    该用户从未签到

    最后登录
    2017-9-28
    威望
    0
    金钱
    119
    贡献
    0
    注册时间
    2013-6-18
    积分
    137
    帖子
    18
    主题
    0
    精华
    0
    UID
    334
    发表于 2013-8-2 08:45:17 |显示全部楼层
    DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
    回复

    使用道具 举报

    0

    主题

    0

    听众

    46

    积分

    实习生

    Rank: 1

    该用户从未签到

    最后登录
    2014-11-21
    威望
    0
    金钱
    32
    贡献
    0
    注册时间
    2013-5-3
    积分
    46
    帖子
    14
    主题
    0
    精华
    0
    UID
    288
    发表于 2013-8-3 22:26:52 |显示全部楼层
    谢谢分享,学习中!
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册会员 新浪微博账号登陆

    无觅相关文章插件

    申请友链|手机版|关于本站|站点帮助|eCos技术网 ( 粤ICP备12094833号-1  

    GMT+8, 2017-12-17 16:12 , Processed in 0.212415 second(s), 35 queries .

    Powered by Discuz!2.5 X2.5

    © 2001-2012 Comsenz Inc.

    回顶部