导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→关于I2C的问题?望指教![ybs777]

 *第9467篇: 关于I2C的问题?望指教!

  
楼 主:ybs777 2003年3月28日12:54
 关于I2C的问题?望指教!
当我给一个I2C的数据存储器(E2PROM、FLASH)发送数据时,是否有必要等到对方的应答信号后,才发送下一个数据?(假设没有页写功能)
  
2楼:老古 2003年3月28日13:10
 两种做法:
1。是等待,但不能无限等待,会死在那里
2。等待一个足够的时间,发下一个指令
  
3楼:ybs777 2003年3月28日13:42
 知道了,谢谢老古。 :)
  
4楼:lilycliff 2003年3月28日13:49
 菜鸟问题:I2C是指什么参数啊?
以下是引用的发言:
我在看一个数字电位器的资料上也有这个东东,但不知道它是指什么呀?


  
5楼:老古 2003年3月28日13:53
 i2C是一种总线协议,用两根线来通讯的。
  
6楼:ybs777 2003年3月28日13:56
 你可以去找找一本叫《单片机开发与典型应用设计》的书,写的满多的。
  
7楼:Kuang-chingTsui 2003年3月28日14:13
 I2C Bus
I2C Bus是内部集成电路总线的意思,支持同一PCB上的芯片到芯片的串行通讯,由于只有数据线(SDA)和时钟线(SCL)两条线连接IC,所以有些地方也叫它做二线式总线。
  
8楼:Kuang-chingTsui 2003年3月28日14:01
 要等待一个ACK
要等待一个ACK,然后发STOP,再次发送时要等待5-10mS的时间(不同的IC有不同的写入周期),因为EEPROM、Flash的写入过程是先把要写的数据放入器件的内部缓冲器里,然后是删除和写入存储单元。
  
9楼:ybs777 2003年3月28日15:13
 写一次要5到10MS,那么要是页写,是否也只要5到10MS呢?
我是用X1226,一个时钟芯片内部带E2PROM,有页写功能,但是好象最多只能写8个字节。要是写满了8个字节后,是否要等到收到应答信号后,再等待5到10MS,再写?
  
10楼:Kuang-chingTsui 2003年3月28日15:17
 是这样。
  
11楼:老古 2003年3月28日15:19
 写完之后等5毫秒即可。
  
12楼:ybs777 2003年3月28日15:55
 关于5MS的确定?
我用的是MSC1210,这种芯片使用的是高速内核。标称1个指令周期占用4个时钟,单条指令执行时间为121nS。为了保证串口通信的波特准确,我采用11。059的晶振,那么执行一条NOP所占用的时间是     12÷11.059÷4=1.08÷4=0.27uS吗?


  
13楼:Kuang-chingTsui 2003年3月28日16:24
 可能你算错了
应该是:
(1/11.059)X4=0.36uS(约数)。
  
14楼:ybs777 2003年3月28日16:39
 看来我在概念的理解上存在问题。
我一直认为,8051的1个机器周期是12个拍节,那么,在采用12MHZ的晶振时,
12/12000000=1uS.
看来应当是1秒中晶振的震荡次数是12M下,那么一个机器周期就是约等于1US了。
而MSC1210的一个指令周期占用4个时钟,那么也就是8051执行一条NOP,而MSC1210可以在同一时间内执行4条NOP。
我的理解正确吗?
  
15楼:Kuang-chingTsui 2003年3月28日16:42
 小纠正:是三条。
是三条。
  
16楼:ybs777 2003年3月28日16:51
 WHY?MSC1210执行一条NOP要0.36uS,而8051要1.44uS。
这不是4倍的关系吗?为什么是3条呢?望指教!我的算术很差。 :)
  
17楼:Kuang-chingTsui 2003年3月28日16:57
 算术问题:
人人都有僵住的时候:
8051的机器周期是12个时钟振荡周期,而你的mcu是4个,12/4=3,对吗?
  
18楼:ybs777 2003年3月28日17:15
 总算明白了。谢谢! :)
也就是说,51的一个机器周期要12个震荡脉冲完成一条NOP,而MSC1210的一个机器周期只需要4个震荡脉冲就可以完成一条NOP。 :)
  
19楼:Kuang-chingTsui 2003年3月28日17:30
 呵呵,别客气了

>>>>>>对该主题发表你的看法

本主题贴数19,分页: [第1页]


[上一篇主题]:今天上午画的电路图,没人讨论,希望大家帮我看看。

[下一篇主题]:求助: 怎样检测“水电导率", 哪里能下载到这方面的资料(算法,传感器