本网页已闲置超过3分钟,按键盘任意键或点击空白处,即可回到网页

基于树莓派的AVR编程器
发布时间:2021-04-23
分享到:
基于树莓派的AVR编程器
发布时间:2021-04-23
分享到:

该项目是一个简单的电路板,允许使用树莓派的SPI接口对ATMEL AVR微控制器进行编程。它还具有一个接头,可以为树莓派的四个GPIO引脚提供缓冲的输出。

特征:

  • 同时具有6针和10针编程接头
  • 通过在板载接头连接器上安装跳线,可以将+ 5V馈入外部电路
  • 使用由3.3V供电的IC缓冲信号,但可承受5V电压
  • 可以缓冲来自树莓派的GPIO头的最大四个信号

 组件:

  • 印刷电路板(电子零件/其他,电子元器件)
  • 74LVC245(逻辑集成电路/接收器,收发器)
  • 220Ω、10kΩ、1kΩ电阻
  • 100nF圆盘陶瓷电容器
  • 2x3针公头(6针AVR在线编程接头)
  • 2x5针公头(10引脚AVR在线编程接头)
  • 2x13针公头(将其他板卡与Pi一起使用时将该板卡留在原位,请使用带超长引脚的接头连接器)
  • 1x2针公头(仅用于为正在编程的微控制器提供5V电源)
  • 1x3针公头(仅在缓冲来自树莓派或来自树莓派的GPIO信号时才需要)
  • 1x5针公头(仅在缓冲来自树莓派或来自树莓派的GPIO信号时才需要)
  • 编程电缆(6针F到F,或10针F到F;6或10针电缆将编程器连接至带有要编程的AVR部件的电路板)

 制作步骤:

一、项目要求

要使用用于树莓派板的AVR编程器对AVR微控制器进行编程,需要做:

  1. 树莓派(自然)
  2. 用于树莓派板的组装好的AVR编程器
  3. AVR交叉编译器工具链(可选)
  4. 包含linuxspi支持的avrdude程序
  5. avrdude的avrdude_gui前端GUI(可选)
  6. 要编程的AVR微控制器

该项目的接口板具有26针接头,可插入树莓派1 A或B型型号的GPIO接头。将板子插入使用40引脚GPIO接头的A +,B +或2B型时,可能会遇到一些困难。

二、配置树莓派

在树莓派上使用Linux的Raspbian发行版。在Raspbian中,默认情况下禁用SPI接口的内核驱动程序。必须先启用SPI驱动程序,然后才能使用它对AVR微控制器进行编程。

要启用SPI接口,必须在/etc/modprobe.d/raspi-blacklist.conf文件中删除spi-bcm2708的黑名单条目,或使用raspi-config启用SPI接口。

删除SPI驱动程序的黑名单后,必须重新启动树莓派或者是使用中执行命令,即手动加载驱动程序:$ sudo modprobe spi-bcm2708。

三、安装AVR交叉编译器(可选)

要使用树莓派在C中为AVR微控制器编写和编译程序,则需要安装交叉编译器。安装以下软件包以编译要在AVR微控制器上使用的程序:

  • gcc-avr-用于AVR的GNU C交叉编译器
  • binutils-avr-支持Atmel AVR目标的二进制实用程序
  • avr-libc-用于Atmel AVR开发的标准C库

四、 安装AVR编程软件

  • 下载并安装avrdude程序
  • 下载并安装avrdude_gui程序(可选)
  • 下载并安装wxWidgets(avrdude_gui需要)

avrdude_gui是可选的,但它可以使处理avrdude程序接受的所有命令行开关变得更加容易。需要avrdude_gui的0.5(或更高版本)版本,不是原始的0.2版本。

注:

用Python写了avrdude_gui,并使用wxWidgets作为GUI。在处理avrdude中自创建基于原始C ++程序以来已添加的所有功能和选项。并为Python版本分配了版本号0.5,以使其与基于C ++的0.2版本区分开。

五、组装接口板

要组装电路板,建议按以下顺序添加组件:

  1. 所有电阻器
  2. DIP插座(建议),或74LVC245
  3. 所有电容器
  4. 所有接头连接器,除了2x13引脚接头连接器。
  5. 在板的底部安装2x13母接头。

在板上安装20针插座或74LVC245。建议使用该插座,因为一旦被静态或包含要编程的AVR微控制器的电路中的错误所损坏,它将使更换74LVC245变得容易。

