一个树莓派2代和1代的GPIO评测
不翻译了,累,自己看吧,不长
http://codeandlife.com/2015/03/25/raspberry-pi-2-vs-1-gpio-benchmark/
这个是原始的树莓派1代GPIO的评测,里面有如何产生那些数据的代码:
http://codeandlife.com/2012/07/03/benchmarking-raspberry-pi-gpio-speed/
不翻译了,累,自己看吧,不长
http://codeandlife.com/2015/03/25/raspberry-pi-2-vs-1-gpio-benchmark/
这个是原始的树莓派1代GPIO的评测,里面有如何产生那些数据的代码:
http://codeandlife.com/2012/07/03/benchmarking-raspberry-pi-gpio-speed/
序
开始想起写这个教程的过程比较复杂,开始是学习敲CW,然后是看到有人把鼠标拆了把电键连上,最后自己用Arduino Leonardo模拟鼠标实现了这个功能,不少人都说好。于是想找一个便宜的AVR的片子专门做一个小板子来实现这个功能。开始是想找通用的USB芯片来做,后来又发现了DigiSpark这个小板子。开始是以为ATtiny85这个片子像ATmega32U4一样内置有USB的功能,后来发现是有人在12MHz的主频下,用汇编语言写了一个模拟USB通讯的程序。最后找了老外写的这个教程:http://codeandlife.com/2012/01/22/avr-attiny-usb-tutorial-part-1/ 。于是基于学习想法,想把这个教程翻译一下。不废话了,开始翻译。觉得我翻译的不好,自己去看原文。
正文(第一部分)
在我发现AVR的微控制器可以作为USB设备以后,我就想用它做一个USB设备。但是不管是USBTiny项目还是更多扩展的V-USB库都缺乏一个简单入手的教程,所以我决定写一个。
第一部分覆盖制作USB供电设备的基础内容,以及为第二部分的铺垫,第二部分是一个在ATtiny2313使用V-USB库实现USB通讯的简单例子。后续部分的发布,取决于我的时间和兴趣。(译者,原文如此,原文是老外的Blog,看来老外写Blog和我一个调调,我这篇翻译计划全部翻译完,但是还得取决于我的时间和兴趣,哈哈)
我们马上开始,下面是一些第一分部会用到的东西:
电缆
首先我们要找到一根USB线,剪开,保留连接电脑一端的部分。然后将四根线焊好插针,以便我们连接面包板使用。USB包含四根新,你需要按照下表的顺序焊接。(注:不是所有的线都按照这个颜色来做,所以你需要使用万用表来确认!)
针 | 颜色 | 功能 |
1 | 红 | VCC(+5V) |
2 | 白 | D- |
3 | 绿 | D+ |
4 | 黑 | GND |
下图就是我的成果。剥线的时候要小心,不要破坏四根线的外皮,焊接的时候也不要互相接触。如果断路的话,将会烧掉你的USB hub或者电脑的USB芯片。(译者注:译者强烈不直接把你做的USB线直接插电脑,因为断路或者其他电流过大的情况下,都可能损坏你的电脑USB部分的电路,如果你电脑的USB部分电路异常,可能导致电脑各种诡异问题,比如我的W520就因为USB部分损坏以后,导致系统速度变得极慢…….译者强烈建议使用USB Hub隔离,因为USB Hub价格便宜还方便更换。)
如果你想了解更多关于USB接头和USB电气规格的内容,我推荐你阅读Beyond Logic写的“USB in a NutShell”和“USB 2.0 specification”。目前我们只需要理解USB总线可以提供5V电压和小电流。(译者注:老外成文的时候在2012年,那时候最新的USB规格还是2.0,目前连接过去应该是USB 3.1的规格,总之这个链接会链接到最新的规格文件上,所以以后可能还会变化到更高的版本。电脑和USB Hub每个接口最大提供500ma的电流,一般情况下能带动一块移动硬盘,给手机充电也比较慢,电流过大,可能导致电脑的USB芯片或者USB Hub损坏。)
简单面包板测试
现在我们来测试一下我们的焊接工作是否成功。我建议你在第一次连接你的线缆到USB Hub或者电脑的时候,使用万用表来测量一下VCC(红)和GND(黑)之间的电压是不是5伏。我自己测量的是5.18伏。(译者注:一般在未接通的时候,电压都会稍高,以保证500ma工作的时候,电压能维持在5伏。目前市面的一些2A的USB充电器测量得到的电压会更高。)接下来把插针查到面包板上,并使用跳线连接面包板上的VCC和GND轨,然后连接串联电阻的LED,看看LED是否能点亮。
恭喜!如果你只是要从USB取电的话,你现在只要保证持续电流不太大,你就可以构建任何5V的电路。如果你的LED还没有亮,那么检查一下线的颜色是否错了,有没有焊接错误,或者LED的引脚反了。
准备USB通信-获取3.3v
USB的供电是5V的,但是数据线是3.3V的。一些计算机可以忍受5V的逻辑电压,但不是所有的都可以。按照书本来玩的话,我们有三个选项:
我们这里将选择第一个选项。第二项你可以选择使用你熟悉的方法,例如9V电池和降压器,手机充电器并调整电压,或者3节5号电池加上1到2个保护二极管来降压。第三个选项,你可以通过搜索“齐纳二极管 USB”(译者:搜索英文资料的话使用“zener diode usb”)(更新:你也可以看本教程的第六部分,将会包含相关内容。)。v-USB的wiki有一个很好的硬件概览:http://vusb.wikidot.com/hardware
现在我已经连接好接地端和输入端到5V电源轨,然后把输出端接好了LED和电阻。
这个电路现在看起来开始工作了,但是供电似乎有些小问题:因为稳压器内部的反馈机制,导致输出电压会有连续的波动。所以我们将在5V输入端和接地端加上10uF的电容(如下图),在3.3V输出端和接地端也要加上。确定电解电容的链接方式正确(电解电容上减号已经被标注了)。好运!(译者:接反了就会……噗~~~)
现在我们已经准备好为我们的AVR电路供电,或者其他使用3.3V的项目。接下来,我们需要使用万用表来检查降压器的接地端与输入端的电压确实为5V,接地端和输出端确实为3.3V。
刚才顺手有看到了支持ATtiny44/45/84/85的Arduino支持,于是顺手再写下来。这个支持来自Damellis’es ATtiny cores,看具体内容前要先修改一下分支,目前有一个ide-1.6.x-boards-manager的分支。
当然直接安装也比较简单,在Arduino IDE的File->Preferences的Additional Boards Manager URL里面填上https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json 这个地址。这时在Tools->Boards->Board Manager的最西面会看到下图的内容:
这时,选择最新的版本,然后点击Install按钮就好。然后在Tools->Board里选择ATtiny以后,你就能看到下图菜单的样子:
祝各位玩的愉快:-)
目前在Arduino IDE里面能搞的最低处理器应该是ATTiny13了,ATtiny有几个选择,但是ATtiny13只有一个Core13选择。
Core13的下载地址:http://sourceforge.net/projects/ard-core13/ 。本文成文的时候,最新版本是022版本,而且这个版本有了一个Arduino IDE 1.6版本的专门包,推荐下载这个。我目前的测试环境是1.6.5,但最新的版本已经是1.6.7了。这是因为我也在玩另一个ATtiny85的小板子,叫DigiSpark,它的程序不兼容1.6.5之后的版本,所以……就不升级了。
Core13在Arduino IDE 1.6上安装很简单,只需把压缩包中的attiny13这个文件夹解压缩到你“<我的文档>\Arduino\hardware”这个目录下就好了。关闭再重新打开Arduino IDE,你就能在Tools->Board菜单里找到Attiny13的选项了。下图里面可以看到我配置好的样子,上面还有DigiSpark的选项。另外还有一个国产atmega328p克隆版LGT8F328D做的Larduino的选项。
翻墙查了一下,有Atmel的员工提供了一个方法,见 链接 。
方法如下:
1.去nuget下载 https://www.nuget.org/api/v2/package/System.Collections.Immutable/1.1.36
2.按照zip文件解压缩下载的nupkg文件,找到System.Collection.Immutable.dll等两个文件。
3.解压缩到C:\Program Files (x86)\Atmel\Studio\7.0\Extensions\Application。这个可能根据你安装Atmel Studio的位置不一样而不一样。
注:
1.你要是不知道Visual Studio 2015.1是什么东东的话,忽略过上面的内容。
2.你需要确认在<UserDir>\AppData\Roaming\Microsoft\AppEnv\14.0\ActivityLog.xml中有System.Collection.Immutable的错误信息,这个错误信息并不会Atmel Studio 7提示的错误信息中出现。
近期评论