打印

请教下关于I2C控制CH453的问题

[复制链接]
997|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
长的帅怪我落|  楼主 | 2016-10-31 10:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  可能有点多,有点绕,麻烦进来的人耐心看下,谢谢了。我研究了好久了,没实质性的进展。先多谢了。CH453是一个16为数码管驱动芯片,然后我的主芯片是TI的DSP28335,这都是浮云。首先28335有自带的I2C程序,但是我看了下,貌似不能用。原因是CH453有点特殊。第一,28335的I2C写2个字节,第一个是代表I2C器件的地址,第二个代表是最后需要写的值。但是CH453呢,由于他是16个数码管,所以第一个数据就是对应的16个数码管的一个,当然,这个地址是16个固定的数。然后第二个数据是对应数码管的那位亮。这个我觉得不是用不了的主要原因,因为大不了弄2个变量,一个对应16个数码管的,一个对应位。重点来了,在应答位上出现了麻烦。28335的I2C,应答时SDA拉低,也就是SDA=1代表应答,但是我看了下CH453的数据手册,发现是这么写的 写操作包括以下6个步骤:输出启动信号、输出字节1、应答1、输出字节2、应答2、输出停止信号。其中,启动信号和停止信号如上所述,应答1和应答2总是固定为1,输出字节1和输出字节2各自包含8个数据位,即一个字节数据。应答位始终为1,这貌似和软件I2C不符,软件I2C应答貌似是发送低电平脉冲啊。所以我没得选择,只能硬件模拟了。但是硬件模拟的时候,SDA=1,真的能代表应答吗?比如说我在发完第一个字节后,改变主cpu的SDA为输入,等待他变成1.但是,28335的io是弱上拉的啊,在换成输入的时候他就是1啊。这根本不能反映到底是收到了CH453发过来的应答,还是自己本身就是1.反正我现在数码管亮是亮了,但是是16个全亮,而且全部管都亮同样的,当然不是我写进去的数。我想问下,有没有人碰到过类似的I2C器件,能不能给点建议。

相关帖子

沙发
长的帅怪我落|  楼主 | 2016-10-31 13:16 | 只看该作者
没人理我啊。。。自己顶下,

使用特权

评论回复
板凳
长的帅怪我落|  楼主 | 2016-11-1 11:21 | 只看该作者
唉我去,又提醒我结贴了。。然而却没人理我

使用特权

评论回复
地板
ningling_21| | 2016-11-1 11:53 | 只看该作者
应答为1 ,是不是器件根本没有应答

使用特权

评论回复
5
长的帅怪我落|  楼主 | 2016-11-1 11:57 | 只看该作者
ningling_21 发表于 2016-11-1 11:53
应答为1 ,是不是器件根本没有应答

多谢版主回复。我也是纠结这个问题,但是,从ch453的数据手册上看,他写的ack就是一直为1.

使用特权

评论回复
6
ningling_21| | 2016-11-1 15:01 | 只看该作者
长的帅怪我落 发表于 2016-11-1 11:57
多谢版主回复。我也是纠结这个问题,但是,从ch453的数据手册上看,他写的ack就是一直为1. ...

应答为1 就不用纠结了,手册一般不会错,关键查波形和时序是否符合标准IIC波形时序

端口输入为1没问题,会受外部电路的控制

使用特权

评论回复
7
一吻情深| | 2020-1-18 22:40 | 只看该作者
大哥,不知道您的代码写完没,CH453时没有应答的

使用特权

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

本版积分规则

个人签名:多情剑客无情剑,无情剑配多情人

21

主题

838

帖子

7

粉丝