打印

关于DSP对X24C02读写问题,

[复制链接]
2445|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
quanlai2|  楼主 | 2007-11-6 09:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
现在的一个项目中需要用DSP对X24C02进行读写,我在编写这个程序。现在碰到一个问题就是在对X24C02写的过程中,当发送完片选地址后DSP总收不到ACK信号。然后用示波器检测IIC总线波形发现从start信号到发送完地址的8个SCL周期内,SDL与SDA信号线上的时序配合是没有问题的,当到SCL第9个周期时,X24C02也产生了应答信号就是将SDA线电平拉低了,但是却没有拉到0,因此DSP没有收到。请问这是什么原因呢?和X24C02的SDA管脚的上拉电阻有关系么?谢谢了!

相关帖子

沙发
YEQINGCHI| | 2007-11-6 15:43 | 只看该作者

我也碰到这样的问题 至今没解决

后来我用的 spi的eeprom(25f256) 来解决的 
用mcbsp操作的

使用特权

评论回复
板凳
chl00100| | 2007-11-7 09:31 | 只看该作者

re

贴一段DM643读写AT24C02成功的代码,建议仔细查看一下AT24Cxx的datasheet,记得它们与标准的IIC并不太符合,主要就是ACK返回的问题,,,,另外先确定执行到哪个语句死掉的,然后加大一点的延时试试能否解决问题,,,,

void    I2cWrite(I2C_Handle hI2C,Uint8 AddressStart,Uint8 *WriteData){
    Uint8    count;
    while(I2C_bb(hI2C));
    IER &= 0xF7FF;
    I2C_config(DEC643_I2C_hI2C,&I2CCfgT);
    while(!I2C_xrdy(hI2C));
    I2C_writeByte(hI2C, AddressStart);
    for(count = 0;count < 4;count ++){
        while(!I2C_xrdy(hI2C));    
        I2C_writeByte(hI2C, WriteData[count]);
    }
    while(I2C_bb(hI2C));
    I2C_config(hI2C,&DEC643IIC_Config);
    I2C_sendStop(hI2C);
    while(!I2C_xrdy(hI2C));
    while(I2C_bb(hI2C));
    IER |= 0x800;
}

使用特权

评论回复
地板
hongh| | 2007-11-7 22:42 | 只看该作者

to:你用的DSP是那一型号,有专用I2C接口,还是用GPIO做的?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

28

主题

38

帖子

0

粉丝