记录一下这次自己 DIY 的
Arduino
.
Arduino
有多好用就不用多说了,可以备两块,需要的时候很是方便。
比如有时新买了一些没用过的模块、芯片等,可能你需要用stm32
对它进行编程,但是写好的程序就是没用,这时候你可能开始怀疑你是不是买了假芯片或者模块坏了,这时候用Arduino来验证一下会很方便,毕竟库多,代码量少,可以快速验证。
正文开始:
1.原理图
自制Arduino原理图(IIC接口画错了,是PC4(SDA)和PC5(SCL))
修改:
- 这里的CH340C 如果使用5V供电,其V3脚如果接一个0.1uF的去耦电容到地,如果使用3.3V供电,则将V3脚接至VCC;(原理图中空着了,没有接CH340C是无法正常工作的,具体可参看CH340C使用说明手册;
- SDA 和 SCL一不留神接错位了,仔细看上面的原理图应该能看出来;
注:
其实需要的就是(电源
,单片机
)晶振电路
,复位电路
,下载电路
。有这几部分就可以组成Arduino
的基本硬件电路了。
1.晶振电路
就不多说了,和其他单片机的晶振电路
都相似。
2.要注意的就是复位电路
和下载电路
,(我这里使用的是CH340C
这款USB转串口芯片作为下载电路,和CH340G
几乎一样,不同的是CH340C
内置晶振,不需要再外接晶振,可以简化电路,当然你用CH340G
也是可以的。)CH340C
的DTR
引脚要引出来通过一个104电容
接到RESET
复位引脚上去,二极管4148
也不能少。
3.自己可以把需要的IO口给引出来,我这里只引出了IIC
和几个LED
测试引脚,其他我用不到的就没引出来了。然后就转PCB
就可以了。
2.完整原理图如下:
还有一个DS3231时钟电路没做介绍,因为非必须,就不多说了。
Arduino原理图
3.PCB渲染图如下:
正面
背面
4.实物图如下:
实物PCB(正面).png
实物PCB(背面).png
5.成品图如下:
成品图(正面).png
成品图(背面).png
至此,硬件部分就完成了,这很容易解决。可是软件部分卡了我一整天,
Arduino
下载程序很方便是因为其内部早已烧录好了bootloader
的,新买来的芯片是没有烧录bootloader
的,所有需要手动烧入bootloader
。这里我初期没考虑周全,没有把SPI
接口引出来,导致才有了下面这一幕(后悔没引出SPI
)。
下面开始用MEGA2560
给ATmega328P
烧录bootloader
(对,就是这里,失败多次,苦苦试探之下,终于成功了)。
1.按如下方式接线(两种方式都是一样的,推荐前者)
你可能还需要一份引脚定义。
2.接好线后就是下面这样了
(这是一个悲伤的故事,不建议学习我的这种接线方式)
3.接好线后,就可以给Arduino Mega 2560
下载程序了,再通过Arduino Mega 2560
给Atmega328P
烧入bootloader
。
用到的文件可以点这里下载:github资源
3.1把这个程序上传上去(下载进去)就把Mega 2560变成了一个烧入器了。
这里是常规操作,和下载Blink没什么不同。
烧入程序至Mega2560中
3.2连接好
Mega 2560
和ATmega328P
的线后,打开串口监视器,
下面是异常情况
image.png
如果出现上面这种情况
1.检查连接的线是否正确,是否有松动。
2.如果芯片连接了除晶振电路以外的外围设备,请断开重试(我就是问题出在这了,然后把CH340C和DS3231全部拆下,烧入,然后就OK了)
正常情况如下:
(这图不是我的,因为我已经将飞线拆下,不想重来一次,就直接截别人的图了)
image.png
我还出现了一个选择高低电压版本的选项,U
orL
要根据自己实际情况选择,然后通过这个串口监视器Send(发送)
一个U
(我是5V,16MHz,所以是U
),然后再Send(发送)
一个G
(表示对ATmega328P
进行烧录bootloader
的意思),然后几秒钟就好了。
图如下:
image.png
发送完G
,然后会出现下图:
image.png
这样就完成了bootloader
的烧录了,此时就完成了ATmega 328P
的bootloader
烧录了,然后就是一块正常的Arduino UNO
了,可以正常上传程序了。
然后就完成了一次DIY Arduino 了。
1.如果还有问题,就把这个视频看两遍,然后基本问题就不大了。
2.如果用Arduino
的其他版本(但要支持SPI
)也是OK的,也可以参考下网上别人的贴子。
3.这里有官方自制 Arduino
的材料。
4.碰到了问题还可以去这里看看,蛮好的。
END.
自制Arduino
干什么呢?这里做了个时钟功能https://www.jianshu.com/p/6a9e219567ba