我们正在编写一个门铃识别系统,并决定使用Arduino来处理大部分电路。我不确定的一件事是Arduino Uno和Arduino Mega的程序容量。我知道Uno只有大约32亿KB的闪存,但我们的程序预计会在1000行代码内落地(我假设这将超过32亿KB的阈值)。
我们没有太多的时间来完成这个项目,所以如果Uno不能处理我们需要的开箱即用的东西,我们就不想花太多的时间来研究如何多路复用或向Uno添加内存。
将EEPROMs添加到Uno中会有多困难(和耗时)?继续使用Mega会不会更好?
此外,首先使用PC (带有DAQ板或其他设备)或Raspberry Pi会比使用Arduino更容易吗?
我们正在设计的系统用于读取来自指纹扫描仪的输入,并将独特的铃声输出到扬声器。我们需要的是系统在物理上紧凑,这样它就可以适合家庭中替代和实际的门铃系统(希望Arduino可以帮助实现)。
代码投射到1000行左右的原因是因为我们可以在其中实现移动应用程序通信,锁定/解锁门,等等。我假设32亿KB(来自Uno)是不够的,因为我的一些C程序(在1000行范围内)的大小通常在100KB左右。
基本上,我们需要它具有可伸缩性,以便程序可以大于我们的计划大小,甚至小于我们的计划大小。我们不想最终不得不购买多个电路板,如果一个就足够了。
发布于 2013-06-10 11:18:53
在一个微控制器中,32kb是大量的程序内存。1,000行代码可能会组装到几千字节,而且所有的Arduino库都可能比您的程序更大。
如果我没记错的话,我不认为任何ATMegas支持有外部程序存储器。如果你有一个很大的查找表,你可以得到一个I²C的EEPROM,并把它加载到里面。
至于PC/Raspberry Pi,某种用于计算机的I/O板的价格可能比Uno或Mega高得多,Raspberry Pi也是如此,特别是当您需要模拟输入或PWM时。
我会说,现在,坚持使用Uno,但保留你用作#defines
的任何引脚,这样,如果你真的用完了程序只读存储器,你可以很容易地将它移植到Mega。
发布于 2013-06-10 14:55:20
Atmel微控制器不支持允许添加ROM和扩展代码量的外部程序总线。一些设备支持扩展数据总线,这将允许添加RAM。我想说这是微控制器和微处理器之间的关键区别之一,尽管在分离中可能存在一些模糊。因此,当你耗尽代码或内存时,你不得不寻找效率或削减特性。在选择微控制器时,我的建议是先决定:
如果成本有限,那么您可以选择您能负担得起的设备,并使您的应用程序合适。如果受到时间的限制,选择你可以使用的最大的设备。
你说你受时间限制,不确定代码的规模。如果有任何方法,你可以证明1,000美元的PC+IO电路板的路线。
发布于 2013-06-11 02:58:44
这完全取决于你的门铃识别方案到底是什么。如果它需要FFT和/或花哨的浮点运算,那么你可能很容易耗尽AVR的SRAM。如果它只是一些美化的有限状态机,有一些像样的实现,如果这耗尽了Uno,我会感到惊讶。
然而,最重要的问题是:你在构建什么?如果不是一个系列,那么开发人员的时间是最昂贵的-->首先去买一台更大的机器。如果您正在为一系列计算硬件成本与开发人员时间进行开发-->瞄准仍能满足您需求的最便宜的控制器。也就是说:拿Atmel家族中最大的一个,一旦你有了一个正在运行的原型,就把它缩小。我有一个门铃,不管是什么东西都可以装进ATiny。
https://stackoverflow.com/questions/17015984
复制相似问题