为PCM1792设计I^2C接口

文档标识符:PCM1792_T-D-P12

作者:DLHC

最后修改日期:2021.10.2

本文链接: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保留所有权利。

posted @ 2020-10-04 22:00  DLHC  阅读(1103)  评论(0编辑  收藏  举报