用PIC单片机带PCF8574的奇怪问题

这阵子做了块板子,用来做协议转换器,原来也做过,只不过由于我们平台转换到PIC了,所以这次用PIC单片机来做。不过问题也来了~~

由于PIC普遍IO比较少(相对于C8051F系列来说),所以用了2片8574来做扩展,8574用的是I2C总线协议,我用的PIC的PICC编译器,它里面有现成的I2C函数,我调用后,返回的值始终是FF,跟了一下总线发数以后,器件没有返回响应包...于是调时序,加延时,就差我那大顶了。。。

郁闷了2天,今天上来就看看器件是不是好的,于是测了一下中断(我只用了8574的输入模式,而且没有使用中断,所以中断管脚没有连接),中断是好的,看来器件没有问题。于是实在无奈,把单片机的倍频关了(我用的18系列,一般都可以使用4倍频),这时候在测,居然有数据了。。。晕倒...这样看来器件没有问题,线路没有问题,但是我必须使用4倍频的模式,因为单片机上还要做以太网,10M的主频肯定不够。。。怎么办??

架上示波器,看看波形吧,对比了一下,好像正常的时候I2C的时钟信号开头比较陡,别的就啥区别了,死马当活马医吧,于是在SCL管脚上对地并了一个20P的电容...好使!

看来就是这个闹得了,看来是8574没有正确识别总线上的数据流。

........................
不过同样的板上还有片FM24C64就没这问题,难道和芯片的速度有关系,有工夫在做做实验吧!!

注:FM24C64 速度为1M    PCF8574速度为100K

[本日志由 admin 于 2009-05-25 04:09 PM 编辑]
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags:
相关日志:
评论: 0 | 引用: 0 | 查看次数: -
发表评论
昵 称:
密 码: 游客发言不需要密码.
内 容:
验证码: 验证码
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.