问题标签 [spidev]

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 回答
102 浏览

python-3.x - 用于spidev的构建轮子失败

按照文档,我正在安装 spidev

在 MacOS 11.4 上的 Python 3.7.3 中并出现以下错误:

我需要先安装 Python 外部的依赖项吗?

0 投票
1 回答
41 浏览

python - 解码来自 ATM90E32AS 电能表 IC 的接收数据

我编写了一个 python 代码(树莓派)来接收来自 ATM90E32AS 电能表 IC 的电压、电流和功率值。我正在使用 spidev 库与电表 IC 进行 SPI 通信。我初始化了两个字节数组(每个 4 字节宽)用于读取和写入电能表 IC,例如

例如读取有源 R 相电压我初始化了寄存器值,如

我尝试使用以下子程序将上述值写入 IC 以读取 R 相电压

我得到了像这样的输出

我测量了电源电压,它显示为 230V。然后我尝试将上述输出与测量的电压相匹配。这里第三个字节 89 对应于 230V。然后我用一个自耦变压器改变电压,这次 220V 第三个字节值变成 85,210V 变成 81,100V 变成 39,依此类推。

我不知道如何将 89 与 230V 以及其他字节联系起来。请帮助解码上述输出。

0 投票
0 回答
52 浏览

python - 从 ATMEL 电能表 IC 计算功率值

我正在从 Atmel 电能表 IC (M90E32AS) 读取功率值。我正在使用 spidev 库进行 SPI 通信。我在 Raspberry PI 中使用 python 代码从电能表 IC 中读取功率值。这是电能表IC的数据表。

在读取功率值之前,我计算了电压、电流值并在控制台中显示。由于 P = V x I,我手动将电压和电流值相乘,并尝试与来自电能表 IC 的接收功率值相关联。但计算值存在差异。例如,r相电压为233 V,r相电流为21 A。如果我手动乘以,我得到4893 W作为功率值。但是从能量计我收到的值是 4281 W。请你帮我找出为什么会发生这种变化。这是我从电能表 IC 读取功率值的子程序。

当我打印 readBuffer 时从能量 IC 接收到的原始功率数据如下所示

其对应的电压和电流值如下所示

我的输出截图

与电压电流相关的功率值截图

0 投票
0 回答
45 浏览

raspberry-pi - 3.5 Waveshare Raspberry Pi A - 向 LCD 写入命令

我已经在 Raspberry Pi 上启用了 SPI(通过 rasps-config),并且正在通过 SSH 写入我的 Raspberry Pi。Raspberry Pi 通过 USB 电缆连接到我正在编写程序的笔记本电脑,并且我正在使用终端将程序写入我已经 ssh 到的 Raspberry Pi。我已将 LCD 屏幕连接到 Raspberry PI 上。我不知道为什么我的程序没有在 LCD 屏幕上产生变化。我正在使用 spidev (Python)。

我没有使用给定的覆盖,因为我只是想写入 LCD,不接受来自触摸屏的输入(尚未启用)。我也没有使用 Waveshare 的引导驱动程序。我的理解是我可以直接对 LCD 进行命令和写入。

我如何诊断出了什么问题?我提供了我如何写入 LCD 的代码示例。在这段代码之后是另一个十六进制命令(我没有包括在内),它应该会导致 LCD 屏幕关闭。目前,只要连接到 Raspberry Pi,LCD 屏幕就会保持白色。

代码示例:

0 投票
1 回答
79 浏览

linux-device-driver - 如何找出谁加载了特定的 Linux 内核模块?

我为 Linux 构建了一个特定的驱动程序作为模块 (m),NXP 的 spi-imx。尽管如此,Linux 在引导时会探测此驱动程序。我正在努力找出哪些进程/其他模块/驱动程序请求这个 spi-imx 驱动程序。Adepmod不显示 spi-imx 与其他模块之间的任何依赖关系(除了 spidev 作为子模块)。

经过一番研究,我发现 Linux 在检测到新设备时会自动(?)调用 modprobe。那么 Linux 是否真的调用 modprobe 是因为设备树中 ecSPI 的状态为“okay”?如果是这样,我该如何防止这种情况?我想通过 modprobe 从用户空间应用程序动态加载 spi-imx。其背后的故事:协处理器将这条 SPI 线与 Linux 引导过程并行使用。这当然会干扰并中断协处理器对 SPI 线的使用。当协处理器通过 SPI(也是一种引导机制)完成传输后,它应该将 SPI 线移交给 Linux。

我非常感谢任何类型的提示、链接、提示和评论。