1,SDA1delaySCL1delaySDA0delay为什么SCL也要延

这个问题可以参考IIC的时序图和你所用的单片机的时钟周期决定的!
支持一下感觉挺不错的

SDA1delaySCL1delaySDA0delay为什么SCL也要延

2,向高人请教一下关于IIC总线的两个问题

1.IIC通信设备都有支持的速率范围,通信时的速率由主机确定,所以从机的接口要支持主机的通信速率即可。2.模拟IIC速率可随意设定,低于从设备速率即可。上拉电阻选择有多方面的考虑,主要满足信号波形的时延要求,一般来说100K、400K的设备选用4.7k均可。

向高人请教一下关于IIC总线的两个问题

3,pic中nop延时多长时间

随你用那种晶振,以及时钟的分频设置而不同。
包括在库函数intrins.h中的 表示空循环一个机器指令的时间,12m中表示1us;6m中表示2us;24m中表示0.5us(微妙) 1s=1000ms=1000 000us; nop,常在通信驱动中用到,如iic(i2c)等

pic中nop延时多长时间

4,IIC的delay帮忙解释下

没有这么讲究的,什么两倍delay什么的,别管。起始信号,你就理解为在SCL高电平的时候SDA被拉低就行了。当然,电平保持是需要一定时间,大于多少微秒即可,在模拟IIC程序里,一般是远大于这个既定时间的。所以你别纠结什么1倍delay还是2倍delay,只要SCL高电平的时候SDA被拉低就被认为起始信号

5,一个IIC协议的小问题求前辈点拨

建议详细了解IIC的协议,按照协议规定,总线空闲时两线为高,当进行通信时,SDA在SCL高电平时由高变低表示通信开始( void iic_start(void) ),以后传输数据,SDA只能在SCL为低的时候才能发生变化,在SCL上升抓取数据;而停止位是在SCL高时SDA由低变高 (void iic_stop(void) )。 其实只要满足了协议要求最终两线处于什么状态也许都是可以的,或者你也可以试下在某些地方将SCL最终由低又拉为高是否能正常,当然首要还是在符合协议规定的前提下。

6,如何确定iic的上升时间和下降时间

1、可能延时时间不够,器件读写速度慢,跟不上。void delay()//延迟5毫秒左右;你用多少的晶振?12M的晶振标准51核,只能延时2个微秒。2、write_byte(0xaa);respons();像这种写入数据的操作需要时间比较长,你的等待时间可能不够。查看你器件的datasheet,看它的写入时间需要多久。3、拿示波器看一下你IIC总线的波形的上升时间和下降时间能不能满足IIC规范的要求。4、嵌入式系统从稳定性考虑,最好对每个函数的操作成功与否进行判断,系统要对错误的情况进行处理。比如楼主的respons();函数,比较好的一种处理方式是:如果等待超时,那么返回错误码,由上层函数决定如何处理错误。重发or放弃,等等。 楼主刚刚开始学习不必要深究,可以思考下这方面的问题。

7,请教51模拟iic通信中的问题

IIC总线的时序,好像是:最高频率在400KHz。单片机指令的执行时间,速度快,所以要加延时。停止函数,是在SCL=1期间,SDA出现上升,那么SDA先要为0,这个0,要在SCL=0实现。
iic协议就是这么规定的,时序要求,需要4-5us的时间间隔,而12Mhz的单片机一个机器周期为1us,所以需延时!!!呃,你看程序时,必须结合标准IIC总线模拟时序图,写起始信号、停止信号也是根据总线模拟时序图来的。郭天翔的视频写得很清晰,推荐看!!!
多字节读取的时候,每个字节都需要给出应答,但是,不对最后一个字节应答所以,对同样应答操作的数据字节数要-1,最后一个字节单独读取并不应答

8,大哥我用i2c方式读写外部的fM24C02时为什么读到的老是最后一个写

根据描述,猜测以下几个方面有可能问题:1. io配置:sda、scl是否配置正确;sda双向口在使用中是否做了切换;输出口是否设置上拉电阻(电路板上是否有上拉电阻);2. 时序问题:参考24c02,对比下读写时序是否正确。3. 延时问题:网上很多例程都是基于51写的,移植到stm32尤其要注意延时问题,stm32主频72mhz速度很快,原来的延时要适当加长。另外,如果说只是需要一个存储数据功能的话,建议考虑stm32片上flash,设备的配置参数什么的我一般都存在片上的flash上,掉电不丢失,上电再读取。建议考虑考虑。
先假设你已经写进去了,EEPROM的读操作分为三种,当前地址读、选择地址读和顺序读,按你所说的总是读到最后一个写进去的字节,会不会是用的当前地址读。

9,FPGA时序问题IIC协议SCLSDA线输入经过一些逻辑后在内部

1ns的延时都会导致误判?你这个逻辑也太精准了吧。要解决这个问题,最简单的方式就是加延时后再判断,或者增加冗余判断即可。
不能哪?! I2C最高也就跑到1M吧, 相当于us级, 跟ns毫无干系. 重新找找看问题点. 如果真是的话, 可以让I2C走延迟线.
你好!啥叫反向的逻辑验证啊?能介绍一下吗?首先,只要不是时钟管脚进来的信号,FPGA都有输入寄存器可以用,也就是说你可以让信号进来就先采样,这样可以保证进来信号的对齐和时序一致;其次I2C的两个信号是否需要上输入寄存器,那就看你的design了,如果里面是i2c slave的话,里面应该还有个更高的采样时钟,这样1ns的时延是没有关系的,甚至可以将进来的两个信号都设成flase path。我的回答你还满意吗~~

