找回密码
 注册
LabVIEW+单片机学习套件全套教程资料下载[免费]LabVIEW论坛精华列表贴USB0816数据采集卡《LabVIEW宝典》
LabWindows/CVI论坛精华贴NET0816以太网数据采集卡RC0210远程设备授权系统 关闭关停锁定打开设备 户外分布式数据采集
NET1624低速高精度以太网数据采集卡WIFI0824SD无线WIFI网络数据采集卡脱机运行 SD存储 小尺寸微型 串口采集远程采集 安卓 手持移动采集 纪录仪
查看: 1807|回复: 15

IIC问题,请高手指导

[复制链接]
发表于 2009-4-8 17:30:18 | 显示全部楼层 |阅读模式
我有一个IIC读取得子程式,电脑上用得是并口,可以并口有几种接法,为什么有得接法这个IIC程序读不了?
发表于 2009-4-8 18:01:40 | 显示全部楼层
本帖最后由 labc 于 2009-4-13 13:45 编辑

并口主要有SPP和EPP模式2种. EPP模式用来模拟I2C通信很方便,用到37B和37C两个寄存器.
或者去购买专用的并口转I2C适配卡, 然后调用它的dll完成与slave的通信.
你从下面链接中可以找到并口的详细介绍, 不过是英文的:
http://www.beyondlogic.org/epp/epp.htm

Labc
回复 顶

使用道具 举报

 楼主| 发表于 2009-4-8 23:32:14 | 显示全部楼层
有没有推荐的程序和外围电路一块奉献一下啊,不胜感激。
回复 顶

使用道具 举报

发表于 2009-4-9 08:31:20 | 显示全部楼层
本帖最后由 labc 于 2009-4-14 09:14 编辑

你找一下I2C的协议先看看, 把它看懂是必须的.

在EPP模式下, 通过对并口的两个寄存器读写来模拟I2C的时序, 可以用37B的其中2个管脚来依次对应I2C的SCL或SDA(读), 通过写37C改变SCL或SDA的状态. 这时SDA有2个管脚对应, 一个是用来读, 一个是用来写的,它们之间通过一个三极管隔离.

你到网上搜一下"计算机并口模拟I2C总线的试验",里面有些代码和电路可以参考, 我注意到它的设计在SPP模式下的.我把它整理了一下,放在这里, 请参考.

Labc

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复 顶

使用道具 举报

 楼主| 发表于 2009-4-11 23:25:32 | 显示全部楼层
我看有的用2,3脚做时钟和数据,13脚做选择读写,
另外有人用8,9做时钟和数据,用1脚做选择读写,
这两个有什么区别.?编程的时候有没有区别/?
回复 顶

使用道具 举报

发表于 2009-4-13 09:00:33 | 显示全部楼层
本帖最后由 labc 于 2009-4-13 10:38 编辑

EPP模式没有Pin13.只要是Pin2-9, 哪个脚做时钟(SCL)或数据(SDA)线是没有关系的.
EPP只有两个寄存器,一个是数据(基址+4),一个是地址(基址+3), 它们共用相同的管脚(Pin2-9).
有人用到了Pin13, 它应该工作在非EPP模式,SPP模式下.
请看下图:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复 顶

使用道具 举报

 楼主| 发表于 2009-4-13 12:08:43 | 显示全部楼层
我试了,我有一个必须要用数据脚5(scl),6(sda),但是我改成2(scl),3(sda)或者3(scl),2(sda)都不行,这是为什么啊?
回复 顶

使用道具 举报

发表于 2009-4-13 13:19:07 | 显示全部楼层
本帖最后由 labc 于 2009-4-13 13:20 编辑

附件是我写的的并口转I2C程序, 你可以用LV8.5+打开.
I2C SCL:  pin 2(bit 0); I2C SDA:   pin 3和Pin4
Set SDA:   pin 3(bit 1); Get SDA:   pin 4(bit 2), 用三极管隔开, 详见附件.
其它管脚Pin5-9可以用来给装置或器件供电, 默认为高电平.

我觉得可以改成仅仅用到并口的3个管脚, 其中2个分别是SCL和SDA, 另外一个用来给装置或器件供电.
这个留在以后再说.

Labc

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复 顶

使用道具 举报

 楼主| 发表于 2009-4-13 13:53:22 | 显示全部楼层
有密码保护!
能不能提供一下啊,多谢.
回复 顶

使用道具 举报

发表于 2009-4-13 15:48:43 | 显示全部楼层
我试了,我有一个必须要用数据脚5(scl),6(sda),但是我改成2(scl),3(sda)或者3(scl),2(sda)都不行,这是为什么啊?
kkk123747 发表于 2009-4-13 12:08


这肯定不行...

Labc
回复 顶

使用道具 举报

发表于 2009-4-13 16:01:44 | 显示全部楼层
本帖最后由 labc 于 2009-4-13 16:05 编辑

7# kkk123747
你可以打开I2C_BYTE_WRITE.vi看下, 其它的和这个类似, 都是根据I2C的协议写的{:5_397:}

Labc
回复 顶

使用道具 举报

 楼主| 发表于 2009-4-14 09:24:32 | 显示全部楼层
回复 顶

使用道具 举报

发表于 2009-4-14 13:29:58 | 显示全部楼层
本帖最后由 labc 于 2009-4-14 18:01 编辑

Source Code, 现在不方便给你, 你把我前面贴的资料好好看看, OK之后就明白了.
1, 并口不同工作模式下的寄存器; 我给的VI工作在EPP模式下, 进入BIOS可以设置;
2, I2C协议,到http://www.zlgmcu.com下个中文版的.

Labc
回复 顶

使用道具 举报

 楼主| 发表于 2009-4-14 15:23:49 | 显示全部楼层
大哥:那我怎么看啊?要不你发我邮箱怎么样? kkk123747@sohu.com
回复 顶

使用道具 举报

发表于 2009-4-14 16:03:12 | 显示全部楼层
你从vi的名字上也可以看出来它的用处, 有的vi我加了描述的.

Labc

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复 顶

使用道具 举报

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

本版积分规则

Archiver|手机版|cpubbs论坛. ( 粤ICP备09171248号 )

GMT+8, 2026-9-29 16:53 , Processed in 0.060709 second(s), 11 queries , Gzip On, File On.

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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