模拟1线设备


10

我要做的是使ATTiny IC成为1-wire总线上的从设备,并具有自己的S / N和特定功能的命令列表。

我想知道的是,是否可以使用来自arduino站点的一个线库作为从属发送数据。

例如,您可以在一个房间中有一个从属设备,其中有多种类型的传感器,它们会向主设备报告所请求的信息,或者主设备可以告诉它控制诸如百叶窗之类的东西。

问题 我是否必须监视总线并响应主机发出的请求,还要考虑普通传感器发送数据的方式?我应该以什么频率运行从站以获得最佳功能?

请注意,我不会使用寄生电源。



@Gerben-在搜索之前,我已经找到了。略过它。但是我很担心,因为尽管有一些错误,但尽管解决了,但我不知道可靠性。同样,使用自定义从属服务器搜索敌人的设计似乎并不常见,因此是上面的问题。
RSM 2015年

看来图书馆支持它。我认为这是专门针对它的图书馆。速度似乎在15kbps左右。我认为CPU速度并不重要,但这取决于库。如果不是电池供电,只需以8MHz或16MHz的频率运行,就可以了。
Gerben

@Gerben我将测试该库以查看其运行方式。我仍然不明白的一件事是,为什么某些事情不使用单线从机如此罕见?
RSM 2015年

Answers:


3

据我所知,您在问题中链接的1-wire库仅允许充当主机,而不能充当从机。

我刚刚发布了一个库,可以将Arduino板变成1-wire从站,在这里:https : //github.com/neuoy/OneWireArduinoSlave(编辑:移到这里https://gitea.youb.fr/youen/OneWireArduinoSlave)。我在自定义的家庭自动化系统中使用了它,并且在我的设置中可以完美地工作(1线主设备DS9490R通过USB连接到笔记本电脑,并且还为Arduino(即Arduino Uno)供电。该库处理低级细节:匹配rom,字节发送和接收(实际上很难正确处理,如果没有逻辑分析仪,这几乎是不可能的)。其余的取决于您。

它完全用中断实现,所有通信都在后台执行,您可以照常并行执行其他代码,并在收到字节等时通过回调通知。将字节发送到主机也是异步的。

我还知道至少存在另一个库,https://github.com/MarkusLange/OneWireSlave,正如Ryu_hayabusa上面评论的那样。它对我不起作用(不知道是由于我的硬件设置还是其他原因),但它肯定对其他人有用,因此也值得一试。似乎该库未使用中断实现,因此您的程序在等待主机活动时被阻塞(在许多情况下完全可以接受)。



1
@JonasBerlin确实,我已经移动了存储库(只是编辑了答案以反映这一点)。我保留了旧链接作为备份,以防万一,并作为在GitHub上找到其他人的参考。
youen

应该复制这些问题吗?
乔纳斯·柏林
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.