AD2428W手册解读之概述 中

简介: AD2428W手册解读之概述 中

AD2428W手册解读之概述 中


4、架构概念

       以下部分提供了描述硬件块、接口和互连的信息。

4.1、I2C接口

       I2C接口用于从本地连接的主机直接访问收发器寄存器空间,并通过A2B总线在主收发器和系统中任何发现的从节点之间远程交换I2C数据。这个协议被称为I2C over distance,其中交换的I2C数据被嵌入在同步控制帧(下游,从主到目标从)和同步响应帧(上游,从目标从到主)中。

       模块中的I2C接口支持最多5v逻辑电平,具有以下特点:

               1、A2B主节点上的Slave only操作。

               2、A2B从节点上的主、多主或从操作。

               3、由A2B_I2CCFG.DATARATE配置的100k或400k位/s速率的操作。

               4、7位寻址。

               5、时钟延展。

               注意:主节点上的A2B主机必须支持I2C时钟延展,以便与主收发器接口。

       被配置为master的收发器可以识别两个I2C设备地址:

               1、BASE_ADDR:用于通过I2C端口直接访问它的寄存器空间。

               2、BUS_ADDR:用于通过A2B总线使用I2C over distance协议远程访问从节点寄存器

       和从节点I2C外设。

       I2C BASE_ADDR由ADR2/IO2和ADR1/IO1引脚在上电复位时的逻辑级别设置,从而支持最多4个主设备连接到同一条I2C总线。7位设备地址的LSB决定I2C数据交换是使用BASE_ADDR(位1 = 0)访问收发器,还是使用BUS_ADDR(位1 = 1)通过master-enabled的收发器访问总线节点,如I2C地址表所示:

I2C设备地址表

       被配置为slave的收发器不能识别BUS_ADDR。在从收发器上,I2C接口允许I2C主从行为。当收发器通过A2B总线接收到来自主机的远程I2C外设访问请求时,它就是I2C的主人。从收发器作为I2C主机,然后将I2C交易转发给在其A2B_CHIP寄存器中编程的I2C从地址。当本地外部控制器通过I2C端口访问收发寄存器(BASE_ADDR)时,它是I2C slave。

       注意:当本地外部控制器可以对从收发器的寄存器空间进行编程时,A2B_SWCTL、A2B_RESPCYCS、A2B_SLOTFMT、A2B_DATCTL、A2B_RAISE和A2B_GENERR寄存器必须由远端主机通过A2B总线写入。从本地I2C端口写入这些寄存器对寄存器没有影响。

       收发器上的I2C接口允许在锁相环锁定前进行寄存器编程。写1表示动作(W1A)位(例如,A2B_CONTROL.ENDDSC和A2B_CONTROL.NEWSTRCT)在锁相锁之前无效,因为协议引擎仍在重置中。

       注意:A2B_SWCTL, A2B_SLOTFMT, A2B_DATCTL和a2b_discry寄存器不能在锁锁之前写入主收发器。在锁锁建立之前,对这些寄存器的写操作是无效的。

       注意:系统软件的设计必须避免同时从A2B主机(通过A2B总线)和本地处理器(通过I2C端口)写入同一从寄存器。当发生写争用时,两个写操作都完成了,但是它们完成的顺序是不可预测的。

4.1.1、I2C时钟延展:

       收发器采用I2C时钟拉伸特性,保证I2C接入有足够的时间处理。主要应用于主机I2C通过A2B总线接入从节点收发器和从节点I2C外设。时钟拉伸由主机在以下时间响应主机I2C访问发起:

       1、在写访问期间 - - 在每个数据字节之后的确认位之前。

       2、在读访问期间 - - 在读请求后面的确认位之前。

       3、在对一个以上字节的突发读/写访问期间 - - 在后续数据字节的第一个比特之前。

       将SCL信号拉低向主机表明收发器需要更多的时间来处理请求。一旦收发器准备好应答请求,它就会让SCL信号升高,这样主机就可以重新获得对SCL的控制,并继续应答(ACK)和下一个字节。

       注意:在A2B系统设计中,主机(I2C主机)必须支持I2C时钟延展。

       当从节点中的外围设备拉长I2C时钟时,SCL信号也在主收发器和主机之间拉长。如果SCL信号在32个超级帧的时间内没有被外围设备释放,则主机注册一个超时(A2B_INTPND2。I2CERR = 1),释放SCL,并停止对主机时钟的拉伸。这个超时确保从外围设备不能使主机的I2C接口永久停止。

