打印

求助:I2C写芯片写不进去

[复制链接]
3348|16
手机看帖
扫描二维码
随时随地手机跟帖
沙发
gjg191| | 2007-8-9 14:04 | 只看该作者

dd

写的那段程序看看

使用特权

评论回复
板凳
zwfm|  楼主 | 2007-8-9 14:48 | 只看该作者

求助:I2C写芯片写不进去

不是程序的毛病,在一开始连芯片的地址都写不进去。就是当SDA是零时,通过示波器观察,SDA拉不下来。同样SCL也是这样。谢谢。

使用特权

评论回复
地板
gjg191| | 2007-8-9 14:55 | 只看该作者

dd

硬件毛病你又没图,你不要接IIC芯片看看你的单片机端口有数据输出变化吗

使用特权

评论回复
5
zwfm|  楼主 | 2007-8-9 15:05 | 只看该作者

谢谢gjg191

哦,挺简单的电路,那两端我测了,MCU送过来的SDA,SCL分别是0,3.3V.把芯片接上后再测,两个都是3.3V.

使用特权

评论回复
6
gjg191| | 2007-8-9 15:13 | 只看该作者

dd

把你用的iic的芯片型号说一下

使用特权

评论回复
7
gjg191| | 2007-8-9 15:19 | 只看该作者

dd

最好把程序也弄上来看下

使用特权

评论回复
8
zwfm|  楼主 | 2007-8-9 15:39 | 只看该作者

谢谢

是个时钟芯片,RS5C372。程序没细考虑,还有毛病。

使用特权

评论回复
9
zwfm|  楼主 | 2007-8-9 15:44 | 只看该作者

谢谢gjg191

   I2C_Start ();
   WriteByte (0x64);
   if (GetACK () == FALSE)
    return FALSE;
   WriteByte (0x00);    
   if (GetACK () == FALSE)

现在这只是写芯片的地址,刚开始都进行不下去。所以程序还没完全写好。只是测试一下看能否写进去。

使用特权

评论回复
10
gjg191| | 2007-8-9 15:47 | 只看该作者

dd

就几跟线没什么好弄的啊,你给RS5C372接晶振了吗

使用特权

评论回复
11
zwfm|  楼主 | 2007-8-9 15:54 | 只看该作者

gjg191

接了呀,我也奇怪了。不知道为什么来不下了。都测了一天了。而且还换过芯片。都试了。我现在怀疑是不上拉电阻的毛病,datasheet上用的是10K,但它的电源是5V,我不知道现在接3.3V还改上拉电阻吗?怎么改?

使用特权

评论回复
12
gjg191| | 2007-8-9 16:00 | 只看该作者

dd

tLOW SCL Clock “L” Time 4.7 μs
tHIGH SCL Clock “H” Time 4.0 μs
tHD ; STA Start Condition Hold Time 4.0 μs
tSU ; STO Stop Condition Setup Time 4.0 μs

使用特权

评论回复
13
gjg191| | 2007-8-9 16:04 | 只看该作者

dd

改5.1k试试

使用特权

评论回复
14
zwfm|  楼主 | 2007-8-9 17:38 | 只看该作者

gjg191

厂商说要将通信频率降低,我额外加了 0.01ms的延迟。刚将上拉换成47K的试了,没起作用。

使用特权

评论回复
15
gjg191| | 2007-8-9 21:28 | 只看该作者

dd

不知道你对ack怎么判断的?

使用特权

评论回复
16
ayb_ice| | 2007-8-10 07:48 | 只看该作者

"SDA,SCL都拉不下来"...

有没有去拉啊...

使用特权

评论回复
17
zwfm|  楼主 | 2007-8-10 09:48 | 只看该作者

gjg191

我看了一下ACK的程序。好像有问题。你们给看一下,谢谢。
       SetSDA (1);
    SetSCL (0);
    SetSCL (1);
    SetSDA (1);
    Wait4SCL (1);
    //FT here wait??
    if (ReadSDA () == 1)
        ack = FALSE;
    else
        ack = TRUE;    
    SetSCL (0);
    return ack;

使用特权

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

本版积分规则

2

主题

11

帖子

1

粉丝