历史上的今天
返回首页

历史上的今天

今天是:2025年05月11日(星期日)

2019年05月11日 | 89和12单片机的I2C通信时序问题

2019-05-11 来源:eefocus

今天用ADC偶然发现了这个问题,分享给各位朋友。


89的I2CDelay:


#define I2CDelay() {_nop_();_nop_();_nop_();_nop_();}


12的I2CDelay:


void Delay_us(unsigned char us)

{

    do {

        _nop_();

        _nop_();

        _nop_();

        _nop_();

        _nop_();

        _nop_();

        _nop_();

        _nop_();

    } while (--us);

}


I2CDelay(5);


I2C通信分为低速模式100kbit/s、快速模式400kbit/s和高速模式3.4Mbit/s。因为所有的I2C器件都支持低速,但却未必支持另外两种速度,所以作为通用的I2C程序我们选择100k这个速率来实现,也就是说实际程序产生的时序必须小于等于100k的时序参数,很明显也就是要求SCL的高低电平持续时间都不短于5us,因此我们在时序函数中通过插入I2CDelay()这个总线延时函数(它实际上就是4个NOP指令,用define在文件开头做了定义),加上改变SCL值语句本身占用的至少一个周期,来达到这个速度限制。


89的例程用到是11.0592M的晶振。 

12/11059200肯定比12M晶振的1us机器周期大,所以89的延时是大于4的,再加上语句执行的时间肯定是大于5us的


推荐阅读

史海拾趣

Babcock Inc公司的发展小趣事

为了进一步提升公司的竞争力和市场份额,Babcock积极寻求与国际知名企业的合作。通过与这些企业的技术交流和项目合作,Babcock不仅引进了先进的技术和管理经验,还成功打开了国际市场的大门。随着业务的不断拓展,公司的规模和影响力也逐渐扩大。

Excelsys公司的发展小趣事

品质是Excelsys公司的生命线。公司始终坚持严格的品质控制标准,从原材料采购到生产制造的每一个环节,都经过严格的质量检测。这种对品质的执着追求,让Excelsys的产品在市场上赢得了良好的口碑。同时,公司还建立了完善的售后服务体系,为客户提供及时、专业的技术支持,进一步提升了品牌的信誉度。

Bay Linear Inc公司的发展小趣事

Bay Linear Inc公司一直注重人才培养和团队建设。公司建立了完善的人才培养和激励机制,吸引了一批批优秀的研发人才和管理人才。同时,公司还积极营造团结协作、创新进取的企业文化,使团队成员能够充分发挥自己的才能和潜力,共同推动公司的发展。

Cal Test Electronics公司的发展小趣事

在市场竞争日益激烈的情况下,Cal Test Electronics不断拓展产品线,以满足不同客户的需求。公司研发团队致力于开发具有创新性和竞争力的新产品,同时在现有产品的基础上进行升级和优化。这些努力使得公司的产品线日益丰富,涵盖了七大连接类别中的3000多种产品。这些产品不仅在国内市场上受到欢迎,还逐渐走向国际市场。

ADATA公司的发展小趣事

Cal Test Electronics公司成立于1995年,当时正值电子配件和测试产品市场的快速发展期。创始人凭借对电子行业的深刻理解和敏锐的市场洞察力,决定专注于这一领域。初创时期,公司面临着资金短缺、市场竞争激烈等诸多挑战,但创始人带领团队通过技术创新和成本控制,逐步在市场上站稳脚跟。他们不断研发出符合市场需求的高品质产品,赢得了客户的信任和支持。

Cobham Semiconductor Solutions公司的发展小趣事

Cobham Semiconductor Solutions自成立之初,便以技术创新为核心驱动力。公司不断投入研发,推动半导体技术的突破。在某一关键时期,Cobham团队成功研发出一款具有革命性的低功耗芯片,不仅大幅提升了设备的性能,还降低了能耗,迅速在市场上获得了广泛应用。这一创新不仅为公司带来了可观的利润,还奠定了其在半导体行业的领先地位。

问答坊 | AI 解惑

PDF文档密码清除器

本帖最后由 paulhyde 于 2014-9-15 03:16 编辑 这东西有些时候有用啊!    …

查看全部问答>

5月9日“忙碌”的一天

5月9日也算是忙碌的一天了,早上起床晚了,7点50才起, 刚出宿舍就下起雨了,吃了早餐直奔实验室,又搞了一个调频无线话筒,不过只有几米这样子, 又有一个学校的比赛,题目卡了下我们组选的是LED点阵屏的,学习了VC对话框加法点击,看的是孙鑫的视 ...…

查看全部问答>

VS2005中开发PocketPC环境,工具箱中没有任何控件

前些天用VS2005做PocketPC的开发,开发IDE界面上工具箱中有许多控件,像按钮,文本框什么的,但是昨天安装有卸载VS2007后,发现VS2005中的PockePC开发环境中的工具箱上没有任何控件了(但WinForm中的还都在),无法通过图形界面添加按钮到代码窗体上,我又把 ...…

查看全部问答>

有些指令长度超过cpu字长,cpu怎么来处理这些指令呢?

有些指令长度超过cpu字长,cpu怎么来处理这些指令呢? 对某一cpu,操作码的指令长度是固定,而整个指令长度不同主要是由操作数个数 引起,但一个操作数其指令长度是固定的,但操作码长度或操作数长度不一定等 于cpu字长?…

查看全部问答>

求助高频无线大神

本帖最后由 dontium 于 2015-1-23 13:27 编辑 已知无线发射模块电路的频率是30MHZ,现在要改成10MHZ,大概要怎么改呀??? 谢谢了 …

查看全部问答>

又是个好玩的转接板

这次的转接板很好玩,是从单片机转接到面包板上的。我传张图,大家一看就懂,但是未必想得到。很简单吧!就是把万能板做成合适面包板接插的样子,然后把单片机的IO引到面包板。…

查看全部问答>

怎么知道8位的单片机够不够用

我做的一个压力测试仪,要显示20000HPA,单位必须是HPA,而且输出速率不小于10KHZ。…

查看全部问答>

模拟电路怎样才算入门了?

很多朋友问,怎么学习模拟电路,我得回答是:看模拟电路的书籍。朋友说,这样说太笼统了,让我仔细说一说。其实我也不知道从何说起。就把我认为该掌握的一些要点列举一下,仅共参考,如有不妥之处,敬请批评指正。1.掌握二极管,三极管,场效应的特 ...…

查看全部问答>

车载DVD智能导航平台方案

此车载DVD导航方案平台采用TI强大的双核处理器DM8148,具备A8核与DSP核,图像编解码核,图像采集与显示核,3D加速协处理器1. A8核,运行android系统,主要功能是多媒体,如音视频播放,导航,收音机,蓝牙,LCD触摸,WIFI,GPS,3G。支持串口,CAN ...…

查看全部问答>

EEWORLD大学堂----2013 Altera SoC合作伙伴研讨会

2013 Altera SoC合作伙伴研讨会:https://training.eeworld.com.cn/course/20712013 Altera SoC合作伙伴研讨会…

查看全部问答>