上海极制信息科技有限公司

 找回密码
 立即注册
搜索
热搜: 活动 培训 资料
查看: 2769|回复: 0

自制Digispark: 最小USB Arduino

[复制链接]

40

主题

65

帖子

1418

积分

版主

Rank: 7Rank: 7Rank: 7

积分
1418
发表于 2016-8-16 13:19:25 | 显示全部楼层 |阅读模式
本帖最后由 jizhi01 于 2016-8-16 13:21 编辑


Digispark是一个基于ATTINY85微控制器的开发板,体积小且价钱便宜,功能方面则没有Arduino般强大。代码与Arduino大同小異,也是使用Arduino IDE开发。

Digispark的特别之处是使用了USB与电脑沟通,省了USB至串口转换器。为此,Digispark必须占用2KB的快闪记忆体(Flash Memory)以便用来安装Bootloader。
Digispark的功能
打开Examples,大概知道Digispark的功能到达什么程度了。麻雀虽小,五脏俱全。



规格与说明
  • 支持Arduino的IDE 1.0 +(现在是1.04)
  • 内置USB
  • 6个I / O引脚
  • 8K快闪记忆体(Bootloader占用了2KB。剩下约6KB)
  • I2C和SPI
  • 3个PWM
  • 4个ADC


下载与烧录Bootloader
  • 下载micronucleus tiny85 bootloader
  • 解压micronucleus-t85-master.zip(1.36MB)至任何文件夹
  • 去micronucleus-t85-master\firmware\releases查找Bootloader

以上文件包含了几个版本(从1.02至1.06)的Bootloader,其中jump表示开机没有等待(五秒),上载代码必须使用jumper(D5/reset引脚接地)。这里我使用micronucleus-1.06.hex
  • 使用AVR烧录器把micronucleus-1.06.hex烧录至ATTINY85
  • 这里使用AVRISP MKII烧录器,然後设定以下fuses



完成Bootloader烧录後,接下来安装Digispark USB驱动


安装Digispark USB驱动
  • 由于Digispark是使用USB与电脑沟通,所以必须安装USB驱动。
  • 下载用于Digispark的Arduino 1.0.4,自带了Digispark USB驱动
  • 解压DigisparkArduino-Win32-1.0.4-March29.zip至任何文件夹
  • 运行DigisparkArduino-Win32\DigisparkWindowsDriver\InstallDriver.exe(只须安装一次)
  • 完成Digispark USB驱动安装后,可以连接Digispark至电脑了

Digispark电路图
下面第一张是官方Digispark电路图,下面第二张电路图则是用于测试,5V电源来自电脑的USB通信口,使用非常容易又简单。建议使用外部USB Hub连接Digispark,以防万一电路出现问题而损坏电脑的USB通信口。





连接与测试Digispark
  • Digispark插入电脑的USB通信口
  • 第一次使用时,将会侦察到新的USB设备,同时显示安装Digispark Bootloader,单击Next直至完成USB设备安装
  • 运行DigisparkArduino-Win32\Digispark-Arduino-1.0.4\arduino.exe以便打开Arduino IDE
  • 单击Tools>Board>Digispark (Tiny Core),如图:




  • 单击Tools>Programmer>Digispark,如图:




先测试一个Digispark Arduino自带的代码(Sketch)。单击File>Examples>Digispark_Example>Start
  1.     // the setup routine runs once when you press reset:
  2.     void setup() {               
  3.       // initialize the digital pin as an output.
  4.       pinMode(0, OUTPUT); //LED on Model B
  5.       pinMode(1, OUTPUT); //LED on Model A   
  6.     }
  7.     // the loop routine runs over and over again forever:
  8.     void loop() {
  9.       digitalWrite(0, HIGH);   // turn the LED on (HIGH is the voltage level)
  10.       digitalWrite(1, HIGH);
  11.       delay(1000);               // wait for a second
  12.       digitalWrite(0, LOW);    // turn the LED off by making the voltage LOW
  13.       digitalWrite(1, LOW);
  14.       delay(1000);               // wait for a second
  15.     }
复制代码
按照以下步骤上载代码(Sketch)至Digispark。上载代码有一点点麻烦,那就是每次上载前,Digispark必须与电脑断开,直至电脑显示插入Digispark时,才将之插回电脑。

ATTINY85引脚5(Digital 0)和引脚6(Digital 1)各连接一个330欧姆电阻器及LED 。开电测试,你会看到二粒LED间隔一秒的闪着。
回复

使用道具 举报

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

本版积分规则

手机版|上海极制信息科技有限公司 ( 沪ICP备14016067号

GMT+8, 2018-11-21 14:25 , Processed in 0.133457 second(s), 25 queries .

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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