TI中文支持网
TI专业的中文技术问题搜集分享网站

CDCI6214: about configuration and initialization

Part Number:CDCI6214

Now we have the following problems. I hope someone can put forward suggestions

1. Our refsel and eepromsel are connected to the ground, so 1110110 is selected for SLAVE ADRRES. After power on, the device will be reset for 500ms through reset pin. Then configure from the 0x3F register to the 0x00 register according to the protocol shown in figure 27. Then write a 1 to recal, select the EEPROM page,unlock the eeprom , start the commit operation, force a crc update,read back crc value and store it in the eeprom.This procedure is according to page 29 of datasheet. However, the output frequency is always 94MHz, which will not change for our configuration changes. Then we try to write the register(like CH2_CTRL3)and read it back, and the results are all 0000,which is just like I never write it in successfully.

2. If we remove the resistance of eepromsel, that is, let eepromsel pin high Z, and change SLAVE ADRRES to 1110100, there will be no output signal

Kailyn Chen:

您好,方便沟通我们可以直接使用中文。

我看了下您的问题,我估计您的写时序是不对的,导致最终寄存器没有成功写进去。

参考下面写时序,start+1110110(7bit从机地址)+0(write)+ACK+寄存器地址MSB+ACK+寄存器地址LSB+ACK+data MSB+ ACK+ data LSB+ACK

我想问下,在这个时序里面,都有正确收到ACK信号吗?比如从机地址之后也就是第九个clock有收到ACK吗?然后寄存器地址后有收到ACK吗?

您可以将 测量的I2C时序附上,我这边看下。

,

Haitong Xu:

