佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 1904|回复: 21

I2C 谁会?

[复制链接]
发表于 23-8-2007 08:52 PM | 显示全部楼层 |阅读模式
由于我不知道如何把我要问的东西翻译成华语,请斑竹多多见谅

anyone know how does the I2C frequency of a device to be set? how the data hold and delay time to be set?

URGENT, PLS DO LET ME KNOW IF ANY RELAVENT/POSSIBLE ANSWER !!!

THANKS

[img]http://%5BURL=http://img411.imageshack.us/my.php?image=i2cpz6.jpg%5D%5BIMG%5D%5B/IMG%5D%5B/URL%5D[/img]

[ 本帖最后由 darlling5147 于 23-8-2007 09:11 PM 编辑 ]
回复

使用道具 举报


ADVERTISEMENT

发表于 23-8-2007 10:27 PM | 显示全部楼层
原帖由 darlling5147 于 23-8-2007 08:52 PM 发表
由于我不知道如何把我要问的东西翻译成华语,请斑竹多多见谅

anyone know how does the I2C frequency of a device to be set? how the data hold and delay time to be set?

URGENT, PLS DO LET ME KNOW ...


f clki2c是SCL的clock frequency,最高可以去到400khz.

对已经内建i2c hardware 的mcu来讲, 应该会有一个register让你设定f clk.

如果mcu没有内建i2c, 不必特别注意f clk,只要不超过400khz就可以了。 通常只有high speed mcu才有能力generate 400khz clk.
大概算过, 如果一个40MIPS的mcu要generate 400khz,大概每50 machine cycle就得interrup一次。+_+.
如果data transfer rate很重要的话, 就用timer interrupt 自己generate  f clk,这样就可以了。

关于holdtime, setup time, delay time等, 就用programming来解决。
这个我不太懂要怎样解释。
回复

使用道具 举报

发表于 24-8-2007 01:57 AM | 显示全部楼层
原帖由 fritlizt 于 23-8-2007 10:27 PM 发表


f clki2c是SCL的clock frequency,最高可以去到400khz.

对已经内建i2c hardware 的mcu来讲, 应该会有一个register让你设定f clk.

如果mcu没有内建i2c, 不必特别注意f clk,只要不超过400khz就可以了。 ...


我是darlling5147,借用朋友的account来回复。

我想知道我要如何设定hold time 和 setup time? 再datasheet里面有它的limit(max), 他们是如何设定的呢?有formula吗?

谢谢你的帮忙,真得很感激!!!!
回复

使用道具 举报

发表于 24-8-2007 11:26 AM | 显示全部楼层
原帖由 yee_wawa 于 24-8-2007 01:57 AM 发表


我是darlling5147,借用朋友的account来回复。

我想知道我要如何设定hold time 和 setup time? 再datasheet里面有它的limit(max), 他们是如何设定的呢?有formula吗?

谢谢你的帮忙,真得很感激! ...

最好是把你的应用, 清清楚楚的讲出来, 不要只是讲I2C。
1. 是什么MCU? (master)
2. 是什么i2C device? (Slave)
3. 你用什么语言?
4. 你要做什么?你的应用?
5. 试过Google了吗?
上面1,2,3,4 不知道的话, 我可能帮不了你, 或不会给你有效的回覆。
回复

使用道具 举报

 楼主| 发表于 25-8-2007 09:01 AM | 显示全部楼层
原帖由 pic 于 24-8-2007 11:26 AM 发表

最好是把你的应用, 清清楚楚的讲出来, 不要只是讲I2C。
1. 是什么MCU? (master)
2. 是什么i2C device? (Slave)
3. 你用什么语言?
4. 你要做什么?你的应用?
5. 试过Google了吗?
上面1,2,3,4 ...


这位老兄好像有点生气我呢。。。 别生气啦!!

我没有在design任何的东西,我只是在datasheet里看到i2c这个东西,要深入了解它。
我读了很多i2c的spec/introduction但是都没有教我们如何set data hold time and data setup time
你下载national semiconductor的LM4937吗?里面有讲到I2C DATA HOLD TIME 和I2C DATA SETUP TIME。在第8页。拜托!!!!!

