【已验证】Arduino开发板(ATMEGA328P-MU)
简介
基于ATMEGA328P-MU单片机的Arduino开发板,类同NANO/PRO MINI/UNO开发板。
简介:基于ATMEGA328P-MU单片机的Arduino开发板,类同NANO/PRO MINI/UNO开发板。开源协议
:GPL 3.0
描述
前言
前段时间¥48买(捡垃圾)了一套昊翔ToF模块和四合一电调,上面包含4片ATMEGA328P-MU单片机,于是画了这款Arduino开发板。
这个项目是基于这个方案验证板,增加了串口下载模块、TYPE-C接口等
1.焊接PCB
2.为芯片烧录Bootloader
bootloader的作用
Arduino通过预先写入的bootloader来引导烧录程序。每次通过串口给Arduino板下载程序时,首先会令Arduino板复位一次,这样就先进入了bootloader,接着向Arduino板发送特定的下载指令,bootloader识别到这些指令后就会紧接着开始接收剩下的新的程序代码写入到内部flash中。如果bootloader没有识别到下载指令,那么它就会跳转到程序区正常工作。
新出厂的单片机里是没有bootloader的,需要自己烧录进去。
烧录bootloader的两种方法
两种方式:
- 通过AVR下载器烧录Bootloader
- 使用另一个Arduino作为ISP烧录Bootloader
Arduino 烧写bootloader:https://www.jianshu.com/p/2f274f8b3dab
如何制作自己的Arduino开发板:http://www.basemu.com/how-to-make-an-Arduino-clone-board.html
2.1使用USBISP下载器烧录Bootloader
建议买这种的,我买的另外一种用不了
打开PROGISP软件,选择芯片型号,将USBISP下载器与arduino开发板连接:
ISP下载器--目标板
MISO-----MISO
VCC------5V
SCK------SCK
MOSI-----MOSI
RST-------RST
GND------GND
点击调入Flash,选择arduino安装目录下D:\Program Files\Arduino\hardware\arduino\avr\bootloaders\atmega文件夹
如果你的开发板使用的晶振是8MHz,那么选择ATmegaBOOT_168_atmega328_pro_8MHz.hex
如果你的开发板使用的晶振是16MHz,那么选择ATmegaBOOT_168_atmega328.hex
笔者使用的16MHz,所以选择的是ATmegaBOOT_168_atmega328.hex
bootloader文件一定要和晶振匹配,否则将无法使用 串口 下载程序!
2.2使用Arduino开发板烧录Bootloader
打开arduino IDE的Tools -> Programmer下显示了所有支持的编程器列表,这里推荐使用Arduino as ISP方式,较为简单而且成功率高。
Arduino as ISP简单来说就是用另一块arduino板,给它用普通方式下载一段专门的程序,将其变为一个ISP下载器,再将其相应引脚与待烧写bootloader的板子相连,再通过arduino IDE来控制进行bootloader烧写。这里斜体字显示了分为三个步骤。
- 制作ISP板
打开IDE,Files -> Examples -> ArduinoISP -> ArduinoISP,使用这个程序下载到一块arduino板中,我们暂且称这块板为ISP板。
- ISP板与目标板连接
由前面介绍可知,这里应该是将ISP板的引脚连接到目标板上的ICSP接口上去,连接对应表如下(以使用UNO作为ISP板为例)
ISP板 |
目标板 |
---|---|
MISO / 12 |
MISO / ICSP-1 |
Vcc / 5V |
Vcc / ICSP-2 |
SCK / 13 |
SCK / ICSP-3 |
MOSI / 11 |
MOSI / ICSP-4 |
10 |
Reset / ICSP-5 |
GND |
GND / ICSP-6 |
实际连接电路如下所示,其中左边是ISP板,连接到电脑上,右边是等待下载bootloader的目标板
- 使用arduino IDE为目标板烧写bootloader
按照前面的方式连接好ISP板和目标板后,将ISP板连接到电脑上,打开IDE,首先按住ctrl + shirft + M 打开串口调试窗口,然后点击Tools -> Boards选择目标板的类型。然后在Tools -> Programmer中选择Arduino as ISP,最后点击 工具 -> 烧录引导程序,此时会开始进行烧写,同时串口调试窗口里会有相关提示和确认,按照其说明输入相应按键即可完成。
参考:https://www.jianshu.com/p/2f274f8b3dab
3.串口下载测试
打开示例中的Blink,用USB-TTL下载器与Arduino开发板连接:
下载器--Arduino开发板
GND---GND
RXD---D1(TXD)
TXD---D0(RXD)
5V------VCC
笔者使用的是16MHz晶振,如下图选择下载方式。8MHz选择(3.3V,8MHz),芯片供电电压为3.3V
注意:
这个0.1uF电容实现自动下载,而不用每次下载都按RESET键
评论