基于A2B总线的IIC接口

a2b总线集成i2c,I2S,TDM,PDM以及A2B总线通讯方式,i2c总线主要用于控制通讯,I2S/TDM/PDM主要用于音频数据通讯,A2B总线主要用于各个节点之间的通。以ad2428为例,其功能引脚图如下:

我们所用的I2C通讯用到SCL,SDA,也就是I2C通讯的时钟和数据引脚。A2B总线的结构链中,最前端的host(通常电路中指的是MCU)能够通过I2C总线直接访问master(通常表示host后的第一个节点)寄存器,对于主节点后的其余从节点,I2C总线无法直接进行访问寄存器,但是可以通过host与被访问节点之间的节点进行透传模式进行本地寄存器的访问。在此过程中,需要用到两个两种方式:

Direct I2C Register Accesses:直接寄存器访问,简略的说就是通过I2C直接寄存器访问,对应寄存器BASE_ADDR (I2C ADDR: BASE)
Remote Slave I2C Register Accesses:远端从节点寄存器访问,对应寄存器BUS_ADDR (I2C ADDR: BUS)

I2C的设备地址:

I2C的BASE_ADDR由ADR2/IO2 and ADR1/IO1电平决定,两引脚共有四种方式的地址:

读写过程中通常将读写操作分开,在最后进行I2C写入的时候进行合并。
I2C寄存器的访问方式主要包括三种:master的访问,slave的访问,slaver的外围设备的访问,基本的操作过程如下:

 A2B总线的I2C访问主要包括以下几个寄存器:
I2C Chip Address Register,Node Address Register
host to master:直接地址访问,采用最基本的I2C数据传输协议,地址+数据的方式

host to slave:

1.host访问slave寄存器,由于host无法直接对slave进行访问,需要通过master节点透                       传进行,首先通过BASE_ADDR直接寄存器访问方式,配置master的node address                         register的NODE位选择从节点数。

2.设置完master的node之后,可以通过BUS_ADDR远程寻址的方式访问所设置的节点,BUS_ADDR+寄存器地址+数据的方式进行数据设置。

host  to slave peripheral:

1.通过I2C的方式访问A2B结构链中slave通过I2C与slave外挂的外围设备,需要有master,slave一路透传过来,所以需要设置master以及slave。与host访问slave相似,首先通过BASE_ADDR直接地址访问设置master的node位选择从节点数。BASE_ADDR+0x01+数据

2.通过BUS_ADDR间接寻址方式设置slave的i2c chip address register ,写入需要访问的外围设备的chip address,BUS_ADDR+0x00+chip_addr

3.通过BASE_ADDR直接寄存器访问master的PERI位,使能远端的外围设备

4.通过BUS_ADDR间接寻址的方式访问外围设备的寄存器,BUS_ADDR+地址+数据

在A2B总线通过I2C访问的时候,可以通过广播的范式覆盖所有的node,包括主节点和从节点,可以通过设置A2B_NODEADR.BRCST。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值