自制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软件,你就会发现可以连上单片机了,赶快重新修改熔丝位,写入单片机把!