首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >I2C总线在Linux上的实现(Raspberry Pi)

I2C总线在Linux上的实现(Raspberry Pi)
EN

Stack Overflow用户
提问于 2022-09-19 14:49:56
回答 1查看 84关注 0票数 0

最近,我用C语言编写了许多用于微流控泵的函数,这些泵是通过I2C在覆盆子Pi上控制的。它们工作得很完美。我使用O_RDWR来编写和读取"/dev/i2c-1“。

但是,我仍然想知道这些文件更改是如何在低级别上实现的。如何将生成与这些泵通信的正确位序列的代码传输到PIN?是什么告诉内核将2I2CPIN的状态相应地更改为代码呢?

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2022-09-19 19:02:11

在大多数情况下,软件并不直接负责生成每个单独的逻辑级别更改。相反,它是基于硬件的I2C控制器的组合,由驱动程序从软件管理。

在RPi的情况下,您很可能使用以下驱动程序:https://elixir.bootlin.com/linux/v5.19/source/drivers/i2c/busses/i2c-bcm2835.c

驱动程序控制的硬件块在本参考手册第3部分:https://www.raspberrypi.org/app/uploads/2012/02/BCM2835-ARM-Peripherals.pdf中进行了描述。

(附带说明:对于没有专用硬件可用的情况,内核也知道如何生成软件中的所有逻辑更改。如果您想了解更多这方面的信息,请查看i2c-gpio驱动程序)

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

https://stackoverflow.com/questions/73775330

复制
相关文章

相似问题

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