受此Make Magazine youtube视频启发,我想在大多数项目中使用ATtiny芯片代替Arduino。视频作者警告说,某些Arduino功能在ATtinys上不起作用。是否有支持和不支持的内容的完整列表?
pinMode();
与digitalWrite();
上ATtiny,恰到好处相应的寄存器DDRx
,PORTx
直接。可以找到许多类似的功能。
受此Make Magazine youtube视频启发,我想在大多数项目中使用ATtiny芯片代替Arduino。视频作者警告说,某些Arduino功能在ATtinys上不起作用。是否有支持和不支持的内容的完整列表?
pinMode();
与digitalWrite();
上ATtiny,恰到好处相应的寄存器DDRx
,PORTx
直接。可以找到许多类似的功能。
Answers:
更新:为了更好地回答这个问题,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
大多数Attiny没有硬件USART模块,因此您将无法通过串行与它们通信。对于某些场所,而不是专用的I2C和SPI硬件外设,有一个简化的USI外设,您必须为此编写一些粘合代码才能实现SPI或I2C通信。一些attinys没有ADC。
通常,在为项目选择attiny时必须格外小心,因为这些往往不会具有Arduino atmega328中可用的全部功能。例如attiny2313确实有一个UART但没有ADC,attiny44确实有ADC,但没有UART,依此类推。
只需在开始时查看Atmel微控制器选择表和数据表。
除了已经发布的出色答案之外,还有一些琐碎的相关问题:
大多数Arduino板(不包括Pro Mini / Pro Micro)以及稀有的其他板,除主微控制器外,还包含第二个AVR或其他USB接口部分。这不仅允许从计算机对Arduino进行编程,还允许运行时串行终端调试。相同的USB连接还为Arduino提供电源。
尽管显然在设计中已经解决了ATTiny的电源要求,但使用终端软件在运行时调试代码非常方便。