如何制作自己的Arduino开发板

  • 内容
  • 评论
  • 相关

你想过用简单的元件来制作Arduino板吗?或者想过根据自己的需要做一个定制开发板吗?这个项目就是向大家展示用电子元件来制作Arduino电路板。只需遵循这些步骤和说明,就可以享受这个DIY Arduino的过程了!

电路原理图

面包板自制Arduino板

DIY自己的Arduino板有多种方式,如可以制作PCB板来焊接,或者使用原型万能板来焊接,或者直接把元件插到面包板上来实现。实际电路图如下所示,

自制Arduino板电路图

你只需要可很少的原件即可完成连接。元件包含了一个电压调节器,用于提供5V电源给Arduino,实现稳压滤波电路的作用,然后是一个16Mhz的晶体振荡器,以及和它平行连接的22pF的电容,它们组成了Arduino的时钟。为了达到测试的目的,还需要一个LED,将其连接到ATmega集成块的第19引脚上。

上传引导加载程序到空白的ATmega芯片

这一步是为空白的ATmega芯片加载Arduino的引导程序。已经有Arduino引导程序的芯片可以忽略这一步。为芯片加载引导程序可以使用一个Arduino开发板来引导加载程序到空白芯片,也可以使用AVR 下载器来加载。我们将在下面解释这两种方法。

使用AVR下载器加载程序

使用AVR下载器烧录ATmega 芯片

我个人更喜欢使用这种方法来上传引导程序,因为它的成功率很高。你只需要买一个AVR下载器,就可以将引导程序上传到各种类型的ATmega芯片上,将空白芯片插入Arduino板的插座上。如上图所示,将下载器连接到Arduino。找到到已安装的Arduino文件夹“hardware -> Arduino ->avr -> boards.txt ”。然后检查文档中芯片的名称和引导程序(Duemilanove/Uno)(如果使用空白ATmega328P芯片,可以忽略此步骤)。

检查其上的下列参数值:hfuse,lfuse,efuse。现在我们将为空白芯片设置熔丝位,打开命令提示符(windows用户)或命令行窗口(Linux用户),粘贴以下命令:

avrdude -b 19200 -c usbtiny -p m328p -v -e -U efuse:w:0x05:m -U hfuse:w:0xD6:m -U lfuse:w:0xFF:m

注:指定值给high_fuses,low_fuses,extended_fuses,如果准备烧录的芯片不是ATmega328 IC,请在命令中将“m328p”修改为你的芯片名称。

接下来,使用下面的命令上传引导程序或十六进制文件。转到程序文件或引导加载程序的路径“ /hardware/arduino/avr/bootloaders/atmega”,将命令提示符或命令行中的“hexfilename.hex”替换为你的文件名。

avrdude -b19200 -c usbtiny -p m328p -v -e -U flash:w:hexfilename.hex -U lock:w:0x0F:m

现在文件将成功上传至ATmega芯片。

使用另一个Arduino作为ISP

使用Arduino开发板作为ISP下载器

如果你打算使用另一个Arduino开发板来引导芯片,那么请按照上面的图示进行连接。这里需要两块Arduino板:一个是Arduino板作为ISP,另一个用于插入空白的ATmega芯片。我们使用Arduino上的ICSP(电路串行编程器)引脚来实现烧录空白芯片。连接完成后,将作为烧录器的Arduino连接到你的PC,接下来,打开Arduino IDE,进入tools菜单;选择burn bootloader并从其选项中单击Arduino作为ISP。现在,空白芯片将被烧录,这种方法需要boards.txt指定的芯片配置正确才会生效,成功率不太高。

现在我们就有一个自制的Arduino板,它已加载Arduino引导程序。使用Rx, Tx和Gnd引脚连接到USB-UART TTL转换器,就可以将它连接到你的PC使用了。