与Linux中没有微控制器的I2C设备进行通讯

时间:2018-11-11 14:29:54

标签: c linux linux-kernel linux-device-driver i2c

如果我不想使用Raspberry或Arduino,如何访问I2C总线与设备进行通讯。我看到了很多树莓派的示例和Arduino的很多示例,但是它们都没有使用下面显示的代码。以下代码探查并使用"ldap://100.100.10.2:388/DC=macgroup,DC=local?sAMAccountName?sub?(&(ObjectClass=*)(memberOf=CN=OBIEE_Admin,OU=OBIEE,OU=Security,OU=Groups,OU=Global Resources,DC=MACGROUP,DC=LOCAL))" None 。该代码还使用struct i2c_driver在内核中初始化:

module_init

2 个答案:

答案 0 :(得分:0)

(显然)有一种使用python和串行端口(通过光隔离器)或并行端口形成I2C总线pyi2c

的方法。

我不知道图书馆是否可以工作-但是我认为它可以满足要求。 每个Linux主机至少都有一个串行端口。

如果只有USB端口,则有FTDI和Silicon Labs制作的USB-I2C / SPI / UART桥,这些桥在最新的内核中具有驱动程序支持。以后,您始终可以使用此策略添加I2C或SPI支持。

答案 1 :(得分:0)

您必须先注册I2C总线驱动程序才能与I2C客户端通信。

这不是总线(适配器)驱动程序,而是芯片(客户端)驱动程序。 注册时哪个会调用probe()函数,该函数检查是否存在I2C客户端。

此驱动程序中没有其他功能,例如向内核I2C层注册的回调,用于访问芯片上的硬件寄存器, 那么这个驱动程序的目的是什么?