10,AVR单片机多个延时怎么操作

你能确定最大的延时是多少,最小的延时?可以的话,设定时器的延时时间为在不影响精度的情况下用最大的延时时间(肯定小于你要求的最小延时),这样可以减少单片机负担;然后给没个事件一个变量(看你的时间长度可选用UCHAR 或UINT……)用于计数,即是计时,这样你应该明白了;实际上类似与捕获,但更灵活;要确定延时里面执行函数的时间小于设定的延时时间;
哪种avr教程好?这是没有答案的,如果要确定一个的话,建议看看马潮老师写的avr教程就行了。其他教程都是大同小异。哪种avr开发板好?现在avr开发板多如牛毛,没有好的,也没有不好的。我用的avr开发板只是一个引出了所有端口的最小系统板,一样用的好好的。如果你要开始学,那建议先把目标放的高一些,即选atmega128芯片的avr单片机吧,这个一掌握,atmega单片机中的8位系列的单片机就算掌握了。当然有兴趣再去学习16位的avr单片机atxmega或者32位的avr单片机avr32uc3。学习avr主要是在www.ourdev.cn,里边有很多高手,还有很多资料,是个很不错的学习论坛学习使用单片机就是理解单片机硬件结构,以及内部资源的应用,在汇编或c语言中学会各种功能的初始化设置,以及实现各种功能的程序编制。第一步:数字i/o的使用使用按钮输入信号,发光二极管显示输出电平,就可以学习引脚的数字i/o功能,在按下某个按钮后,某发光二极管发亮,这就是数字电路中组合逻辑的功能,虽然很简单,但是可以学习一般的单片机编程思想,例如,必须设置很多寄存器对引脚进行初始化处理,才能使引脚具备有数字输入和输出输出功能。每使用单片机的一个功能,就要对控制该功能的寄存器进行设置,这就是单片机编程的特点,千万不要怕麻烦,所有的单片机都是这样。第二步:定时器的使用 学会定时器的使用,就可以用单片机实现时序电路,时序电路的功能是强大的,在工业、家用电气设备的控制中有很多应用,例如,可以用单片机实现一个具有一个按钮的楼道灯开关,该开关在按钮按下一次后,灯亮3分钟后自动灭,当按钮连续按下两次后,灯常亮不灭,当按钮按下时间超过2s,则灯灭。数字集成电路可以实现时序电路,可编程逻辑器件(pld)可以实现时序电路,可编程控制器(plc)也可以实现时序电路,但是只有单片机实现起来最简单,成本最低。定时器的使用是非常重要的,逻辑加时间控制是单片机使用的基础。第三步:中断单片机的特点是一段程序反复执行,程序中的每个指令的执行都需要一定的执行时间,如果程序没有执行到某指令,则该指令的动作就不会发生,这样就会耽误很多快速发生的事情,例如,按钮按下时的下降沿。要使单片机在程序正常运行过程中,对快速动作做出反应,就必须使用单片机的中断功能,该功能就是在快速动作发生后,单片机中断正常运行的程序,处理快速发生的动作,处理完成后,在返回执行正常的程序。中断功能使用中的困难是需要精确地知道什么时候不允许中断发生(屏蔽中断)、什么时候允许中断发生(开中断),需要设置哪些寄存器才能使某种中断起作用,中断开始时,程序应该干什么,中断完成后,程序应该干什么等等。中断学会后,就可以编制更复杂结构的程序,这样的程序可以干着一件事,监视着一件事,一旦监视的事情发生,就中断正在干的事情,处理监视的事情,当然也可以监视多个事情,形象的比喻,中断功能使单片机具有吃着碗里的,看着锅里的功能。以上三步学会,就相当于降龙十八掌武功,会了三掌了,可以勉强护身。第四步:与pc机进行rs232通信单片机都有usart接口,特别是msp430系列中很多型号,都具有两个usart接口。usart接口不能直接与pc机的rs232接口连接,它们之间的逻辑电平不同,需要使用一个max3232芯片进行电平转换。usart接口的使用是非常重要的,通过该接口,可以使单片机与pc机之间交换信息,虽然rs232通信并不先进,但是对于接口的学习是非常重要的。正确使用usart接口,需要学习通信协议,pc机的rs232接口编程等等知识。试想,单片机实验板上的数据显示在pc机监视器上,而pc机的键盘信号可以在单片机实验板上得到显示,将是多么有意思的事情啊!第五步:学会a/d转换map430单片机带有多通道12位a/d转换器,通过这些a/d转换器可以使单片机操作模拟量,显示和检测电压、电流等信号。学习时注意模拟地与数字地、参考电压、采样时间,转换速率,转换误差等概念。使用a/d转换功能的简单的例子是设计一个电压表。第六步:学会pci、i2c接口和液晶显示器接口这些接口的使用可以使单片机更容易连接外部设备,在扩展单片机功能方面非常重要。第七步:学会比较、捕捉、pwm功能这些功能可以使单片机能够控制电机,检测转速信号,实现电机调速器等控制起功能。如果以上七步都学会,就可以设计一般的应用系统,相当于学会十招降龙十八掌,可以出手攻击了。第八步:学习usb接口、tcp/ip接口、各种工业总线的硬件与软件设计学习usb接口、tcp/ip接口、各种工业总线的硬件与软件设计是非常重要的,因为这是当前产品开发的发展方向。到此为止,相当于学会15招降龙十八掌,但还不到打遍天下无敌手的境界。即使如此,也算是单片机大虾了

文章TAG:iic的延时一般设为多少延时  一般  多少  
下一篇