风筝
发表于: 2020-2-19 11:55:05 | 显示全部楼层

本文制作的是一款U盘大小的UPDI编程器,用于使用Arduino IDE开发环境对Microchip的0系列和1系列ATtiny芯片进行编程:

updiprogrammerstick.jpg


编程器采用的是ATmega328P控制器,实际上也可以认为是Arduino Uno的一种USB变体,因此您也可以将其用作小型Arduino Uno。


介绍

从2016年开始,随着ATtiny87和ATtiny167的发布,Microchip开始推行新系列的ATtiny芯片,称为ATtiny 1系列,随后在2018年推出了成本更低的ATtiny 0系列。它们旨在作为早期ATtiny芯片(如ATtiny85和ATtiny84)的替换。


Spence Konde和他的合作者为新的ATtiny芯片开发了一个新的Arduino内核,称为megaTinyCore。新芯片还使用了一种称为UPDI的新编程方法,Spence Konde在他的GitHub存储库上描述了如何通过在Arduino Uno或其他基于ATmega328的Arduino板上安装ElTangas的jtag2updi程序来制作UPDI编程器的方法。


我认为为这些设备配备一个紧凑的编程器会​​很不错,因此设计了基于ATmega328控制器的USB编程器,可以直接将其插入计算机的USB插槽。


除了UPDI编程所需的三个引脚外,该板还将ISP引脚带到板边缘的焊盘上,以允许您安装引导加载程序。


电路连接

以下是UPDI编程器的电路,大致反映了PCB的布局:

updiprogrammerstick.gif


USB接口是FTDI FT231XQ-R,采用20引脚小型QFN封装,而ATmega328P则采用28引脚QFN封装。晶振为16MHz 3.2 x 2.5mm SMD类型,需要18pF电容,所有电容、电阻和LED的尺寸均为0805。USB插头是采用直插形式。对于三针插头,我使用了直角插头,但您可以使用插头插座,直接连接电线或使用任何合适的0.1英寸间距的连接器。


如果要将该板用作UPDI编程器,则不焊接0Ω电阻,而是将电线连接到其位置,以便以后可以方便地卸下。如果要将该板用作迷你Arduino Uno,请焊接0Ω电阻。


焊接安装

由于有两个QFN封装,除非您具有SMD工作经验并且可以使用热板或热风枪,否则我不建议您尝试制作此PCB。


焊接QFN封装的方法如下。借助于照明放大镜,我在每个焊盘上放了一小滴焊锡膏,然后用镊子将封装定位。然后,我用Youyue 858D +热风枪在250°C下加热了焊盘,直到看到熔化的焊料在每个包装的边界周围闪闪发光。我以相同的方式焊接了其余的SMD组件,最后使用传统的烙铁焊接了插头和USB连接器。


安装软件 - 引导程序

第一步是使用ISP编程器在ATmega328的闪存中安装引导加载程序,以便随后可以使用USB端口上载程序。此步骤无需将USB插头安装到板上。

●   如果还没有这样做,请在电路板上0Ω电阻器的位置焊接导线。这会将复位线连接到处理器。

●   将电线焊接到板上的MOSI、MISO、SCK和RESET焊盘上,然后将其连接到插头插座,您可以将插头连接到:

updistickannotated.jpg


●    将3针插头连接到UPDI编程器PCB顶部的三个端子,这样就可以将GND和5V连接到板上。

●    通过提供的六根线将ISP编程器连接至开发板。

我使用了Sparkfun的Tiny AVR编程器板[6]。或者,您可以按照“示例”菜单上“内置示例”部分中的ArduinoISP的说明使用Arduino Uno作为编程器。

●    在Arduino IDE中,从Boards菜单上的Arduino AVR Boards部分中选择Arduino / Genuino Uno,然后将Programmer设置为USBtinyISP(如果您使用的是Arduino Uno,则将其设置为ArduinoISP)。

●    选择Burn Bootloader以将引导加载程序上载到板上。

如果成功,则您的电路板可以工作正常,并且您已经成功安装了引导加载程序。如果失败,请检查连接,并检查PCB上是否有短路。


检查USB接口

如果尚未将USB插头安装到板上,请确保将其插入板的顶部。

将UPDI编程器插入计算机,并检查USB端口是否出现在Arduino IDE的“Port”菜单上。


作为一项可选的附加检查,您现在可以尝试使用Sketch菜单上的Upload选项通过USB端口将Blink示例程序上传到板上。如果一切正常,UPDI Programmer Stick上的红色LED应当闪烁。如果失败,请确保已按照上一步中的说明上载了引导加载程序。


上载UPDI编程器

●    从以下网址下载UPDI编程器草图:https://github.com/SpenceKonde/jtag2updi

●    浏览到下载位置,然后打开jtag2updi文件夹。

●    打开jtag2updi.ino草图并将其上传到Arduino。

.ino文件本身为空;这是故意的-实际代码包含在同一文件夹中的其他文件中。

●    取消先前焊接的复位线,该复位线位于电路板上的0Ω电阻位置。

●    UPDI编程器电路板现在可以用作UPDI编程器。


对0系列或1系列ATtiny芯片进行编程

对器件进行编程的过程如下:

●    如megaTinyCore安装中所述,在Arduino IDE中安装Spence Konde的megaTinyCore

●    在Arduino IDE中,从Boards菜单的megaTinyCore部分中选择适当的系列,并从Chip菜单中选择相应的元件。

●    从“Programmer”菜单中选择jtag2updi(megaTinyCore)

●    将UPDI编程器棒连接到正在编程的芯片,从“Port”菜单中选择其USB端口,然后选择“上传”。


UPDI编程器棒包含一个与UPID引脚串联的4.7kΩ电阻,因此目标板上不需要一个电阻。


例如,以下是使用UPDI编程器通过Arduino Blink示例程序在迷你面包板上编程一个ATtiny412:

updiprogramming.jpg


制作PCB

从GitHub获取PCB的Eagle文件,以便您可以自制电路板,网址为:https://github.com/technoblogy/updi-programmer-stick

跳转到指定楼层
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题 32 | 回复: 41



手机版|

GMT+8, 2024-12-21 20:34 , Processed in 0.048548 second(s), 8 queries , Gzip On, MemCache On. Powered by Discuz! X3.5

YiBoard一板网 © 2015-2022 地址:河北省石家庄市长安区高营大街 ( 冀ICP备18020117号 )

快速回复 返回顶部 返回列表