数码之家

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
查看: 2177|回复: 17

[C51] 请教关于I2C总线问题

[复制链接]
发表于 2022-3-16 12:54:43 | 显示全部楼层
本帖最后由 简燕 于 2022-3-16 15:09 编辑

在标准IIC电路里,SCK和SDA都是双向信号,主机与从机传输数据时,SCK由主机产生,当从机忙,不能继续接收或者发送数据时,从机会把SCK线拉低,阻止主机继续发送时钟.这时主机端需要等待SCK信号恢复为高电平后,才能继续发送时钟.这就是HTU21D的"Hold Master Mode".

对应到HTU21D上,如果采用"保持主机模式",主机在发送完"读取"指令后,从机立即将SCK线拉低,阻止主机继续发送时钟,此时主机必须等待.从机HTU21D完成采集转换,数据准备好后,释放SCK信号线,主机检测到SCK恢复高电平后,继续发送时钟,从机把数据送往SDA线上.

如果软件模拟IIC的代码不完备,不支持对SCK双向信号的处理,则上述过程就无法完成,只能采用HTU21D的"非保持主机模式".

HTU21D,无论是"主机保持模式",还是"非主机保持模式",它都是从机."Hold Master Mode"翻译成"主机保持模式",很别扭,容易产生歧义.

回复 支持 反对

使用道具 举报

发表于 2022-3-17 22:49:31 | 显示全部楼层
慕名而来 发表于 2022-3-17 09:29
非常感谢以上几位朋友的热心指点,其实,现在程序已经调试好了,我只是不知道如果HTU21D主机保持模式下对单 ...

软件模拟IIC,如果是HTU21D工作在Hold Master Mode模式下,对单片机其他工作没有影响,因为HTU21D还是个IIC的Slave设备.就是对程序员有影响,费脑子,哈哈.
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 微信登录

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-7-24 14:08 , Processed in 0.093600 second(s), 10 queries , Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

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