打印

行有行规,**他人也要向他鞠躬敬礼~~~因为他值得你花苦心

[复制链接]
楼主: HotPower
手机看帖
扫描二维码
随时随地手机跟帖
21
HotPower|  楼主 | 2007-6-28 21:03 | 只看该作者 回帖奖励 |倒序浏览

看来少管教

使用特权

评论回复
22
su_tech| | 2007-6-28 21:08 | 只看该作者

呵呵,E_T高手,好像就是不太和气

使用特权

评论回复
23
HotPower|  楼主 | 2007-6-28 21:11 | 只看该作者

高手就画个直接从RX读I2C数据的图来,直接用input读

使用特权

评论回复
24
su_tech| | 2007-6-28 21:17 | 只看该作者

HOT大侠 消消气 来杯凉茶

使用特权

评论回复
25
conwh| | 2007-6-28 21:48 | 只看该作者

倒塌了,这2天郁闷,一行代码也没有写出来。

使用特权

评论回复
26
dengm| | 2007-6-28 22:34 | 只看该作者

用RX读I2C数据, 数据太难同步了, 用汇编使用

pc 的定时器可能能完成, 但副作用太大.

使用特权

评论回复
27
dengm| | 2007-6-28 22:41 | 只看该作者

用 break 好

使用特权

评论回复
28
HotPower|  楼主 | 2007-6-29 03:00 | 只看该作者

实际上这是个高难度问题,不像有些人不长脑袋,张口就是简单

邓苗同志说的有道理,难度就是同步问题.
因为RSR232需要起始位来异步同步双方的定时器.
而RX是I2C的SDA信号,不会产生RS232需要的同步信号.

不过我想如果真的不用RX来用input()读数据,那么用output()写TX就意义不大.
不管Break是否好用,真不如直接用DTR或RTS来操作TX.

估计老外是考虑RS232只有3个输出信号,即TX,DTR和RTS.
而SCL和SDA就用去了2个.而窃电控制也需要1个.
总不能老发TX来供电吧.所以就有了楼主位的帖图.

如果实在要用TX/RX来发脉冲和收数据,下图不知如何???

左下方加的那个电压比较器实际的目的是为得到RS232输出后在TTL方的下跳沿.
如果上下沿都要的话,不如直接将TX与CTS进行232电平的短路.

要此比较器的目的是只要协议的下跳,因为I2C在SCL=0时是SDA送数据的时候,
这时对其采样都是不合适和不对的.
加它的目的是在SCL=0时,好通知PC方用RTS送出SDA数据.

如何解决用RX接收数据呢???我感到很难办...

要解决同步问题应该不难,如上图加上个二极管即可,因为它可以将TX的同步信号即TX的起始位强行
地通过SCL拉低SDA再通过U2送给RX,这样就好象TX和RX短接自环一样!!!

这样做后,在SCL=0的时候,SDA的信号虽然为0,但它确实以存在!!!不过被SCL暂时钳位而已.
当SCL上跳的时候,SDA自然会立即出现.

这样做解决了I2C向RX自动发送起始位的问题,但不能解决在停止位还是"0"
的问题.

因为I2C在SCL=1时是不过变动数据SDA的,这样也导致了在RS232端RX的停止位
时,SDA的数据还保持0的问题...

所以现在分析后,就明白了老外为什么不用RX的原因了---因为太难了~~~
准备以后再研究这个问题,我不想放过~~~

故暂时认为这样好些,如下图(短接TD---CTS):

使用特权

评论回复
29
HotPower|  楼主 | 2007-6-29 07:09 | 只看该作者

实际上上图的程序部分我已在13楼中模拟出来

感觉还是TX上接上CTS等,这样可通过捕捉CTS的跳变来决定I2C的收发状态.

由于发TX一个字节为1个(负)脉冲,在下跳时直接送出需要发送的I2C数据位.
由于RTS是反向的,故I2C数据应该取反后发送.即无数据为"0".或读数前需给RTS发送0.
这样就可在其上跳时读DSR或写RTS了.

使用特权

评论回复
30
dengm| | 2007-6-29 07:48 | 只看该作者

习惯上用 DTR 供 +电, RTS 供 -电(可参考 com 口 mouse),

TD 发数据 or 脉冲.

使用特权

评论回复
31
程序匠人| | 2007-6-29 08:31 | 只看该作者

hotpower 最近和VB干上了

使用特权

评论回复
32
zxq1234508| | 2007-6-29 10:34 | 只看该作者

实在是佩服,学习中

使用特权

评论回复
33
onemillion| | 2007-6-29 13:32 | 只看该作者

RE

请问楼主,为什么不用USB呢?

使用特权

评论回复
34
testcode| | 2007-6-29 13:49 | 只看该作者

既然外国有人能做出来,说明难度并不高...

哈哈,外国的黄毛的高手多了,只是楼上没见识过而已。

使用特权

评论回复
35
古道热肠| | 2007-6-29 14:07 | 只看该作者

老外的共享意识还是比较强的

   放在网上的东西,一般还是信得过的,通常没做手脚。只是那电路器件不好找,我觉得该用三极管搭个I2C读写24XX的电路来作试验,也许会更实在些。

使用特权

评论回复
36
古道热肠| | 2007-6-29 14:25 | 只看该作者

Re E_T

  学会尊重别人,别人才会尊重你!

使用特权

评论回复
37
pk.kong| | 2007-6-29 14:38 | 只看该作者

晕,交流技术嘛,ls干嘛这样。

使用特权

评论回复
38
E_T| | 2007-6-29 14:46 | 只看该作者

我一直都很崇拜他的,不知道他为何说出那样的话来

使用特权

评论回复
39
hq_y| | 2007-6-29 14:52 | 只看该作者

他说什么呢?你一直在修改你的发言~~~~~~

使用特权

评论回复
40
HQGBOY| | 2007-6-29 15:14 | 只看该作者

就是.别修改让大家看看...

使用特权

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

本版积分规则