【发布时间】:2010-04-18 09:24:25
【问题描述】:
(如果您的懒惰请参阅 TL;DR 底部)
您好,我正计划建立一个处理物理计算的新(原型)项目。基本上,我有电线。这些电线都需要同时读取它们的电压。每根电线的读数之间超过几百微秒的差异将完全搞砸。 Arduino 大约需要 114 微秒。因此,在延迟会影响读数的准确性之前,我最多可以读取 2 或 3 根线。
所以我的计划是让 Arduino 作为 ATTinys 阵列的“主人”。 arduino 的空间非常狭窄,但与 tinys 相比,它是一个巨大的游乐场。 ATTiny13A 有 1k 的闪存 ROM(程序空间)、64 字节的 RAM 和 64 字节的(非耐用且慢速)EEPROM。 (我选择这个是因为价格和尺寸)
我系统中的 ATTinys 不会做太多事情。基本上,他们所要做的就是等待来自主控的信号,然后读取 1 或 2 根线的电压并将其存储在 RAM 中(或者可能是 EEPROM,如果它那么狭窄的话)。然后仅使用 1 根数据线将其发送给 Master。(没有更多空间!)。
到目前为止,我所要做的就是实现简单的电压读取代码(使用内置 ADC)。但我担心这个沟通位。您认为通信协议(仅使用 1 根线!)甚至可以在这样的约束下实现吗?
TL;DR: 您认为可以在不到 1k 的程序空间和 64 字节的 RAM(和 64 字节的 EEPROM)中实现 1 线通信协议吗?我需要去组装以使其适合吗?
我知道目前我链接到 Wiring 库的 Arduino 程序超过 8k,所以我有点担心。
【问题讨论】:
-
这是一个令人困惑的问题,因为 1wire 是实际的总线。显然这不是关于那个。 en.wikipedia.org/wiki/1-Wire
标签: c assembly communication avr freestanding