I2C
文章平均质量分 64
I2C
四季帆
汽车电子、bsp
展开
-
MFI调试记录
分析I2C驱动框架可知,在设备树中不指定I2C别名的情况下,I2C控制器的注册ID(即I2C-12中的12)是从所有使能的I2C控制设备树节点中最大的ID为基准往后动态分配的,所以MFI芯片对应的I2C控制注册后的节点名不是固定的。如果所有设备树配置中只配置了一个I2C别名如上,那么其他未设置别名的I2C控制器注册以后就是I2C-8、I2C-9、I2C-10······依次按顺序命名。通过i2c tools去探测各个I2C总线上的设备发现,MFI芯片对应地址并非对应I2C-12;原创 2023-02-14 20:45:00 · 1068 阅读 · 0 评论 -
Linux i2c总线(1) - 概述
0. I2C子系统总体框架的原创 2021-07-03 11:51:08 · 687 阅读 · 2 评论 -
Linux i2c总线(2) - I2C核心层
1. I2C bus初始化static int __init i2c_init(void){ int retval; retval = bus_register(&i2c_bus_type); //注册i2c总线 /sys/bus/i2c retval = i2c_add_driver(&dummy_driver); //注册一个空设备驱动 /sys/bus/i2c/driver/dummy return 0;}postcore_initcall(i2c_in原创 2021-07-03 16:11:20 · 640 阅读 · 2 评论 -
i2c-tools移植
1. 背景在嵌入式设备中,绝大部分传感器芯片都是挂在 i2c 上,通过 i2c 和 SOC 进行通信和控制,譬如adv7180、max9288等摄像头处理芯片,那么在调试这些芯片的驱动时,经常需要读写该芯片的各个寄存器的值,如果通过打印的方式将非常麻烦(需要不停的加打印和编译kernel),其实Linux kernel官网有提供一个 i2c 读写的应用程序工具,今天就来移植一下子!其实小编一开始也不知道还有这么一个现成的 i2c 工具,小编也是自己通过在驱动代码中添加 IOCTL 命令码,对 i2c原创 2021-05-13 15:11:09 · 551 阅读 · 0 评论 -
i2c协议
1. 定义I2C是一个能够支持多个设备的总线,包含一条双向串行数据线SDA,一条串行时钟线SCL。每个连接到总线的设备都有一个独立的地址,主机可以通过该地址来访问不同设备。主机通过SDA线发送设备地址(SLAVE_ADDRESS)查找从机,SLAVE_ADDRESS可以是7位或10位,紧跟着SLAVE_ADDRESS的一个数据位用来表示数据传输方向,即第8位或11位。为0时表示写数据,为1时表示读数据。2.起始条件S和停止条件P起始条件S:当SCL高电平时...原创 2021-09-01 10:15:15 · 242 阅读 · 0 评论