问题标签 [smbus]

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.

0 投票
0 回答
132 浏览

smbus - python cmbus2 块读取从 EEPROM 上的第二个内存地址开始

我正在连接 24LC512 和 47C16 EEProm/EERam

我在两个芯片上都存储了从位置 0 开始的多个字节。

在 24LC512 上,我得到了这些结果 - 请注意,当我使用 bus.read_i2c_block_data 执行块读取时,它从第二个内存位置开始。当我将指针重置回 0 并使用 bus.read_byte 读取时,它会读取 0 处的位置并将指针正确地增加 1

我在 47C16 上得到相同的结果

看来我没有正确使用 read_i2c_block_data - 尽管这是我在文档中读到的。我究竟做错了什么 ??

感谢您提供的任何指示

0 投票
2 回答
3082 浏览

kernel-module - 英特尔 Z370 - PCIe 上的 SMBus

我这里有一张适合 PCIe 插槽的卡,上面有一些 SMBus 可控芯片。该卡是自行布局的,可以在一些较旧的主板上正常工作。在较新的主板(ASUS PRIME Z370-A)中,它无法正常工作。

该卡未使用 PCIe 接口,仅使用 PCIe 插槽。PRSNT1 和 2 之间没有连接,也没有连接到差分数据线。PCIe 插槽仅用于供电(引脚 A9、A19、B8 (+3.3V) - A4、A12、A15、A18、B4、B7、B13、B26、B18(GND))和 SMBus 接口(B5 (SMCLK ), B6 (SMDAT))。

不工作我的意思是我不能通过 SMBus 与它交谈。我正在尝试使用 i2c-dev 内核模块。i2cdetect -l 的输出是:(缩短,我去掉了nvidia卡的i2c devs)

在我看来,i2c-0 设备是正确的。当我在接口 0 上运行 i2cdetect 时,检测到了一些芯片,但没有检测到正确的芯片(它们有 addr 0x70 和 0x72)。总而言之,我试图通过 Intel 200 PCH 中的 SMBus 主控与我的 SMBus 从属芯片进行通信。

我也尝试了 1-4 号巴士,但结果相同。在另一块主板上,检测工作正常,如下所示。

此外,我用示波器测量了 PCIe 连接器的引脚 B5 和 B6。新主板上的这些引脚之一上没有时钟或数据信号。

我想我必须以某种方式配置它还尝试与 PCIe 插槽上的 SMBus 设备通信的内核模块。也许有人可以给我一个提示。

尽管没有出现关于内存区域重叠的警告,但我设置了内核选项 acpi_enforce_resources=lax 以确保没有 ACPI 内存绑定与 SMBus 控制器发生冲突。

一些输出

dmesg modprobe i2c-i801(内核模块的输出,抽象英特尔 SMBus 控制器)

i2cdetect 0(工作主板,i2c-0 上的 SMBus 控制器)

unname -a

0 投票
0 回答
198 浏览

python - smbus 处理 python 模式

您好,是否可以在处理 python 模式时使用smbus模块?当我尝试import smbus处理时,我会收到一条错误消息:

0 投票
1 回答
161 浏览

python - Python传递输入字符串,其中包含空格并用于smbus

我的 ic2 代码是。

它工作正常。

我测试了这段代码。

经过

但是当我尝试代码时。

python test.py 0x20 0x14 0x01

Traceback(最近一次调用最后一次):文件“test.py”,第 16 行,在 bus.write_byte_data(var1, var2, var3)类型错误
:需要整数

我该如何解决?

0 投票
0 回答
266 浏览

api - windows下pcie中的smbus访问

我正在寻找一种方法来控制我的 PC 的 PCIe 插槽中的 smbus 线。该插槽中有一些通过 PCIe 连接的设备。我想通过 Windows 下的 SMBus 线路访问它。但找不到任何 API 用于此。

你能建议我怎么做吗?

0 投票
0 回答
1325 浏览

python - IOError: [Errno 121] 远程 I/O 错误

我尝试连接液晶显示器并显示文本,但出现错误。LCD驱动没问题,smbus和I2C工具也安装正确。但我想知道为什么它不起作用。帮助。