我是过google叻但是都没有我要的答案 他们都show很basic的东西。。。

非常谢谢你的回复。。。你真好人!!

回复

使用道具 举报

 楼主| 发表于 25-8-2007 09:50 AM | 显示全部楼层
做什么 I2C的速度是 : standard = 100kbps, fast mode = 400kps, high speed mode = 3.4mbps?
为什么不是其他的value叻?
我怎样可以知道的答案了?

回复

使用道具 举报

Follow Us
发表于 25-8-2007 04:03 PM | 显示全部楼层
原帖由 darlling5147 于 25-8-2007 09:50 AM 发表
做什么 I2C的速度是 : standard = 100kbps, fast mode = 400kps, high speed mode = 3.4mbps?
为什么不是其他的value叻?
我怎样可以知道的答案了?



我想知道我要如何设定hold time 和 setup time? 再datasheet里面有它的limit(max), 他们是如何设定的呢?有formula吗?
set time, hold time 你需要看timing diagram才能明白。 言语上很难跟你解释。 又不懂那是什么devices.+_+
这个是没有formula的,另一方面看可以说是hardware limitation.

做什么 I2C的速度是 : standard = 100kbps, fast mode = 400kps, high speed mode = 3.4mbps?
为什么不是其他的value叻?
这个就是standard,就好像在问为什么ethernet有10Mbps, 100Mbps, 1Gbps不过没有其他value.
其实这只是一个standard reference,.不一定要100kbps, 400kbps, 3.4mbps,只要clock rate 在supported 范围之内就可以了。

根据我经验,大概是这样。等pic斑竹来证实。
回复

使用道具 举报

发表于 25-8-2007 08:01 PM | 显示全部楼层
这里有I2C的SPEC。可以去看看,能了解更多关于I2C。

http://www.nxp.com/acrobat_download/literature/9398/39340011.pdf
回复

使用道具 举报


ADVERTISEMENT

发表于 25-8-2007 08:58 PM | 显示全部楼层

回复 #5 darlling5147 的帖子

我没有在design任何的东西,我只是在datasheet里看到i2c这个东西,要深入了解它。
我读了很多i2c的spec/introduction但是都没有教我们如何set data hold time and data setup time

你读了i2C Bus Specification 吗?



你下载national semiconductor的LM4937吗?里面有讲到I2C DATA HOLD TIME 和I2C DATA SETUP TIME。在第8页。拜托!!!!!

set data hold time 和 data setup time, 那是在MCU programming里的事。


我是过google叻但是都没有我要的答案 他们都show很basic的东西。。。

请读i2C Bus Specification



做什么 I2C的速度是 : standard = 100kbps, fast mode = 400kps, high speed mode = 3.4mbps?
为什么不是其他的value叻?我怎样可以知道的答案了?

I2C, 是Philips在20年前发明的, 用作IC 和IC之间的Communication, 如电视, VCR里用的IC, 好象Volumn Control 是一粒IC,Motor control 又另一粒IC,Memory(Eprom)是一粒IC,  那Master Processor Unit (MPU) 要如何和这些不同“部门”的IC 连起来作控制呢?

所以, I2C bus就出来了,只用2条线, 它可以接很多IC (multi-drop), 还可以是双向的通讯。
但游戏规则还是要有,I2C有它的Protocol, 就是 速度最少为100kbps (bit per seconds)。
有了游戏规则, IC 制造商就要作出速度最少要support到100kbps 的I2C 界面, 当然可以快过100kbps。

I2C的速度是根据Clock (SCL)来决定的。
100kbps 不是很快 (Acknowledge 到来,一来一回, 其实很慢), 后来就有400kbps, 3.4Mbps(但我没用过3.4Mbps)

