11613|12

73

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

关于IIC通信 SDA和SCL的设置问题--求高手解决 [复制链接]

大家好
    最近在搞IIC的驱动。属于硬件IIC。使用的事NEC的V850系列单片机。
    请问在进行硬件初始化时。IIC通信的两个端子,即SDA和SCL端子,是设置为输入端子还是设置为输出端子,另外,如果设置为输出的话,那么端子的初始状态是设置为High还是Low?
    最后请问的是在通信端子的设置上。输入和输出的设置有什么原则,另外,初始化的电平是设置为高还是低,有没有什么原则?多谢了

最新回复

iic的好,不要模拟,会被烦死的~~~  详情 回复 发表于 2010-1-29 15:57
点赞 关注

回复
举报

71

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
自己顶一下。。
IIC通信的电路上基本上都是有一个上拉电阻的,这是不是说系统上电后,自然就会为高电平?
我发现以前做过的驱动中,有的是设置为输入,有的是设置为输出。。很奇怪,是不是输入输出对通信没有影响?
 
 

回复

61

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
你的单片机有IIC吗?如果有 要把SCL和SDK设置为IIC功能
如果没有,也就是用IO口模拟IIC时序,这两个要设置为输出口的,给他们两个不同的电平状态,模拟IIC时序
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

4
 
引用 2 楼 cfanlwn 的回复:
你的单片机有IIC吗?如果有 要把SCL和SDK设置为IIC功能
如果没有,也就是用IO口模拟IIC时序,这两个要设置为输出口的,给他们两个不同的电平状态,模拟IIC时序


你好:
我了解了,我用的NEC系列的芯片。IIC资源的端子是可以复用的(包括IO功能,UART功能等)。是不是说我选择了这两个段子为IIC端子。那么就不用去设置它的输入输出状态了,而且初始为高电平还是低电平也都没有关系。。(那么SPI或者是Uart是不是同理?)
我手上这两个驱动的代码好像也验证了上面的说法。。即输入输出状态和初始电平不需要设置。

另外,我还想问一下,设置为输出状态,那么我们单片机内部就可以拉高或者拉低这个端子。
那么设置为输入的话,我们就控制不了了吧。只能由外部的电路拉高拉低,我们进行读取?
 
 
 

回复

58

帖子

0

TA的资源

一粒金砂(初级)

5
 
这个要看芯片的说明书,一般是使能了IIC模块以后,就不需要去手动管理IO。
 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

6
 
硬件IIC直接启用就行了, 不用配置IO,配置成IO反而错了
 
 
 

回复

87

帖子

0

TA的资源

一粒金砂(初级)

7
 
IIC资源的端子是可以复用的 说明的CPU内涵集成了IIC模块,你就把他们设置成IIC功能就可以了,不用再去设置输入输出了

你去控制IIC 应该有相应的寄存器 控制寄存器,数据寄存器,状态寄存器等等

如果你要把IO口设置为输出口的话 你就可以给这个IO口0或者1 让它输出电平的

如果你要把IO口设置为输入口的话,由外围电路来决定IO的状态,我们来读这个IO口的电平状态就可以了,就不能软件在去设置了
 
 
 

回复

56

帖子

0

TA的资源

一粒金砂(初级)

8
 
一般要加上拉电阻;至于单片机端口:如果是模拟的话,输入输出你要自己设置,操作时序要与IIC协议一致;如果可以配置为IIC模块,,按照单片机的数据手册,配置对应的寄存器,就可以了
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

9
 
引用 3 楼 wuruogeng 的回复:
引用 2 楼 cfanlwn 的回复:
你的单片机有IIC吗?如果有 要把SCL和SDK设置为IIC功能
如果没有,也就是用IO口模拟IIC时序,这两个要设置为输出口的,给他们两个不同的电平状态,模拟IIC时序


你好:
我了解了,我用的NEC系列的芯片。IIC资源的端子是可以复用的(包括IO功能,UART功能等)。是不是说我选择了这两个段子为IIC端子。那么就不用去设置它的输入输出状态了,而且初始为高电平还是低电平也都没有关系。。(那么SPI或者是Uart是不是同理?)
我手上这两个驱动的代码好像也验证了上面的说法。。即输入输出状态和初始电平不需要设置。

另外,我还想问一下,设置为输出状态,那么我们单片机内部就可以拉高或者拉低这个端子。
那么设置为输入的话,我们就控制不了了吧。只能由外部的电路拉高拉低,我们进行读取?


楼主领悟得基本正确。
1、当单片机的IO复用于特殊功能(I2C、ADC、DAC、UART、SPI等等)时,一般只需把该IO配置成特殊功能即可,之后就不用管什么输入与输出。
2、单片机的IO作为输出时,则是对外提供 电流,即体现单片机的IO驱动电流,所以此时需要设置上拉或下拉。
而作为输入时,强调的是灌电流,即外部灌入电流,所以此时不管上拉或下拉。
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

10
 
看你有没有i2c控制器了 有的话可以配置
没有就要gpio模拟 默认配置成高电平
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

11
 
引用 8 楼 kyzf 的回复:
引用 3 楼 wuruogeng 的回复:
引用 2 楼 cfanlwn 的回复:
你的单片机有IIC吗?如果有 要把SCL和SDK设置为IIC功能
如果没有,也就是用IO口模拟IIC时序,这两个要设置为输出口的,给他们两个不同的电平状态,模拟IIC时序


你好:
我了解了,我用的NEC系列的芯片。IIC资源的端子是可以复用的(包括IO功能,UART功能等)。是不是说我选择了这两个段子为IIC端子。那么就不用去设置它的输入输出状态了,而且初始为高电平还是低电平也都没有关系。。(那么SPI或者是Uart是不是同理?)
我手上这两个驱动的代码好像也验证了上面的说法。。即输入输出状态和初始电平不需要设置。

另外,我还想问一下,设置为输出状态,那么我们单片机内部就可以拉高或者拉低这个端子。
那么设置为输入的话,我们就控制不了了吧。只能由外部的电路拉高拉低,我们进行读取?


楼主领悟得基本正确。
1、当单片机的IO复用于特殊功能(I2C、ADC、DAC、UART、SPI等等)时,一般只需把该IO配置成特殊功能即可,之后就不用管什么输入与输出。
2、单片机的IO作为输出时,则是对外提供 电流,即体现单片机的IO驱动电流,所以此时需要设置上拉或下拉。
而作为输入时,强调的是灌电流,即外部灌入电流,所以此时不管上拉或下拉。

想问个问题,I/o作为输入,电流都是由外部提供的吗?
 
 
 

回复

90

帖子

0

TA的资源

一粒金砂(初级)

12
 
不太了解nec的单片机,你去厂家的官方网站,应该能找到demo ,和资料,看看iic的demo就会用了,

一般编译软件的目录里,都有demo,可以看看参考一下,应该不是问题吧
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

13
 
iic的好,不要模拟,会被烦死的~~~
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表