4.1.2、访问I2C收发器

       7位设备地址的LSB决定I2C数据交换是使用BASE_ADDR(位1 = 0)访问收发器还是使用BUS_ADDR(位1 = 1)通过主配置的收发器访问总线节点,如下表所示。

I2C设备地址

       A2B收发器支持以下读写操作:

               1、单字写操作——A2B主(I2C从)在第九个时钟脉冲期间拉低SDA发出确认,从而完成访问。

               2、突发模式写入序列——收发器在每个数据字节之后自动增加寄存器地址指针,因此可以在不重新编程地址的情况下写入顺序数据寄存器。

               3、单字读操作—第一个读写位为0,表示写操作。这是因为必须写入寄存器地址来设置内部地址。在I2C从端确认收到寄存器地址后,I2C主端必须发出一个重复的启动命令,随后

       是R/W位设为1(读)的芯片地址字节。这导致I2C数据线SDA反向,并开始将数据驱动回I2C主机。然后I2C主控器每隔9个脉冲就向从属器发出一个确认脉冲。

               4、突发模式读取序列——收发器在每次读取数据字节后自动增加寄存器地址指针,因此

       无需对地址重新编程就可以读取连续的数据寄存器。

       通过I2C接口传输数据需要以下步骤:

               1、数据传输由连接到A2B收发器的微控制器发起。

               2、微控制器建立一个启动条件(SDA上从高到低的转换,而SCL保持高),这表明一个地址/数据流随后。

               3、在接下来的8个SCL周期中,A2B收发器从主机(首先是MSB)接收到一个7位地址和 R/W位。

               4、A2B收发器识别传输地址,并在第九个时钟脉冲(确认位)期间拉低数据线进行响应。R/W位决定了数据的方向。当第一个字节的LSB被清除(=0)时,主机向主机写入信息。当第一个字节的LSB被设置(=1)时,主机从主机读取信息。直到遇到停止条件(当SCL处于高位时,SDA从低电平转换到高电平)数据传输才会发生。寄存器地址指针自动递增,以支持对主和从突发模式I2C写和突发模式I2C读。

       I2C操作格式如下图所示:

1、写入BASE_ADDR/BUS_ADDR可以包含一个或多个字节的数据。设备地址后的第一个字节设置设备中的寄存器地址。随后的字节被写入到寻址寄存器。由于地址指针在每次写入后递增,因此可以在单个事务中写入顺序寄存器。

2、从BASE_ADDR/BUS_ADDR读取的数据可以包含一个或多个字节的数据。带有写指示的设备地址后面跟着该设备中的寄存器地址和带有读访问指示的重复设备地址。


I2C数据格式

       重复的设备地址后的第一个字节包含被寻址的寄存器的值。设备地址后的第一个字节设置设备中的寄存器地址。它后面是重复的设备地址,但带有读访问指示。随后的字节包含自动增加的寄存器地址的值。

I2C的写时序图

I2C的读时序图

4.1.3、Transceiver I2C Access Latencies

       当I2C通过A2B总线远距离访问远程收发器时,会产生延迟。“I2C总线时延”表中给出了不同类型I2C接入的A2B总线时延。

       I2C总线延迟(48khz超帧率)

image.png

image.png

例如,考虑这样一种情况:正在写入一个远程外围设备(连接到从节点)寄存器。“I2C接入时延”界面中I2C接入时延以绿色箭头表示

Note:I2C访问总线延迟表中描述的延迟是针对没有冲突的访问。如果I2C消息没有立即得到

       确认,或者由于GPIO中断、线路故障中断、I2C问题(NACK)等高优先级事件而被延迟,则在

       尝试执行消息交换之前产生的延迟不包括在表中提供的值中。