0 投票
2 回答
10968 浏览

python - python 3.7 导入 smbus ModuleNotFoundError 没有名为“smbus”的模块

我在我的树莓派零上成功构建了 python 3.7。现在当我使用以下命令运行我的程序时:

python3 DungeonCube.py

我收到以下错误:

我已经搜索了解决方案,似乎没有人在树莓派上使用 python 3.7 走到这一步。其他指南说要重新安装 smbus 或安装 smbus2,但这不起作用。

dpkg-query -L python3-smbus 显示:

apt-cache show python3-smbus 显示:

任何想法如何让这个工作?

加里·O。

0 投票
4 回答
1669 浏览

python - 使用 Raspberry Pi Python SMBus 乱序接收的 I²C 字节

我正在设置一个 Raspberry Pi 来记录来自 Sensirion SCD30 传感器的数据(CO 2、湿度和温度)。我的代码在 Python 3 中,使用 SMBus 库通过 Raspberry Pi GPIO 中的 I²C 引脚与传感器进行通信。有一个命令可以确定传感器是否准备好发送数据。

链接到 SCD30 接口数据表

Sparkfun 链接到 Arduino 的 SCD30 库

该值0x0202通过 I²C 发送,并返回三个字节的数据:

前两个字节是数据就绪值的 MSB 和 LSB。结合得当,它们应该是0x00000x0001

第三个字节是前两个字节的 CRC8。这是用 的多项式0x31和 的初始化计算的0xFF

大约一半的时间,字节以错误的顺序发送。而不是MSB LSB CRC它被发送MSB CRC LSB。例如,如果数据准备就绪,它可能会发送0x00, 0xB0, 0x01而不是0x00, 0x01, 0xB0. 我无法弄清楚为什么会发生这种情况,并且我担心发送数据时存在一些损坏或问题。我可以更改代码以识别 CRC 是否是第二个字节,但我想找出根本问题。

我正在使用smbus库发送和接收 I²C 数据。这是我发送命令和读取数据的代码:

对于我上面给出的示例,我将运行以下代码:

它将返回上面演示的三个字节的列表。

0 投票
0 回答
79 浏览

hardware - AMD X470 SMBus 规范

为了将代码移植到 Linux 系统,我对 Windows SMBus 驱动程序进行了逆向工程。为了与 SMBus 交互,代码使用基于系统芯片组的硬编码端口地址。就我而言,我使用的是基地址为 0xB20 的 AMD X470。

每个 SMBus 事务都会通过调用以下函数来终止:

请注意,以上是伪代码,这个问题与语言无关。

我的代码有两个问题。

  1. 它正在测试状态寄存器的第 7 位0xB20文档状态位 5 : 7 被保留。我在阅读错误的文档吗?有人知道这个位是什么意思吗?
  2. 0xED该循环读取我找不到任何文档的硬编码端口。调用总是返回0xFF,但地址在我的系统上似乎无效。

关于问题 2,我在chromium-os 邮件列表中发现了一个对端口的模糊引用,它使用它来防止 IO 延迟写入端口 0x80。0xED 是任何类型的保留地址吗?

0 投票
1 回答
320 浏览

python - Python (Beaglebone Black) 上的 Writebyte 和 Readbyte esp QMC5883 出现 Errno 110

我找不到适合此 BBB Python 的代码,因为许多源代码会在 Raspberry Pi 和 Arduino 上表达更多。我正在使用 VMware 和 Ubuntu_18 来运行 linux 终端以运行我的 BBB。

这是我尝试在 QMC5883 磁力计上测试的几行代码,我正在尝试将 Arduino 转换为 Python 版本。

但是,错误一直出现如下,尤其是终端 BBB 上的 writebyte 和 readbyte

我要调用该函数的链接来自此 Adafruit_GPIO/I2C.py

即使使用 smbus 库,错误仍然相同

这里有人知道如何解决这个 Errno110 超时连接吗?我期待有人指导我,让 BBB Python 在 QMC5883 磁力计上运行。