基于AVR编程器断开ISP引脚接头上的VCC引脚方案设计

描述

最近,我一直在使用许多AVR芯片,并且在使用商业AVR编程器将这些代码刻录到这些芯片上时,遇到了一些问题。因此,我在思考为什么不构建自己的AVR程序员并摆脱所有这些麻烦。而且,为什么不根据我的需要对其进行自定义。

今天,我们将看一下该板的设计方式,并且我将带您了解每个组件在该设计中的工作方式。

如果您只有AVR芯片,则需要对其进行编程。最常见的方法是通过ICSP(在线串行编程器)。简单来说,这是一块具有6个引脚的电路板,通常具有0.1英寸的间距接头,可以通过SPI协议与您的AVR芯片通信。另一方面,它也可以通过USB协议与您的PC通信。因此,在使用avr-gcc编译您的C代码之后,编程器板将直接将其发送并发送到您的AVR芯片。您可以将其视为PC和AVR芯片之间的桥梁。

连接器

我为AVR程序员进行了研究,发现了很多很棒的资源。这个特别引起了我的注意。这是由Ali Shtarbanov构建的FabOptimus AVR编程器,它是在prof构建的FabISP编程器的基础上构建的。麻省理工学院媒体实验室的尼尔。FabOptimus文档非常好,如果您是新手,则很容易遵循。我决定对FabOptimus AVR编程器进行非常小的修改,因为它没有电源指示灯LED,我想添加一个!

连接器

 

PCB设计与电路深入分析

首先,我们需要了解该板的设计方式以及该电路中每个组件的作用。

连接器

该AVR编程器基于ATtiny44 AVR芯片,默认情况下该芯片为空白,没有代码或任何东西上传到它,就像您购买的任何微控制器芯片一样。由于我们正在构建一个AVR编程器,因此我们需要向ATtiny44芯片上载一个非常特定的固件,以确切说明它应该遵循和执行的角色。简而言之,它会将一些十六进制文件发送到其他AVR微控制器。该固件称为FabISP固件(稍后会详细介绍)。

因此,我们需要能够将FabISP固件上载到编程器AVR芯片,然后禁用对其进行重新编程的可能性。

连接器

为了能够将FabISP固件上载到编程器AVR芯片,我们需要将其复位引脚拉至LOW(0 V)。并在对其编程后禁用对其进行重新编程的可能性,我们需要将其复位引脚拉至始终为高电平(5伏)。因此,我们需要以默认情况下复位引脚为HIGH(5伏)的方式设计电路。但是,一旦连接了另一个编程器,它就可以将编程器AVR芯片复位引脚拉至LOW(0 V)。这就是为什么我们在复位引脚上使用一个10k欧姆上拉电阻的原因。

您会注意到,ATtiny44芯片复位引脚通过一个0欧姆的电阻连接到ISP引脚接头连接器上的RST引脚。将固件上传到ATtiny44芯片后,我们将移除该零欧姆电阻,以禁止再次对板进行重新编程的可能性。

连接器

由于我们需要使用编程器板对其他AVR板进行编程,因此我们的编程器板将需要能够向需要编程的其他AVR板提供复位信号。因此,我们还将ATtiny44芯片的I / O引脚连接到ISP引脚标头的RST引脚,以将复位信号提供给我们需要编程的其他AVR芯片。

连接器

为了减少电源产生的任何高频噪声或电压降,我们在VCC(5伏)和GND之间使用1uf去耦电容。

连接器

我们还使用20MHz谐振器作为ATTiny44芯片的时钟源,而不是内部时钟,以实现更高的精度。

连接器

我们使用两个3.3v齐纳二极管作为削波器,以将电压从5v调节至3.3v。根据V-USB和USB规范,USB数据线上的电压不应超过3.3v。另外,我们在USB的D-引脚上使用了一个1.5kΩ的上拉电阻,以使其在主机侧被识别为低速设备。

连接器

最后,我对原理图进行了简单的编辑。我在板上添加了电源指示灯LED。

最佳做法是断开ISP引脚接头上的VCC引脚,以确保AVR编程器不试图为要编程的电路板供电。我们要编程的电路板应提供自己的电源。如果我们没有断开ISP接头上的VCC引脚,则AVR编程器和被编程的电路板将从USB端口(从您的计算机)汲取电流。如果您的USB端口不能提供那么多电流或在任何短路情况下,都可能对您的计算机造成很大的问题。
       责任编辑:pj

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

全部0条评论

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

×
20
完善资料,
赚取积分