发新帖我要提问
12
返回列表
打印

关于I2C模拟从机的是否可行与可行性方案研究

[复制链接]
楼主: peichao888
手机看帖
扫描二维码
随时随地手机跟帖
21
walnutcy| | 2012-3-11 22:20 | 只看该作者 回帖奖励 |倒序浏览
为什么是IIC? 双机通信,数据量应该不大,用单线通信如何?模拟遥控码。 或者换硬件方案。

使用特权

评论回复
22
peichao888|  楼主 | 2012-3-14 19:54 | 只看该作者
自己再往起顶一下吧,希望引起关注!

使用特权

评论回复
23
lczhoujq| | 2012-3-16 11:39 | 只看该作者
我就写过用GPIO模拟IIC从机,完全是可以实现的,但IIC速度只能最高位30K左右

使用特权

评论回复
24
peichao888|  楼主 | 2012-4-2 20:38 | 只看该作者
谢谢23楼的提示,不知能否提供实现思路或者一些具体方法。

使用特权

评论回复
25
hotpower| | 2012-4-3 18:02 | 只看该作者
可以,注意控制SCL

使用特权

评论回复
26
飘零星夜| | 2012-4-11 10:14 | 只看该作者
我也坐等高手 MARK

使用特权

评论回复
27
zjzy2374| | 2013-5-16 18:17 | 只看该作者
查询IO口状态变化,不是有这么做得么,有什么问题吗?

使用特权

评论回复
28
logokfu| | 2013-5-17 08:14 | 只看该作者
关注下

使用特权

评论回复
29
hank_zhang| | 2013-12-23 16:47 | 只看该作者
目前也在做个I2C模拟从机,不知道LZ找到具体的方案了没?

使用特权

评论回复
30
MK60| | 2013-12-29 12:09 | 只看该作者
本帖最后由 MK60 于 2013-12-29 12:15 编辑

想实现I2C从机?楼主先把I2C协议彻底摸透吧。
“1.SCL的读写状态信息判断:在主机写时序中,比较容易,判断SCL的下降沿来读取SDA线上的信息。在主机读时序中,我分析必须要判断SCL的上升沿来发送SDA信息。所以,在无外置电路的情况下,MCU必须有上升沿中断这一功能。”
你第一个理解都是错误的,I2C总线接口是在SCK的下降沿写入SDA,而在SCL的上升沿读取SDA。
想把I2C协议摸透,此篇文档必看不可——《I2C总线技术精要》,只要看前面1~8页就够了,后面的不需要看。那里面的每一句话都不是多余的。
实现I2C从机至少需要2个以上中断,耗费的硬件资源不少。。。

使用特权

评论回复
31
MK60| | 2013-12-29 12:15 | 只看该作者
不要觉得看过I2C协议就了解I2C总线了,I2C协议文档里没有的《I2C总线技术精要》有,所有的I2C疑难问题在这篇文档里都能找到答案。

使用特权

评论回复
32
MK60| | 2013-12-29 12:32 | 只看该作者
以下内容摘自《I2C总线技术精要》:
★ 位传输    每传输一位信息就产生一个时钟脉冲。SDA只能在时钟低电平期间改变状态,在时钟高电平期间必须保持稳定。每个时钟脉冲包含两个边沿,下降沿在前,上升沿在后。在位传输过程中,接口总是在时钟脉冲的下降沿写入SDA,而在时钟脉冲的上升沿读取SDA。I2C总线事件(如地址识别、中断产生)总是发生在时钟脉冲的下降沿。

使用特权

评论回复
33
coody| | 2013-12-30 12:27 | 只看该作者
肯定可行,但是我觉得不值得。有N多方法做两机通讯,我都不考虑I2C和单总线。如果没有串口了,有硬件SPI的用SPI,没有的,我用任何3个IO做3线对等准双向传输,速度一样很快,因为每个bit都是应答方式,所以非常可靠。

使用特权

评论回复
34
工控秀才| | 2013-12-31 11:48 | 只看该作者
建议采用应广的MCU,IIC从机模拟,直接 用程序产生器就产生了,自己随便调整一下就OK了。看具体是用在哪方面的,有需要可以和我联系。

使用特权

评论回复
35
ghl111| | 2013-12-31 16:13 | 只看该作者
Philips公司有一款芯片叫做PCF8574A,可以实现IIC从机到8位并行接口的转换,好像适合你的需求。如果不好买,可以自己用CPLD或FPGA做一个IIC从机接口转并行接口的芯片,然后挂接在CPU上比较靠谱。单纯靠双中断,CPU占用资源太多了,干不了别的事了。

使用特权

评论回复
36
eeant| | 2015-4-15 15:57 | 只看该作者
MARK!学习中

使用特权

评论回复
37
whxtduse| | 2015-6-16 11:00 | 只看该作者
楼主,你好!请问你双中断的方式实现了吗?对CPU有什么要求,我的cpu倍频到48M,不知道程序可否正常运行。模拟IIC从机确实很麻烦,期待好的方案。关注!

使用特权

评论回复
38
esthrth| | 2015-6-17 09:01 | 只看该作者
本帖最后由 esthrth 于 2015-6-17 09:06 编辑

一般来讲不要去考虑模拟从机的方案,你很可能把问题搞复杂的你现在的资源瓶颈可能就是I/O口,看之前各位的回复,1-wire似乎是值得一试的方案,加油!

使用特权

评论回复
39
韦斯克拉| | 2017-4-10 19:23 | 只看该作者
此贴挺有意义的,学习学习

使用特权

评论回复
40
zhcj66| | 2019-9-21 10:14 | 只看该作者
lz搞定iic从机了吗?

使用特权

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

本版积分规则