y9387
驱动牛犊
驱动牛犊
  • 注册日期2002-07-19
  • 最后登录2007-09-20
  • 粉丝0
  • 关注0
  • 积分30分
  • 威望3点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
阅读:1378回复:4

I/O模拟I2C

楼主#
更多 发布于:2002-11-15 15:29
我用8255的PC0设置成为SDA,PC4设置为SCL,设置8255的工作字SDA输出为0x81,SDA输入为0x80,PC4产生时钟信号。不知道这样是否可以,因为我在使用TMP100时(TMP100使用I2C),用这种方法没有成功,不知那位高手可以指点!
wasuke
驱动牛犊
驱动牛犊
  • 注册日期2002-12-23
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-09-19 17:35
我做的模拟程序读I2C的时候,一次读正常,一次读失败,反复出现,很“稳定”,失败的原因是没有收到ack信号,哪位大侠知道怎么回事?
BellDu
驱动牛犊
驱动牛犊
  • 注册日期2001-12-21
  • 最后登录2007-07-06
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-11-18 09:13
条件1 SDA口必须可以设置成输出口和输入口, 如果是漏极开路,则输出高电平时可以作为输入口看待.
条件2 时序正确,并要保证时序中电平宽度,给出I2C器件足够的响应时间
条件3 电平正确,5V的 I2C器件不要用3.3V的器件去做IO口
Bell.
jst7792
论坛版主
论坛版主
  • 注册日期2001-12-10
  • 最后登录2006-11-16
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-11-16 22:33
应该是集电级(或漏级开路)开路输出,这样不行.
兄弟们,给点分吧
kxgchina
驱动小牛
驱动小牛
  • 注册日期2002-04-01
  • 最后登录2005-05-05
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-11-16 19:05
仔细研究一下i2c的协议,特别是时序,一定要保证脉冲宽度足够,一般应该没问题
游客

返回顶部