4.2、脉冲密度调制接口(PDM)

       脉冲密度调制用于sigma变换器。PDM格式表示抽取前的过采样1位σ δ ADC信号,通常用作数字麦克风的输出格式。

       PDM模块支持高动态范围的麦克风,具有高信噪比(SNR)和扩展的最大声压级(SPL)。

       该收发器的增强PDM模块支持比AD241x收发器更低的噪声底层。提供大于120db的信噪比。收发器上的PDM模块支持24 kHz和12 kHz采样率,此外,使用相同的PDM时钟速率(在48 kHz帧速率下为3.072 MHz),还支持48 kHz采样率。收发器PDM模块中的高通滤波器截止频率固定为1hz,不可编程。高通滤波器是一阶IIR滤波器。

       收发器可编程1x, 1/2x或1/4倍PDM采样(48 kHz, 24 kHz或12 kHz典型)相对于超帧速率(48 kHz典型)。对于1/2x或1/4x PDM采样,A2B插槽中的同步数据被复制,以匹配超帧速率。当将收发器的降低速率特性与此结合使用时,甚至更低的PDM采样速率是可能的(例如,降低到375赫兹)。

       收发器的PDM位时钟输出频率比PDM音频采样率(通常为3.072 MHz,用于48 kHz的PDM音频采样)快64倍。

       每个PDM启用的接收针可以接收多达两个通道的音频数据(立体声)。其中一个通道与时钟上升沿有关,另一个与时钟下降沿有关。

       PDM块使用PDM控制(A2B_PDMCTL)寄存器配置:

1、当A2B_PDMCTL.PDM0EN = 1, DRX0/IO5引脚启用接收PDM数据,BCLK引脚是一个输出,通常为TDM2设置产生3.072 MHz的时钟。该模式下DRX0/IO5引脚数据不传递到I2S

/TDM接口。同样,A2B_PDMCTL>PDM1EN位控制DRX1/IO6引脚上的PDM数据接收。

2、A2B_PDMCTL.PDMxSLOTS位选择DRX引脚上的PDM信号是使用一个(单声道)还是 两个(立体声)通道。

4.2.1、连接麦克风的PDM采样边缘

       脉冲密度调制(PDM)接口允许来自两个麦克风的PDM输入使用单个时钟在单个数据线上进行时间多路复用。

       PDM麦克风对数据进行编码,使左通道在时钟(CLK)信号的下降沿有效,而右通道在CLK信号的上升沿有效。在CLK信号的适当半相驱动DATA信号后,麦克风输出被三态化。因此,两个麦克风(一个设置在左边通道和另一个设置在右边通道)可以共享一个数据线(见立体声PDM格式图)。

立体PDM格式

       在收发器中,PDM模块对所有64个时钟边缘上的麦克风数据进行采样。收发器必须被编程为每帧产生64个BCLKs的TDM模式(默认的TDM2/32或TDM4/16模式)。TDM设置不影响PDM块。

       在收发器中,在BCLK上升沿采集的数据总是第一信道。如果A2B_PDMCTL.PDM0SLOTS=1或A2B_PDMCTL.PDM1SLOTS = 1,第一个槽位与BCLK上升边相关,第二个槽位与BCLK下降边相关。

       例如,从节点的DRX0/IO5和DRX1/IO6引脚分别连接两个麦克风,PDM0和PDM1槽位配置为2槽位。在这种情况下,PDM块对每帧64位的数据进行采样,将其转换为24位的PCM数据,并驱动转换后的输出,如下所示:

       1、右侧麦克风数据在上升时钟边缘的DRX0引脚上采样,并驱动到A2B总线上的第一*传输插槽。

       2、左侧麦克风数据在下降时钟边缘的DRX0引脚上采样,并驱动到A2B总线的第二*传输槽中。

       3、右侧麦克风数据在上升时钟边缘的drx1引脚上采样,并驱动到A2B总线的第三*传输插槽。

       4、左侧麦克风数据在下降时钟边缘的DRX1引脚上采样,并驱动到A2B总线的第四*传输槽中。

       注意:其中*为实际槽位号,请根据系统槽位配置填写。

       当使用默认的A2B_PDMCTL2设置时,PDM引脚总是先用上升边数据进行采样;因此,A2B_I2SCFG.RXBCLKINV和A2B_I2SCFG.PDM模式下配置TXBCLKINV时钟反转设置时忽略TXBCLKINV时钟反转设置。

       如果使用默认的A2B_PDMCTL2设置和A2B_PDMCTL.PDM0SLOTS = 0或A2B_PDMCTL。当PDM1SLOTS = 0时,只有正确的通道数据在PDM引脚上采样。如果只希望对左侧通道数据进行采样,可以通过设置A2B_PDMCTL来支持。PDM0EN = A2B_PDMCTL.PDM0SLOTS = A2B_UPFFSET = 1。

