历史上的今天
返回首页

历史上的今天

今天是:2024年12月13日(星期五)

正在发生

2018年12月13日 | 89和12单片机的I2C通信时序问题

2018-12-13 来源: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的

推荐阅读

史海拾趣

Exar公司的发展小趣事

随着云计算和大数据的兴起,数据中心市场迎来了爆发式增长。Exar公司敏锐地抓住了这一市场机遇,推出了一系列针对数据中心市场的产品。通过不断的技术创新和产品优化,Exar在数据中心市场上取得了显著的突破,赢得了众多客户的认可和信赖。

Deutsch公司的发展小趣事

在竞争激烈的电子行业中,品质控制和品牌建设至关重要。Deutsch公司深知这一点,因此始终将品质控制和品牌建设作为公司的重要任务。公司建立了严格的质量管理体系,确保产品的每一个细节都符合高标准。同时,通过精心策划的品牌推广活动,Deutsch公司的品牌形象逐渐深入人心。这些努力不仅提升了公司的市场地位,也增强了客户对公司的忠诚度。

百蓉(ECE)公司的发展小趣事

面对智能制造的浪潮,百蓉公司积极拥抱变革。他们引进了先进的自动化设备,对生产线进行了全面升级,实现了从手工制造向智能制造的转变。这一转型不仅提高了生产效率,还大幅提升了产品质量和产品的一致性,使得百蓉的产品在市场上更具竞争力。

ERA Transformers公司的发展小趣事

在电子行业中,ERA Transformers公司以其开创性的技术而闻名。该公司专注于研发和生产高效的电子变压器,以满足不断增长的电子设备需求。在一次研发过程中,公司工程师们面临了一个重大挑战:如何提高变压器的能效和稳定性。经过数月的深入研究与反复试验,他们终于开发出了一种新型的高效能变压器,该变压器采用了先进的材料和独特的设计,显著提高了能效和稳定性,这一创新技术的突破使得ERA Transformers公司在电子行业中崭露头角。

DIOTECH公司的发展小趣事

在市场竞争日益激烈的背景下,DIOTECH公司意识到单靠技术突破已经难以保持领先地位。于是,公司开始积极探索创新驱动和跨界合作的发展路径。通过与多家知名科技公司的合作,DIOTECH成功将人工智能技术应用于其产品中,推出了一系列具有智能化功能的电子产品。这些产品在市场上引起了强烈反响,为公司带来了新的增长点。

DESIGNERSYSTEMS公司的发展小趣事

DESIGNERSYSTEMS公司非常注重人才的培养和引进。他们建立了一套完善的人才培养机制,通过内部培训、外部交流等多种方式不断提升员工的综合素质和专业能力。同时,DESIGNERSYSTEMS还积极引进国内外优秀人才,为公司的发展注入新的活力和创新力。这种对人才的重视和投入使得DESIGNERSYSTEMS在电子行业中保持了持续的创新力和竞争力。

问答坊 | AI 解惑

ADI和LSI双双退出手机芯片业务 彰显DSP产业大转型

LSI将手机芯片业务出售给了英飞凌,ADI也将手机芯片业务出售给了MTK,并可能退出包括Blackfin处理器在内的整个DSP业务。另外,英飞凌和Broadcom成了诺基亚的新宠。在手机芯片这个最大的DSP应用市场,四大传统DSP芯片供应商(TI、Freescale、ADI和Ag ...…

查看全部问答>

华中理工大学C51单片机教材(经典)--初学者必看

华中理工大学C51单片机教材(经典)--初学者必看…

查看全部问答>

一个在51上nor flash的读写问题。谢谢大家。

问题如下,我使用nor flash作为存储器。向flash写入数据,再读出来,以此验证读写操作是否正确。但是现在的问题是:我向flash写入0x80一下的数据再读出来,都很好。例如:写入0x14,那么读出来就是0x14.都没有问题。但是一旦到了0x80那么读出来的数 ...…

查看全部问答>

如何购买周立功开发板EasyARM2131

本人住湛江,想购买周立功开发板EasyARM2131,却没有门路,请大家提供一下,谢谢。。。。。。。…

查看全部问答>

LoadLibrary的问题

小弟在LoadLibrary上碰到点问题,不知何顾。 过程是这样的 我的开发环境是CE6和VS2005 创建了一个Smart Device的动态连接库,但是在loadlibrary的时候 总是返回失败,板卡厂家提供的Driver有些是以动态连接库提供的,我loadlibrary,也返回失败 ...…

查看全部问答>

从SD卡读出数据到TFT显示

采用数据重定向来实现,但是TFT不刷屏。。。…

查看全部问答>

MSP430指令周期的问题

一条简单的赋值语句居然要4个机器周期。不知道什么指令只占一个机器周期。有没有汇编指令表,可以看占多少机器周期的。…

查看全部问答>

RT-Thread的IO设备,是先注_册还是先初始化的

我看了RTT中的串口设备是先初始化RCC GPIO NVIC等才把改设备注_册到系统中去。 按我的理解应该先注_册吧,在使用的时候电用**_init函数吧。 请高手指导一下…

查看全部问答>

本人求教导做逆变器和220v储电设备

有人可以教我么?我非常需要这技术364182124qq…

查看全部问答>

信道模拟问题

请问有没有大神用成型滤波法来实现瑞利信道模拟技术,想问下你们用fft/ifft是采用什么结构类型的,求大神帮忙一下,有悬赏哦…

查看全部问答>