610|7

16

帖子

0

TA的资源

一粒金砂(中级)

普中科技F28335开发板的TLV320AIC23 芯片初始化 [复制链接]

本帖最后由 准音频算法工程师 于 2024-8-25 11:31 编辑

我不懂这段商家提供的代码:

void main()

{
AIC23Write(0x00,0x00);
    Delay(100);
    AIC23Write(0x02,0x00);
    Delay(100);
    AIC23Write(0x04,0x7f);
    Delay(100);
    AIC23Write(0x06,0x7f);
    Delay(100);
    AIC23Write(0x08,0x14);
    Delay(100);
    AIC23Write(0x0A,0x00);
    Delay(100);
    AIC23Write(0x0C,0x00);
    Delay(100);
    AIC23Write(0x0E,0x43);
    Delay(100);
    AIC23Write(0x10,0x23);
    Delay(100);
    AIC23Write(0x12,0x01);
    Delay(100);        //AIC23Init
}

 

Uint16 AIC23Write(int Address,int Data)
{


   if (I2caRegs.I2CMDR.bit.STP == 1)
   {
      return I2C_STP_NOT_READY_ERROR;
   }

   // Setup slave address
   I2caRegs.I2CSAR = 0x1A;

   // Check if bus busy
   if (I2caRegs.I2CSTR.bit.BB == 1)
   {
      return I2C_BUS_BUSY_ERROR;
   }

   // Setup number of bytes to send
   // MsgBuffer + Address
   I2caRegs.I2CCNT = 2;
   I2caRegs.I2CDXR = Address;
   I2caRegs.I2CDXR = Data;
   // Send start as master transmitter
   I2caRegs.I2CMDR.all = 0x6E20;
   return I2C_SUCCESS;

}


根据注释,应该就是TLV320AIC23 芯片的初始化代码,但是我不是很能理解其中的含义。对照芯片资料的寄存器映射,发现不能和代码一一对应。比如AIC23Write(0x0A,0x00); 0x0A对应的二进制是1010,并不能在寄存器映射中找到这样的地址。
噢噢,我明白了。地址只有7位,是我输入16进制转2进制的高七位。原来如此,这下代码能和寄存器地址一一对应了。

 

image.png  

最新回复

你找找有没有官方的例程吧。。   详情 回复 发表于 2024-8-25 10:24

回复
举报

2781

帖子

0

TA的资源

五彩晶圆(中级)

 AIC23Write(0x00,0x1f);//左声道输入音量
                        Delay(100);
                  AIC23Write(0x02,0x1f);//右声道输入音量
                  Delay(100);
                        AIC23Write(0x04,0xBf);//左声道输出音量
                        Delay(100);
                  AIC23Write(0x06,0xBf);//右声道输出音量
                        Delay(100);
                        AIC23Write(0x08,0x12);//DAC选择,lin输入//AIC23Write(0x08,0x14);//DAC选择,MIC输入
                        Delay(100);
                  AIC23Write(0x0A,0x00);
                        Delay(100);
                        AIC23Write(0x0C,0x00);
                        Delay(100);
                       AIC23Write(0x0E,0x43);//AIC23Write(0x0E,0x43);//数字音频接口格式控制,AIC23主模式,dsp初始化,转换比特值设定00即:16bit--》96dB
                        Delay(100);
                       AIC23Write(0x10,0x23);//AIC23Write(0x10,0x23);//设置采样率为16khz;USB模式下时钟为12mhz,采样率为12/272=44.1Khz
                        Delay(100);
                  AIC23Write(0x12,0x01);//激活标志
                        Delay(100);                //AIC23Init

点评

噢噢,我明白了。地址只有7位,是我输入16进制转2进制的高七位。原来如此,这下我能理解代码是什么意思了,谢谢你  详情 回复 发表于 2024-8-25 11:18
AIC23Write(0x02,0x1f);//右声道输入音量 右声道输入音量对应的地址不是0x01么?  详情 回复 发表于 2024-8-25 10:32

回复

2781

帖子

0

TA的资源

五彩晶圆(中级)

你找找有没有官方的例程吧。。

点评

我去官网找了,好像没有例程  详情 回复 发表于 2024-8-25 10:30

回复

16

帖子

0

TA的资源

一粒金砂(中级)

tagetage 发表于 2024-8-25 10:24 你找找有没有官方的例程吧。。

我去官网找了,好像没有例程


回复

16

帖子

0

TA的资源

一粒金砂(中级)

tagetage 发表于 2024-8-25 10:17  AIC23Write(0x00,0x1f);//左声道输入音量             &n ...

AIC23Write(0x02,0x1f);//右声道输入音量
右声道输入音量对应的地址不是0x01么?

点评

噢噢,我明白了。地址只有7位,是我输入16进制转2进制的高七位。原来如此,这下我能理解代码是什么意思了,谢谢你  详情 回复 发表于 2024-8-25 11:18

回复

16

帖子

0

TA的资源

一粒金砂(中级)

tagetage 发表于 2024-8-25 10:17  AIC23Write(0x00,0x1f);//左声道输入音量             &n ...

噢噢,我明白了。地址只有7位,是我输入16进制转2进制的高七位。原来如此,这下我能理解代码是什么意思了,谢谢你


回复

16

帖子

0

TA的资源

一粒金砂(中级)

准音频算法工程师 发表于 2024-8-25 10:32 AIC23Write(0x02,0x1f);//右声道输入音量 右声道输入音量对应的地址不是0x01么?

噢噢,我明白了。地址只有7位,是我输入16进制转2进制的高七位。原来如此,这下我能理解代码是什么意思了,谢谢你


回复

16

帖子

0

TA的资源

一粒金砂(中级)

噢噢,我明白了。地址只有7位,是我输入16进制转2进制的高七位。原来如此,这下我能理解代码是什么意思了。


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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表