求助:为什么5509a的iic设置后没有SCL没有信号?

2019-07-30 17:44发布

今天调试iic,按照csl库的例程,设置了IIC,但在示波器上看不到SCL信号,当然也就访问不了外部IIC设备了。会是什么原因呢?设置如下:
/*锁相环的设置*/
PLL_Config  myConfig      = {
  0,    //IAI: the PLL locks using the same process that was underway
                //before the idle mode was entered
  1,    //IOB: If the PLL indicates a break in the phase lock,
                //it switches to its bypass mode and restarts the PLL phase-locking
                //sequence
  12,    //PLL multiply value; multiply 12 times
  1             //Divide by 2 PLL divide value; it can be either PLL divide value
                //(when PLL is enabled), or Bypass-mode divide value
                //(PLL in bypass mode, if PLL multiply value is set to 1)
};
/* Create and initialize an I2C initialization structure */
I2C_Setup iicInit = {
        0,              /* 7 bit address mode */
        0,         /* own address - don't care if master */
        120,            /* clkout value (Mhz)  */
        20,            /* a number between 10 and 400*/
        0,              /* number of bits/byte to be received or transmitted (8)*/
        0,              /* DLB mode on*/
        1               /* FREE mode of operation on*/
};
void main(void)
{
   Uint16 iicBuf[3];
               
    CSL_init();

    PLL_config(&myConfig);
                    
   I2C_setup(&iicInit);
   
    /* Write a data byte to I2C */
    //x=I2C_write(databyte1,1,1,0x70,1,30000);
    for(i = 0; i < 100; i++)
    {
    /* Read data byte from I2C */
    count=I2C_read(iicBuf,3,1,0x70,1,30000,0);
    }
}
在读IIC的时候,通过示波器观察SCL脚,并没有脉冲信号。读一次就会拉低。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
12条回答
lishong
1楼-- · 2019-07-30 21:06
下午调试测试现象是scl有波形了(IIC时钟设置有问题),但每次我读三个字节,输出的SCL总是只有一个字节的脉冲(即只有9个脉冲)。脉冲宽度是对的,与设置的一样。而且读出的数根本就不对,函数返回为2.我现在主频为20M,iic的频率设置为10khz。
/* Create and initialize an I2C initialization structure */
I2C_Setup iicInit = {
        0,              /* 7 bit address mode */
        0,         /* own address - don't care if master */
        20,            /* clkout value (Mhz)  */
        10,            /* a number between 10 and 400*/
        0,              /* number of bits/byte to be received or transmitted (8)*/
        0,              /* DLB mode on*/
        1               /* FREE mode of operation on*/
};
zhangmangui
2楼-- · 2019-07-30 21:15
你参考一下 里面有没有相关例程
C5000系列资料总结

AIC23的相关操作有没有问题?
lishong
3楼-- · 2019-07-31 00:57
我不是读AIC23,读iic接口的EEPROM。我想不通的是为什么读数据的时候SCL只有9个脉冲。这样的话没有SCL信号数据怎么能读到。
lishong
4楼-- · 2019-07-31 01:45
本帖最后由 lishong 于 2015-3-6 10:24 编辑


波形.JPG
lishong
5楼-- · 2019-07-31 05:39
 精彩回答 2  元偷偷看……
lishong
6楼-- · 2019-07-31 10:04
应该是SLAVE返回的no ack信号导致后面没有SCL信号的。正常应该返回ack信号,我再查查

一周热门 更多>