首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当一个I2C设备连接到Raspberry时,如果没有驱动程序,它会被检测到吗?

当一个I2C设备连接到Raspberry时,如果没有驱动程序,它会被检测到吗?
EN

Stack Overflow用户
提问于 2022-09-26 10:00:05
回答 1查看 123关注 0票数 0

即使没有设备驱动程序和与之相关的DTS文件,在raspberry pi中检测到I2C设备也会让我感到困惑。

当我们使用以下命令时,它会出现吗?

代码语言:javascript
复制
ls /dev/i2c-*

当我尝试用

代码语言:javascript
复制
 i2cdetect -y bus_number
EN

回答 1

Stack Overflow用户

发布于 2022-09-29 11:35:34

简言之:

..。当没有设备驱动程序和与其相关的DTS文件时。 当我们使用以下命令时,它会出现吗? ls /dev/i2c-*

不是的。此命令将列出可用的I2C总线,而不是设备。

当我尝试用 i2cdetect -y bus_number

也许吧。在大多数情况下是的。

再详细阐述一下:

取决于它是什么类型的I2C设备,以及您想使用它做什么,您可能仍然能够与它进行通信。

最佳驾驶箱

如果您有相关的设备树更改来描述这个I2C设备(在它所处的总线上,它的地址、额外的信号(如中断引脚等)和相关的驱动程序(内置或作为一个模块,在Linux内核源代码中检查*_defconfig选项)--驱动程序应该在引导或手动加载模块时探测设备。

为什么是最好的案子?如果您有一个驱动程序,则不必考虑协议和编程,例如,从ADC设备读取一个值可能非常简单:

代码语言:javascript
复制
root@pi:~# cat /sys/bus/iio/devices/iio:device0/in_voltage0_raw
291

i2ctools

另一种方法是从i2cget包中使用i2ctools /i2cset工具。不需要更改设备树。使用这些工具,您可以在设备树中的任何启用的I2C总线上与任何无人认领的I2C设备对话。

您需要自己实现与I2C设备的通信。从安全和稳定的角度来看-- IMO,这是最坏的情况,但对硬件调试和一些情况下的初始启动都有好处。

例如这里

关于i2cdetect的注意--这个命令试图检测特定总线上的设备,但是没有给出任何保证。根据man,i2cdetect

由于没有标准的I2C检测命令,i2cdetect使用任意SMBus命令(即SMBus快速写入和SMBus接收字节)探测设备。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73852492

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档