问题标签 [i2c]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 使用 C 模块扩展 python
所以我有一个 C 程序来连接 i2c 设备。我需要从 python 连接到该设备。我只是想知道是否值得将程序移植到 python 模块中,或者移植所涉及的工作量是否不会超过仅使用子进程执行程序。我知道我确信每个应用程序都不同,但我想知道是否值得我花时间学习 python C 扩展和移植这个程序。
更新:我可以完全访问 C 和 python 的源代码。但是在 python 方面已经完成了大量的工作,如果这很重要,我想尽可能减少对它的更改。而且我还想尽量减少必须对 C 进行的更改。这是可行的,但我没有编写它,它涉及到很多我不想重做的地址。
c - 示例代码,关于 MCP23017(16 针 IO 扩展器,I2C)作为 7 段 LCD 驱动器的文档
Microchip 的 MCP23017 是一款基于 I2C 的 16 引脚 IO 扩展器。我已经能够设置设备一次(设置引脚方向和值),但之后我无法按预期更改值,除非我重置/重启设备。这是我用来初始化它并第一次设置引脚的代码:
在此之后,我希望能够切换输出值(0xFE <-> 0x01)。我尝试了这段代码:
此时似乎要出去吃午饭了,引脚的值似乎是随机的(输入与输出,输出高与低)。如果有人使用过这个 I2C IO 扩展器,请帮帮我。即使您不完全确定您也非常欢迎发表评论。注意:此处显示的 I2C API 是一个位爆炸算法,所有时钟周期都有一个近似值。它们之间的权重为 1ms。
有用的文件(种类):http ://ww1.microchip.com/downloads/en/DeviceDoc/21952b.pdf
linux-device-driver - 即时更改 linux 设备驱动程序的 I2C 地址
我有两个摄像头连接到我的 linux 系统。摄像机通过 I2C 控制。单个相机的设备驱动程序基于i2c-core
设备驱动程序。我想在两个相机之间切换。因此,我想即时更改 I2C 地址以控制一台或另一台相机。
这合理吗?如果是,是否有一个功能,它可以做到这一点,或者是否有必要分别用i2c_detach_client
and分离和附加客户端i2c_attach_client
?
感谢您的任何建议,斯特凡
i2c - Atmega64 引脚问题。SCL/SDA 和 TXD/RDX 一样吗?
无论如何,我都不是 Atmega 专业人士。事实上,从未与他们合作过。我正在尝试将使用 i2c 接口的外部 eeprom 添加到使用 Atmega64 控制器的设备中。从数据表中,我看到引脚 25 和 26 标记为 PD0/PD1,是 i2c 的 SCL/SDA。这很好,花花公子。所以然后我去董事会并开始追踪。我看到那些带有一些我还没有仔细研究过的简单电路的摇臂开关,但我认为它与 i2c 兼容。但是后来我突然意识到这个设备有两个这样的摇杆,所以我希望将另一个摇杆追溯到相同的两个引脚(因为 i2c 是一个可以有多个从站的总线)。相反,他们追溯到标记为 PD2/PD3 和 RXD1/TXD1 的两个相邻引脚 27 和 28。好吧,现在这让我很困惑。
我希望我可以在 SCL/SDA 线上并行添加内存,但是我现在认为我发现的任何一个都意味着:
- SCL/SDA 可与 RXD1/RXD2 互换或
- 我对 SCL/SDA 的工作原理感到困惑,它不是总线还是可以用作简单的输入?
可悲的是,我不确定我在问什么。有人可以对此有所了解吗?我是否仍然可以将内存添加到 SCL/SDA 或可能不可以?
谢谢。
史蒂夫
linux - 用于 Linux 设备驱动程序测试的工具或框架?
我想测试 Linux 以太网和 I2C 驱动程序的合规性。是否有任何开源工具或框架来测试这些驱动程序?
ipad - 通过 UART 进行 iPad 配件通信
我们为 iPad/iPhone 制造了一个新的配件,它应该将命令传输到 iPad。我们喜欢使用 UART(通过一种称为Lingo的 Apple 协议)。我的研究表明我只能使用 USB(30PIN 连接器)和自定义协议。
问题:
- APP端有什么方法可以使用UART连接iPad配件吗?
- 如果协议是在 UART 中实现的,我们应该能够将它移动到 USB,如果它不能通过 USB 对我的应用程序可用。
我的主要猜测是 UART 命令和访问是为 iPhone OS 保留的协议,对应用程序不可用。某些 UART 命令还包括音量和音频重新路由等设置,所以我想这是安全的。
linux - Arduino I²C 库 (Wire) 的 Linux 等价物?
我正在尝试将 Arduino 程序移植到 Linux。我被困住了,因为我似乎无法找到Arduino 在“Wire.h”中的I²C功能的等价物。
线头:线库
Linux i2C-dev.h:在 Linux 中使用来自用户空间的 I²C
具体来说,我看不出我该怎么做
Linux 似乎没有从 I²C 设备请求特定字节数的等价物。我想“i2c_smbus_read_byte”相当于接收,如果连续调用它会提升可用字节。
Linux 中的 I²C 选项:
android - Android 硬件开发套件?
我面临着为 Android(OS 2.3 和 2.4)编写驱动程序以通过 SPI 或 I2C 与传感器芯片接口的任务。
该设备最终将用于基于 Intel Medfield 或 Qualcomm 8 系列平台的 Android 智能手机。
我假设我不必担心自己实际编写 SPI 或 I2C 驱动程序,对吧?您知道我可以使用的任何当前适用于 Android 的 SPI 或 I2C 驱动程序吗?
我还需要找到一个允许我访问 SPI 或 I2C 总线的硬件开发套件。你有什么推荐的,我可以在哪里找到一个合适的套件,它代表了当前 Android 智能手机中常见的硬件?
c++ - 在 C++ 中使用 open 和 i2c
我已经意识到这一点open()
并且ioctl()
在 cpp 对象中不起作用。如果在我的main()
函数中调用它,我可以执行该操作,但在我的任何类中都不能。我有一个在我的主循环中运行的对象,它有另一个进行文件系统调用的对象。
所以基本上在主循环中它可以打开(我得到一个 3 的指针并且ioctl
是成功的)。但是,当我在对象中执行此操作时,它会为打开返回 0(这应该不是错误)并且 ioctl 失败。
我知道我不能使用ios::
iostream 选项,因为它们不适用于ioctl
. 如何使常规 ioctl 在 cpp 对象中工作?
c - 向 i2c 设备写入():不允许操作
所以我有 2 个 PCA9555(16 通道数字 I/O)芯片连接到通过 i2c 运行 Linux 的小型嵌入式设备。PCA9555 器件具有 7 位地址 0100000 和 0100001。
当我给电路板加电时,我运行:
于是我尝试编写一个简单的程序,将第一个 PCA9555 芯片上的所有引脚设置为输出高电平:
运行此返回:
所以我真的不明白我做错了什么。假设硬件连接正确,我从这里去哪里?