Arduino不能做什么ATtiny?


12

受此Make Magazine youtube视频启发,我想在大多数项目中使用ATtiny芯片代替Arduino。视频作者警告说,某些Arduino功能在ATtinys上不起作用。是否有支持和不支持的内容的完整列表?


1
从我读到的内容(不是很清楚)来看,并非所有的ATtiny都具有足够的闪存用于Arduino引导加载程序。尽管您仍然可以通过Arduino进行编译,并分别通过AVRdude进行上传。
伊格纳西奥·巴斯克斯

1
这与这里的引导加载程序无关(您可以使用外部编程器),但是某些库只是不编译为工作代码(我什至不知道也不是全部都会抛出错误)。据我所知,没有列出哪些功能有效,哪些无效,但是了解大多数情况下直接对硬件进行编程并没有什么害处,因为大多数Arduino功能都有很多开销。你一定不希望的功能,如pinMode();digitalWrite();上ATtiny,恰到好处相应的寄存器DDRxPORTx直接。可以找到许多类似的功能。
jippie

1
对于我所见过的绝大多数Arduino项目,ATtiny芯片将具有足够的功能。在大多数情况下,您将通过SPI而不是Bootloader进行编程,并使用C或Assembly语言编写代码,而不是教程中的典型Arduino复制和粘贴代码。
Kurt E. Clothier

@Kurt实际上有很多Arduino运行时库的端口,甚至还有软件USB的端口-但这些当然有开销。
克里斯·斯特拉顿

1
@ChrisStratton好点。我只是想像一个不知道裸露的ATtiny甚至ATmega芯片与Arduino板之间的区别的人甚至不知道这意味着什么(端口,运行时调试,软件USB等),所以我怀疑他们是否需要使用它们。如果是这样,那么他们确实需要更多地了解他们在做什么,以便他们能够解决遇到的简单问题。再说一遍,我猜想这是像我这样的所有反arduino人的心态。
Kurt E. Clothier

Answers:


10

更新:为了更好地回答这个问题,ATTiny可以执行不需要ATTiny所缺少的硬件的任何事情,其中​​包括硬件串行端口,硬件i2c或多个中断。由于这在Arduino库中是隐藏的,除非您对它们的工作方式或读取实际的库文件有很好的了解,否则诸如Wire库(硬件i2c)之类的东西将无法工作。

来自http://forum.arduino.cc/index.php/topic,5582.0.html

例如,一个ATTINY84具有1个中断,没有硬件UART(串行或i2c)和少量的GPIO引脚,较少的程序空间和较少的ram,但采用14引脚封装。

一个ATMEGA328具有2个中断,1个硬件UART,更多的内存和更多的程序空间以及更多的GPIO,如果您确实需要它,那就太好了。

此外,大多数ATTiny都没有硬件乘法,因此编译器必须在软件中进行非base-2乘法。

最后,Arduinos依赖于引导加载程序而不是spi编程,因此您需要具有至少4〜8kb闪存的ATTiny才能与Arduino引导加载程序一起工作。

ATTiny44 / 45/84/45/2313流行为微型Arduino。它们具有官方Arduino Uno使用的ATMega328的内存和闪存的四分之一或八分之一。

ATTiny有很多,所以不能对它们全部说一个话。

另请参阅此处:http : //hlt.media.mit.edu/?p=1695


5

大多数Attiny没有硬件USART模块,因此您将无法通过串行与它们通信。对于某些场所,而不是专用的I2C和SPI硬件外设,有一个简化的USI外设,您必须为此编写一些粘合代码才能实现SPI或I2C通信。一些attinys没有ADC。

通常,在为项目选择attiny时必须格外小心,因为这些往往不会具有Arduino atmega328中可用的全部功能。例如attiny2313确实有一个UART但没有ADC,attiny44确实有ADC,但没有UART,依此类推。

只需在开始时查看Atmel微控制器选择表和数据表。


1
缺少硬件UART!=将无法通过串行通信。
克里斯·斯特拉顿

@ChrisStratton是的,您可以通过USI对其进行仿真
micez

1

除了已经发布的出色答案之外,还有一些琐碎的相关问题:

大多数Arduino板(不包括Pro Mini / Pro Micro)以及稀有的其他板,除主微控制器外,还包含第二个AVR或其他USB接口部分。这不仅允许从计算机对Arduino进行编程,还允许运行时串行终端调试。相同的USB连接还为Arduino提供电源。

尽管显然在设计中已经解决了ATTiny的电源要求,但使用终端软件在运行时调试代码非常方便。


1
一些attiny板通过软件USB解决了该问题。
克里斯·斯特拉顿
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.