zoukankan      html  css  js  c++  java
  • (原创)K60 的 I2S音频接口设计

    拿到Freescale Kinetis K60已经一段时间了,想闲着的时候做个SD+FatFs+DAC的音乐播放器,输出直接驱动扬声器。看了好几天的英文手册,Freescale的I2S太麻烦了,除了标准I2S模式,还有普通模式和Network模式。要开始找工作了,还需要学Perl跟Cadence IC,等找完工作再把SD卡和文件系统加上,完整成音乐播放器。

    效果图

    测试视频:

     

    软件设计不做详细说明了,硬件设计是自己的一个弱项,这里简单说说硬件电路吧。

    方案有两种

    1、MAX5556+LM358二阶低通滤波器+LM386功率放大

    2、PT8211+RC低通滤波器+LM386 功率放大

    两种方案都是在单电源(5V)供电,其中方案1比较合理,MAX5556自带内部低通模拟和输出驱动,按道理可以直接驱动小耳机,加上巴特沃兹二阶低通滤波器也只是为了让性能更好点,LM386功率放大电路为了直接驱动扬声器。向美信申请了MAX5556一时半会儿也来不到,悲催的是自己的LM356也用完了(应该大采购一次了),无奈之下选了方案二。需要说明的是,MAX5556数据格式为左对齐,PT8211为右对齐(也成为Japanese格式),所以K60编写程序时,MAX5556直接使用Master模式就行,而PT8211需要使用普通模式。

    PT8211和K60的接口电路就没什么好说的,标准I2S三根线接上K60就行了。滤波电路简单搭了一下,R1和C1组成简单的一阶低通,Fc大概在200Khz,凑合能用吧。C2为了将PT8311偏置直流去掉,这样LM386放大时才能保证较好的正负双向放大效果 。

    LM386放大电路

    6脚和8脚之间可以接一个电容串一个可调电阻,通过调整电阻阻值来改变放大倍数在20~200之间。我没有接上,默认就是20倍。注意的是,真正接入3脚前,是要加一个可调电阻分压的,因为3脚的输入峰峰值最好不要大于250mv,太大放大倍数20倍以后,就会失真成方波了。C1选用220uf,将也是讲直流成分去掉,使得驱动R1(就是扬声器)是正负音频信号。

    ========================================

    源程序下载:

    K60_I2S

    仿真电路:

    LM386功放仿真电路

    LM385二阶低通滤波器仿真

    RC低通滤波器仿真

    相关文件

    I2S对齐

    巴特沃兹二阶低通滤波器计算公式

    RC低通滤波器计算公式

    MAX5556资料

    PT8211/TA1311资料(英文)

    LM358资料

    LM386资料

  • 相关阅读:
    易语言常用源码
    ci的数据库地址
    格式化输出php数组
    mysql插入表情问题
    线程、进程与协程2
    线程、进程与协程
    if __name=='__main__"的作用
    动态导入模块
    面向对象补充之方法
    getpass模块
  • 原文地址:https://www.cnblogs.com/surpassal/p/2665940.html
Copyright © 2011-2022 走看看