查看: 3679|回复: 0

[原创] 【LPC54114双核任务三】DMIC系统和wm8904再学习

[复制链接]
  • TA的每日心情
    郁闷
    2022-4-4 11:28
  • 签到天数: 351 天

    [LV.8]以坛为家I

    141

    主题

    8054

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    5740
    最后登录
    2022-4-4
    发表于 2017-7-6 17:56:37 | 显示全部楼层 |阅读模式
    本帖最后由 wambob 于 2017-7-8 10:51 编辑

             先前已经学了一点DMIC系统,虽然能跑自带的例程,但是修改SDK例程,总是播放不出音乐。
           简单的流程就是dmic----->LPC54114----->WM8904。
         1.  首先就是dmic的认识,这个数字传感器没什么好说的。使用I2C总线读取数据。
    DMIC学习
         使用了LPC54114的两个接口中的PDM0 接口,与PIO1_15和PIO_16管脚连接。
    初始化化代码,看例程吧,SDK的函数转来转去,指针、回调,真正是考查C语言的掌握程度了。
         2. 其次是WM8904
          先看看框图 ,引脚功能必须知道是什么意思。
    无标题.jpg
          ---左边是麦克风接口,可以就数字也可以接驻极体话筒。
          ---右边两路输出,下边几个管脚要注意了。这个器件的集成度很高,外围器件很少。
          ---SCL 和SDA脚,读写wm8904寄存器,配置工作模式。
          ---ADCDAT,模数转换数据输出
          ---DACDAT , 数模转换数据输入
           上面两个之一,作为 I2S总线的串行SDA 读或写数据到WM8904。
          ---BCLK位时钟,和I2S的串行SCL相连,每一个SCL脉冲,发送一个SDA位。
          ---LRCLK帧时钟,切换左右声道。
          ---MCLK 主时钟,同步wm8904系统。
    时钟之间的关系,看I2S总线协议有详细解说。
         3.作为主控,LPC54114控制着这两个器件的初始化和工作模式。
           SDK提供了模块例程,但是该写后有的不正常。         
             SDK中提供了读取WM8904所有寄存器的值。
             寄存器数组:
    1. static const uint8_t allRegisters[] =
    2. {
    3.     0x00, 0x04, 0x05, 0x06, 0x07, 0x0A, 0x0C, 0x0E, 0x0F, 0x12, 0x14, 0x15, 0x16, 0x18, 0x19, 0x1A, 0x1B,
    4.     0x1E, 0x1F, 0x20, 0x21, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F, 0x39,
    5.     0x3A, 0x3B, 0x3C, 0x3D, 0x43, 0x44, 0x45, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x5A, 0x5E, 0x62,
    6.     0x68, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, 0x7B, 0x7C, 0x7E, 0x7F,
    7.     0x80, 0x81, 0x82, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93,
    8.     0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0xC6, 0xF7, 0xF8
    9. };
    复制代码
          读取并打印寄存器值函数
    1. status_t WM8904_PrintRegisters(wm8904_handle_t *handle)
    复制代码
    无标题.jpg
    对照wm8904可以了解寄存器的功能。
    使用SDK的例程I2S调试wm8904,都没声音。I2C初始化成功了,但I2S出了问题?(终于找到问题了)









    该会员没有填写今日想说内容.
    回复

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2024-4-27 23:18 , Processed in 0.161978 second(s), 19 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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