系列文章目录
第三章 DW_i2c功能及使用流程介绍
文章目录
前言
按照i2c的协议,i2c的时钟由master方提供,master可以向slave发送数据,也可以向slave请求数据。对应的slave既可以接收来自master发送的数据,也可以响应master请求数据。关于i2c协议,后续我们会单独讲解里面的细节和注意事项,这里我们主要接收使用过程中的一些基本配置flow。
一、功能介绍
这里简单介绍一下i2c读写过程涉及到flow:
1.1 i2c写操作:

1.1.1 详细flow介绍
step1:首先master发起i2c start,即在sclk高电平拉低sda;
step2:发送slave设备地址,与之通信,这个设备地址按照协议可以是7bit,也可以是10bit,这里介绍最简单的7bit模式。
step3:紧接着发送一个bit的写控制位,表示当前传输为一笔写操作。
step4:然后后续跟着两个byte的数据,这两个byte数据一般用于软件解析命令用,通常情况下收发双方可以利用这两个byte自定义一些私有协议,比如最简单的就是两个纯粹的mem地址0x1000,表示master即将向0x1000地址写数据,因此后续master发送过来的Data,需要软件将其搬运到系统mem 0x1000地址去。当然也可以将这两个byte拆分成多个不同的命令,方便系统灵活运用。
step5:然后是发送过来的真正的payload数据
step6:当master完成数据写传输后,发送stop,即在scl的高电平拉高sda,结束当前传输。
1.2 i2c读操作:

1.2.1 详细flow介绍
step1:首先master发起i2c start,即在sclk高电平拉低sda;
step2:发送slave设备地址,与之通信,这个设备地址按照协议可以是7bit,也可以是10bit,这里介绍最简单的7bit模式。
step3:紧接着发送一个bit的写控制位,表示当前传输为一笔写操作。
step4:然后后续跟着两个byte的数据,这两个byte数据一般用于软件解析命令用,通常情况下收发双方可以利用这两个byte自定义一些私有协议,比如最简单的就是两个纯粹的mem地址0x1000,表示master即将向0x1000地址写数据,因此后续mast

本文详细介绍了DW_i2c的i2c写操作和读操作流程,包括初始化步骤、中断服务处理和主设备与从设备的数据交换,强调了实际应用中的配置和中断同步的重要性。

1348

被折叠的 条评论
为什么被折叠?



