zoukankan      html  css  js  c++  java
  • 为PCM1792设计I^2C接口

    文档标识符:PCM1792_T-D-P12

    作者:DLHC

    最后修改日期:2020.10.5

    本文链接:https://www.cnblogs.com/DLHC-TECH/p/PCM1792_T-D-P12.html

    前言

         有没有这样一种可能:你是一个音响发烧友,恰好有一块PCM1792解码板,就像图0.0所示,遗憾的是这块板子还缺少了I^2S音频数据板和I^2C控制板。但是,你幸运地发现这块板子上预留了I^2S和I^2C的接口,于是就想设计相应的硬件电路和程序来驱动这块解码板,这是本文所讨论的问题。(注意:本文成功地实现了52单片机通过I^2C接口读写PCM1792内部寄存器,但是PCM1792解码板仍然无法工作)

     图0.0-PCM1792解码板

    项目地址

         github(源码、原理图以及数据手册):https://github.com/HaochuanDeng/PCM1792_I-2C

     

    硬件设计

         音频数据输入部分:用一个现成的PCM2706声卡输出I^2S音频数据给PCM1792,要达到这个目的需要将PCM2706的9号引脚接地,并且从PCM2706芯片上引出四根信号线,分别为:BCK、LRCK、DATA、GND,这四根信号线就是I^2S信号输出线,时序如图所示。

    图1.0-PCM2706声卡

    图1.1-PCM2706引脚定义

    图1.2-PCM2706引脚说明

    图1.3-PCM2706输出的I^2S信号时序

         I^2C控制板:使用52单片机通过I^2C接口配置PCM1792内部寄存器,52单片机通过串口接收命令,然后通过I^2C接口读写PCM1792内部寄存器,以达到配置PCM1792芯片的目的。串口命令格式(只有两种命令共两条,分别为读寄存器命令和写寄存器命令)如下图所示。

    图1.4-串口命令格式

    图1.5- I^2C控制板原理图

    图1.6- I^2C控制板

     

    软件设计

         源代码详见github。主要实现了89C52单片机通过I^2C总线读写PCM1792内部寄存器和串口用户界面。实际操作起来十分简单。

     

    测试结果

         1.成功实现了读写PCM1792内部寄存器。

         2.但解码板仍然不工作,可能是解码板其它地方存在问题。

     

    声明

         此教程未经DLHC允许,禁止转载。DLHC保留所有权利。

  • 相关阅读:
    小程序上传多张图片
    小程序倒计时遇到的问题
    taro小程序展示富文本
    taro小程序地址选择组件
    构建基于Suricata+Splunk的IDS入侵检测系统
    SQL注入学习资料总结
    常见WAF绕过思路
    业务安全漏洞挖掘归纳总结
    细说验证码安全 —— 测试思路大梳理
    验证码安全那些事
  • 原文地址:https://www.cnblogs.com/DLHC-TECH/p/PCM1792_T-D-P12.html
Copyright © 2011-2022 走看看