为什么是100kbps? 可不可以是 123kpps, 789kbps呢?
可以, 只要符合以下的规则:
1. 你明白你很特别, 你不打算和别的i2C device 连线。
2. 你的Master 和Slave I2C device, 都是你用MCU做的。
3. 你的MCU能够产生出你要的 clock rate.(bps), 并可以处理那个Data rate 和Timing。
4. 你用的电线和长度能够handle到你要的speed, 没有propagation delay 和crosstalk 的问题。

其实要活用, 你明白了, 很多问题就自解了。

再来, RS232的 baud rate, 一定要4800bps, 9600bps,19200bps, 115200bps吗?
为什么是 这些数目?因为它们可以被2, 或2的倍数除尽。再来, 它们很容易从Crystal那里divide / generate出来。

可不可以用其他的Baud rate呢? 可以啊。。。我有时就会用不standard的baud rate, 如5400bps, 为什么呢? 就是不想别人能轻易的用电脑的监听(Data tapping)。

要想了解更多i2C, 最好是读完i2C Bus Specification
回复

使用道具 举报

发表于 25-8-2007 09:02 PM | 显示全部楼层
原帖由 时日无多 于 25-8-2007 08:01 PM 发表
这里有I2C的SPEC。可以去看看,能了解更多关于I2C。

http://www.nxp.com/acrobat_download/literature/9398/39340011.pdf

对,这是最好的。
回复

使用道具 举报

 楼主| 发表于 26-8-2007 08:27 AM | 显示全部楼层
非常非常谢谢你的解说。。。。
非常非常的详细。。。。。

你非常非常得厉害叻!!!!!


原帖由 pic 于 25-8-2007 08:58 PM 发表

你读了i2C Bus Specification 吗?



set data hold time 和 data setup time, 那是在MCU programming里的事。



请读i2C Bus Specification 。




I2C, 是Philips在20年前发明的, 用作I ...
回复

使用道具 举报

 楼主| 发表于 26-8-2007 08:54 AM | 显示全部楼层
原帖由 pic 于 25-8-2007 08:58 PM 发表

可以, 只要符合以下的规则:
1. 你明白你很特别, 你不打算和别的i2C device 连线。
2. 你的Master 和Slave I2C device, 都是你用MCU做的。
3. 你的MCU能够产生出你要的 clock rate.(bps), 并可以处理那个Data rate 和Timing。
4. 你用的电线和长度能够handle到你要的speed, 没有propagation delay 和crosstalk 的问题。


我有以下疑问:
1。 你明白你很特别 《---------什么意思?
2。 MCU是microcontroller unit吗?
3。 你的Master 和Slave I2C device, 都是你用MCU做的。 《-------不太明白

对不起,问太多问题了。

我是初学者,我已经度过那些你叫我读得spec了,还是不太明白。。所以只好在这里问人咯。。。

我有很努力的在学叻。。。请多多见谅。。。
回复

使用道具 举报

发表于 26-8-2007 04:43 PM | 显示全部楼层
原帖由 darlling5147 于 26-8-2007 08:54 AM 发表

我有以下疑问:

首先,下面的论点是你要用不同的Clock rate, 而立的。 如你是用正规的100kbps,400kbps, 可以跳过1,2,3。你是把问题拆开来问了。


1。 你明白你很特别 《---------什么意思?

你要设计与众不同的。。。不是用正规的100kbps,400kbps

2。 MCU是microcontroller unit吗?

是。

3。 你的Master 和Slave I2C device, 都是你用MCU做的。 《-------不太明白

简单说, 在一个最简单i2c 的bus上,一定有一个Master, 一个Slave。 (multi-master 我们不谈)
Slave 是被动的, Master 是主动的,  I2C EEprom 如24LCxxx是Slave。Master 多是MCU。
你如用不正规的clock rate /bps,没有这种 Slave, 所以你用MCU来做。


i2C 是一种Bus, 一种 通讯协议(Communication Protocol )。
i2C是很复杂的, 比RS232复杂多了。也不是随便看了Spec就会的,你真正要学的话, 你要实验。

我很尊敬钦佩设计出I2C的人(Philips的设计), 只用两条线,就能通讯, 对短距离,低速,低成本,i2C 是很赞的。

