AVR ATtiny V-USB 应用指南(第一部分)
来源:互联网 发布:js null.type 编辑:程序博客网 时间:2024/05/20 04:25
原文见:http://codeandlife.com/2012/01/22/avr-attiny-usb-tutorial-part-1/
若有不准确之处,请指证。
自从知道AVR单片机构建USB装置是可行的,我一直想动手试一下,但无论是USBtiny还是V-USB,都缺乏入门指南,所以我决定自己写一个。
指南的第1部分讲述如何搭建硬件平台,同时也作为作为第2部分的基础;第2部分介绍一个简单的例子,该例子将利用V-USB库和ATtiny2313实现USB通信。
准备工作如下:
· USB线缆和公头
· 面包板及跳线
· LED和330欧电阻
· 低压差调整器,比如 LD1086V33或者 LE33CZ
数据线
第一件要做的事是找根USB数据线并剪短,留下个电脑连接的那一截,并将4条线和排针焊接起来,方便插在面包板上,4根线的焊接顺序见下:
引脚------颜色--------功能
1-----------红-----------Vcc
2-----------白-----------D- (USB通信用)
3-----------绿-----------D+ (USB通信用)
4-----------黑-----------Gnd
注意:不是所有的线遵从下面的颜色规定,最好用万用表检查一下。
下图是焊接好后的样子,当去除导线外皮时,小心不要损伤导线,并保证相互之间不能接触,防止短路电脑或HUB的端口。
如果想多了解USB接口及电气特性方面的只是,推荐看下Beyond Logic 写的USBin a NutShell 或者USB 2.0协议规范,对这篇指南来说,知道USB能在5v电压下最大提供500ma电流就足够了。
用面包板简单测试
现在验证一下制作的USB数据线是否成功,可以将数据线连接到HUB,并用万用表测试VCC(红色)和GND(黑色)之间的电压,我测量的结果是5.18V。接着就可以将排针插到面包板上,用跳线分别将VCC和GND接到面包板的电源列上,并将LED和电阻串联接到电路,看是否工作。
恭喜!如果你想要的只是USB供电,现在你可以搭建任何5V电路了,但要保证所需电流不大。如果LED发光暗淡,检查下是否接错线,或者是否是焊接问题等等。
准备USB通信---获取3.3V电压
虽然USB供电是5V,但D+和D-接口使用的却是3.3V电压。虽然部分电脑的D+和D-端口也能容忍5V电压,但并不是全部电脑都能接受5V电压。
为了保证USB通信的可靠性,我们有3个方案可供选择:
1、 将USB的供电电压转换为3.3V
2、 采用外部3.3V供电
3、 用电阻、二极管或者稳压二极管将5V逻辑电压转换为3.3V
在这里我选择第一种方案。
第二种方案实现方法很多,比如用9V层叠电池加电压调整器;或者利用手机充电器,调整其输出电压;甚至3个AA电池加一个或2个二极管降压。
第三种方案可以Google下” zener diode usb”,会发现很多文章(指南的第六部分会讲到这种方案,V-USB项目的wiki对此也有不错的介绍,详见http://vusb.wikidot.com/hardware)。
在这个指南中,我使用LD1086V33作为低压调整器,查看datasheet可知:脚1接地,脚2输出,脚3输入,输出和输入分别用10uF电容接地,见下图:
从下面的面包板电路可以看出连接方法,LD1086V33的输入和接地分别连接面包板的电源和地,输出端接LED及电阻,具体见下图:
上面这个电路看起来也能工作,但任何小的电压脉冲都需要调整器去补偿,这可能导致持续的振荡。因此最好将2个10uF的电容加上去,5V和地之间以及3.3V和地之间。
确保电容的极性连接正确。最终效果见下图:
现在准备用3.3V电压来驱动AVR芯片,用万用表再次检查,确保调整器的输入端对地电压是5V,输出端对地电压3.3V。
- AVR ATtiny V-USB 应用指南(第一部分)
- (ZZ)System V IPC指南 第一部分
- System V IPC指南 第一部分
- AVR-USB(V-USB)学习过程(一)
- AVR-USB(V-USB)学习过程(二)
- Hyper-V应用指南---导入导出虚拟机
- 第一部分:回想web应用
- Android网络应用(第一部分
- Android网络应用(第一部分)
- AVR MCU 选型指南
- javascript权威指南第一部分学习笔记
- 第一部分 Cassandra 1.0.X常用命令指南
- JavaScript权威指南 第一部分 读书笔记
- HTML5权威指南读书笔记【第一部分】
- 训练指南第一部分解题报告
- http权威指南 第一部分(基础)
- AVR应用经验
- AVR应用经验
- 浅谈 “自考“ 悲催 的若干因素
- C++ 类的静态成员(static)
- actionscript3.0自定义事件机制简单编程实例
- 深入学习Heritrix---解析CrawlController
- unity3d之进度条跟着游戏对象移动
- AVR ATtiny V-USB 应用指南(第一部分)
- java GUI图形用户界面
- freeaday免费资源网
- Eclipse下的Sublime Text 色彩配置
- C语言循环控制结构中注意项
- poj 2138 Travel Games
- Java网络爬虫的实现
- 黑马程序员_O‘Reilly java nio学习笔记之通道_通道基础&& Scatter/Gather
- 关闭笔记本报警声