很多时候当我们使用Linux系统管理硬件的时候,更多的是通过芯片中的控制器,但有时候,我们也会遇到芯片中的控制不够用,或者在设计的过程中出现意外,如没有想到控制器存在,本文中的内容就是因为I2C中第四个控制器不存在,但硬件上却认为其存在,为了解决这个问题,发现了i2c-gpio设备驱动,以此类推的,其他的一些相对简单的控制器也会有这种IO设备驱动。
转载 2015-12-20 10:23:00
80阅读
2评论
Linux系统中,GPIO(General Purpose Input/Output)是一种用于管理硬件设备的接口。而I2C(Inter-Integrated Circuit)是一种用于连接多个设备的串行通信协议。在实际开发中,有时候我们需要使用GPIO来模拟I2C接口,以实现设备之间的通信。 为了在Linux系统中实现GPIO模拟I2C,我们首先需要了解GPIOI2C的基本原理。GPIO
原创 2024-05-15 11:31:19
286阅读
开发中经常与i2c打交道,芯片中自带的硬件i2c控制器使用起来并不是很灵活,而且要研究半天的寄存器。所以干脆搞一个软件模拟gpio的通用代码,移植起来也方便,使用灵活具体代码如下:#include <linux/module.h>#include <linux/config.h>#include <linux/errno.h>#include <linux/miscdevice.h>#include <linux/fcntl.h>#include <linux/init.h>#include <linux/delay
转载 2013-06-13 20:53:00
250阅读
前言: 在许多情况下,我们并没有足够的I2C总线,本文主在介绍如何利用Linux内核中的i2c-gpio模块,利用2GPIO线模拟i2c总线,并挂载设备。 思路: 先通过对i2c-gpio所定义的结构体初始化(包括初始化i2c2条线,频率,timeout等)并将i2c-gpio模块编译进内核,实现用GPIO_X,GPIO_Y 2条GP
转载 2010-11-15 15:51:48
3994阅读
1、先调试gpio,sda scl 看看是否能正常输出,然后在分别产生方波,看看波形对不对 2、模拟生成i2c 的 start stop 信号,用分析仪抓取,看看是否正常。 由于start产生的条件是: SCL为高电平时,SDA由高变低。 所以分析仪可以设置成sda 下降沿触发。 3、注意模拟函数写
转载 2021-03-01 14:51:00
334阅读
2评论
该程序可以作为gpio模拟i2c程序的参考。不同的平台,函数实现不同,但是i2c通信的时序和原理是相同的。希望对一些朋友有帮助。复制代码1#include<linux/init.h>2#include<linux/module.h>3#include<linux/kernel.h>4#include<linux/sched.h>5#include&l
转载 2018-04-13 10:03:49
6160阅读
* * * Description: * ------------ *   Use GPIO simulate I2C interface. * 
原创 2023-05-19 08:59:22
237阅读
描述 i2c-mux-gpio 是一个i2c mux驱动程序,提供从主i2c总线和通过GPIO管脚控制的硬件MUX访问i2c总线段。 例如: Bus segment 1 - - - - - | | SCL/SDA | | | | | | | | | | | | Bus segment 2 | | | ...
转载 2021-08-16 18:56:00
706阅读
2评论
前段时间做项目,需要gpio模拟i2c通信,最后参考了一些资料,然后编写了一个程序。现在发出来,以免以后忘记,也为一些需要的朋友提供参考。不喜勿喷哈。/* 说明:该程序是基于atmel公司的sama5d35 MCU 用其中两个GPIO引脚模拟i2c通信。 * 其中两个引脚连接到了hd1650上面。然后检测按键扫描的驱动 * */该程序可以作为gpio模拟i2c程序的参考。不同的平台,函数实现不同,
总线,总线,总要陷进里面。这世界上的信号都一样,但是总线却成千上万,让人头
原创 2022-11-17 00:56:35
297阅读
1点赞
I2C介绍UART、SPI、IIC 嵌入式开发中经典的通信协议IIC :飞利浦公司 通信方式:串行同步半双工 IIC 只有两根线 包括:SCLK(时钟线)和 SDA(数据线)1)请求应答协议:请求信号:时钟线高电平,数据线是下降沿结束信号:时钟线高电平,数据线上升沿 应答信号:在一次数据传输过程中,在第 9 个时钟周期下,数据线低电平 数据传输:时钟线高电平采样,低电平时数据改变2)支持多主多从-
原创 2024-06-14 16:20:03
179阅读
Linux系统中的I2C(Inter-Integrated Circuit)总线是一种用于连接微处理器和外部设备的串行通信协议。它被广泛应用于传感器、存储器、显示器、音频设备以及各种其他外部设备之间的通信。在Linux中,有一个称为红帽的发行版,它是一种流行的开源操作系统,广泛用于服务器和嵌入式系统。 在红帽Linux系统中,I2C总线是通过内核模块进行管理和控制的。I2C总线的驱动程序负责处理
原创 2024-03-06 14:12:49
54阅读
1.前言:linux I2C体系结构由三部分组成①I2C核心:提供I2C总线驱动和设
原创 2022-09-19 15:14:34
447阅读
GPIO 软件I2C 的实现
原创 2023-02-15 15:08:47
180阅读
这部分准备分几个部分进行分析总结因为I2C的通信肯定至少要有2个芯片完成,所以它的驱动是由2大部分组成:主芯片的i2c的驱动从芯片的i2c的驱动    注:万一选的都不支持咋办???(惨了,只能2个芯片的驱动都得实现了,不过过程差不多)(一).主芯片的I2C的驱动:(具体如何实现在后面在具体讲解) 首先要查看linux内核是否支持主芯片中i2c驱动
转载 2023-07-02 21:41:39
142阅读
树莓派编写GPIO驱动程序(详细教程)前言硬件准备软件准备前期知识总线地址物理地址虚拟地址地址映射ioremap 函数iounmap 函数LED驱动编写思路查看物理地址查询相关寄存器配置寄存器物理地址的映射编写LED驱动代码编写Makefile编写测试程序执行代码 前言刚买的树莓派到了,拿到后的第一件事当然是点灯啦!今天就使用树莓派2B通过编写驱动的形式点亮LED小灯,废话少说,直接开干!硬件准
1.Linux I2C驱动流程 ①提供I2C适配器的硬件驱动,探测、初始化I2C适配
原创 2022-09-14 10:52:44
247阅读
内核版本:3.10.1编写一个I2C设备驱动程序的工作可分为两部分,一是定义和注册I2C设备,即i2c_client;二是定义和注册I2C设备驱动,即i2c_driver。下面我们就以mini2440的I2C设备at24c08 EEPROM为例,介绍如何完成这两个工作。 一、定义和注册I2C设备步骤1:用i2c_board_info保存I2C设备相关信息在Linux中,struct i2
转载 2023-12-25 22:15:55
299阅读
1052的IO配置相对ST的芯片更加复杂,但也更加灵活FSL SDK的GPIO配置主要涉及两个库文件,fsl_iomux和fsl_gpioIOMUX文件主要是关于IO的上下拉,驱动力和速率的一些复用功能的设置GPIO就是配置IO的输入输出方向,和IO状态的读取基本的IO配置流程就是开启IO时钟(pin_mux.c文件下已经开启,如果没开需要加上CLOCK_EnableClock(kCLOCK_Io
转载 1月前
319阅读
00. 目录文章目录00. 目录01. IIC简介02. 功能描述03. 硬件模块04. 软件设计05. 结果验证06. 附
原创 2022-03-16 14:16:52
1557阅读
  • 1
  • 2
  • 3
  • 4
  • 5