VUSBTiny AVR SPI编程器的制作

电子说

1.3w人已加入

描述

步骤1:功能和零件

*来自usbtiny isp的编程逻辑,成熟的avr-dude支持

*小占用空间

*最少的组件

*为目标设备供电

请注意,目标mcus的io线不受保护。您可以根据框架http://www.v-usb上的工作,在SCK和MOSI上添加1k-2k电阻,以防止可能的错误连接

引用

.obdev.at/vusb/

usbtiny isp http://www.xs4all.nl/~dicks/avr/usbtiny/

零件清单

* attiny45/85(85 )更容易实现)

* 3.6v齐纳二极管(1n747,BZX79,。.避免使用1W类型)

* 68ohm电阻x 2

* 1.5K电阻

*迷你面包板170结点

* usb电缆(美元商店的usb打印机电缆很好)

* 1k/2k电阻,用于io线路保护(可选)

需要工具

*一个工作的AVR编程器(是的,这是一个陷阱22,我们需要一个来实现)

*正常工作的avr编程环境

步骤2:面包板布局,原理图和构造

编程器

编程器

构造

*遵循面包板布局,可能没有组件,3个电阻器,2个二极管,1个盖帽和一个8针的单片机。

*得到一个美元lar shop usb打印机电缆切断了打印机的一端,将有4条裸露的电线,固定并使其成为4针公接头,我们将用它来连接面包板。请查阅原理图以了解布局和引脚分配(J1)。

*注意二极管的极性。

构建并刷新项目

该项目是内置有带有avr-gcc工具链的linux ubuntu透明框。假设您已经有这样的环境,或者您可以从互联网上找到如何进行设置的方法。源代码是从继承许可的gnu gpl v2。

源代码遵循v-usb推荐的约定,您可以下载源软件包vusbtiny.tgz并解压缩到项目目录中。在您的源目录中,有一个main.c,这是我修改过的usbtiny程序员的版本。还有一个usbdrv子目录,其中包含v-usb层。在构建时,请遵守上述两个项目的许可条款。我关于程序员逻辑的资料是基于Dick Streefland版本而不是ladyada版本(尽管它们几乎相同)。

对于那些没有构建太链的人,可以使用以下代码二进制

单击下载vusbtiny.hex

并使用avrdude来刷新固件

avrdude -c usbtiny -p t45 -e -V -U flash:w :usbtiny.hex

(如果您的设备是tiny85,请在此处下载-p t45 w/-p t85)

源文件

点击下载vusbtiny.tgz

将源程序包保存到工作目录中

tar -zxvf vusbtiny.tgz

*做cd vsubtiny,更改为vusbtiny工作目录

*根据要使用的芯片为目标设备调整makefile。即PROGRAMMER_MCU = t45或t85

*做make

*附加您喜欢的ISP程序员

*修改makefile并在需要时更改您的avrdude参数。当时的股票是USBTiny程序员。即AVRDUDE_PROGRAMMERID = usbtiny

*通过make install刷新固件

刷新固件后,我们需要正确设置保险丝,在此项目中将引脚1重置为io

* v-usb层要求用于USB定时的ppl时钟

*禁用复位引脚,因为我们需要将其用作io

avrdude -c usbtiny -p t45 -V -U lfuse:w :0xe1:m -U hfuse:w:0x5d:m -U efuse:w:0xff:m

此设置禁用了通过5V SPI的进一步编程,因为我们需要IO的RESET引脚(pin1)。您将需要联系HVSP程序员来恢复保险丝。

步骤3:用法和应用

直接在面包板上闪烁

如果您正在使用vusbtiny闪烁8针AVR设备,则只需将目标设备按在编程器顶部即可设备。编程器的设计使编程引脚与目标引脚匹配。虽然有一个技巧,但是您需要隔离编程器mcu上的引脚2和3,因为它们是连接到PC的USB D +和D-引脚。我使用透明胶带切割以实现此目的,您可以在照片上看到它。下面显示的是在tiny45上的tiny13v“骑乘”,准备接收固件。

ISP通过跳线闪烁

以通过ISP编程目标电路(系统内编程),则需要ISP电缆。在这里,我没有使用标准的2x3或2x5排针。取而代之的是,我使用的1x6跳线对面包板更友好,您可以通过将它们映射到J2来制作2x3或2x5引脚接头,如面包板布局和示意图所示。下图显示了一个tiny2313准备通过ISP进行刷新。

故障排除

*无法刷新固件?检查您的原始程序员,可能需要通过avrdude中的-B标志来调整时间。尝试读取芯片1st,可能是保险丝坏了,可能是您的芯片需要外部时钟信号。您可能需要将芯片重新设置为默认的第1个。

*如果使用不同的io引脚,检查代码和连接,请检查连接

**您可以用500mw,400mw类型的齐纳二极管替换

*您可以尝试将R3值减小到1.2K或更小

*您更有可能遇到avrdude的计时问题,请尝试-v标志avrdude,使用较短的USB电缆都有帮助
        责任编辑:wv

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分