iic通信时序
答:先从硬件端看看,如果可以的话,把波形拉出来测测看,是不是有干扰等问题 如果硬件端没有问题的话,再看看你的程序上是不是有不对的地方
答:1ns的延时都会导致误判?你这个逻辑也太精准了吧。要解决这个问题,最简单的方式就是加延时后再判断,或者增加冗余判断即可。
答:个人认为,模拟IIC只是写时序控制I/O口不需要波特率设置,硬件IIC没用过不知道。
答:他由3根线组成分别叫SDA,SCL,GND,SDA为数据线,SCL为时钟线,GND为参考电平,就是0电平 通信原理是通过对SCL和SDA线高低电平时序的控制,来产生I2C总线协议所需要的信号进行数据的传递。在总线空闲状态时,这两根线一般被上面所接的上拉电阻拉高,保持着高电平 I2C总线上的每一个设备都可以作为主...
答:只有STM32F103 C8051F 等档次较高的单片机才有IIC总线接口.大多数单片机都没有IIC总线接口,用普通IO口模拟程序也不复杂,传输速度也不低,所以一般都用模拟IIC时序
答:带代表什么意思 那是不是不同电压的 读写周期 ...I2C的时序是比较复杂的...SCL为高时,SDA无法改变状态),保持一段时间然后拉低(同你图中的TDH,...
答:应该是存储深度设置太小了。可以调大存储深度。有些逻辑分析仪还支持压缩存储,勾选了压缩存储可以存很多帧
答:只要IIC接口芯片未损坏,则主要问题就是SDA、SCL的时序问题。以AT89C51+24C04驱动数码管为例:(图片传不上)include <reg51.h> include <intrins.h> define uchar unsigned char define uint unsigned int define NOP4() {_nop_();_nop_();_nop_();_nop_();} sbit SCL = P1^0; //...
答:你去看一下IIC的协议。发送8个地址位或者数据位后,会由从机返回一个信号 在协议中成为ACK。ACK=0时,表明主机和从机通信正常,ACK=1时,即NACK 表示从机无应答。硬件连线错误或者时序错误,也有可能是地址错误。看示波器就能明显看出来,在2个字节数据之间还间隔了1位。这就是ACK 我们就是通过判断...
答:page write是页写的意思,一页的大小根据芯片的不同而异;普通写时序中,写完一页后,要重新发写信号才能对指定地址数据进行写操作。如果写完之后,要进行读操作,也要重新发读信号。
网友评论:
海舒17174222057:
I2C通信的内容 -
43590侯鱼
: I2C的时序是比较复杂的,你如果能把I2C的时序弄清,那其他器件的时序都不成问题了.我就按照我的理解来跟你讲吧.直接用程序来说明吧.NOP(),一个机器周期时间的延迟,12M晶振时为1微秒 NOPS(),4个NOP().sbit SDA P2^0; sbit ...
海舒17174222057:
用GPIO模拟IIC总线,主要是通过什么实现时序? -
43590侯鱼
: IIC总线只有两条线(SCL和SDA),IIC协议其实就是这两条线上的数据传输的时序规定. 主控制芯片通过向IO口(已经与从芯片的IIC端口SCL和SDA连接)按从芯片提供的IIC协议有序并配合地输出高低电平,从而模拟出能实现IIC通信的时序.
海舒17174222057:
一个IIC协议的小问题~~求前辈点拨 -
43590侯鱼
: 建议详细了解IIC的协议,按照协议规定,总线空闲时两线为高,当进行通信时,SDA在SCL高电平时由高变低表示通信开始( void iic_start(void) ),以后传输数据,SDA只能在SCL为低的时候才能发生变化,在SCL上升抓取数据;而停止位是在SCL高时SDA由低变高 (void iic_stop(void) ). 其实只要满足了协议要求最终两线处于什么状态也许都是可以的,或者你也可以试下在某些地方将SCL最终由低又拉为高是否能正常,当然首要还是在符合协议规定的前提下.
海舒17174222057:
单片机 iic 应答信号程序中有一句 while((sda==1)&&(i<250))i++ 我想知道 为什么i<250,250这个数字从哪 -
43590侯鱼
: 首先这段程序是一个等待ACK的程序 先看一下IIC规范是怎么说的:IIC总线上的所有数据都是以8位字节传送的,发送端每发送一个字节,就在第9个时钟脉冲期间释放数据线,由接收端反馈一个应答信号.对于有效应答信号ACK的要求是,接收方在第9个时钟脉冲之前的低电平期间将SDA线拉低,并且确保在该时钟的高电平期间为稳定的低电平.好了,现在针对你的程序进行解读:注意这句“接收方在第9个时钟脉冲之前的低电平期间将SDA线拉低,并且确保在该时钟的高电平期间为稳定的低电平”,程序中首先设置了SCL=1,然后开始等待,如果sda一直为1且i 只是我觉得你是初学者吧,说太简略了你肯定不懂,我当初也是这样的,好好用功吧.
海舒17174222057:
请教51模拟iic通信中的问题 -
43590侯鱼
: IIC总线的时序,好像是:最高频率在400KHz.单片机指令的执行时间,速度快,所以要加延时.停止函数,是在SCL=1期间,SDA出现上升,那么SDA先要为0,这个0,要在SCL=0实现.
海舒17174222057:
三种通信模式SPI、UART、I2C它们的工作原理 -
43590侯鱼
: 这三种通信模式都是串行总线.SPI总线 MOTOROLA公司的SPI总线的基本信号线为3根传输线,即SI、SO、SCK.传输的速率由时钟信号SCK决定,SI为数据输入、SO为数据输出.采用SPI总线的系统如图8-27所示,它包含了一个主片和多...
海舒17174222057:
用单片机模拟IIC时序,起始信号和应答信号是一样的啊? -
43590侯鱼
: IIC的地址你可以自己定义的在硬件上提供过IIC地址的你可以直接选择他的地址进行发送像你这种情况的话可以自己定义地址:假设你有两台或者以上的S3C2410,单片机作为主机,然后单片机发送数据,所有S3C接收(接收的前提是他的接收...
海舒17174222057:
是不是所有的IIC时序程序对所有的IIC器件都通用啊? -
43590侯鱼
: 不是,我就试过同样的程序,给ADV7390就没反映,给AT24C1024B,RTC8564都有ACK回应.每种芯片对时序严格度要求不是完全一样,但大体上说,除非某些时序要求非常严格的芯片,其余大部分芯片都是通用的,因为时序要求几ns的延时一般我们都会给us级,所以不存在这种问题.
海舒17174222057:
iic的硬件结构 -
43590侯鱼
: I2C串行总线一般有两根信号线,一根是双向的数据线SDA,另一根是时钟线SCL.所有接到I2C总线设备上的串行数据SDA都接到总线的SDA上,各设备的时钟线SCL接到总线的SCL上.为了避免总线信号的混乱,要求各设备连接到总线的输...
海舒17174222057:
关于温湿度控制电路 -
43590侯鱼
: 您这个必须用单片机做,普通的模拟电路或单纯的数字电路做不了.SHT71它输出的是数字量,是一串高低电平,走的是IIC时序,这个时序只有单片机或是更高级的处理器才能识别的.至于用什么型号的单片机,这个可选性比较多,89C2051...