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保留所有权利。

  • 相关阅读:
    MagicAjax.NET Framework
    实例说明sql优化的重要性
    求助:谁可以给我点share point 开发的资料
    整理了一些tsql技巧(收藏)
    熟悉/了解C#基础问题
    .NET在SQL Server中的图片存取技术(例子在管理里InOutImg)
    SQL Server 2000 函数使用CAST 和 CONVERT
    MagicAjax.NET Framework configuration
    找工作了,希望各位多多帮忙
    OSG节点访问和遍历
  • 原文地址:https://www.cnblogs.com/DLHC-TECH/p/PCM1792_T-D-P12.html
Copyright © 2011-2022 走看看