世界最小的Arduino——ATTiny13上手全攻略1C用Arduino来下载
本帖最后由 幻生幻灭 于 2017-2-15 10:41 编辑系列教程传送门
世界最小的Arduino——ATTiny13上手全攻略1A简介
世界最小的Arduino——ATTiny13上手全攻略1B在Arduino IDE环境下的搭建
世界最小的Arduino——ATTiny13上手全攻略1C用Arduino来下载
世界最小的Arduino——ATTiny13上手全攻略2A跑马灯
世界最小的Arduino——ATTiny13上手全攻略2B呼吸灯
世界最小的Arduino——ATTiny13上手全攻略2C舵机测试仪
世界最小的Arduino——ATTiny13上手全攻略3A冬日雪花
如果您已经读到这里,笔者相信即使您手头没有USBtinyISP,也至少有一块Arduino主板了。那么这里还有一个办法,就是我们也可以通过Arduino主板来模拟ISP实现ATTiny13的程序下载。这种下载bootloader和程序的方法,可以是使用328P版本主控芯片的Arduino UNO,Arduino Duemilanove或Arduino Nano。
关于ATTiny13库文件的安装,这里就不再重复了。大家可以参考上一章节第1-4步操作。下面我们将介绍如何把Arduino变成AVR ISP(在线系统编程)。和USBtinyISP一样,我们不仅可以用它来下载ATTiny13单片机,也可以用它给其他AVR芯片烧写引导程序(bootloader)和运行程序(例如使用ATmega168或ATmega328的Arduino,以及使用ATTiny85或ATTiny45的最小系统)。
1. 打开Arduino的样例程序File > Examples > ArduinoISP。
2. 在Arduino官方提示说如果是Arduino 1.0版本,我们需要对ArduinoISP代码进行一个小小的改动。查找heartbeat()函数,把其中的“delay(40);”,更改为“delay(20);”。不过我们是Arduino 1.0.3,并不存在这个问题。
3. 点击Tools > Board,选择Arduino UNO(这里根据实际情况选择作为编程器的板子型号,但不是选将要烧写bootloader的ATTiny13)。然后确认Tools > Serial端口号(这个端口号是所选主板Arduino UNO的端口号,不过在之后下载ATTiny13时作为ISP端口也是用到的)。
4. 上传ArduinoISP代码,成功后显示“Done uploading”。
5. 将ArduinoISP的引脚连接到ATTiny13上。(官方注:如果是ArduinoUNO,需要Reset和GND之间连接一个10 uF的电容,电容负极一端接GND。不过笔者亲测了手头现有的两款UNO主板,DFROBOT DFRduino UNO R3和OCROBOT MANGO II,不管接不接电容,程序下载都是成功的。)
引脚接法:
ATTiny13 Pin 7 接 Arduino UNO Pin 13(作为SCK接口)
ATTiny13 Pin 6 接 Arduino UNO Pin 12(作为MISO接口)
ATTiny13 Pin 5 接 Arduino UNO Pin 11(作为MOSI接口)
ATTiny13 Pin 1 接 Arduino UNO Pin 10(作为RESET接口,注意这里接的不是UNO的RST)
ATTiny13 Pin 8 接 Arduino UNO 5V
ATTiny13 Pin 4 接 Arduino UNO GND
实际接线效果如图
6. 下面的操作和正常的USBtinyISP差不多了。先在菜单Tools > Board选择我们的ATTiny13硬件。
7. 选择Tools > Programmer > Arduino as ISP,这步骤很关键,否则下载会失败。
8. 选择Tools>Burn Bootloader,ArduinoISP将开始烧写bootloader(烧写过程也会清空ATTiny13原有的程序)
下载成功后会再次显示“Done uploading.”不过系统可能会提示以下信息,但并不影响使用。
avrdude: please define PAGEL and BS2 signals in the configuration file for part ATtiny13
avrdude: please define PAGEL and BS2 signals in the configuration file for part ATtiny13
9. 打开我们ATTiny13的样例T0101_Blink或者打开Arduino的样例程序File > Examples > 01.Basics > Blink,这里需要把int led = 13修改为3。然后再点File > Upload Using Programmer下载我们的Blink程序。
下载完成后看到LED再次闪烁的心情是不是非常的开心。当然因为没用专业的下载器,我们还是有可能会遇到两行报警的。虽然不影响使用,但还是建议大家使用专业的下载器进行程序和Bootloader的更新。
ATTiny85很多但是用ATTiny13第一次看见,ATTiny13好像才一两块钱一片,支持楼主 编程空间太小了.我用Tiny85做了一些东西,编程要求较高,只能实现一些简单功能.
如果使用Tiny85 可以参考digispark 带USB功能,除BOOTLOADER外还6K编程空间.
再说回来就算用ATMEGA328P-AU也大不了多少,还是贴片,周边元件必须的也就是个晶振,(本人没试过内置晶振)
价格ATMEGA328P-AU 跟 Tiny85 相差无几,比13也就多2快多,不到3元.性能可差太多了. 我用13做的5独立高低电平输出做的闪光灯 貌似有教程把reset口也设置成输出上电自动复位 但是不得不说空间太小了 ( ̄▽ ̄)" 学习了:) 多谢楼主分享
:) 楼主
世界最小的Arduino——ATTiny13上手全攻略2A(Edit)啥时更新啊 sleept 发表于 2015-7-6 02:51 static/image/common/back.gif
编程空间太小了.我用Tiny85做了一些东西,编程要求较高,只能实现一些简单功能.
如果使用Tiny85 可以参考d ...
做些复杂的应用的确吃力,但很多应用场景也是可以满足的
另一方面用Arduino入门,然后再拿Tiny13开刀学习AVR底层寄存器个人感觉还是蛮靠谱的
后续教程会分享之前的一个的DIY,写完代码2K多怎么优化到1/4的
算是对自己的一个挑战吧,呵呵:D HWL0541 发表于 2015-7-6 12:49 static/image/common/back.gif
楼主
世界最小的Arduino——ATTiny13上手全攻略2A(Edit)啥时更新啊
写是写好了,但是等下周再发了,多放被窝里面捂一捂呵呵。 Iarduino 发表于 2015-7-6 09:45 static/image/common/back.gif
我用13做的5独立高低电平输出做的闪光灯 貌似有教程把reset口也设置成输出上电自动复位
需要高压编程,还没弄好,后面会介绍。
欢迎分享哦 幻生幻灭 发表于 2015-7-6 17:37 static/image/common/back.gif
写是写好了,但是等下周再发了,多放被窝里面捂一捂呵呵。
等楼主 更新 顶楼主辛苦了 幻生幻灭 发表于 2015-7-6 17:38 static/image/common/back.gif
需要高压编程,还没弄好,后面会介绍。
欢迎分享哦
好的 加油! 我下載了 Arduino IDE 1.0.6 並安裝了 Core13.
嘗試刷 Bootloader 時, 出現了以下的錯誤:
avrdude: please define PAGEL and BS2 signals in the configuration file for part ATtiny13
avrdude: please define PAGEL and BS2 signals in the configuration file for part ATtiny13
***failed;
avrdude: verification error, first mismatch at byte 0x0000
0xff != 0x3f
avrdude: verification error; content mismatch
再三檢查過連線沒問題, ArduinoISP 也是剛 upload 的, 成功 upload 沒錯誤.
已嘗試了三顆 ATtiny13A, 都是相同的錯誤, 而且表面上看, 也不像是 硬件引致的問題.
感覺好像是 Core 的問題 (PAGEL 及 BS2 沒有定義?), 但不知這裡指的 configuration file 在那裡 (就是知道我也不會怎樣改).
請問大大出現這樣的錯誤, 會是我的安裝出了問題嗎?請問你用的 Arduino IDE 是那個版本.
我用的是 Windows 8.1 x64, 執行 1.0.6 時有時會不能啟動, 要手動殺掉 Java 的 SE binary.但使用 1.6.5 時完全沒問題, 所以我一直都是用 1.6.5 的, 如果有對應 1.6.X 的 core 就最好了. Super169 发表于 2015-9-10 00:45 static/image/common/back.gif
我下載了 Arduino IDE 1.0.6 並安裝了 Core13.
嘗試刷 Bootloader 時, 出現了以下的錯誤:
1. Arduino ISP的确会有报警,你看我的教程里也有报警的解释。但程序会正常烧录进去,就是没问题。
2. Win8我还没用过,你可以尝试用虚拟机建立一个镜像系统Win7 + Arduino尝试下
页:
[1]
2