【最小开发板】Attiny85开发与实践

不要十元就能弄到一个Arduino IDE支持的,性能比C51的89c52好的微小单片机,并且还能支持直接插在电脑上进行供电&烧录,虽然不支持串口,但也是很美妙的一件事情不是吗?

这就是attiny85 usb,在国外这一件最小系统的设计叫做Digispark。



相关数据:

8K bytes of In-System Programmable Flash, 
512 bytes EEPROM, 
256 bytes SRAM, 
6 general purpose I/O lines, 
32 general purpose working registers, 
one 8-bit Timer/Counter 
one 8-bit high speed Timer/Counter, 
Universal Serial Interface, Internal and External Interrupts,
  a 4-channel, 
10-bit ADC, 
a programmable Watchdog Timer with internal Oscillator, 
and three software selectable power saving modes. 
Idle mode stops the CPU while allowing the SRAM, 
Timer/Counter,
  ADC, 
Analog Comparator,
Interrupt system 

关于Pin:
  • All pins can be used as Digital I/O
  • Pin 0 → I2C SDA, PWM (LED on Model B)
  • Pin 1 → PWM (LED on Model A)
  • Pin 2 → I2C SCK, Analog In
  • Pin 3 → Analog In (also used for USB+ when USB is in use)
  • Pin 4 → PWM, Analog (also used for USB- when USB is in use)
  • Pin 5 → Analog In

性能与电源数据:

  20 – 10 MHz @ 2.7 - 5.5V
  0 - 20 MHz @ 4.5 - 5.5V

Low Power Consumption – Active Mode: 
1 MHz, 1.8V: 300 µA 
Power-down Mode: 
0.1 µA at 1.8V



【最小开发板】Attiny85开发与实践




目前发现的小缺点:
1.没有硬件支持的I2C但是有SPI,I2C在attiny上面是软件依赖于硬件进行支持的。
2.没有串口,传送数据需要额外端口进行模拟。
3.USB下载方式比较古老没有自动复位需要拔插模块。


一、关于在Arduino上面的安装

如何用Arduino烧录Digispark USB版本attiny85

1、先在arduino ide中打开文件--->首选项,然后在下方的 附加开发板管理网址填入
http://digistump.com/package_digistump_index.json
然后点击确定
【最小开发板】Attiny85开发与实践


2、在开发板管理器中类型一栏选择Contributed

【最小开发板】Attiny85开发与实践


3、下载安装第一个

【最小开发板】Attiny85开发与实践


4、到这里就完成了,相比于普通的Arduino板块来说,在下载程序的顺序方式上有所区别,具体如下:

(1)、在板形中选择Digispark USB
(2)、点击上传/Upload
(3)、在电脑的USB口插入Digispark 
(4)、完成上载

串口随意选择不影响烧录(因为本身也没串口)

【最小开发板】Attiny85开发与实践


===================================================================================================

二、初步尝试开发

先试着焊接了一支5mm的RGB LED用来测试,以焊接焊点的一半的方式来预备后面进行的改装,减少拆焊难度
【最小开发板】Attiny85开发与实践


第一个程序LED灯闪烁:
const int Red_LED = 5;
const int Green_LED = 4;
const int Blue_LED = 3;
void setup() {
  // put your setup code here, to run once:
  pinMode(Red_LED, OUTPUT);
}

void loop() {
  // put your main code here, to run repeatedly:
  digitalWrite(Red_LED, HIGH);
  delay(500);
  digitalWrite(Red_LED, LOW);
  delay(500);
   
}


插入USB口进行烧录

【最小开发板】Attiny85开发与实践


【发生不对劲的事情】

在刚才的烧录中发现,如果将当期LED的GND脚位接在板载的GND上面就无法正常的烧录,也就是插入后不能识别

发现占用的PORT 3为USB-而PORT 4为USB+,也就是这两条都是数据线路,不能在通过电流/有高电平的同时进行烧录的,也因此,不能插在USB槽上面进行测试了,要用其他单独的供电。

烧录这块的解决方法只能是加上一个可以开关的GND总线,在需要烧录时候断开
【最小开发板】Attiny85开发与实践



至于单独供电,可以做一个USB母口转接或使用充电宝这类进行纯粹的供电,利用板载的通孔也可以但总觉得不太方便(只有一个GND通孔的缘故)。

【最小开发板】Attiny85开发与实践

【最小开发板】Attiny85开发与实践



===================================================================================================

三、作为HID设备接入

这一芯片可以作为USB设备来识别,也就是能像是莱昂纳多atmega34U一般可以作为键盘或者鼠标这样的输入设备接入电脑,并能按照编程程序自动输入内容,虽然只有6个Pin并且在作为USB设备时候被占用两个Pin,但依然有4个Pin可以形成4x4键盘完成简单的按键输入

(如果是连接I2C硬件键盘可能性更大)

#include "DigiKeyboard.h"
void setup() {
  // don't need to set anything up to use DigiKeyboard
}
void loop() {

//下面这一行是非必要的,但在一些老的系统中,
//为了能在延时后不错过输入语句的第一个字符所以要加上
  DigiKeyboard.sendKeyStroke(0);
  DigiKeyboard.println("Hello !");
 
  //最好使用DigiKeyboard.delay()这个函数来代替标准arduino的delay函数
  // 确定电脑已经连接上Digispark
  DigiKeyboard.delay(5000);
}

【最小开发板】Attiny85开发与实践













  • 9
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值