SOC系统经典IP介绍以及使用方法说明之dw_i2c

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

系列文章目录


第三章 DW_i2c功能及使用流程介绍


文章目录

前言

一、功能介绍

1.1 i2c写操作:

1.1.1 详细flow介绍

1.2 i2c读操作:

1.2.1 详细flow介绍

二、软件流程介绍

2.1 定义WDT中断服务子程序

2.2 定义main函数

三、总结



前言

     按照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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

love混世_魔王

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值