还有, 请大家注意, 网友Chan1314的头像就是I2C的logo。
回复

使用道具 举报

 楼主| 发表于 26-8-2007 05:15 PM | 显示全部楼层
原帖由 pic 于 26-8-2007 04:43 PM 发表

首先,下面的论点是你要用不同的Clock rate, 而立的。 如你是用正规的100kbps,400kbps, 可以跳过1,2,3。你是把问题拆开来问了。



你要设计与众不同的。。。不是用正规的100kbps,400kbps


是。 ...


arigato.......谢谢指导!!!
我会慢慢思考。。。。。
回复

使用道具 举报

 楼主| 发表于 26-8-2007 05:28 PM | 显示全部楼层
原帖由 pic 于 26-8-2007 04:43 PM 发表

Slave 是被动的, Master 是主动的,  I2C EEprom 如24LCxxx是Slave。Master 多是MCU。
你如用不正规的clock rate /bps,没有这种 Slave, 所以你用MCU来做。



。。。。。Master 多是MCU。你如用不正规的clock rate /bps,没有这种 Slave, 所以你用MCU来做。

你以上的意思是,打个比喻: 我的master是100kbps,而我的slave是200kbps, 由于我的master support不到slave的clock rate, 我得用mcu来做我所要得slave,不能用市场上买到的现成品(slave),对吗?

回复

使用道具 举报

 楼主| 发表于 26-8-2007 05:54 PM | 显示全部楼层
原帖由 fritlizt 于 23-8-2007 10:27 PM 发表


f clki2c是SCL的clock frequency,最高可以去到400khz.

对已经内建i2c hardware 的mcu来讲, 应该会有一个register让你设定f clk.

如果mcu没有内建i2c, 不必特别注意f clk,只要不超过400khz就可以了。 ...



对已经内建i2c hardware 的mcu来讲, 应该会有一个register让你设定f clk.

以上的意思是说
对已经内建i2c hardware 的mcu来讲,我们可以自己set clock rate?
回复

使用道具 举报


ADVERTISEMENT

发表于 27-8-2007 09:17 AM | 显示全部楼层
原帖由 darlling5147 于 26-8-2007 05:28 PM 发表
。。。。。Master 多是MCU。你如用不正规的clock rate /bps,没有这种 Slave, 所以你用MCU来做。

你以上的意思是,打个比喻: 我的master是100kbps,而我的slave是200kbps, 由于我的master support不到 ...

Master 和Slave 的速度要一样。
回复

使用道具 举报

 楼主| 发表于 27-8-2007 11:45 AM | 显示全部楼层
原帖由 pic 于 27-8-2007 09:17 AM 发表

Master 和Slave 的速度要一样。



如果我的slave速度慢过master,可以吗?还是master何slave一定要一样?
回复

使用道具 举报

发表于 27-8-2007 02:51 PM | 显示全部楼层
原帖由 darlling5147 于 27-8-2007 11:45 AM 发表
如果我的slave速度慢过master,可以吗?还是master何slave一定要一样?

你还没开窍。。。
速度是由clock决定的。。。。

讲一个故事:
一辆保时捷跑车的速度, 能和国产车比吗?
如保时捷跑车开全速, 国产车能追上吗?
保时捷跑车, 是不是应该让一让国产车呢?
国产车开全速, 能追上保时捷跑车吗?

问题是,国产车有这个“能力” 达到保时捷跑车的速度吗?


所以,“如果我的slave(国产车)速度慢过master(保时捷跑车),可以吗?还是master和slave一定要一样?”
你有答案了吗? 你告诉大家好吗? (请尽可能不要用大字来回覆,谢谢。)
回复

使用道具 举报

 楼主| 发表于 27-8-2007 06:20 PM | 显示全部楼层

回复 #19 pic 的帖子

答案是:slave 和master都要一样速度!!!。。。。。

对吗?哈哈哈。。

谢谢你的用心良苦。。。。

评分

参与人数 1积分 +3 收起 理由
pic + 3

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 24-12-2024 10:13 AM , Processed in 0.128726 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表