本文制作的是一款U盘大小的UPDI编程器,用于使用Arduino IDE开发环境对Microchip的0系列和1系列ATtiny芯片进行编程:
编程器采用的是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的布局:
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焊盘上,然后将其连接到插头插座,您可以将插头连接到:
● 将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:
制作PCB
从GitHub获取PCB的Eagle文件,以便您可以自制电路板,网址为:https://github.com/technoblogy/updi-programmer-stick。
上一篇:使用ATtiny85自制USB Rubber Ducky(橡皮鸭)
下一篇:如何通过使用ISP插头对ATtiny MCU进行编程
设计资源 培训 开发板 精华推荐
- DI-140 - 用于便携式音频播放器的10W适配器,具有锁存过压和过温关断保护功能
- 使用 Nuvoton Technology Corporation 的 W83320S 的参考设计
- NCP13992UHD300WGEVB:基于 GaN 的超高功率密度适配器 300W
- LT3579 的典型应用 - 具有故障保护功能的 6A 升压 / 反相 DC/DC 转换器
- DC2588A-F,基于 LTC2385-16、16 位、5Msps 高速 SAR ADC 的演示板
- TP4056充电模块
- LT8335IDDB 4V 至 16V 输入、-5V 反相转换器的典型应用电路
- 南通大学地图
- DC540A-A,用于 LTC1604CG 通用数据采集板的演示板(高达 333ksps)
- 使用 Microchip Technology 的 TC38C47COE 的参考设计