注意:电阻R2至R5是可选的。建议使用它们来保护74LVC245和树莓派。可以根据所编程的AVR微控制器周围的外部电路,根据需要调整电阻值。如果省略任何R2至R5电阻,则需要安装跳线来代替省略的电阻。

六、将编程器连接到树莓派上

编程器接口板插入树莓派的GPIO接头上。当它正确连接时,将定位接口板,使其完全在树莓派上。

使树莓派的USB和网络连接器位于右侧,而GPIO接头位于与该板相对的板上的左侧。使接口板的6针和10针连接器位于右侧。在将接口板向下推到树莓派的GPIO接头之前,请检查接头是否正确排列。如果插头偏移一两个针脚,则在通电时可能会损坏Pi。

该接口板最初设计为与具有26引脚GPIO接头的树莓派的早期型号一起使用。如果使用使用40针GPIO接头的较新型号(例如A +,B +或2B),则接口板将连接到前26针(距离USB和网络连接器最远的26针) 40针接头连接器。

七、连接外部电路

通过将电缆连接到P2(10针)或P3(6针)接头,可以将接口板连接到包含要编程的AVR微控制器的外部电路。

P2和P3接头连接器使用通用的引脚排列,因此可以使用已经连接到外部板上AVR微控制器的编程接头连接器的任何6针或10针电缆。如果使用的是(无焊接)面包板,而没有专用的编程接头,则可以查看接口板原理图,以确定如何将跳线从P2或P3接头连接到面包板。

可通过连接到P2或P3的电缆跨接插头P1 ,为外部电路提供+ 5V电压。

如果正在编程的AVR微控制器是可能会吸收大量电流的外部电路或板的一部分,则应使用单独的电源为外部电路供电。如果外部电路只不过是AVR微控制器,则可以通过在P1上安装跳线来使用接口板供电。

注意:请勿在P1上有跳线的同时使用单独的电源为外部电路供电,否则可能会严重损坏树莓派。

八、用avrdude对AVR微控制器进行编程

使用AVR将PCB连接到电路上并对其进行编程,并准备了一个二进制文件来编程。 AVR微控制器。这是avrdude程序开始播放的地方。

如果键入“ avrdude -h”或“ man avrdude”,您将发现该程序具有许多命令行选项。avrdude_gui的更新版本将使确定特定任务需要传递给程序的选项变得更加容易。这些说明中的有关使用avrdude的详细信息超出了本项目的范围。相反,将仅覆盖四个参数,因为它们将是您使用avrdude执行的任何操作的核心。四个参数是:-p -c -P和-b。

-p选项用于指定要编程的AVR微控制器;-c选项指定使用的编程器的类型;-P选项指定将通过编程器使用哪个端口(或设备,以Linux术语表示)与AVR微控制器进行通信;-b选项指定波特率。

九、缓冲其他信号

本项目中使用的74LVC245能够缓冲8个信号,但仅需4个信号即可对AVR微控制器进行编程。电路板的设计不是浪费IC的一半,而是设计为允许将未使用的部分用于缓冲来自树莓派的其他信号。未使用的缓冲器的输入是引脚6、7、8和9,相应的输出分别是引脚14、13、12和11。PCB上提供了孔,可轻松检修输入和输出引脚。用于输入和输出的孔由PCB顶部丝网印刷层中的文本指示。

通常,输入引脚通过PCB顶部的走线接地。在使用其中一个未使用的缓冲器之前,必须首先剪切将输入引脚接地的迹线。必须在GPIO接头和位于U1与GPIO接头之间的孔之间切割走线。请勿在输入孔和U1之间切掉走线。

一旦将与输入相连的走线被切断,就可以使用该输入来缓冲来自Raspberry的信号,或者使用该输入来缓冲来自外部电路的信号,并使用相应的输出将信号馈送到通过GPIO头连接树莓派。

当U1和GPIO接头之间有五个孔。或者需要、希望将(外部)信号馈入U1输入的接地参考,则可以在第5个孔中轻松接地。如果可以轻松访问该接头连接器上的接地参考,则可以将5针接头连接器用作输入。

外文原文:点击进入
声明:本文由Hackaday授权电路城翻译,系电路城的原创内容,转载请注明出处! 

加入微信技术交流群

技术交流,职业进阶

关注与非网服务号

获取电子工程师福利

加入电路城 QQ 交流群

与技术大牛交朋友

讨论