2021-1128 01:05:13

如何更好地去掌握I2C通信?

返回

来源:环球体育app


  很多朋友在进行IIC通信协议开发的时候比较迷茫,可能长时间没有用了,就有所忘却,也算正常,不过如果重新围着通信时序图看来看去,那还是比较麻烦的,比如IIC的起始电平条件、停止电平条件、以及数据保持即更新条件等等:

  虽然每个器件对IIC通信的波形要求不是太相同,但IIC的通信时序容忍度非常高,基本上相关参数和驱动都是通用的。 IIC数据的传输过程,在SCL通信同步时钟节拍的控制下,主机发送数据主动使得总线电平发生变化,供从机检测接收,而当从机接收到数据以后接着主动的拉低SDA来作为应答信号通知主机,如果没有拉低则表示非应答。

  之前很多朋友都不太理解IIC的主机是怎么检测到从机应答的,似乎从SDA线上的波形看都好像是主机发送出来的,所以在进行通信波形解析的时候注意一下。

  对于通信的应用,重要的并不是所谓的电平变化,而更多的是要了解如何传递数据帧,掌握好数据帧的传递过程和方式。

  而不同厂商的数据帧稍微有所差异,比如7位地址、8位地址和10位地址,但总体上大同小异,大家可以参考对应的芯片手册进行学习,这里以最常用的7地址位跟大家介绍:

  读数据的过程主机发送的读写标志位发生变化,在数据部分从机主动控制总线发送数据给主机,然后主机来进行应答,刚好与IIC写数据相反。

  在通信过程中需要进行读写切换时不需要发送停止,而是应答以后重新发一次起始和从机地址及读写状态,接着进行下面的数据处理即可。

  最后再啰嗦一下 : 对于IIC总线不要忘记通信IO上拉,同时注意电平上的匹配,不然可能会损坏芯片~

  文章出处:【微信号:zhuyandz,微信公众号:FPGA之家】欢迎添加关注!文章转载请注明出处。

  STM32F767+STM32CubeMX I2C通信读写EEPROM数据(采用轮询、DMA、中断三种方式)精选资料推荐

  STM32F767+STM32CubeMX I2C通信读写EEPROM数据(采用轮询、DMA、中断三种方式)摘要-前言作为一名STM32...

  本文讨论了使用I2C缓冲区的用例,好处和应用。 在用于嵌入式设备的所有串行接口中,I 2 C是我个人最喜欢的。尽管I2 C的吞...

  MS5805是一款由TE推出的可以测量周围环境的温度以及压力的高精度传感器方案,室温下,温度误差为+/-1℃,内部具有24bit ...

  常用的串行总线协议: 常用的微机与外设之间进行数据传输的串行总线C总线、SPI总线和SCI总线C总...

  I2C每一位信号的时序流程,而I2C通信在字节级的传输中,也有固定的时序要求。I2C通信的起始信号(....

  I2C总线仅需采用两根通信线(一根为串行数据线“SDA”,一根为串行时钟线“SCL”),而传输速率在....

  你将如何扩大EZ-BLE模块上的CasSink引脚数量。是使用C28C20XX6A家族的CasSeq IC与I2C通信的解决方案吗?...

  该试验功能是单片机复位一次,自动从24C02中读取数据到数码管显示,然后对值加1再写入24C02,最....

  描述 此设计是原始 TIDM-2PHASE-SUBMTR 的固件升级。此升级为原始固件增加了诸多功能和灵活性,包括:I2C 通...

  [table] [tr][td] uchar SDA_Return(void)//0-low level1-hign level { ...

  第一发帖,请多关照。 下图是在MPLAB里仿真实验,始终无法发送S信号,WHY?求高手指教,不胜感激 ...

  `我把原来开发板上的陀螺仪换成了触摸板。 继续用原来的代码(地址改了,其他不变)就出问题了,scl,sda两条线就变成了低电平。...

  经典英文版Interfacing an EEPROM via I2C Using the MSP430

  本文提出了基于I2C总线的多机通信接口设计方法。测试结果验证了该系统的可行性及可靠性,具有一定的借鉴....


TAG标签耗时:0.0024280548095703 秒