使用Atmega 16/16A制作Arduino复制板早期的Arduino主控芯片使用的是Atmega 8,在UNO R3时改成了Atmega 328,存储空间由8k增至32k,其它都是相同的。 如果使用Atmega8/328“裸片”复制Arduino,就比较简单,因为Arduino IDE原生就支持它们。 我初时学习Arduino时,原想着一道学习AVR,因为不熟悉底层,就会被Arduino的封装阻隔提升的空间。 今天碰到一篇文章,用Atmega 16复制Arduino,一时兴起,但那文章错误太多,或者什么原因,总之是无法继续。 正确且易于实践的步骤,记录一下。因为这件事情比先前研究的Attiny13A/85/LilyPad更有意义——如果不怕麻烦,以后可以不用再买Arduino板了,体积也小了。 1、在板卡管理器里安装MightyCore。 在首选项里填写 https://mcudude./MightyCore/package_MCUdude_MightyCore_index.json 2、把Arduino UNO作为编程器 把Examples/ArduinoISP烧写到Arduino中; 3、接线
4、烧录Blink 把两只LED串联,正极引脚接Atmega16引脚20,修改Blink.ino: int pin=14;//注意这句 5、烧录Atmega16 Tools菜单里设置板卡:Atmega16,内部时间8MHz,BootLoader为Yes,编程器为Arduino as ISP。 在Sketch菜单里使用upload Using Programmer上传,Atmega16引脚20上的两个LED间隔8秒闪烁一次(为什么?因为时钟慢了。) 6、总结记录 ⑴很多资料写的使用AVR烧录器等做法,不用那么麻烦,而且还不保证。 ⑵很多资料太过古老,不许IDE版本高于1.6,手动设置熔丝位等等,MightyCore库全部解决掉了,不必理会。 ⑶Atmega16有不少资料里的引脚图与Arduino引脚不对应,不能正确执行ino代码。Atmega16有40个引脚,而Atmega328只有28个引脚,相当于功能增加了。 |
|
来自: 新用户5228KeDY > 《待分类》