这几天解决 STM32 MCU的I2C 总线占用(bus BUSY) 问题,觉得是不错的学习,从文中可得知I2C问题的思考逻辑,文末并指出经常出错的问题点,在此分享给大家。问题描述STM32F207 MCU有三组I2C,I2C1~I2C3,此项目的初版硬件使用I2C1接三颗chip (DSP/Codec/EEPROM),运作良好。新硬件把Codec/EEPROM移到I2C3,DSP还是留在I2C1
转载
2024-05-16 10:59:50
522阅读
本文基于i2c总线,简述了设备树的使用方式
@目录博客说明开发环境1. 如何使用设备树1.1 u-boot支持设备树1.2 Linux内核支持设备树1.3 如何在开发板中使用设备树2. 设备树介绍2.1 设备树中的设备驱动节点2.2 设备树匹配流程2.2.1 以i2c匹配为例2.2.2 设备树匹配下的程序模板2.3 设备树中的设备节点转换附录参考资料博客
转载
2023-07-16 22:05:28
430阅读
写在开始,因工作需要,对I2C的spec文档进行研读,主要工作就是将规范翻译为中文并补充自己的理解,根据每个章节内容进行划分,便于以后查阅,如有错误和疑问欢迎指正交流。目录1.规范介绍:INTRODUCTION TO THE I2C-BUS SPECIFICATION2.基本概念:THE I2C-BUS CONCEPT3.一般特征:GENERAL CHARACTERISTICS4.位传输:BIT
转载
2023-10-17 18:03:59
256阅读
在最近的编程过程中,会经常使用I2C来读写数据,用示波器来查看I2C的波形,所以想总结一下I2C中关于ACK和NACK的几点东西。I2C简介I2C是由Philips公司发明的一种串行数据通信协议,仅使用两根信号线:SerialClock(简称SCL)和SerialData(简称SDA)。I2C是总线结构,1个Master,1个或多个Slave,各Slave设备以7位地址区分,地址后面再跟1位读写位
转载
2023-10-08 21:18:14
55阅读
# Android I2C通信中的ACK错误解决方法
## 1. 简介
在Android开发中,使用I2C(Inter-Integrated Circuit)进行设备通信是一种常见的方式。然而,有时候我们会遇到I2C通信时出现的ACK(Acknowledgment)错误。本文将介绍如何解决这个问题,帮助刚入行的开发者顺利实现Android I2C通信。
## 2. I2C通信流程
在开始解
原创
2024-01-26 12:30:01
438阅读
<Android开发> Android开发工具- 之-I2C TOOLS工具使用前言:在底层开发时,有时需要借助一些工具对驱动进行调试验证。这次讲解的使用的工具是I2C_TOOLS,该工具主要是用来调试验证I2C设备的。接下来看看如何使用吧。1、获取I2C工具 下载地址:I2C_TOOLS 可以根据自己的需要下载相应的版本,作者为了在android编译,编写的android.mk文件能使用,选择了
转载
2023-10-10 18:48:32
415阅读
# Android 新增 I2C 设备驱动的实现
在Android操作系统中,I2C (Inter-Integrated Circuit) 是一种广泛使用的串行总线协议,用于连接多个低速设备。在嵌入式系统和移动设备中,I2C常用于传感器、显示器等外部设备的通信。如果你希望在Android平台上实现一个I2C设备的驱动程序,以下将为你提供一个完整的步骤,包括示例代码,流程图和甘特图。
## 1.
一、I2C总线原理 I2C是一种常用的串行总线,由串行数据线SDA 和串行时钟线SCL组成。I2C是一种多主机控制总线,它和USB总线不同,USB是基于master-slave机制,任何设备的通信必须由主机发起才可以,而 I2C 是基于multi master机制,一条总线上可允许多个maste
转载
2023-10-31 19:32:08
76阅读
一、简介 两线式串行总线,用于连接微控制器及其外围设备。I2C总线产生于在80年代,最初为音频和视频设备开发,如今主要在服务器管理中使用,其中包括单个组件状态的通信。例如管理员可对各个组件进行查询,以管理系统的配置或掌握组件的功能状态,如电源和系统风扇。可随时监控内存、硬盘、网络、系统温度等多个参数,增加了系统的安全性,方便了管理。二、技术性能 工作速率有100Kbit/s、400Kbi
转载
2023-08-08 20:27:35
272阅读
这段时间公司里有个项目,用到了多块MCU,用I2C进行通讯。遇到了很多问题,在这里整理一下。主机I2C用的HAL库,比较简单。有一个要注意的点是,刚开始我用的Start-Write-Stop-Start-Read-Stop时序的方式读取指令,控制一个电源芯片,但是死活不成功,我是想这样的时序,我不需要用到HAL库中的中断方式,用轮询方式操作I2C就可以了,方便一点,并且大部分I2C从设备也都支持这
转载
2023-09-11 17:00:51
561阅读
# 在Android中增加I2C设备的科普文章
## 引言
I2C(Inter-Integrated Circuit)是一种广泛使用的串行通信协议,常被应用于微控制器和周边设备之间的通信。在Android平台上,我们也可以通过相应的接口实现对I2C设备的操作。本文将通过实例展示如何在Android中添加和使用I2C设备。
## I2C设备概述
I2C是一种多主多从的协议,允许多个设备通过两
# Android 检测 I2C 设备
在现代嵌入式系统中,I2C(Inter-Integrated Circuit,互连集成电路)是一种广泛应用的串行通信协议。这种协议使得多个设备可以通过两根线(数据线 SDA 和时钟线 SCL)进行通信。对于 Android 开发者来说,检测和与 I2C 设备的通信是一个常见的需求。本文将介绍如何在 Android 中检测 I2C 设备,并提供相应的代码示例
Linux I2C驱动体系结构主要由3部分组成,即I2C设备驱动,I2C核心层、I2C总线驱动。设备驱动层主要是针对不同的I2C硬件从设备编写的驱动程序,I2C总线驱动是对I2C硬件体系结构中适配器端的实现,适配器可以理解为软件上抽象出来的i2c接口,这个接口可以对应I2C总线控制器接口,也可以对应用用GPIO模拟的I2C控制器接口。I2C核心层是I2C总线驱动和I2C设备驱动的中
转载
2023-07-11 22:58:10
166阅读
I2CHelperI2CHelper是一个简单的I2C调试工具,它可以用来设置读取、设置相关的寄存器。功能和著名的i2c-tool类似。准备工作在这里主要介绍如何在android里面进行使用。首先,由于涉及到权限问题,我们需要通过adb进行root以及remount,如:adb root
adb remount接下来,就可以将I2CHelper push到/system/bin里面了:adb pu
转载
2024-01-12 08:05:14
259阅读
一、粉丝提问i2c的设备树和驱动是如何匹配以及何时调用probe的?粉丝手里的I2C外设是ov5640,一个摄像头。粉丝提问,一口君必须安排。二、问题分析设备树信息如下:ov5640: ov5640@3c {
compatible = "ovti,ov5640";
reg = <0x3c>;
pinctrl-names = "default";
pinctrl-0 =
转载
2024-07-07 12:23:36
236阅读
i2c设备驱动,在i2c子系统中的实现分为三部分,最上层是i2c驱动,中间层是i2c核心层,底层是i2c的总线,如果细分,底层i2c的总线还可以分离出i2c的适配器,所以也可以将i2c设备驱动的子系统分为四个部分,i2c驱动,i2c核心层,i2c的总线,i2c适配器。在i2c子系统中所有的i2c驱动都挂在i2c的总线上,实现i2c的驱动的时候,分为左右两个部分,左边链表挂i2c设备的客户端即实现了
转载
2023-12-30 20:01:07
518阅读
Linux I2C设备
Linux操作系统是一种开放源代码的操作系统,广泛应用于各种设备上。它的灵活性和可定制性使其成为了许多嵌入式系统和物联网设备的首选。在Linux系统中,I2C(Inter-Integrated Circuit)总线协议被广泛使用来连接各种外设和传感器。本文将介绍Linux中I2C设备的基本概念和常用操作。
I2C是一种串行通信协议,允许多个设备在同一条总线上进行通信。在
原创
2024-01-31 19:43:42
150阅读
目录1、现象2、原因3、解决方法4、相关博文1、现象 I2C死锁时表现为SCL为高,SDA一直为低。例如:1.1、正常情况该部分数据 &nbs
转载
2023-09-20 19:55:36
153阅读
# Android I2C设备控制指南
## 引言
在现代的嵌入式系统和移动设备中,I2C(Inter-Integrated Circuit)协议被普遍应用于不同的传感器和外设的通信。Android系统也支持通过其硬件抽象层 (HAL) 来操作I2C设备。本文将介绍如何在Android环境下控制I2C设备,并提供一个实际的示例。
## I2C基础知识
I2C是一种串行通信协议,能够通过两根
目录本文中使用582测试,在整合先前博客中的代码的基础上,加上读写超时,加上返回值,加上16位从机寄存器地址的判断,希望读写各用一个函数就能解决硬件IIC的使用问题。移植到CH585中的参考代码:链接: https://pan.baidu.com/s/1DB3_vfwUW70jkQ0wKqRj9A?pwd=wch6,EEPROM外设型号:24LC515CH585EVT:CH585EVT.ZIP -