s5pv210 I2C通信详解

发布者:快乐飞跃最新更新时间:2024-12-16 来源: cnblogs关键字:s5pv210  I2C通信  通信速度 手机看文章 扫描二维码
随时随地手机看文章

1:I2C通信原理

I2C通信接线只有两根,SDA、SCL。

SDA用来传输地址、命令、数据。SCL用来提供时钟。

在I2C通信线上可以接多个slave device(从设备)。

I2C通信特点

(1)每次通信都是由主设备发起,每个slave device都有固定一个通信地址,开始通信以后,主设备首先会发送7bit位的slave device地址,和1bit位的rean或者write命令,所以理论上最多可以有27个salve device。

(2)可以一对多通信,并且通信是同步的(syce),因为时钟是同一根时钟线来提供的,对比一下UART通信:UART Tx/Rx/GND 三根线(其他为流忽略),没有同一的时钟,所以通信双方要约定好相同的波特率、起始、结束、校验、几字节数据位这样才能接受到正确的数据。

(3)通信速度比较慢,从设备的时钟是由主设备提供的,即通过SCL时钟线来提供,SCL是由PCLC_PSYS(133/2)时钟频率在经2次分频得到的,正常可用SCL时钟一般为31KHz。

 

I2C是如何通信的?

s5pv210是发送或接受数据是如何区分多个子设备?可以看下图:开始通信以后,主设备首先会发送7bit位的slave device地址,和1bit位的rean或者write命令,

(1)如果为write命令,则主设备free SDA通信线(If the I2C-bus is free, both SDA and SCL lines should be both at High level.三星user manual),即SDA为高位。然后从设备先ACK主设备(拉低SDA)表示收到命令(S)。然后主设备在发送8bit数据,从设备在ACK(A)。然然后结束(P)。

(2)如果为read命令,则从设备先ACK主设备(拉低SDA),然后发送8bit数据,主设备ACK从设备(拉低SDA),从设备在发送,直到主设备停止接收。

如下图所以,白色bit位为主设备发送,灰色bit位为从设备发送。

 

 I2C时序:如果I2C bus 接口不工作的时候,通常处于Slave模式,意思就是接口在开始通信之前必须要处于Slave模式。

开始通信的条件是:

(1)SDA线由高位拉到低位,此时I2C bus接口还处于slave状态,SCL一直为高位。

(2)设置I2C bus接口为master mode,此时产生SCL时钟信号,SDA可以传输数据、命令。

