AD2410开发说明
AD2410的A2B总线
A2B总线具有提供同步时钟,传输数据,总线供电等功能。外设为A2B总线的MASTER提供BCLK,SYNC时钟信号,MASTER通过总线为SLAVE提供时钟信号。A2B总线的一个超级帧的头部为同步控制帧,包含了I2C的下行数据和CRC校验码。中间有一个同步响应帧,包含I2C的上行数据,CRC校验码和IRQ数据。一个超级帧的时间长度为一个SYNC周期。SLAVE序号越大,该节点上传的数据越靠前,下行数据越靠后。
MASTER唤醒
当MSTR引脚为高电平且VIN电压大于3.7V时,MASTER已经POWER UP,在等待SYNC信号的到来。在外部供给SYNC信号时,MASTER将时钟信号在PLL中倍频锁存,这个过程最多需要25ms。这之后,MSATER已经可以通过I2C总线进行编程配置了。MASTER的I2C设备地址为:
I2C地址位图
当把ADR2和ADR1都拉低时,外围器件访问MASTER的地址就为0x68,时序为典型的I2C总线时序,需要注意的是,MASTER设备在I2C总线上总是作为SLAVE存在。
在MASTER进入等待编程状态后,会产生IRQ信号,使得IRQ引脚由低变高。
/*等待AD2410启动*/
while(gpio_read(PING_CFG,PING2)==0 ); //等待IRQ信号
tmp= I2C0SlaveRegRead(1,AD2410_I2C_ADDR,0x16); //读中断状态寄存器
if(tmp& 0x80) //判断中断类型是否为MASTER产生
{
tmp= I2C0SlaveRegRead(1,AD2410_I2C_ADDR,0x17); //获取中断号
if(tmp!= 0xff)
return0;
}
到这里,MASTER已经唤醒并且可编程。
SLAVE唤醒
在唤醒MASTER之后,在唤醒SLAVE之前需要给SLAVE供电,也就是幻想供电。需要先设置主机响应周期,然后置位newstrict = 1,之后使能MASTER的幻想电源。这里需要注意的