自制Arduino Leonardo笔记

很早就听说过Arduino开发板,其主要特点就是,简单易用,上手很快,官方已经封装好了常用的库,开发起来非常方便快捷,于是,我就准备自制一块Arduino板。

1.首先我直接Copy了官方leonardo板的原理图,其中图中圈出来的部分是可选的,剩下的是必须的。

2.打PCB、焊接、测试 

 

3.硬件上基本上没有问题,现在开始调试软件,首先我们需要去官网下载环境包,注意不仅仅是ArduinoIDE,还有驱动、Bootloader代码等等文件,这些都放在一个压缩包内,官网直接下载这个压缩包即可,解压后类似这样,我这里用的是

1.5.6版本

我们第一步要做的就是把Bootloader代码下载到单片机,目的是让它变成Arduino,否则它只是一个ATMEGA32单片机,Bootloader代码就在我们刚刚下的环境包中

C:\Users\Administrator\Desktop\Arduino\arduino-1.5.6-r2\hardware\arduino\avr\bootloaders\caterina

在这里,我们可以发现Leonardo板两个Bootloader代码(Hex文件),随便选择一个即可 。 

接下来,我们需要另一款工具来把这个Bootloader下载到我们的单片机中去--USBASP(某宝上10块钱包邮)

将下载器与单片机预留的ISP口对应连接即可

下载器 <===================>单片机

MISO <===================>MISO

MOSI <===================>MOSI

SCK <===================>SCK

RST<===================>RST

 

此外我们还需要一款上位机配合这个下载器使用--PROGISP

AVR单片机比较重要的一步就是设置熔丝位,如果设置错误,就会锁死单片机,楼主很不幸,第一次就设置错了,导致单片机锁死,而且USBASP再也无法连接单片机,也就是说,锁死之后,你就无法通过本软件修改熔丝位了, 当然还有其他解救方法,我们后面会讲到,这里主要讲熔丝位的设置,主要针对ATMEGA32U4这个芯片,其他的请自行查看手册。

 

Atmega32U4熔丝位配置如下:

点击自动按钮,等待编程完成,当看到如下界面,表示没有问题

此时,如果你的PC6口接了LED的话,那么这个LED应该开始闪烁起来了 ,有LED但是没闪烁,则上述步骤有错误,特别是熔丝位的设置,检查下熔丝位的设置和Bootloader代码,重新写入。

4.成功烧录之后,此时我们的板子就变成了Arduino Leonardo,但是还差一步,我们还没有安装驱动,此时如果插上USB线,windows是无法识别的,驱动就在我们下载的环境包的drives目录下,32和64位的驱动都包含在内。

 

5.安装好驱动之后,我们插上USB。

大功告成!!! 

最后我来讲下,熔丝位设置错误单片机被锁死的解决办法:

找一个可以正常工作的单片机,将其晶振的XTALOUT脚引出一根线到ATEMGA32U4的XTALIN脚,或者单片机直接输出一个时钟给ATMEGA32U4的XTALIN脚也行,我就是用STM32 PA8脚的时钟输出功能输出时钟给ATMEGA32U4的,然后打开PROGISP软件,你就会发现可以连上单片机了,赶快重新修改熔丝位,写入单片机把!