问题标签 [1wire]

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 投票
1 回答
8869 浏览

timer - 如何在STM32L-Discovery ARM板上制作微秒级精度的定时器?

我正在尝试实现 Dallas OneWire 协议,但在 STM32l-Discovery 上生成微秒延迟时遇到问题。

如何实现一个足够精确的计时器以将程序延迟 x 微秒?

0 投票
1 回答
135 浏览

node.js - Owfs.js 看不到假设备

我正在尝试使用假设备(来自 owfs.conf)在我的本地运行 owfs,但遇到了麻烦。这是我的代码,它打印空数组

它什么也没有返回。在我从控制台执行 owdir 的同时,我得到了这个

然后我正在尝试读取这样的设备

它输出

任何帮助表示赞赏。

0 投票
1 回答
849 浏览

arduino - ds18b20 单线地址格式从 arduino 转换为 debian

我用arduino记录了我大部分ds18b20的所有地址,当插入运行debian的Beaglebone Black时它们看起来不同。有没有办法可以将它们翻译成它们在 debian 上的外观?我无法全部测试它们,因为大多数都安装在我的原型中..

arduino = '0x28、0x9D、0xB6、0xAB、0x05、0x00、0x00、0x3E'

debian = '28-000005abb69d'

0 投票
1 回答
393 浏览

raspberry-pi - powertop 显示 owfs 每秒唤醒 40 次,传感器采样仅每 10 秒一次

我正在运行owfs(1-wire 文件系统),其他一些进程仅每 10 秒对温度数据进行一次采样。现在,在那个 linux 盒子上,该进程powertop每秒显示 40 到 50 个唤醒事件。owfs我假设owfs经常出去轮询/采样传感器,这就是我看到这些唤醒的原因。

由于我非常热衷于这台小机器的能耗(每一点节省都有帮助),我想知道是否有办法降低这种唤醒频率。

0 投票
0 回答
271 浏览

raspberry-pi - 如何加速 1-wire 脚本

我在 raspberryPi 上使用以下脚本,因为 pi 很慢,与在我的 Mac 上使用它相比,它需要相当大的延迟。我想知道是否有人可以帮助改进任何功能以帮助加快速度。

0 投票
1 回答
868 浏览

stm32 - 单线钻头敲击与usart单线

我想用一个单线协议的传感器,问题是这种协议的使用方式是优化的还是更合理的呢?在 usart 上还是使用 bit banging?

如果很重要,我正在使用 am2305 和 stm32fxx 微控制器。

0 投票
1 回答
2274 浏览

vhdl - 用于 DS18B20 温度传感器的 1 线内核的 VHDL 封装器

目前我正在尝试为这个Opencore Verilog 模块(1-wire master)编写一个 VHDL 包装器,以便我可以从这个温度传感器(DS18B20)发送/接收。

但是我很难理解它的用法。即读/写使能与 1-wire 主模块的控制/状态寄存器中的 cyc 位。

到目前为止,我的代码将 cyc 位设置为 1,同时将读/写启用设置为 1,但不会在每个位期间循环它们。这是正确的还是我误解了?我是 VHDL 的新手/阅读数据表,所以我为此苦苦挣扎了几天。任何帮助,将不胜感激。

我发现这个网站一直用作参考,但它不涉及我正在使用的 Verilog 模块。

我也在寻找关于我的代码风格的提示,以及一般的 VHDL 提示。

我当前的代码:

先感谢您。最好的汤姆

0 投票
1 回答
874 浏览

1wire - owfs-同时读取所有传感器

OWFS让我们通过其他接口读取 1-wire 设备,在我的例子中是I2C ( DS2484 )。我可以通过 owhttpd 接口一次成功读取一个温度(DS18B20http://localhost:4305/28.2F3915060000 s) 。我也可以使用 python 接口阅读它们:

但是,我有 30 个传感器。此方法一次读取一个。每个需要 500-750ms,所以整个过程可能需要 17s。

1 线的一个巧妙之处在于,您可以请求所有传感器一次并行读取,这是一个缓慢的步骤,然后让它们按顺序报告,这非常快。OWFS 是否支持以某种方式读取它们?

0 投票
2 回答
723 浏览

raspberry-pi - 我无法通过 Android Things 中的 I2C 总线获取数据

我无法在 Raspberry Pi 3 上的 Android Things 中通过 I2C 总线获取数据。

我在 RPi 和 DS18B20(温度传感器)上连接 Android Things。 连接到树莓派

并运行 I2C 地址扫描应用程序(https://github.com/dennisg/i2c-address-scanner),但找不到可用地址。

如何通过 I2C 获取数据?

0 投票
0 回答
40 浏览

linux - 防止Linux在执行某个功能的过程中切换到另一个任务

我为改编自本书的 Raspberry Pi 实现了 1-wire 协议。它使用位碰撞来实现通信协议。BCM2835 库中的函数 bcm2835_delayMicroseconds() 用于产生所需的延迟。

它工作得很好,但并不完全可靠:有时我没有得到传感器的响应。我用示波器来追踪问题。这里是示波器屏幕截图,信号解释为绿色。 在此处输入图像描述 红色标记故障:开始低脉冲的位被延长,因此插入了一个流氓“0”。这导致传感器无法识别命令并且不响应它(随后的“1”)。

我相信这是因为操作系统在传输该位期间抢占(切换到另一个任务/线程/进程)。那么是否有可能告诉Linux在执行某个函数期间不要抢占(在这种情况下用于写入和读取单个位)?或者也许这个问题有另一种解决方案?