电子说
概述
AVR编程器和SPI接口
简介
这是一个简单的开源USB AVR编程器的文档, SPI接口。它价格低廉,易于制造,可与avrdude完美兼容,与AVRStudio兼容并在 Windows,Linux 和 MacOS X 下进行了测试。
该项目基于USBtiny代码和设计,非常适合学生和初学者,或者作为备用程序员。主要改进包括:调整代码以使其充当SpokePOV接口,添加低级bitbang命令,以及添加“ USB良好” LED。其他更改包括新的VID/PID(使其正式化),删除了一些命令并在引脚上移动了一点。
您可以使用原理图和固件来构建此设计,或者购买套件从Adafruit网上商店。拥有完整的套件可以解决购买或构建USB编程器的“鸡与蛋”问题,然后需要某种编程器来“启动”。 (请参阅USBasp,AVRdoper,USBprog)
所有固件代码均在GPL下分发,硬件设计布局文件为CC 2.5属性/类似。
这有什么好处?
易于制作
超低成本:程序员的零件成本为16美元,不到AVRISP价格的一半v2! (套件为22美元,可从adafruit商店购买。)
套件随附6针和10针AVR标准连接器和电缆。并非来自Atmel的程序员几乎都没有! (包括AVRISP v2)
易于构建:所有通孔零件,都是通用的,可以从大型分销商处获得。
易于使用
与AVRdude兼容-v5.5中添加了对usbtiny的支持!
可使用libusb在Windows上使用USB驱动程序,Mac OS X或Linux上不需要驱动程序。
耐用的现成机箱
高速!最大时钟频率为400KHz。写入速度:1Kb/s,读取速度:2Kb/s。 (Atmega8的写入时间为8s,读取/验证的时间为4s)
2个LED指示“ USB/Power good”和“ Busy”
I/O被缓冲以允许对2V-6V目标(v2)
可与任何具有64K闪存(或更少闪存)的AVR ISP芯片配合使用-不适用于Atmega1281/1280/2561/2560
》
易于供电
以更低的电压关闭5V USB总线大于100mA的电流以使其可以与未供电的USB集线器一起使用
易于访问的跳线,以通过USB为目标项目供电(目标必须能够承受5V的电压)
删除跳线并它会自供电,但会缓冲I/O以匹配目标设备。 (v2)
易于扩展
与libusb轻松连接
现有固件允许使用USB快速进行SPI接口
Bit-bang命令提供8位I/O控制(包括LED)以进行打开结束的项目构想
常见问题解答
这是作为汇编程序员出售的吗?
尚未,它仅作为工具包提供。
组装起来有多难?
“制作!”中有非常清楚的说明。链接。这是一个简单的工具包,对于拥有适当工具的任何人来说,即使是他们的第一个焊接项目,也应该相当容易。 “》
这适用于Linux吗?
《我class =“ collapsed-icon”》
是。我们已经在linux(Ubuntu 7.04)上对其进行了测试,并且它不需要任何奇怪的东西,因此它可以与任何发行版一起使用。如果遇到问题,请确保您以root用户身份运行以拥有设备权限。
为什么没有Serial/COM/port(或/dev/ttyXX设备) )?
USBtiny不是USB串行设备,而是它自己的Avrdude可以理解的USB协议。插入时将看不到COM端口或串行端口。
我可以使用USBtiny发送串行消息吗? Arduino吗?
否,USBtiny不会创建串行端口并且无法执行那。它使用ISP连接而不是串行直接对芯片进行编程。 Arduino不是AVR程序员,它们是带有在串行端口上运行的引导程序的AVR。
可以编程哪些芯片?
任何使用ISP接口进行编程并具有64K或更少闪存的AVR都可以
诸如Atmega1280/1281和Atmega2560/2561之类的芯片具有超过64K的值,并且无法进行编程。
使用TPI接口的芯片,如Attiny4/5/9/无法编程10个。
某些非常老的芯片(例如AT90S1200等)不能编程
我可以使用USBtinyISP编程引导加载程序(如Arduino那样)吗?
是,这就是AVR程序员可以做的。我们建议在IDE中使用“内置” bootloader-burner来完成此操作。
如何将引导程序编程到Arduino上?
将新的AVR芯片(例如Atmega328)放入Arduino的正确的方向
将跳线从USBtinyISP移除
将USBtiny中的跳线插入USB中
将Arduino插入DC或USB以使其通电
将USBtinyISP的6针电缆插入Arduino,以使针1标记与电缆上的红色线对齐
启动Arduino IDE
选择芯片/Tools-》 Board菜单中使用的/Arduino
不要选择COM/串行端口
选择Tools-》 Burn Bootloader-》 w/USBtinyISP
USBtinyISP红色LED应点亮。对该芯片进行编程将需要一两分钟。
完成后,IDE会告诉您它已经完成并且红色LED会熄灭。
我需要帮助才能正常工作
检查帮助!页面。
是否可以使用8051内核(AT89)系列芯片?
USBtinyISP设计仅可与AVR核心芯片(ATtiny/ATmega/etc)一起使用。但是,卢卡斯·基耶萨(Lucas Chiesa)和他的同僚在移植此版本以支持8051内核芯片方面做得非常出色。
circle-o“》
什么是“自我程序”?
最初的USBtinyISP可以由另一位程序员通过跳针编程。现在已经不存在了,因为现在有一个缓冲区。您应该忽略跳线。
此外,您不能自己编程usbtiny。
制作!
制作
分步
制作USBtinyISP从工具包开始很容易,只需执行以下步骤:
准备和教程
零件清单检查(v2.0),或者如果您使用的是旧版本,则使用v1的零件清单.0
一起焊接! (v2.0)或较旧的版本,请安装v1.0的程序集
准备工作
准备焊接,
教程!了解如何用吨焊接
别忘了也学习如何使用万用表!
工具。组装需要一些工具。这些工具均不包含在内。如果您没有它们,现在将是借阅或购买它们的好时机。每当组装/固定/修改电子设备时,它们都非常方便!我提供了购买链接,但是,当然,您应该在最方便/最便宜的地方获取它们。其中许多零件都可以在Radio Shack或其他(更高质量的)DIY电子产品商店中找到。
烙铁
您可能会在本地五金店找到的任何入门级“多合一”烙铁都可以工作。与生活中的大多数事物一样,您可以买得到。
升级到高端电烙铁设置,例如我们在商店中购买的Hakko FX-888,将使焊接变得既轻松又有趣。
请勿使用“冷热”烙铁!它们不适合用于精密的电子工作,并且会损坏套件(请参阅此处)。
单击此处购买我们的入门级可调30W 110V烙铁。
单击此处可升级至原装Hakko FX-888可调温度
焊料
您将需要松香芯,60/40焊料。好的焊料是一件好事。不良的焊锡会导致桥接和冷焊点难以找到。
单击此处购买一盘含铅焊料(建议初学者使用)。
单击此处购买一盘无铅焊料。
万用表
您将需要可以测量的高质量基本万用表电压和连续性。
单击此处购买基本的万用表。
单击此处购买顶部的万用表。
单击此处购买便携式万用表。
齐平斜角刀具
您将需要齐平斜角刀具一旦将它们焊接到位,就修剪掉导线和引线。
单击此处b
焊锡吸盘
奇怪的是,这是该拆焊真空工具的技术术语。对于清理错误很有用,每个电气工程师的办公桌上都会出现一个错误。
单击此处购买一个错误。
用放大镜帮助第三只手
不是绝对必要的,但是它会使处理速度大大提高,并且会使焊接变得更加困难
在这里捡一个。
好灯。比您想象的重要。
零件清单
套件零件清单检查并确保您的套件包含以下部件。有时我们会出错,因此请仔细检查所有内容,如果需要更换,请通过电子邮件[受电子邮件保护]!
图片名称描述零件编号分销商数量
IC1微控制器(在套件中购买时已预先编程)ATTINY2313-20PUDigikey
Mouser1
IC2缓冲芯片
(v2的新功能)74AHC125Mouser1
XTL112.00 MH z陶瓷振荡器
请确保其上显示12.00ZTT-12.00MT鼠标1
C1绕过0.1uF电容器(104)
可能是蓝色的通用Digikey
鼠标1
C2绕过100uF/6.3V电解电容器(照片显示10V,但6.3V可以)
v2.0的新功能通用Digikey
鼠标1
R1010K 1/4W 5%电阻器(棕色,黑色橙色金)
10KQBK-ND1
R3,R4,R5,R6,R71.5K 1/4W 5%电阻器(棕绿色红色金)
1.5KQB K-ND5
R1,R227-68 ohm 1/4W 5%电阻
47QBK-ND2
LED1红色3mm LED通用Mouser1
LED2绿色3mm LED
Mouser
Digikey1
D1,D23.6V齐纳二极管1N5227BMouser
Digikey2
X1USB B型公插口通用Mouser
Digikey1
JP210针盒接头3M 30310-6002HBMouser
Digikey1
JP16针平头(0.1“ x 0.1”)Molex 10-89-7062Mouser1
JP32针直角标头Tyco 640453-2鼠标1
JP3‘跳线/分流通用Mouser1
10针IDC电缆通用电缆Digikey1
6针IDC电缆通用电缆
1
PCB电路板
v2.0与v1.0外观不同
Adafruit Industries1
案例机箱Pactec CNS-0407Mouser
Pactec1
示意图(v2.0)点击放大。。.
出售它!
哦,很热!
第一步是将套件焊接在一起。如果您以前从未焊接过,请查看“准备”页面以获取教程和更多内容。
检查工具包以确认您具有所有必需的零件,请阅读零件页面以获取所需零件清单。工具包中应该有。
下一步是USB连接器和12.00MHz的陶瓷振荡器。 USB连接器是我们用来插入计算机的接口,振荡器确保USBtiny微控制器以非常挑剔的USB协议速率进行通信所需的精确速率运行。
振荡器可以插入“方式”,使它们对称。 USB连接器应轻松插入。
获取您的工具准备好了!板虎钳,烙铁和焊料,对角线切割器和吸盘(拆焊工具)(如果有)。
下一步,准备将PCB放在虎钳中,以便您可以轻松地放置和焊接零件!
还请检查您拥有所需的所有工具,并将烙铁加热到650-700degF。
焊接的第一部分是电阻 R1 。该电阻值为47ohm,请检查零件清单以确保您使用的电阻正确。弯曲电阻器的两条腿,使其呈钉状。然后将电阻滑入PCB,使轮廓与丝印上的图像相匹配。电阻是双向的,因此您不必担心以错误的方式放置它。
弯曲线脚,以便在翻转电路板时不会掉线。
重复另一个接头。
下一步,剪辑多余的使用对角线刀。夹在焊点顶部上方。
完成后,它应该看起来像这样。如果您在焊点上有粘性的东西,那没关系,那就是焊料中的松香,可以保护焊点免受氧化。
接下来是另一个47欧姆电阻 R2
这不是像 R1 那样平放,因此请如图所示将其弯曲。同样,由于电阻器双向工作,哪一端到哪里都没有关系。
像使用R1一样焊接电阻。
然后将多余的电线剪掉。
既然您已经对电阻器进行了很多练习,那么可以一次完成剩余的5个电阻器。放置 R10 (10K上拉电阻), R3,R5 和 R6 (用于USB连接,LED和输出缓冲区的1.5K电阻)。
如果您将UsbtinyISP与SpokePOV套件一起使用,请同时安装R4和R7(1.5K)。如果不是这样,您可能希望将这些电阻器切换为跳线(请参见第二张照片以完成),因为这意味着可以对带有加载引脚的目标板进行编程。
注意:有时74AHC125比丝网印刷要大一些,因此一旦芯片安装到位,您可能希望稍后放置 R7 。
焊接并裁剪所有线索。
接下来是两个3.6V齐纳二极管, D1 和 D2 。
这些二极管有助于将微控制器的电压转换为3.3V,对于USB连接是安全的。
二极管,un像电阻器一样,必须以某种方式放置,否则它们将根本无法工作。每个二极管的一端都有一条黑色的小线。确保此末端与丝网印刷图像上的白线匹配。 (见左)
焊接并钳位二极管引线。
接下来是完成所有艰苦工作的微控制器插槽。插槽很有用,因为您可以在升级或损坏的情况下更换芯片。插座上有一个小凹口,以指示以哪种方式放入芯片。此凹口应与丝网印刷图像中的凹口匹配,在此图片中,该凹口在左侧。
第二步
因为插座的插针已经很短了,所以不需要修剪。
下一个要放置的是74AHC125缓冲区。该芯片对从USBtiny微控制器到被编程设备的信号进行电平转换。这样,您就可以安全地对电压范围从1.8V到5.5V的芯片进行编程。
必须正确放置集成电路,检查芯片末端的凹口与丝网印刷图像中的凹口是否匹配。
IC出厂时,支脚有些倾斜,这使得很难将其插入PCB。通过将支腿轻轻地弯曲到平坦的桌面上以使其完全笔直来准备焊接。
焊接缓冲器的每个引脚,您不需要剪短引线,因为它们已经很短了。
振荡器的三引脚和USB连接器的所有6引脚中的焊料。确保不要桥接任何方形引脚,并在机械接线片上放置大量焊料。如图所示,这些在插入电缆时会提供电阻,因此,请务必将它们焊接好。
尽管它们很短,但应尽可能将引脚夹到振荡器上,以确保它们不会弯曲并接触另一个组件。
接下来是两个指示灯,绿色的 LED2 和红色的 LED1 。这些LED使您知道USB设备已成功连接,并且正在对目标设备进行编程。
LED是二极管,必须正确放置,否则它们不会点亮,这非常令人困惑。确保LED的较长(正极)引线进入标有+的孔中。看到左侧的图像。
LED也应该非常靠近外壳顶部,这样您就可以通过钻孔看到光线,弯曲导线时,请确保LED伸出上方约1/2英寸
焊接并修剪两个LED。
接下来是两个电容器,分别为 C1 和 C2。 这些提供了一些电源过滤,以使USBtinyISP的稳定性降低。 C1 进入USB连接器旁边的角落。它是一种非极性陶瓷电容器,因此可以任意使用。
C2 是一种极化电解。它只能以一种方式进行。确保电容器的长脚通过+插入孔中。弯曲电容器,使其位于缓冲芯片的顶部。
焊接并夹住电容器的两条引线。
即将完成!最后一部分是电缆的插头和跳线插头。如图所示,10针插座的插头上有一个缺口,请确保它与丝印匹配。
6针插座的插头上应插入长针。
2针跳线的长针指出了。
标头的所有引脚中的焊料。您不需要剪裁它们,因为它们已经很短了。
现在继续制作电缆并将PCB放入外壳中。
如果您不使用USBtiny与SpokePOV套件通信,并且使用的目标负载SCK和MOSI引脚,则可能需要用跳线代替R4和R7,因为1.5K电阻器将无法驱动负载!
制作6针电缆(旧套件,无预制) 6针电缆)
AVR编程有两种标准,即6针和10针接头连接器。因此,重要的是AVR编程人员必须同时使用两种类型的电缆。 10针电缆很容易获得,但6针电缆必须定制。但是,制作电缆非常容易,只需执行以下步骤即可!
如果您将适配器用于辐条或不需要6针电缆,则可以跳过此部分。
请勿使用尖嘴钳尝试将碎片压在一起。您必须从两侧施加非常平坦的压力。
例如,使用工具的平坦侧面压在桌面上。
很难找到6芯带状电缆,因此您可能会得到10芯电线。 (该套件随附6芯)。如果是这样,只需使用对角线切割器(或小刀)切一个凹口,以使红色刀柄位于6芯侧。
撕下电缆,应将其干净地分开。
您现在可以组装电缆。
重要的是,键(连接器中的凸起)和红色条纹必须对齐。匹配左侧的图像,仅在距离边缘一毫米的范围内插入导体即可。
开始使用,只需用手指压一下以确保电线正确对齐即可开始使用。您将无法以这种方式完成电缆连接,所以请不要尝试!
或者更好,一个恶习!慢慢将两侧挤压在一起,直到它们锁定。
做另一端,跟踪键和红线。
是的!您有两条电缆!
案例
最后是时候让程序员使用这个案例了。
拿起PCB,两半壳体和您自己制作的电缆。
插入两根电缆,如图所示,红色条纹位于顶部,这样电缆就不会在插头上弯曲(这种情况下不适合)
将PCB放入下壳体的一半中。
6针电缆可能带有应力消除装置,可以夹住。您并不是真正需要它们,但是如果您确实希望减轻应力,则将其放在到达目标的那一个上:如果消除应力位打开,电缆将无法容纳。
排列LED并将其顶部对齐。完成!
下一步,请阅读使用手册。
无法正常工作吗?不用担心,可以在论坛中获得帮助!
零件(v1.0)
套件零件列表
这是非常旧的套件的列表,不太可能您有一个v1.0,但我们保留了它作为历史记录
/tr》
图像名称》描述分销商数量单价总计
IC1微控制器(在套件中购买时已预先编程)ATTINY2313-20PU
Digikey&Mouser1$ 2.36$ 2.36
XTL112.00 MHz陶瓷振荡器ZTT-12.00MT1$ 0.54$ 0.54
C1绕过104电容器(0.1uF)
可能是蓝色BC1160CT-ND1$ 0.07$ 0.07
R1010K 1/4W 5%电阻(棕色,黑色橙色金)10KQBK-ND1$ 0.05$ 0.05
R3,R4,R5,R6,R71.5K 1/4W 5%电阻器(棕绿色红色金)1.5KQBK-ND5$ 0.05$ 0.25
R1,R227-68 ohm 1/4W 5%电阻47QBK -ND2$ 0.05$ 0.10
LED1红色3mm LEDLTL-1CHE1$ 0.09$ 0.09
LED2绿色3mm LEDLTL-1CHG1$ 0.09$ 0.09
D1,D23.3V齐纳二极管1N5226B2$ 0.08$ 0.16
X1USB类型B公插孔61729-0010BLF1$ 1.04$ 1.04
JP210针盒接头
1$ 0.42$ 0.42
JP16针直头Molex 10-89-70621$ 0.36$ 0.36
JP32针直角插头鼠标(640453-2)1$ 0.23$ 0.23
JP3’跳线/分流鼠标(71363-102LF)1$ 0.10$ 0.10
10针IDC电缆Digikey
鼠标1$ 1.45$ 1.45
6英寸带状电缆(6芯)Digikey1$ 0.90$ 0.90
6-pin IDC插头FCI 71600-006LF
鼠标2$ 0.53$ 1.06
PCB电路板Adafruit Industries1$ 5.00$ 5.00
案例机箱Pactec CNS-0407
Mouser
Pactec1$ 1.66$ 1.66
总计$ 16
焊料(v1.0)
V1.0说明!
这些是v1.0 USBtinyISP的说明。如果您的PCB看起来有些不同,则可能是v2.0,应该在此处查看说明。
您不太可能拥有v1.0,但我们会将其保留为历史记录
将其焊接!
第一步是将套件焊接在一起。如果您以前从未焊接过,请查看“准备”页面以获取教程和更多内容。
检查套件,以确认您具有所有必需的部件(缺少0.1uF电容器,哎呀!)。
准备好工具!板虎钳,烙铁和焊料,对角切割器和吸盘(拆焊工具)(如果有)。
将虎钳插入虎钳中并加热烙铁,以便您可以开始使用!
放置第一个组件:10K电阻,如图所示。电阻是无方向性的,因此您可以以“任一种”方式放置它们,并且它们可以正常工作。当您将脚穿过PCB时,请将其弯曲,以便在翻转PCB时不会掉出来。
将PCB翻转过来。
焊接腿。同时将烙铁头的尖端靠在金属丝腿和金属环上,经过2次计数,将焊料戳入,直到形成一个漂亮的水池。然后移开焊料,等待半数,然后移开烙铁。
使用对角线切割器将焊脚上方的焊脚剪断。
接下来是2个47欧姆电阻。如图所示放置它们。弯曲腿,翻转PCB,焊接4个接点并将其夹紧。
接下来是5个1.5K电阻器。如图所示放置它们,然后将其焊接并切断引线。
接下来是齐纳二极管。二极管是定向的,因此请确保如图所示放置它们。 PCB图纸上有一条白色条纹,与玻璃二极管上的黑色条纹相匹配。
接下来的部分是USB连接器(银色的大部分),12.00MHz的陶瓷振荡器(三个引脚的部分)和陶瓷电容器(黄色的小部分)。
电容器和振荡器是无方向性的,因此它们可以以任何一种方式运行。 USB连接器只能以一种方式进入并卡入到位。
在焊接零件时,请确保在用于固定USB连接器的两个插脚上放大量的焊料。机械连接:实际上,焊料在这里起着“胶水”的作用,将零件固定在适当的位置!
接下来是标题和微控制器插槽。 6针接头连接器没有方向,因此只能以任何一种方式放置。
10针盒接头连接器具有一个凹口,该凹口应与PCB图形中的凹口匹配。 (此处距离微控制器插座最近)。
如图所示,应插入直角插头JP3,并且两个插脚都伸出PCB上。
微控制器插座还具有以便最后的凹口与图纸匹配。在这里在右边。如果您搞砸了它不是世界末日,只需记住以正确的方式放置微控制器即可。
在焊接时,很难将零件固定在适当的位置。您可以尝试用手指将其“固定”在适当的位置,并如图所示焊接一个或两个角。
然后返回并焊接每个连接
接下来是两个LED。它们应与PCB保持一定距离,以便在有色塑料的末端标记大约1/2英寸(1厘米)。
如图所示放置LED,红色的靠近10针接头,绿色的靠近USB。
LED是定向的,如果将它们向后放置,它们将不会点亮。要弄清楚哪种方法正确,请在PCB上查看LED的图像。图像略微变平,表示负极。LED的一根引线短于另一根。短引线也为负极。
在此图像中,绿色LED的负极打开红色LED的负极朝上。
与其使LED靠着PCB靠平放,不如将LED弯曲。您做出的1/2英寸标记,使它们突出。将它们焊接到位。
焊接完成。接下来,插入微控制器。您可以通过用指尖或桌面轻轻弯曲腿来做到这一点。
确保如图所示将其插入,然后将其按入以使其牢固地插入插槽。
使6-针电缆
AVR编程有两种标准,即6针和10针接头连接器。因此,重要的是AVR编程人员必须同时使用两种类型的电缆。 10针电缆很容易获得,但6针电缆必须定制。但是,制作电缆非常容易,只需执行以下步骤即可!
如果您将适配器用于辐条或不需要6针电缆,则可以跳过此部分。
请勿使用尖嘴钳尝试将碎片压在一起。您必须从两侧施加非常平坦的压力。
例如,使用工具的平坦侧面压在桌面上。
很难找到6芯带状电缆,因此您可能会得到10芯电线。 (该套件随附6芯)。如果是这样,只需使用对角线切割器(或小刀)切一个凹口,以使红色刀柄位于6芯侧。
撕下电缆,应将其干净地分开。
您现在可以组装电缆。
重要的是,键(连接器中的凸起)和红色条纹必须对齐。匹配左侧的图像,仅在距离边缘一毫米的范围内插入导体即可。
开始使用,只需用手指压一下以确保电线正确对齐即可开始使用。您将无法以这种方式完成电缆连接,因此请勿尝试!
或者更好,一个恶习!慢慢将两侧挤压在一起,直到它们锁定。
做另一端,跟踪键和红线。
是的!您有两条电缆!
案例
最后是时候让程序员使用这个案例了。
拿走PCB,两半壳体和您自己制作的电缆。
插入两根电缆,如图所示,顶部是红色条纹,这样电缆就不会在插头上弯曲(这种情况下将无法安装)。
将PCB放入下壳体的一半。
6针电缆可能会夹住应力消除装置。您并不是真正需要它们,但是如果您确实希望减轻应力,则将其放在到达目标的那一个上:如果消除应力位打开,电缆将无法容纳。
排列LED并对齐顶部。完成!
下一步,请阅读使用手册。
无法正常工作吗?不用担心,可以在论坛中获得帮助!
使用它!
使用方法
USBtinyISP非常易于使用,但是这里有一些提示:
指示灯LED
有两个LED,绿色的USB靠近USB端口,红色的靠近电缆。
绿色的LED表示USB连接成功。如果绿色LED永远不亮,并且您确定它是正确的,则枚举有问题。如果您使用的是Windows或Linux计算机,并且插入电源时绿色LED指示灯不亮,则说明存在问题。如果您有一台较新的Mac OS计算机,请尝试通过 avrdude 发送命令-然后LED会亮起(奇怪但正确!)
红色LED指示USBtinyISP正在“忙”编程。您可能不想拔掉它或正在点亮的正在编程的设备。但是,如果发生软件崩溃,即使不执行任何操作,LED仍会保持点亮状态。
编程电缆
有两种编程电缆:10针ISP电缆和6针ISP电缆。它们是在线AVR编程的两个主要标准。该程序员不进行JTAG编程
Jumper JP3(USB
JP3电缆附近有一个跳线伸出。当跳线就位(连接两条线)时,这意味着USBtinyISP正在为要编程的设备提供5V电源。如果您不希望为设备供电,则只需将跳线拔出或确保仅在一根电线上即可。
USBtinyISP只能提供5V电压,最多可为该设备提供100mA电流。如果需要更多电源,则应卸下跳线并分别为设备供电。 (或者,如果您喜欢冒险,可以将USBtinyISP重新编程为从USB端口要求500mA而不是100mA,但是如果您不知道该怎么做,建议您不要这样做。)
版本USBtinyISP 1.0会以5V电平将数据发送到设备,无论是否为设备供电,因此请确保其符合5V规范! (请注意,有2个1.5K电阻与数据线串联以进行保护)
版本2.0 几乎可以肯定是您所拥有的,使用电平转换器,以便如果没有安装跳线,则它将使用任何目标电压,这对于您的低压设备来说要好得多!
因此,如果您的设备需要以3.3的电压运行V,没有跳线!
将其用作SPI接口
USBtinyISP可用作“通用” SPI设备。查找如何使用此示例的最佳位置是下载avrdude源代码并阅读usbtiny。c
此处是提交的使用c ++在Linux下使用示例的示例。谢谢Matt D!
用户手册
使用方法
USBtinyISP非常易于使用,但是这里有一些提示:
div》指示灯LED
有两个LED,绿色的USB靠近USB端口,红色的靠近电缆。
绿色的LED表示USB连接成功。如果绿色LED永远不亮,并且您确定它是正确的,则枚举有问题。如果您使用的是Windows或Linux计算机,并且插入电源时绿色LED指示灯不亮,则说明存在问题。如果您有一台较新的Mac OS计算机,请尝试通过avrdude向其发送命令-该LED然后应点亮(奇怪,但确实如此!)。
红色LED指示USBtinyISP正在“忙”编程。您可能不想拔掉它或正在点亮的正在编程的设备。但是,如果发生软件崩溃,即使不执行任何操作,LED仍会保持点亮状态。
编程电缆
有两种编程电缆:10针ISP电缆和6针ISP电缆。它们是在线AVR编程的两个主要标准。该程序员不进行JTAG编程
Jumper JP3(USB
JP3电缆附近有一个跳线伸出。当跳线就位(连接两条线)时,这意味着USBtinyISP正在为要编程的设备提供5V电源。如果您不希望为设备供电,则只需将跳线拔出或确保仅在一根电线上即可。
USBtinyISP只能提供5V电压,最多可为该设备提供100mA电流。如果需要更多电源,则应卸下跳线并分别为设备供电。 (或者,如果您喜欢冒险,可以将USBtinyISP重新编程为从USB端口要求500mA而不是100mA,但是如果您不知道该怎么做,建议您不要这样做。)
版本USBtinyISP 1.0会以5V电平将数据发送到设备,无论是否为设备供电,因此请确保其符合5V规范! (请注意,有2个1.5K电阻与数据线串联以提供保护)
版本2.0(几乎可以肯定是您所拥有的)使用了电平转换器,因此,如果跳线不在位, ,它将使用任何目标电压,对于您的低压设备来说要好得多!
因此,如果您的设备需要以3.3V的电压运行,则不要跳线就位!
将其用作SPI接口
USBtinyISP可以用作“通用” SPI设备。查找如何使用此示例的最佳位置是下载avrdude源代码并阅读usbtiny。c
此处是提交的使用c ++在Linux下使用示例的示例。谢谢Matt D!
驱动程序
AVR编程器和SPI接口
Windows 7、8和XP
在您使用之前插入板子,您可能需要安装驱动程序!
点击下面下载我们的驱动程序安装程序
下载Adafruit驱动程序安装程序(v2.0.0.0)
下载并运行安装程序
运行安装程序!由于我们也捆绑了SiLabs和FTDI驱动程序,因此您需要单击许可证
选择要安装的驱动程序:
默认情况下,我们安装 Feather 32u4 , Feather M0 , Flora 和 Trinket/Pro Trinket/Gemma/USBtinyISP 驱动程序。
您还可以选择安装 Arduino Gemma (不同于Adafruit Gemma!),Huzzah和Metro驱动程序
单击 Install 进行安装
下一步,将设备插入开放的USB插槽。您应该得到以下弹出窗口:
已安装驱动程序!现在转到设备管理器(“开始”菜单-》“设置”-》“控制面板”-》“系统”-》“硬件”)并查找设备:
Mac OS X和Linux
不需要驱动程序。
AVRDUDE
将编程器与AVRDUDE结合使用
AVRDUDE是一种非常流行的命令行程序,用于对AVR芯片进行编程。 Avrdude 5.5及更高版本具有对USBtinyISP的内置支持!在Windows和Mac上查看有关如何安装正确版本的 avrdude
的说明,以测试 avrdude 是否正常工作,请打开命令行并插入设备后运行命令 avrdude -c usbtiny -p m8 (绿色LED点亮)。
您应该获得该响应,这意味着它与程序员进行了通信,但找不到一个连接的芯片。
如果找不到程序员,则会收到以下响应:
您可以尝试将其拔出并重新插入(重置可能会有所帮助)或检查驱动程序是否已安装等。
如果将编程器连接至目标板(例如attiny2313目标板)并运行 avrdude -c usbtiny -p t2313 ,则应获得以下内容,表明它已与芯片正确通信。
使用起来很简单,只需指出程序员身份即可。 port选项将被忽略,因为它始终使用USB。
您可以使用 -B 选项指定ISP速度。默认情况下,该值为10,表示100KHz时钟,这对于目标时钟速度》 500KHz来说是好的。如果希望目标频率》 4MHz的高速时钟速率(400KHz),可以使用“ -B 1 ”加快编程速度。要根据延迟值计算SPI频率,请使用以下公式:
SPI时钟频率,单位KHz = 1000/(1.5+ B ),其中 B 是延迟值。
通常,时钟频率至少应比目标时钟频率大4倍。如果遇到时钟问题,请尝试使用“ -B 32”,它甚至可以处理128khz时钟。
无法使其正常工作吗?不用担心,论坛上会提供帮助!
对于Windows 》
有关如何安装WinAVR的教程,请查看此页面,其中包含逐步说明。确保您获得2007年12月20日发行的版本或更高版本。那个拥有avrdude 5.5并带有usbtiny支持!
别忘了也安装驱动程序(并查看驱动程序页面以获取更多信息)。
对于Mac OS X
有关如何设置Mac进行AVR编程和开发的教程,请查看
如果您安装了AvrMacPack,它将随Avrdude 5.5一起提供,并且开箱即用支持usbtiny!
否则,如果已安装OSX-AVR,请完成以下步骤。
从下载页面获取avrdude zip文件。
替换 avrdude 和 avrdude.conf ,无论您在何处安装它们,可能是/usr/local/bin 和/usr/local/etc ,但不一定取决于您的开发系统!
要查找安装avrdude的位置,请在 Terminal 窗口中键入哪个avrdude ,然后将弹出目录。要移动文件,请假设您的新 avrdude 二进制文件位于您的名为 usbtiny-avrdude 的文件夹中,键入 mv〜/usbtiny-avrdude/avrdude 主目录。要找出conf文件的位置,请在 Terminal 窗口中输入 avrdude -v 。对 avrdude.conf 做同样的事情。
(当然要备份旧版本。)
关闭终端并打开一个新终端。如果键入 avrdude -c usbtiny -p t2313 (未插入usbtinyisp),则应显示找不到USB设备0x1781/0xc9f ;否则,请检查以确保正确地替换了avrdude和avrdude.conf。
现在在此处阅读有关如何使用avrdude的信息!
如果仍然无法使用,则应从可保证的源代码中进行编译。
对于Linux
对于本教程有关如何设置Linux机器进行AVR编程和开发的信息,请查看此页面,其中包含逐步说明。确保获得avrdude 5.5版本或更高版本!
如果收到此响应,则说明USB出现权限问题。您可以以root用户身份运行。。。.
感谢友好的用户,这里有一个快速修复程序,因此您不必以超级用户身份运行它:
放置在udev中的规则/etc/udev/rules.d/(或您希望发行的任何地方)中的新规则文件(命名为您想要的名称)将正确设置USBtinyISP的权限。
SUBSYSTEM ==“ usb”,SYSFS {idVendor} ==“ 1781”,SYSFS {idProduct} ==“ 0c9f”,GROUP =“ users”,MODE =“ 0666”
SUBSYSTEM ==“ usb”,SYSFS {idVendor} ==“ 1781”,SYSFS {idProduct} ==“ 0c9f”,GROUP =“ adm”,MODE =“ 0666”
取决于您的发行版
(一行!)应该可以解决问题。 Sane的行为与
允许普通用户访问扫描仪非常相似。
另一个用户建议:
给出的udev示例不起作用在某些系统上,因为不建议使用SYSFS参数。以下规则适用于最新的Ubuntu系统,并且可能应适用于其他较新的Linux系统:
SUBSYSTEM ==“ usb”,ATTR {product} ==“ USBtiny”,ATTR {idProduct} = =“ 0c9f”,ATTRS {idVendor} ==“ 1781”,MODE =“ 0660”,GROUP =“ dialout”
AVRStudio
最新的AVRStudio支持AVRDUDE,因此您不需要桥接。此页面可供参考
AVRISP/STK500v2兼容桥
已经有很多用于对AVR进行编程和调试的优秀软件,例如AVRStudio(Atmel的官方开发软件)。但是,AVRStudio只真正支持STK500和AVRISP程序员(官方程序员)。
由于您可能想使用AVRStudio的次数很多,因此我编写了一些软件胶水,使您可以使用USBtinyISP在STK500/AVRISP兼容模式下。
注释
这时几乎所有AVRISP(STK500v2)功能都被仿真。
由于硬件限制,根本没有实现振荡器校准。
AT89编程未经测试,并且可能不起作用。
字模式闪存编程未经测试(尽管如果有人告诉我可以做到这一点的芯片,我将对其进行测试)。/li》
模拟ISP时钟速度设置,尽管速度不是‘true’。也就是说,400KHz ISP时钟仅意味着最多将以400KHz时钟。实际上,由于程序员处理USB东西,它通常会变慢。
对于一般开发,我强烈建议使用avrdude,因为这会慢一些,并且可能会更脆弱。
请注意,该软件为Alpha版。感谢您的报告,评论和建议!
(在论坛中发布)。
如果您发送错误报告,请告诉我您使用的是哪种芯片,具体是什么失败。
第1步。COM桥
通常要模拟的AVRISP通过串行(COM)端口连接到PC。这里的窍门是安装COM桥,这是一个软件,它使两个虚拟COM端口相互连接,因此当您写入其中一个时,它就会出现在另一个端口上。兼容性软件位于一个COM端口上,假装是AVRISP,而AVRStudio软件则在另一个端口上,以为它已连接到正版编程器!
您只需安装一次该软件。
从sourceforge下载免费的com0com桥。确保获取二进制版本而不是源代码版本。
保存,提取并运行安装程序
单击下一步
重要!取消单击CNCA0 《-》 CNCB0复选框!
启动设置命令提示符
您可以输入帮助以获取命令列表。
我们要安装两个端口,首先检查设备管理器(开始-》设置-》控制面板-》系统-》硬件)
在端口下,您会看到一个COM端口列表。我们要创建的两个虚拟端口都必须在COM1和COM9之间。似乎只使用了COM1。
键入 install PortName = COM2 PortName = COM6 ,将COM2更改为COM3或COM4(如果已使用其中任何一个)。第二个端口应该是COM5和COM10之间的任何端口。跟踪这些端口,因为以后需要引用它们。
一旦您按回车键,Windows就会弹出一个“发现新硬件”向导,因为它认为还安装了两个COM端口。
选择“不,这次不”,请单击下一步
选择“自动安装”,然后单击下一步。
您可能需要执行两次,每个COM端口一次。
下一步,再次检查设备管理器,新端口应该已经显示
步骤2。安装AVRStudio
或您将要使用的任何STK500软件看着
第3步。下载USBtiny500
从下载页面获取。这是我们提供桥接的软件。
安装该软件并运行USBtiny500。
从使用com0com制作的一对COM端口中选择一个。如果选择了不可用的一个,则会收到以下警告:
该软件会记住您选择的COM端口,因此您只需要执行一次即可。
接下来,该软件将寻找USBtinyISP,如果找不到,它将显示:
但是如果同时找到COM端口和编程器,会收到一条准备好的消息:
下一步,启动AVRstudio,然后打开编程器通讯面板。选择AVRISP,然后从与com0com配对的端口中选择另一个COM端口。 AVR Studio会记住此选择,因此您只需要做一次。
您应该能够通过软件与目标进行通信。如果您在与芯片通信时遇到问题,请检查电源,是否需要晶体或时钟以及ISP时钟不太快!您可以在AVR Studio的“董事会”标签中更改ISP时钟:
通过桥接器传递的最新消息显示在usbtiny控制台中:
下载
Windows驱动程序
对于Windows,我们使用改良的LibUSB驱动程序。您可以在此处下载它:
使用libusb v1.12构建的Windows USBtinyISP签名驱动程序。下面的Windows二进制文件是为此驱动程序构建的。如果您想使用最新的WinAVR,请使用此
出于历史原因,我们有一个:libusb v1.10内置的Windows USBtinyISP驱动程序。
将此用于较旧的WinAVR。除非必须与绑定到libusb v1.1的旧版本软件交互,否则不要使用它
AVRDUDE
如果要对AVR微控制器进行编程/刷新,AVRDUDE是推荐使用的软件,以下是带有修补程序和USB支持的编译二进制文件:/p》
最新版本的WinAVR具有支持usbtinyisp的avrdude v5.5,因此只需安装它即可!(详细说明在这里)
请确保您没有安装v1.12驱动程序而不是v1.10。否则,您将遇到问题。
Mac OS X PPC二进制版本v5.4
将 avrdude.conf 复制到/usr/local/etc 和 avrdude 进入/usr/local/bin
Mac OS X Intel二进制版本v5 .4
将 avrdude.conf 复制到/usr/local/etc 中,将 avrdude 复制到/usr/local/bin
M的修补源代码ac,Linux或其他unixy机器。
您可以直接使用支持usbtiny的avrdude 5.5!详细说明在这里
要为自己的计算机编译avrdude,请首先确保已安装 libusb (和 libusb-dev )。您可以使用 fink (在Mac上)或 apt-get 或从sourceforge下载它。无论如何,只要尝试获取最新版本即可。
接下来,解压缩源代码并打开一个终端窗口。 cd 到目录,然后键入 。/configure 或 sh configure ,然后寻找一条滚动的行,其中包含 -lusb中的usb_get_simple_string 。。.是。如果看到它,则说明已正确检测到libusb。
有时,由于未知原因,已安装libusb,但未检测到它。在这种情况下,完成配置后,在同一目录中编辑 Makefile 。
查找以 LIBUSB = ,然后将其更改为 LIBUSB =“-lusb” (如果您使用的是MacOSX计算机),请将其更改为 LIBUSB =“-lusb -framework CoreFoundation -framework IOKit”
下一步,编辑 ac_cfg.h 并查找/* #undef HAVE_LIBUSB */行,并在其下方添加 #define HAVE_LIBUSB 1
如果您然后 。/make 然后 sudo 。/make install ,则会将 avrdude 放在 /usr/local/etc
《中的/usr/local/bin 和 avrdude.conf div》
v2.0的硬件/固件文件
最新!
固件基于USBtiny代码origi
EagleCAD原理图和电路板文件
和原理图图像
压缩所有v2.0固件文件(相关的文件,包括预编译的hex文件位于 spi 子文件夹中)。
使用预编译的.hex文件和Makefile作为您的编译器可能无法将代码压缩到适合芯片的大小。根据需要在 spi 中修改Makefile,然后在spi文件夹中键入“ make fuse flash”。除此之外,您必须靠自己。
您必须使用avr-gcc v3.4.6和avr-libc v1.4.4作为Winavr-20060421 的一部分来编译固件。请 不要在论坛上发帖,寻求有关如何编译或刻录固件的帮助。
请注意,该固件包含Adafruit VID/PID,而该固件是开放源代码,而VID/PID不是。要在自己的产品中使用,请替换usbtiny.h中的这些值。您可以在http://www.usb.org/developers/vendor/
v1.0的硬件/固件文件
设计不是单面的,而是封闭的:您将需要焊接在顶部的5根电线。我已经成功地进行了色粉转移蚀刻。
此固件基于
EagleCAD原理图和电路板文件
PNG格式的原理图
压缩所有v1.0固件文件(基本上是修改过的USBtiny-spi)
您必须使用avr-gcc v3.4.6和avr-libc v1.4.4作为一部分Winavr-20060421 来编译固件。请 请勿在论坛上发帖,寻求有关如何编译或刻录固件的帮助。
v1.04是可能的
用于AVR Studio的USBtiny500兼容桥
下载最新的安装程序
和源代码
帮助!!!
常见问题问题
我正在运行avrdude并收到“初始化失败,rc = 1“
avrdude的此响应表示可以与编程器进行对话,但是编程器不能与芯片进行对话。
检查:
您的10针和6针电缆是否正确?与手册中的图片进行比较。
您是在为芯片供电(已安装跳线)还是通过VCC插头引脚为编程器供电?如果没有安装跳线,则缓冲芯片(74ahc125)至少需要目标提供2.5V电压。
如果将芯片编程为具有非常慢的时钟速度,请使用-B标志,如图所示这里放慢芯片。 “ -B 32”在大多数情况下都可以胜任,但是您可以像“ -B 250”一样慢。
芯片是否供电?必须连接AVCC,VCC和所有GND引脚。
是否有时钟或晶体(如有必要?)
是否保留了MISO/MOSI/SCK/Reset引脚?从切换? (即是否已加载)
目标芯片是否需要晶体?晶体振荡吗?
您确定其接线正确吗?用示波器观察芯片上的复位线,它应该上下闪烁。观察SCK引脚,并确保看到8脉冲时钟。检查您没有交换MISO/MOSI。等等。
是否需要“跳变”输出1.5K电阻?如果您不使用USBtinyISP进行SpokePOV通信,则推荐这样做,尤其是对于目标芯片连接到MISO/MOSI/SCK线的芯片。在大多数情况下,请查看焊接说明的结尾
,您的编程器工作正常,检查电缆和引脚,并且目标设备已正确连接。
我们从来没有遇到过USBtinyISP,它可以与计算机进行通讯而不是与芯片进行通讯,而套件是有缺陷的。总是很坏的芯片,或者是接线,时钟,比特速度,电源或输出电阻问题。
不适用于USB 3端口
我们注意到USB 3端口有时比USB 2敏感一些。在这种情况下您可以尝试更改电缆(请参阅本文)或在USBtinyISP和您的计算机之间放置一个日常的USB集线器。
它不起作用!检查:
所有零件是否正确安装?
是否有任何冷焊点或桥梁?
电缆是否正确连接?
电缆是否向后? (红色导线应在#1位置)
绿灯是否亮起,表明USB枚举成功? (请注意,在某些Mac电脑上,只有在Avrdude与程序员交谈后,绿灯才会亮,很奇怪!)
是否已安装驱动程序(Windows)?
设备是否已插入设备?目标板? (即它是否已连接至芯片)
目标芯片是否已供电?
目标芯片是否需要晶体?晶体振荡吗?
您是否要向已通电的设备提供5V USB电源?
在发布到论坛之前!
我正在运行avrdude,并且收到“ USB读取错误:预期为4,得到-1” (或类似的内容)
有priv的问题,请查看usbtinyisp avrdude linux说明以获取更多信息。
我的64位计算机似乎无法正常工作!
某些非常旧的工具包出现了此问题,由于功能强大的助手,如果已将补丁提交给avrdude项目,如果您想自己修复它,只需将avrdude中 usbtiny.c 中具有
sizeof(res)
的行替换为
4
此问题在2010年左右得到修复
我正在无法为此项目编译/刻录芯片。。.
使用预编译的.hex文件和Makefile文件,因为较新的avr-gcc编译器可能无法将代码压缩到适合芯片的大小。根据需要修改 spi 中的Makefile,然后在spi文件夹中键入“ make fuse flash”。除此之外,您可以自己操作!
我正在运行avrdude,并且收到“找不到USB设备0x1781/0xc9f”
此响应表示无法找到程序员。有许多可能的原因:
如果使用的是最新的WinAVR(它是用旧版本的libusb驱动程序库构建的),则必须使用v1.10驱动程序。卸载已安装的驱动程序,并确保安装正确。
尝试将其拔出并重新插入
确保已安装驱动程序(仅Windows)。
li》
确保绿色LED点亮(表示其已通电并已执行USB枚举)。
确保已安装libusb,并且它是正确的版本。 (linux/mac)
确保已用下载页面中的旧版本替换了 libusb0.dll 的旧版本。
确保已安装当目标已经通电时,不通过USB为目标供电。
如果对usbtinyisp芯片进行了编程,请确保正确设置了保险丝。
我在从头开始构建此项目时遇到了麻烦。。.
,如果您无法自己完成此项目,建议您购买一个工具包。这不是一个简单的调试项目!
我正在运行avrdude,我正在运行收到“在avrdude.conf上出错:370无法识别的字符:‘u’”
这意味着您正确替换了 avrdude.conf ,但没有替换 avrdude.exe (或在Mac下)/linux,只需 avrdude )在您的计算机上进行搜索,并确认您已使用下载页面中的修补程序版本替换了avrdude.conf的任何副本。
我正在运行avrdude,却收到“ avrdude:找不到程序员ID“ usbtiny” 表示您未使用修补程序版本替换 avrdude.exe (或在Mac/Linux下,仅 avrdude )。在计算机上搜索 avrdude.exe ,并确认已使用下载页面中的修补程序版本替换了avrdude的任何副本。
责任编辑:wv
全部0条评论
快来发表一下你的评论吧 !