如何使用 Atmel Studio 或 MPLAB X 通过 USBASP 或 AVRISP MKII 来进行编程
扫描二维码
随时随地手机看文章
小型编程接口(TPI)
Atmel® 微型编程接口(TPI)仅在部分低端 Atmel AVR® 微控制器上配备,它使外部编程器能够访问设备的非易失性存储器(NVM)。该接口可访问设备锁定位、程序闪存以及签名、配置和校准部分。
TPI 可通过三个引脚进行接入:
•复位:TPI 使能输入
•TPICLK:TPI 时钟输入
•TPIDATA:TPI 数据输入/输出
因此,实际上只有 AVR ATtiny 系列微控制器中的极少数型号采用了 TPI 编程方式。以下是这些型号的列表。
•ATtiny4
•ATtiny5
•ATtiny9
•ATtiny10
•ATtiny102
•ATtiny104
•ATtiny20
•ATtiny40
这些 AVR ATtiny 器件可以通过 ATMEL 提供的工具进行编程,也可以直接使用 USBASP(其主要采用 ATMEGA8A)来进行编程。
ATMEL STUDIO 和 MPLAB X 都支持 ATtiny 控制器程序的开发以及设备的编程操作。
我们既可以使用 AVRISP MKII 或 USBasp 来对设备进行编程。此外,还有其他第三方供应商提供的集成开发环境和编译器可供选择。同样,也有来自 MICROCHIP 或其他供应商的其他工具可供使用。
在本项目中,我们将学习如何使用 TPI 协议通过 ATMEL STUDIO、MPLAB X 开发环境以及 AVRISP MKII 和 USBasp 调试器来对 ATtiny 芯片进行编程。该项目的范围仅限于 ATtiny4/5/9/10 控制器。
ATMEL STUDIO 与 AVRISP MKII:
这是开发和编程 ATtiny 芯片最简单直接的方法之一。只需用 C 语言或汇编语言编写代码,并使用包括 AVRISP MKII 在内的多种工具进行编程即可。
ATtiny4/5/9/10 系列芯片有两种封装形式。较为易于操作的是 SOT23-6 封装。我们可以提供一个小型的适配板,用于将 SOT23-6 封装转换为 DIP6 300mil 封装。我们能够轻松获得带有铣削圆柱形引脚的 6 引脚芯片基板。您也可以从这里找到类似的板子,它同样包含原理图和布局文件。
要使用经过加工的 6 脚集成电路基板,我们还需要在转接器中配备圆形引脚。
这些圆形的插针非常适合用于安装带有 6 脚 IC 底座的集成电路。
其他大多数用于相同目的的设计都使用方形引脚以及与之兼容的方形插头。我们可以将这些方形引脚用于编程、面包板开发以及使用公母跳线。但它们无法适配普通的 IC 底座。由于 6 引脚的 DIP IC 底座常用于光耦合器,所以它很容易获得,并可以直接安装在电路板上。
现在我们已将这些设备安装在 DIP6 型号的 IC 适配板上。丝印上的设备标识是可选的。这样既便于阅读也方便操作。第 1 个引脚有一个白色圆点的标识。
现在我们需要对如何将这些设备安置在编程器与目标集成电路之间做出一些安排。
USBasp编程器使用的是 10 针的 FRC 连接器,而 AVRISP MKII 则使用的是 6 针的连接器。根据所使用的编程器的不同,我们需要决定哪种目标板是适用的。
10 针目标连接器:
上述电路板使用的是与 USPasp 编程器类似的 10 针连接器。许多针脚是未使用的。其优点是我们可以直接将 IC 和编程器连接器插入到这个电路板上进行编程,而且不需要额外的电源。
整块组装好的电路板将会呈现出如下面图片所示的样式。
D3 和 R1 以及仅电源指示灯。D2 和 R2 连接到目标 IC 的 RB2 端口引脚,该引脚在编程时未被使用。这两项功能都是可选的,对于常规操作并非必需。U4 是 6 针目标固定器。在插入目标 IC 时,请注意引脚 1 的位置。两个圆点应匹配,且 IC 底部有额外的切口以便于方向的正确对齐。
6 芯目标连接器:
另外一些程序员使用的是 6 针目标连接器来进行编程。与 10 针连接器相比,6 针连接器仅使用其中的 5 个针脚来进行编程。
R5 和 D1 只是电源指示灯,位于 IC 底部下方,正常运行时并非必需。R3 和 PB2(LED)与 PB2 端口引脚相连。这也是可选的。
组装好的电路板将会是这样的样子。
在上述列表中,有几件事值得注意。
首先,位于 CON6 附近的红色跳线器。如果我们使用的是 AVRISP MKII 或任何带有 6 芯接口的专用 TPI 编程器,那么这个跳线器应处于 TPI 位置。
如果我们使用的是 USBasp 或其他 10 针编程器,那么跳线应处于 ISP 位置。这个跳线是必要的,用于连接 MOSI 或 MISO 信号,而这些信号在 AVRISP MKII 和 USBasp 编程器中的分配方式有所不同。
另外需要注意的是右侧的 PWR_5V 连接器。对于 USBasp 调试器来说,它会为目标设备提供电源,并且不依赖外部电源。但 AVRISP MKII 则需要外部 5V 电压来为目标芯片供电。而 AVRISP MKII 只会提供编程信号,不会为目标芯片供电。
基于上述原因,我们在目标设备上添加了 PWR_5V 接口。我们可以通过 4 针或 5 针接口为板子供电。仅使用 5V 和 GND 电压。
我们可以插入任何与之兼容的具有 4 或 5 个针脚的 USB 接口扩展板,其底部接口的间距为 2.54 毫米。
要将 USBasp 调试器连接到这个 6 针的目标板上,我们需要一个 10 针到 6 针的转换器。
在将 10 针转 6 针转换器插入电路板时,请务必注意,如果连接器没有用于正确对齐的锁定缺口,请不要强行插入。信号名称已标注在电路板底部,以便我们能够轻松匹配连接。我们还需要将跳线插入 ISP 侧,以确保正常运行。
在使用 AVRISP MKII 时,红色跳线应置于 TPI 一侧,并且我们需要提供额外的电源(+5V 和 GND)。
确保目标 IC 的安装方向与目标适配板上的引脚 1 对齐。
ATMEL STUDIO 与 AVRISP MKII:
打开 ATMELE STUDIO 并编写 LED 闪烁程序。编译该程序。选择编程器为 AVRISP MKII。提供 5V 电源和 GND 线。现在我们可以擦除、编程闪存或锁定位等操作。
ATMEL STUDIO 与 USBasp:
有相应的步骤可以将 USBasp 设备设置为默认编程器,并使其出现在列出的设备列表中。但我使用的是 AVRDUDE 以及 AVRDUDESS 这款基于图形界面的工具,而非通过命令行输入命令。
MPLAB X 与 USBasp:
MPLAB X 支持所有采用 TPI 协议的设备。我们可以通过使用 MPLAB X 集成开发环境并进行相应的设备选择来轻松编写程序。
可以通过 USBasp 来选择并编程 ELF 或 HEX 文件。
最佳选择是使用带有 10 脚的 FRC 连接器,这种连接器无需任何额外的转换、跳线或外部电源。
在上述视频中,我们可以看到为 ATtiny10 开发的 RunTiny 游戏正在 ATtiny9 上运行,该设备配备有 128x32 SSD1306 OLED 显示屏、一个按钮以及来自单块锂电池或经过调节的输出电源的 3.3 或 3.2 伏外接电源。
在上述图片中,ATtiny 芯片是安装在 SIP6 上的,而非 DIP6 上,这样可以节省空间。
此外,还为 ATtiny10 设计了《俄罗斯方块》游戏。
这些游戏对于要在资源极其有限的情况下完成编码设定来说,确实是一个巨大的挑战。
本文编译自hackster.io





