手把手教你自制Arduino

手把手教你制作Arduino

  • 简介
  • Arduino硬件连接
    • Arduino最小系统
    • ISP烧录引脚
    • 串口下载电路
  • Arduino刷写BootLoader

简介

Arduino是一款适合新手入门学习的单片机,利用它可以帮助我们快速实现一些新奇的创意,一般常用的就是UNO、NANO、mini这几款核心板,但是当我们想要集成化的时候,使用这些核心板就显得有些累赘,下面给大家介绍如何在将Arduino画到自己的板子上,并且能够给它烧录固件、一键下载程序。

Arduino硬件连接

Arduino最小系统

Arduino的硬件连接参照下图就可以,芯片可以选用ATmega328p-AU,某宝上不到十块钱,当然也有其它的单片机可以烧录Arduino固件,但是笔者没有尝试过,这里就不作介绍了。

手把手教你自制Arduino_第1张图片
手把手教你自制Arduino_第2张图片

需要注意的是,如果你的电路中不需要复位按键,可以直接把它去掉,但是千万不要添加复位电容,否则会对后面的下载电路给出的复位信号造成干扰,影响程序的正常下载。

ISP烧录引脚

为了给Arduino刷写BootLoader,我们还要引出几个ISP引脚,对于ISP的概念这里就不作过多解释,只需要知道我们要从atmega芯片上面引出这些接口就可以了。

手把手教你自制Arduino_第3张图片

我们一般用排针引出,但是考虑到ISP引脚仅作刷写BootLoader使用,也就是只用一次就不用了,如果不想预留这个接口的话,也可以考虑先给芯片刷BootLoader再焊接到板子上,或者直接从板子上面用漆包线飞线引出这几个接口。

串口下载电路

Arduino可以用串口下载程序,但是一般在用串口下载程序的时候,需要手动复位一下芯片,如果想要实现一键下载,就需要选用带复位的串口转换芯片,这里选择CH340C,将DTR引脚串联一个100nF的电容连接至单片机的RESET引脚,这样每次下载程序的时候,DTR会给一段下拉信号让单片机复位。

手把手教你自制Arduino_第4张图片
手把手教你自制Arduino_第5张图片
手把手教你自制Arduino_第6张图片

对于CH340芯片,有两点要注意的地方:1. CH340是5V供电,其2、3引脚输出信号为5V电平,若与3.3V供电的芯片进行通信,最好做一下电平转换,常用的电平转换方法有外接MOS管、使用专门的电平转换芯片、串联电阻等,这里就简单串接一个300R的电阻;2. CH340的V3引脚是自带3.3V输出的,不过电流较小,一般不使用,但是上图中的C22去耦电容必不可少,如果去掉会导致芯片工作异常。

Arduino刷写BootLoader

Arduino固件也就是BootLoader,它是一段固化在芯片中,在芯片启动时引导程序运行的代码,相当于电脑中的BIOS,当然这里使用的BootLoader比较简单。Arduino烧写固件有两种方法,一种是用一块Arduino给另外一块Arduino烧写,还有一种是使用下载器,由于前者烧写速度慢且成功率不高,所以本文介绍的是使用下载器烧写的方法。
我们需要购买一个USBISP下载器,如果你是第一次使用这个下载器,需要安装驱动(所有用到的资料、软件、驱动包我会打包放在文章末)。

手把手教你自制Arduino_第7张图片

安装好驱动以后,将下载器插到电脑上,在电脑的设备管理器上能看到正常的设备信息,表明我们的电脑能够识别到下载器。

手把手教你自制Arduino_第8张图片

将我们板子引出的ISP接口连接到下载器上,接口图如下,连接好线并且安装好驱动以后,将下载器插到电脑上。

手把手教你自制Arduino_第9张图片

然后打开资料包,里面有个progisp的应用程序,这个就是我们用到的烧写软件,接下来我们试着给芯片刷写nano的固件:首先打开烧写软件,电机右下方的"…“按钮,依次输入熔丝参数:FF、DA、FD,关闭这个界面,点击"调用flash”,打开资料包中BootLoader文件夹里的名为optiboot_atmega328的HEX文件,最后点击"自动"按钮,就可以看到烧录的信息,等待完成即可。

手把手教你自制Arduino_第10张图片
手把手教你自制Arduino_第11张图片

关于烧写固件的方法,网上有人已经做了更详细的说明,如果大家不明白的话可以参考下面的视频教程:
arduino如何烧写bootloader?引导程序怎么刷?
文章中所用到的下载器驱动、BootLoader以及烧写软件progisp我都已经打包放在百度云中,提取码ktdy,放心下载使用:
Arduino烧写包
作为一个嵌入式方向的爱好者,这几年的学习积累了一些心得,俗话说好记性不如烂笔头,我打算以文章的方式来做一些分享,一方面为大家提供一些方法上的参考,另一方面也想督促自己做一些学习总结。希望能在这里跟大家共同进步!

你可能感兴趣的:(单片机,嵌入式,arduino,stm32)