极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 70828|回复: 29

世界最小的Arduino——ATTiny13上手全攻略1C用Arduino来下载

[复制链接]
发表于 2015-7-5 10:18:00 | 显示全部楼层 |阅读模式
本帖最后由 幻生幻灭 于 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的更新。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2015-7-5 18:52:06 | 显示全部楼层
ATTiny85很多但是用ATTiny13第一次看见,ATTiny13好像才一两块钱一片,支持楼主
回复 支持 反对

使用道具 举报

发表于 2015-7-6 02:51:48 | 显示全部楼层
编程空间太小了.我用Tiny85做了一些东西,编程要求较高,只能实现一些简单功能.

如果使用Tiny85 可以参考digispark 带USB功能,除BOOTLOADER外还6K编程空间.

再说回来就算用ATMEGA328P-AU也大不了多少,还是贴片,周边元件必须的也就是个晶振,(本人没试过内置晶振)

价格ATMEGA328P-AU 跟 Tiny85 相差无几,比13也就多2快多,不到3元.性能可差太多了.
回复 支持 反对

使用道具 举报

发表于 2015-7-6 09:45:07 | 显示全部楼层
我用13做的5独立高低电平输出做的闪光灯 貌似有教程把reset口也设置成输出上电自动复位
回复 支持 反对

使用道具 举报

发表于 2015-7-6 09:45:31 | 显示全部楼层
但是不得不说空间太小了 ( ̄▽ ̄)"
回复 支持 反对

使用道具 举报

发表于 2015-7-6 10:18:30 | 显示全部楼层
学习了  
回复 支持 反对

使用道具 举报

发表于 2015-7-6 12:49:01 | 显示全部楼层
多谢楼主分享
回复 支持 反对

使用道具 举报

发表于 2015-7-6 12:49:59 | 显示全部楼层
楼主
世界最小的Arduino——ATTiny13上手全攻略2A(Edit)啥时更新啊
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-7-6 17:36:21 | 显示全部楼层
sleept 发表于 2015-7-6 02:51
编程空间太小了.我用Tiny85做了一些东西,编程要求较高,只能实现一些简单功能.

如果使用Tiny85 可以参考d ...

做些复杂的应用的确吃力,但很多应用场景也是可以满足的
另一方面用Arduino入门,然后再拿Tiny13开刀学习AVR底层寄存器个人感觉还是蛮靠谱的
后续教程会分享之前的一个的DIY,写完代码2K多怎么优化到1/4的
算是对自己的一个挑战吧,呵呵
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-7-6 17:37:14 | 显示全部楼层
HWL0541 发表于 2015-7-6 12:49
楼主
世界最小的Arduino——ATTiny13上手全攻略2A(Edit)啥时更新啊

写是写好了,但是等下周再发了,多放被窝里面捂一捂呵呵。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-7-6 17:38:13 | 显示全部楼层
Iarduino 发表于 2015-7-6 09:45
我用13做的5独立高低电平输出做的闪光灯 貌似有教程把reset口也设置成输出上电自动复位

需要高压编程,还没弄好,后面会介绍。
欢迎分享哦
回复 支持 反对

使用道具 举报

发表于 2015-7-7 08:33:26 | 显示全部楼层
幻生幻灭 发表于 2015-7-6 17:37
写是写好了,但是等下周再发了,多放被窝里面捂一捂呵呵。

等楼主 更新 顶楼主  辛苦了
回复 支持 反对

使用道具 举报

发表于 2015-7-10 12:42:04 | 显示全部楼层
幻生幻灭 发表于 2015-7-6 17:38
需要高压编程,还没弄好,后面会介绍。
欢迎分享哦

好的 加油!
回复 支持 反对

使用道具 举报

发表于 2015-9-10 00:45:16 | 显示全部楼层
我下載了 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 就最好了.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-9-10 09:21:09 | 显示全部楼层
Super169 发表于 2015-9-10 00:45
我下載了 Arduino IDE 1.0.6 並安裝了 Core13.
嘗試刷 Bootloader 時, 出現了以下的錯誤:

1. Arduino ISP的确会有报警,你看我的教程里也有报警的解释。但程序会正常烧录进去,就是没问题。
2. Win8我还没用过,你可以尝试用虚拟机建立一个镜像系统Win7 + Arduino尝试下
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-10-15 07:14 , Processed in 0.040963 second(s), 25 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表