(三星数据手册:If the I2C-bus interface is inactive, it is usually in Slave mode. In other words, the interface should be in Slave mode before detecting a

Start condition on the SDA line (a Start condition is initiated with a High-to-Low transition of the SDA line while the clock signal of SCL is High).

 If the interface state is changed to Master mode, SDA line initiates data transfer and generates SCL signal.

结束通信条件:

(1)I2C bus 接口为master mode,是SCL一直产生高电平

(2)SDA由低突然拉高,即结束通信;

(三星数据手册A Stop condition is a Low-to-High transition of the SDA line while SCL is High. The master generates Start and Stop conditions.

The I2C-bus gets busy if a Start condition is generated. On the other hand, a Stop condition frees the I2C-bus.)

循环通信:重复以上步骤;

(The master transmits Stop condition to complete the transfer operation. If the master wants to continue the data transmission to the bus, it should generate

another Start condition as well as a slave address.)

具体可以看下面这个图:

当I2C bus interface(应该可以通过某寄存器的某个bit位来设置)为slave模式时,SCL一直是高电平,此时拉低SDA表示开始通信,SCL产生时钟信号,结束的时候,为Master模式拉高SDA,表示通信结束。

 

看通信时序图

SCL为高位的时候,SDA发送或者接收数据,SCL为低位的时候,SDA要在这段时间把电平拉低或者拉高(这个过程需要一定时间)1-8 SCL时钟周期SDA通信线发送slave device的地址以及read或者write命令总共8bit位。在第9个时钟周期slave device要ACK(即拉低SDA),如果发送的位read命令则,ACK之后的8个时钟周期由Slave device发送8bit数据,下一个时钟周期主设备发送ACK(表示收到),之后结束(接口为slave模式,SDA由低拉高)

 


关键字:s5pv210  I2C通信  通信速度 引用地址:s5pv210 I2C通信详解

上一篇:[smart210] firstled.s 代码分析及编译分析
下一篇:用 S5PV210 学习 Linux (一) 刷机(一)

推荐阅读最新更新时间:2026-03-20 11:39

迅为imx6ull开发板Linux I2C驱动实验-应用程序与I2C通信
本章内容对应视频讲解链接(在线观看): 程序源码在网盘资料“imx6ull 驱动程序配套资料21-Linux I2C 驱动实验”路径下。 我们可以先来体验一下,在 Linux 上操作 I2C 是多么的容易,我们可以先来看一下系统里面都有哪些 I2C的节点,这里以终结者 imx6ull 开发板为例。如下图所示: Linux 有一个非常重要的概念叫一切皆文件,那么我们能不能在应用层通过 open 这些节点来操作 I2C 来跟外设 I2C 通信的芯片进行一个数据交流呢?当然是可以的,我们来一起看一下,这里我们以 7 寸 RGB 屏幕上的触摸芯片 FT5X06 为例,迅为所有开发板都是支持迅为 7 寸 RGB 屏幕屏的,所有都是可以进
[单片机]
迅为imx6ull开发板Linux <font color='red'>I2C</font>驱动实验-应用程序与<font color='red'>I2C</font><font color='red'>通信</font>
提供多主机功能,STM32的I2C通信简析
I2C总线是由NXP(原PHILIPS)公司设计,有十分简洁的物理层定义,其特性如下: • 只要求两条总线线路:一条串行数据线SDA,一条串行时钟线SCL; • 每个连接到总线的器件都可以通过唯一的地址和一直存在的简单的主机/从机关系软件设定地址,主机可以作为主机发送器或主机接收器; • 它是一个真正的多主机总线,如果两个或更多主机同时初始化,数据传输可以通过冲突检测和仲裁防止数据被破坏; • 串行的8 位双向数据传输位速率在标准模式下可达100kbit/s,快速模式下可达400kbit/s,高速模式下可达3.4Mbit/s; • 连接到相同总线的IC 数量只受到总线的最大电容400pF 限制。 其典型的接口连线如下: I
[单片机]
提供多主机功能,STM32的<font color='red'>I2C</font><font color='red'>通信</font>简析
你还在用光标测量I2C通信时序吗?
由于I²C信号质量容易受寄生电容影响,时序一致性测试对保障通信稳定至关重要。本文将通过实例应用教您一秒钟完成时序测试,快速分析I²C信号脉宽、幅值、边沿、建立时间、保持时间等多种组合参数。 I²C总线介绍 I²C总线是Philips公司推出的一种串行总线,是具备多主机系统所需的包括总线裁决和高低速器件同步功能的高性能串行总线。I²C总线用于连接微控制器及其外围设备。 物理结构上,I²C总线只有两根双向信号线,一根是数据线SDA,另一根是时钟线SCL。 ● SCL(串行时钟线):上升沿将数据输入到每个EEPROM器件中;下降沿驱动EEPROM器件输出数据。 ● SDA(串行数据线):双向数据线,为OD门,与其它任意数量的OD
[测试测量]
你还在用光标测量<font color='red'>I2C</font><font color='red'>通信</font>时序吗?
stm32的模拟/硬件的spi和i2c通信及其应用
本章节主要讲解:模拟spi、硬件spi、两种方法驱动6针oled、模拟i2c、硬件i2c、硬件i2c驱动mpu6050 一、硬件spi 1、首先是基础知识,这里参考正点原子的资料:s 2、接下来讲一讲硬件spi及cubemx配置方法: 这里在cubemx配置,Mode部分配置是全双工还是半双工还是单线通信,是主机模式还是从机模式,如果是单线,那么是只接受还是只接受 Hardware NSS Signal配置NSS信号由硬件(NSS管脚)还是软件(使用SSI位)管理:内部NSS信号有SSI位控制 最下面配置一些参数,包括但不限于数据大小,第一位是MSB位还是LSB位,串行同步时钟的空
[单片机]
stm32的模拟/硬件的spi和<font color='red'>i2c</font><font color='red'>通信</font>及其应用
STM32F2系列驱动开发——模拟I2C通信
简介:一、概述 通过STM32的PC14和PC15管脚来模拟I2C通信,读写I2C接口的器件内部寄存器...... 一、概述 通过STM32的PC14和PC15管脚来模拟I2C通信,读写I2C接口的器件内部寄存器,具体定义如下: #define PIN_SCL GPIO_Pin_14 #define PIN_SDA GPIO_Pin_15 延时函数为μs延时,例如Delay(4)表示延时4μs。 二、Static型函数定义 static __inline void TWI_SCL_0(void) { GPIOC- BSRRH = PIN_SCL; } static __inline void
[单片机]
PIC单片机之I2C通信(主模式)
我们今天来讲I2C通信。那I2C通信的特点是什么能。我们一般使用的串口 (半双工异步串行通信)与I2C 有什么区别呢。 串口(半双工异步串行通信):就是好像朋友在对话。我可以主动和你讲话,你也可以主动和我讲话。 I2C:就好像上下级对话。一个领导面对一个或者多个员工。只有领导主动说话的份儿,下面的员工不能主动说话。只有领导问了,员工才能答。 I2C通信 I2C通信只需要两个引脚 一个数据线,一个时钟线。 数据线顾名思义就是用来传递数据的。时钟线是来决定数据传输的速度。当时钟线为高电平时,数据线上的数据才会被认为是有效的。 数据线的 数据有四种状态 : 高电平,低电平,下降沿(高电平变低电
[单片机]
PIC单片机之<font color='red'>I2C</font><font color='red'>通信</font>(主模式)
如何使用示波器解决I2C通信开发中遇到的问题
I2C总线是PHLIPS公司上世纪80年代推出的一种两线式串行总线,最初为音频、视频设备所开发,如今则多在各种嵌入式系统中用于连接微控制器及其外围设备。 I2C总线仅需采用两根通信线(一根为串行数据线“SDA”,一根为串行时钟线“SCL”),而传输速率在高速模式下可达3.4Mbit/s,并且是多主总线。每一个挂接在I2C总线上的I2C器件均可通过唯一的地址进行访问。 在嵌入式系统开发中应用I2C总线可有效缩减元器件面积、改善抗干扰能力及增强设计的兼容性。当然,在享受其设计便利性的同时,信号的复杂性也将提高系统调试的难度。 本文阐述了在实际开发中所遇到的I2C通信问题及使用示波器分析问题和解决问题的方法。 分析过程中采用
[测试测量]
如何使用示波器解决<font color='red'>I2C</font><font color='red'>通信</font>开发中遇到的问题
STM32-(20):I2C通信(实验:读写EEPROM)
硬件电路连接 底板上的 I2C 接口 A0、A1是用来确定器件的地址的。 排针上的引脚图: 核心板上的引脚图: 通过I2C总线实现对EEPROM的读写操作的准备工作: 1、掌握芯片(目标对象)特性,才能对其正确的读和写。 2、掌握 I2C 通信,读写过程需要用到。 3、Cortex的一些操作,编程方法。 实验内容:通过I2C总线实现对EEPROM的读写操作 main.c #include stm32f10x_lib.h #include IIC.h /*------------函数的声明---------------*/ void Delay_MS(u16 dly); void RCC_Configu
[单片机]
STM32-(20):<font color='red'>I2C</font><font color='red'>通信</font>(实验:读写EEPROM)
小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved