A2B AD2433  ADXL317调试总结 关于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、.h 或者 .xml文件。这些需要参考 SigmaStudio+ 相关文档,按照说明完成。设备发现流程I2S Global Configuration RegisterAddress: 0x41I2S/TDM Port Programming ConceptsDriving Edge ≠ Sampling EdgeBit SettingData and Clock FormatA2B_I2SGCFG.EARLY = 0SYNC 引脚在数据通道 0 的 MSB(最高有效位)所在的周期内发生变化Early SyncA2B_I2SGCFG.EARLY = 1早期 SYNC 模式。SYNC 引脚在数据通道 0 的 MSB 前一个周期发生变化A2B_I2SGCFG.ALT= 0脉冲 SYNC 模式。SYNC 引脚在每个采样周期开始时激活一个 BCLK 周期Sync ModeA2B_I2SGCFG.ALT= 150% 占空比 SYNC 模式。SYNC 引脚在每个采样周期开始时为高电平,在周期中间为低电平A2B_I2SGCFG.INV = 0SYNC 信号为高电平有效模式。SYNC 的上升沿对应第一个通道(通道 0)Sync PolarityA2B_I2SGCFG.INV = 1SYNC 信号为低电平有效模式。SYNC 的下降沿对应第一个通道(通道 0)A2B_I2SCFG.TXBCLKINV = 0DRX 和 SYNC 引脚在 BCLK 的上升沿采样(Driving Edge)DTXn Change BCLKA2B_I2SCFG.TXBCLKINV = 1DTX 和 SYNC 引脚在 BCLK 的上升沿发生变化A2B_I2SCFG.RXBCLKINV = 0DRX 和 SYNC 引脚在 BCLK 的下降沿采样(Sampling Edge)DRXn Sampling BCLKA2B_I2SCFG.RXBCLKINV = 1DTX 和 SYNC 引脚在 BCLK 的下降沿发生变化如 “I²S/TDM8 示例时序” 图所示,TDM 通道数据采用 MSB 优先格式(最高有效位在前)。当通过 A²B 总线交换的数据不是恰好 32 位时,收发器会期望输入的 TDM 数据通道以 MSB 优先格式到达,并忽略任何低位数据。在输出到本地节点时,收发器会将接收到的 A²B 槽位数据以 MSB 优先格式呈现给 I²S/TDM 端口,并将未使用的低位填充为零。例如,如果 A²B 槽位配置为 12 位数据(上行槽位设置 A2B_SLOTFMT.UPSIZE = 1,或下行槽位设置 A2B_SLOTFMT.DNSIZE = 1),则 12 位输入数据必须在 TDM 通道中左对齐,输出数据由 12 位 A²B 槽位数据加上 4 个零位组成。A²B 收发器支持 SYNC 引脚在通道 0 的 MSB 位所在周期或提前一个周期发生变化。在 早期 SYNC 模式下,SYNC 信号始终提前一个位到达,并可重新相位以匹配数据在 SYNC 信号相关边沿之后一个位到达的情况。A²B 收发器支持对信号的驱动边沿和采样边沿进行独立设置,可通过 A2B_I2SCFG 寄存器进行配置。Driving Edge ≠ Sampling Edge图展示了 I²S/TDM 接口的典型时序,其中输出数据在 BCLK 的一个边沿提供,输入数据在相反的边沿采样(即A2B_I2SCFG.TXBCLKINV ≠ A2B_I2SCFG.RXBCLKINV)⚠️ 注意: 较高的TDM模式(如TDM16或TDM32)会将位时钟(BCLK)速率提升至可能引发建立时间和保持时间冲突的水平,从而导致I2S/TDM操作异常。对于高TDM速率的情况,需针对TDM接口执行时序分析,同时综合考虑A2B收发器和接口设备的时序要求与开关特性。对于高 TDM 速率,应对 TDM 接口进行时序分析,考虑 A²B 收发器与所连接设备的时序要求和开关特性。有关 A²B 收发器的时序要求和开关特性,请参阅产品数据手册。在较高的 TDM 模式下,可以通过提前driving edge或延迟sampling edge来获得有效的设置时间余量,因为driving edge和sampling edge的设置是完全可配置的。AD2433(TDM8)/dev/i2c-16writedevice(0x68)reg=0x12 018,val=0x04(0000 0100),cnt=1sleep0x19ms /dev/i2c-16readdevice(0x68)reg=0x16 022,val=0x00(0000 0000),cnt=1/dev/i2c-16readdevice(0x68)reg=0x02 002,val=0xAD(10101101),cnt=3/dev/i2c-16readdevice(0x68)reg=0x03 003,val=0x33(0011 0011),cnt=3/dev/i2c-16readdevice(0x68)reg=0x04 004,val=0x20(0010 0000),cnt=3/dev/i2c-16readdevice(0x68)reg=0x5E 094,val=0x00(0000 0000),cnt=1/dev/i2c-16writedevice(0x68)reg=0x12 018,val=0x84(10000100),cnt=1sleep0x19ms /dev/i2c-16readdevice(0x68)reg=0x16 022,val=0x80(10000000),cnt=1/dev/i2c-16readdevice(0x68)reg=0x17 023,val=0xFF(11111111),cnt=1Interrupt Source: Master - Interrupt Type: Ignorable interrupt(Code:255)sleep0x19ms /dev/i2c-16readdevice(0x68)reg=0x16 022,val=0x00(0000 0000),cnt=1/dev/i2c-16readdevice(0x68)reg=0x02 002,val=0xAD(10101101),cnt=3/dev/i2c-16readdevice(0x68)reg=0x03 003,val=0x33(0011 0011),cnt=3/dev/i2c-16readdevice(0x68)reg=0x04 004,val=0x20(0010 0000),cnt=3/dev/i2c-16writedevice(0x68)reg=0x1B 027,val=0x77(0111 0111),cnt=3/dev/i2c-16writedevice(0x68)reg=0x1C 028,val=0x78(01111000),cnt=3/dev/i2c-16writedevice(0x68)reg=0x1D 029,val=0x0F(00001111),cnt=3/dev/i2c-16writedevice(0x68)reg=0x96150,val=0x02(0000 0010),cnt=1/dev/i2c-16writedevice(0x68)reg=0x1A 026,val=0x01(0000 0001),cnt=1/dev/i2c-16writedevice(0x68)reg=0x0F 015,val=0x95(10010101),cnt=1/dev/i2c-16writedevice(0x68)reg=0x12 018,val=0x81(10000001),cnt=1sleep0x01ms /dev/i2c-16readdevice(0x68)reg=0x16 022,val=0x00(0000 0000),cnt=1/dev/i2c-16readdevice(0x68)reg=0xA5165,

今日更新