A2B AD2428 & AD2433 调试总结

文章详细介绍了如何进行A2BAD242x的调试,包括使用ADISDK编译代码,实现I2C和time接口,通过SigmaStudio配置AD2428芯片,以及主从配置和BP/BN信号的检查。在调试过程中遇到的板子上线序问题也进行了提及。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于A2B AD24xx调试步骤:

  • 编译 ADI 代码:首先需要下载 ADI 提供的 A2B 软件开发工具包(SDK),A2B 软件 SDK 官方下载

  • 文中提到的所有代码和文档都在这款软件的安装路径下。然后按照SDK提供的AE_09_A2B_Stack_UserGuide.pdf文档编写需要的代码的Makefile,并将代码加入到自己驱动中。

  • 必须的函数实现:我们需要实现 I2C 和 time 功能接口。这些接口通常由硬件提供商或芯片制造商提供,然后需要参考 ADI 提供的AE_09_A2B_Stack_UserGuide.pdf文档3.2.1章节,按照说明实现adi_a2b_pal.c中的一些接口,建议复制 a2b-bf 目录下东西作为自己开发基线。

  • SigmaStudio+ 导出配置:SigmaStudio+ 是一款音频处理软件,可以用于对 AD24xx 系列芯片进行配置。在使用 SigmaStudio+ 导出之前,需要先配置 A2B 链路,然后导出生成.c文件。这些需要参考 SigmaStudio+ 相关文档,按照说明完成。

设备发现流程
在这里插入图片描述
Early Sync

  • A2B_I2SGCFG.EARLY 位控制的是 A2B_SYNC 引脚是否在数据槽 0 的 MSB(最重要位)之前的一个周期发生变化
  • 如果 EARLY = 1A2B_SYNC 引脚会在数据槽 0 的 MSB 之前的一个时钟周期变化(提前同步)。如果设备需要更严格的同步时序,可能需要 EARLY = 1
  • 如果 EARLY = 0A2B_SYNC 引脚会与数据槽 0 的 MSB 在同一周期内发生变化。如果设备对时序要求不太严格,或者数据槽 0 的 MSB 变化时就可以开始同步信号,可以设置为 EARLY = 0
数据槽 0: [---- MSB ----] [---- LSB ----]
A2B_SYNC:-------------------------------  (EARLY = 1, 提前一个周期)
            -------------------------------(EARLY = 0, 同周期)

Alternating Sync(Sync Mode)

  • A2B_I2SGCFG.ALT 位控制的是 A2B_SYNC 引脚在立体声模式下(I2S Stereo Mode)如何变化
  • 如果 ALT = 1A2B_SYNC 引脚会在每个采样周期的开始时脉冲高电平(持续一个周期)。更适合需要明确周期性同步信号的情况(比如采样周期的开始标识)
  • 如果 ALT = 0A2B_SYNC 引脚会在右声道数据期间保持高电平,而在左声道数据期间保持低电平。更适合左右声道(或多个通道)之间交替变化的同步方式,特别是在 I2S 立体声或 TDM 模式下
数据槽 0:  [ 右声道数据 ]  [ 左声道数据 ]  [ 右声道数据 ]  [ 左声道数据 ]
A2B_SYNC:   ↑                ↓                ↑                ↓  (ALT = 0)
            ------------------------> 同周期 右/左声道数据

           (ALT = 1):
           A2B_SYNC:-------------------------------------------

TDM Channel Size(Sync)

在这里插入图片描述
在这里插入图片描述

AD2433(TDM8)

/dev/i2c-16 write device(0x68) reg=0x12 018, val=0x04 (0000 0100), cnt=1
sleep 0x19ms
/dev/i2c-16  read device(0x68) reg=0x16 022, val=0x00 (0000 0000), cnt=1
/dev/i2c-16  read device(0x68) reg=0x02 002, val=0xAD (1010 1101), cnt=3
/dev/i2c-16  read device(0x68) reg=0x03 003, val=0x33 (0011 0011), cnt=3
/dev/i2c-16  read device(0x68) reg=0x04 004, val=0x20 (0010 0000), cnt=3
/dev/i2c-16  read device(0x68) reg=0x5E 094, val=0x00 (0000 0000), cnt=1
/dev/i2c-16 write device(0x68) reg=0x12 018, val=0x84 (1000 0100), cnt=1
sleep 0x19ms
/dev/i2c-16  read device(0x68) reg=0x16 022, val=0x80 (1000 0000), cnt=1
/dev/i2c-16  read device(0x68) reg=0x17 023, val=0xFF (1111 1111), cnt=1
Interrupt Source: Master - Interrupt Type: Ignorable interrupt (Code: 255)
sleep 0x19ms
/dev/i2c-16  read device(0x68) reg=0x16 022, val=0x00 (0000 0000), cnt=1
/dev/i2c-16  read device(0x68) reg=0x02 002, val=0xAD (1010 1101), cnt=3
/dev/i2c-16  read device(0x68) reg=0x03 003, val=0x33 (0011 0011), cnt=3
/dev/i2c-16  read device(0x68) reg=0x04 004, val=0x20 (0010 0000), cnt=3
/dev/i2c-16 write device(0x68) reg=0x1B 027, val=0x77 (0111 0111), cnt=3
/dev/i2c-16 write device(0x68) reg=0x1C 028, val=0x78 (0111 1000), cnt=3
/dev/i2c-16 write device(0x68) reg<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值