4.2.2、PDM增强

       默认的PDM功能完全向后兼容以前的收发器代;但是,还有几个附加特性使PDM接口更加灵活。

4.2.3、PDM时钟选项

       DRX0和DRX1输入引脚可以单独配置为PDM输入。当在一个或两个DRX引脚的A2B从节点上启用PDM接口时,需要运行64 × fSYNCM(在48 kHz fSYNCM下3.072 MHz)的PDMCLK信号来时钟PDM设备。收发器允许PDMCLK/IO7或BCLK引脚生产所需的PDMCLK。IO7上的PDMCLK可以通过设置A2B_PDMCTL2.PDMALTCLK来启用。

       如果使用PDMCLK/IO7而不是BCLK,则TDM2/32或TDM4/16的限制将被删除。BCLK频率可以通过I2S/TDM寄存器设置为不同的频率。在本例中,PDMCLK/IO7用于捕获DRX0/DRX1上的PDM输入。

       BCLK和PDMCLK/IO7也可以同时使用,以相同的频率和相位对齐,但极性相反的PDM麦克风时钟。这是通过设置A2B_PDMCTL2来完成的。PDMALTCLK。另外,寄存器控制是先采样上升边数据还是下降边数据:

               1、当A2B_PDMCTL2.PDM0FFRST = 0(默认),DRX0上的PDM0数据首先从上升边缘

       采样。当A2B_PDMCTL2.PDM0FFRST = 1时,先对下降沿进行采样。

               2、当A2B_PDMCTL2.PDM1FFRST = 0(默认),DRX1上的PDM1数据先从上升边缘采

       样。当A2B_PDMCTL2.PDM1FFRST = 1时,先对下降沿进行采样。

       注意:在主节点中,BCLK始终是一个输入;因此,连接到主收发器的PDM麦克风的时钟输出通常来自PDMCLK/IO7。

4.2.4、PDM数据路由选项:

       PDM接口可用于主收发器或从收发器。收发器接收到的PDM数据可以发送到A2B总线上的任何节点,也可以发送到本地的I2S端口,或者同时发送到A2B总线上的任何节点。这是使用A2B_PDMCTL2.PDMDEST字段完成的。

4.2.5、全双工I2S与四个PDM麦克风:

       如果同时使用两个引脚(DRX0和DRX1)接收PDM数据,则可以改变DTX1的功能,使其作为备用DRX1,实现最多4个PDM麦克风的并发使用和全双工I2S通信。这是通过设置A2B_I2SGCFG.RXONDTX1完成的。

相关文章
|
8月前
|
Kubernetes 安全 Docker
k8s教程(基础篇)-安装与配置概述
k8s教程(基础篇)-安装与配置概述
244 0
AD2428W手册解读之概述 下
AD2428W手册解读之概述 下
AD2428W手册解读之概述 下
|
传感器 资源调度 开发工具
AD2428W手册解读之概述 上
AD2428W手册解读之概述 上
AD2428W手册解读之概述 上
|
芯片 块存储
AD2428W手册解读之操作与配置 中
AD2428W手册解读之操作与配置 中
AD2428W手册解读之操作与配置 中
|
存储 编解码 监控
AD2428W手册解读之操作与配置 上
AD2428W手册解读之操作与配置 上
AD2428W手册解读之操作与配置 上
|
存储 监控 索引
AD2428W手册解读之操作与配置 下
AD2428W手册解读之操作与配置 下
AD2428W手册解读之操作与配置 下
AD2428W手册解读之其他发现流程示例
AD2428W手册解读之其他发现流程示例
AD2428W手册解读之其他发现流程示例
|
存储 运维
AD2428W手册解读之系统调试 上
AD2428W手册解读之系统调试 上
AD2428W手册解读之系统调试 上