文件名称:I2CFM3130
-
所属分类:
- 标签属性:
- 上传时间:2008-10-13
-
文件大小:1.49mb
-
已下载:0次
-
提 供 者:
-
相关连接:无下载说明:别用迅雷下载,失败请重下,重下不扣分!
介绍说明--下载内容来自于网络,使用问题请自行百度
用单片机的I/O口模拟I2C协议
I2C用IO模拟程序网上范例最多的就是51的程序了,这些范例的正确性无需怀疑.但是如果直接以它为蓝本将它\"AVR化\",一不留神,就会有点问题了.
这要从I2C的硬件规范和AVR及51单片机的IO口说起.I2C要求SCL,SDA二线都有 线与 功能,即I2C驱动口应该是 漏极开路 电路,其高电平的维持是靠上拉电阻来实现的, 而低电平则需要驱动口的强下拉能力.
51单片机IO口正好完全符合这个特性.写起I2C驱动颇为得心应手.但是AVR的IO口强大了,它输出的高电平是实实在在的高电平,而不是靠什么上拉电阻来提供,只有10mA都不到的电流!于是如果直接使用 PORTB_Bit0 = 1这样的操作,就不能满足I2C的线与功能了,如果此时有别的设备要将SCL或者SDA拉低,那么结果就是二个IO口打架,谁赢谁输不得而知,时间长了,多半是两败俱伤,芯片发热吧.
当然AVR的IO口自然有办法满足I2C的电气特性要求,不就是不能输出1么,那么用它的高阻状态即可(DDRB_Bit0=0,PORTB_Bit0=0即可),要输出0么(DDRB_Bit0=1,PORTB_Bit0=0).
I2C用IO模拟程序网上范例最多的就是51的程序了,这些范例的正确性无需怀疑.但是如果直接以它为蓝本将它\"AVR化\",一不留神,就会有点问题了.
这要从I2C的硬件规范和AVR及51单片机的IO口说起.I2C要求SCL,SDA二线都有 线与 功能,即I2C驱动口应该是 漏极开路 电路,其高电平的维持是靠上拉电阻来实现的, 而低电平则需要驱动口的强下拉能力.
51单片机IO口正好完全符合这个特性.写起I2C驱动颇为得心应手.但是AVR的IO口强大了,它输出的高电平是实实在在的高电平,而不是靠什么上拉电阻来提供,只有10mA都不到的电流!于是如果直接使用 PORTB_Bit0 = 1这样的操作,就不能满足I2C的线与功能了,如果此时有别的设备要将SCL或者SDA拉低,那么结果就是二个IO口打架,谁赢谁输不得而知,时间长了,多半是两败俱伤,芯片发热吧.
当然AVR的IO口自然有办法满足I2C的电气特性要求,不就是不能输出1么,那么用它的高阻状态即可(DDRB_Bit0=0,PORTB_Bit0=0即可),要输出0么(DDRB_Bit0=1,PORTB_Bit0=0).
(系统自动生成,下载前可以参看下载内容)
下载文件列表
I2CFM3130/FM3130.c
I2CFM3130/FM3130.dep
I2CFM3130/FM3130.ewd
I2CFM3130/FM3130.ewp
I2CFM3130/FM3130.eww
I2CFM3130/FM3130_dbg.aps
I2CFM3130/settings/FM3130.dbgdt
I2CFM3130/settings/FM3130.dni
I2CFM3130/settings/FM3130.wsdt
I2CFM3130/Debug
I2CFM3130/settings
I2CFM3130
I2CFM3130/FM3130_cn_ds.pdf
I2CFM3130/i2c总线.doc
I2CFM3130/i2c总线协议(中文版).pdf
www.dssz.com.txt
I2CFM3130/FM3130.dep
I2CFM3130/FM3130.ewd
I2CFM3130/FM3130.ewp
I2CFM3130/FM3130.eww
I2CFM3130/FM3130_dbg.aps
I2CFM3130/settings/FM3130.dbgdt
I2CFM3130/settings/FM3130.dni
I2CFM3130/settings/FM3130.wsdt
I2CFM3130/Debug
I2CFM3130/settings
I2CFM3130
I2CFM3130/FM3130_cn_ds.pdf
I2CFM3130/i2c总线.doc
I2CFM3130/i2c总线协议(中文版).pdf
www.dssz.com.txt
本网站为编程资源及源代码搜集、介绍的搜索网站,版权归原作者所有! 粤ICP备11031372号
1999-2046 搜珍网 All Rights Reserved.