这是我往从机地址1110110,CH2_CTRL3寄存器(地址16'h002c)里面写16'h0411的时序图,麻烦您看下是否正确

,

Haitong Xu:

您好,我想问一下I2C频率必须是100kHZ或者400kHZ吗,200kHZ可以吗?

,

Kailyn Chen:

I2C 频率在标准模式下是100Khz,快速模式下400Khz,高速模式下是3.4Mhz.

这几个频率值都是典型值,200Khz的话在快速范围内,但不是典型值,我认为也是没问题的。

时序图的话,建议把SDA和SCL一起测,这样能够比较方便去分析时序。

写完从机地址之后,从机应该向主机发送应答ACK信号,SDA应该为低才对,我数了下,蓝色这里应该是第九个clock为高电平,所以从机地址没有响应。

上电默认的EEPROM 就是page0,所以您可以直接使用默认配置,然后EEPROMSEL=low,从机地址即为1110110,0xE8.

,

Haitong Xu:

您好,我确实是将EEPROMSEL=low,从机地址设置为1110110,即0xE8.那从机没有发送ACK信号这是为什么呢?应该从哪些方面去解决呢?

,

Kailyn Chen:

抱歉,我写错了,如果EEPROMSEL=low,I2C_A0默认EEPROM Page0,即I2C_A0=0的话,7bit从机地址为1110110. 第八位write=0.

所以地址不是0xE8,而应该是0XEC才对。 如果0xE8的话,地址应该为1110100.

,

Haitong Xu:

您好,虽然我也跟着说错了,但我确实是将地址设置成1110110,且第八位write=0了的,那么这种从机不给ACK信号会是因为什么呢

,

Kailyn Chen:

能将SCL和SDA的波形放在一起对比看下吗?

,

Haitong Xu:

我们将SCL和SDA放在一起看了,同样得到的是start+1110110(7bit从机地址)+0(write)+ 1(从机没有ACK),这会是我们配置的流程或者哪个寄存器配置错误导致的吗?我们是从0x3F的寄存器配到了0x00,中间一些地址没有寄存器的就没有配

,

Kailyn Chen:

现在的情况是主机发送了从机地址,从机并没有给主机响应,所以再往下配置寄存器也没多大意义呢。

要先检查下硬件,EEPROMSEL电平是否为低?SDA和SCL是否已经上拉?

硬件没问题的话,改下EEPROMSEL的电平,比如MID或则H,看其他地址是否也得不到ACK信号?

,

Haitong Xu:

把EEPROMSEL改为MID(高阻态)之后,address用默认的1110100,有ack了,但是输出直接连之前的固定94MHZ都没了,直接啥也没有,这种情况是怎么回事呢

,

Haitong Xu:

您好,我们进行了读写测试,用示波器进行观测。读写测试的流程是:将EEPROMSEL改为MID(高阻态)(只有这样才有ack),slave address用的默认的1110100,然后主控设备首先对芯片进行复位,复位结束后开始写寄存器0x002c,也就是CH2_CTRL3,写的值为0x0411,然后delay100多ms,然后开始读寄存器0x002c,读完后delay100多ms后继续写寄存器0x002c,然后再读,一直循环。通过示波器我们发现,写时序是完全正确的,该有的ack也都有,写的数据也是0x0411,读时序也是正确的,但读的数据那里却是0000,为什么我正确地写入寄存器后却读不回来正确的数据呢?所以有可能没有输出的原因正是我写入的这些寄存器压根没有真正的写入?

以下是写寄存器的波形:

以下是读寄存器的波形:

,

Kailyn Chen:

读寄存器的话,1110100+1 read bit。也 就是start+0xE9.但是我看下面读寄存器的地址还是0xE8.

或者如果您是先对寄存器进行写操作,紧接着再进行读操作的话,是下面这个时序,即我 红线画的这里,写完寄存器地址之后,从机发送ACK信号,然后主机需要继续发送个repeat start的操作,然后进行读。

除了这些,正确读写寄存器还要注意合理的上电时序,参考10.1 Power-Up Sequence的介绍。

,

Haitong Xu:

您好,我们的问题是没有将REFSEL引脚也置为MID,因为要进入Fall back mode必须把REFSEL也置为MID,这样之后我们就能成功读写了。但是结果仍然是没有波形。我们目前的流程是,将REFSEL和EEPROMSEL的下拉电阻去掉(置为MID),上电,复位延时释放后从0x44配置0x00寄存器,然后根据手册,我们依次进行了如下2-8点(我们认为从0x44配置到0x00就是其中的第1点),结束后掉电,然后将REFSEL和EEPROMSEL的下拉电阻焊上(置为0),上电,观测波形,没有波形。按理来说我们第一次上电已经将配置写入寄存器,然后copy到eeprom page0了,第二次上电不是应该自动直接从eeprom page0里面读出数据,然后产生波形吗?

,

Haitong Xu:

我想问一下,是不是在进行如下2-8点

其中的第5点之后,是否要等待几百毫秒,给它时间copy到eeprom中,然后再进行后面的操作呢?

,

Kailyn Chen:

Haitong Xu 说:中的第5点之后,是否要等待几百毫秒,给它时间copy到eeprom中,然后再进行后面的操作呢?

应该是不需要的,否则每个步骤都会标明需要等待多长时间。

我再看下这个问题,尽快给您回复。

,

Haitong Xu:

感谢您,同时我希望您能看一看我上面一个问题中描述的我们的操作流程是否有误

,

Haitong Xu:

您好,我想针对cdci6214的工作模式问一下,到底eepromsel和refsel都置为MID的时候能否正常工作,这个模式究竟是单独用来i2c编程的还是也可以用于正常输出?如果它可以正常输出,那么是不是没有用到eeprom?因为eepromsel为MID,不指向任意一个eeprom page,并且如果它可以正常输出,那参考输入又是什么?refsel高和低分别指向了一种输入,但MID好像并没有指向某一个确定的输入?

,

Kailyn Chen:

您好,您的问题空了给您回复。

,

Kailyn Chen:

Haitong Xu 说:cdci6214的工作模式问一下,到底eepromsel和refsel都置为MID的时候能否正常工作,这个模式究竟是单独用来i2c编程的还是也可以用于正常输出?

能正常工作。 可以看下面初始化流程,fall back模式下,也是用于I2C编程,只是不使用EEPROM。

Haitong Xu 说:如果它可以正常输出,那么是不是没有用到eeprom?因为eepromsel为MID,不指向任意一个eeprom page,并且如果它可以正常输出,那参考输入又是什么?refsel高和低分别指向了一种输入,但MID好像并没有指向某一个确定的输入?

是的,从上面的初始化流程可以看到,没有用到EEPROM。  eepromsel和refsel都置为MID时为fall back工作模式,此模式下Pin11 为输入,PIn20为输出。

赞(0)
未经允许不得转载:TI中文支持网 » CDCI6214: about configuration and initialization
分享到: 更多 (0)