I2C工作流程

news/2024/12/29 13:15:27/

FM33A0XX的I2C接口只用作主机,且不支持多主机,因此挂在总线上的其他设备都是从机。总线上总是由主机提供同步时钟SCL,SDA数据流方向可以是主机发送从机接收,或者从机发送主机接收。

数据发送流程
在这里插入图片描述
1、主机发起 START 时序
2、主机发送从机地址,从机地址包含 7 位从机地址和 1 位 R/W 标志位,发送数据时 R/W 位为 0 。
3、主机发送第一帧 8 位数据。
4、主机在每次发送完 8 位数据后,会在第 9 个 clock 判断是否检测到有效的 ack ,如果 主机检测到
ack 成功后,会继续输出下一组 8 位的数据。
5、若从机无法响应 ack ,主机检测到 ack 失败后应发送 STOP 时序终止发送。
注:从机地址包含7 位从机地址和 1 位 R/W 标志位 。

数据接收流程
在这里插入图片描述
1、 主机发起START 时序
2、 主机发送从机地址,从机地址包含7 位从机地址和1 位R/W 标志位,数据读取时R/W 位为1。
3、 此时设置SSPCON.RCEN 为1,主机自动转为接受状态
4、 主机开始接收第一帧8 位数据,并在第9 个clock 向从机发送有效ack,从而继续读取下一帧8
位数据。
5、 主机读取结束后,发送STOP 时序终止读取。


http://www.ppmy.cn/news/61346.html

相关文章

第4章-虚拟机栈(多使用到jclasslib工具查看字节码)

虚拟机栈 简介 虚拟机栈的出现背景 由于跨平台性的设计,Java的指令都是根据栈来设计的。不同平台CPU架构不同,所以不能设计为基于寄存器的【如果设计成基于寄存器的,耦合度高,性能会有所提升,因为可以对具体的CPU架…

docker镜像制作

文章目录 制作Dockerfile文件常用的指令前期准备工作开始制作镜像执行docker命令生成镜像根据创建的镜像生成容器访问项目 制作Dockerfile文件常用的指令 FROM:指定构建使用的基础镜像,FROM命令必须写在其他的指令前MAINTAINER:用于为Docker…

设计模式——工厂模式(简单工厂、工厂方法、抽象工厂)

是什么? 工厂模式的目的是将创建对象的具体过程隐藏起来,从而达到更高的灵活性 工厂模式分为:简单工厂模式、工厂方法模式、抽象工厂模式; 为什么? 在Java中,万物皆是对象,我们在使用的时候…

Flask的CBV写法与源码分析

CBV 写法 from flask import Flask from flask.views import MethodViewapp Flask(__name__)class Index(MethodView):def get(self):return getdef post(self):return postapp.add_url_rule(/index,view_funcIndex.as_view(nameindex))if __name__ __main__:app.run()注意&…

libfacedetection 人脸检测库 检测速度慢的问题

目录 一、libfacedetection 性能介绍 英特尔CPU 使用AVX2指令集 使用AVX512指令集 嵌入式设备 二、加速检测速度 libfacedetetion的前向推理速度很快的原因 使用axv2加速指令 一、libfacedetection 性能介绍 在上一篇文章中,我发现使用摄像头检测,构…

华为EC6108V9E/EC6108V9I_rk3228_安卓4.4.4_通刷_卡刷固件包

华为EC6108V9E/EC6108V9I_rk3228_安卓4.4.4_通刷_卡刷固件包-内有教程 特点: 1、适用于对应型号的电视盒子刷机; 2、开放原厂固件屏蔽的市场安装和u盘安装apk; 3、修改dns,三网通用; 4、大量精简内置的…

Kettle安装与使用

一、Kettle简介 Kettle最早是一个开源的ETL(Extract-Transform-Load的缩写)工具,全称为KDE Extraction, Transportation, Transformation and Loading Environment。后来Kettle重命名为Pentaho Data Integration 。它由Java开发,…

基于改进的离散PSO算法的FJSP的研究(Python代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…