迅维网

查看: 4827|回复: 2
打印 上一主题 下一主题

自制Digispark—最小USB Arduino

[复制链接]
跳转到指定楼层
1#
发表于 2016-3-8 13:02:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式 来自: 山东青岛 来自 山东青岛

马上注册,获取阅读精华内容及下载权限

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

x





Digispark
Digispark是一个基于ATTINY85微控制器的开发板,体积小且价钱便宜,功能方面则没有Arduino般强大。代码与Arduino大同小異,也是使用Arduino IDE开发。
Digispark是Digistump LLC (digistump.com)版权所有,请使用者仔细阅读Digispark使用协议和版权声明
Digispark的特别之处是使用了USB与电脑沟通,省了USB至串口转换器。为此,Digispark必须占用2KB的快闪记忆体(Flash Memory)以便用来安装Bootloader。
Digispark的功能
打开Examples,大概知道Digispark的功能到达什么程度了。麻雀虽小,五脏俱全。


Arduino for Digispark Examples
规格与说明
  • 支持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 irmwareeleases查找Bootloader
以上文件包含了几个版本(从1.02至1.06)的Bootloader,其中jump表示开机没有等待(五秒),上载代码必须使用jumper(D5/reset引脚接地)。这里我使用micronucleus-1.06.hex
  • 使用AVR烧录器把micronucleus-1.06.hex烧录至ATTINY85
    这里使用AVRISP MKII烧录器,然後设定以下fuses

AVRISP MKII pinout

Fuses
完成Bootloader烧录後,接下来安装Digispark USB驱动
安装Digispark USB驱动
  • 由于Digispark是使用USB与电脑沟通,所以必须安装USB驱动。
  • 下载用于Digispark的Arduino 1.0.4,自带了Digispark USB驱动
  • 解压DigisparkArduino-Win32-1.0.4-March29.zip至任何文件夹
  • 运行DigisparkArduino-Win32DigisparkWindowsDriverInstallDriver.exe(只须安装一次)
    完成Digispark USB驱动安装后,可以连接Digispark至电脑了
Digispark电路图
下面第一张是官方Digispark电路图,下面第二张电路图则是用于测试,5V电源来自电脑的USB通信口,使用非常容易又简单。建议使用外部USB Hub连接Digispark,以防万一电路出现问题而损坏电脑的USB通信口。

Digispark official schematic

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

Arduino for Digispark Select Board



    单击Tools>rogrammer>Digispark,如图:

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

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






2#
发表于 2016-3-8 16:37:32 | 只看该作者 来自: 重庆 来自 重庆
人才啊,大哥。

点评

呃呃 我不是人才  详情 回复 发表于 2016-3-8 18:38
回复 支持 反对

使用道具 举报

3#
发表于 2016-3-8 18:38:20 | 只看该作者 来自: 山东 来自 山东

呃呃  我不是人才

回复 支持 反对

使用道具 举报

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

本版积分规则

快速回复 返回顶部 返回列表
附近
店铺
微信扫码查看附近店铺
维修
报价
扫码查看手机版报价
信号元
件查询
点位图 AI维修
助手



芯片搜索

快速回复