Arduino

自制Arduino UNO

2019-04-02  本文已影响0人  keep1234quiet

记录一下这次自己 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也是可以的。)CH340CDTR引脚要引出来通过一个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)。

飞线Arduino.jpg

下面开始用MEGA2560ATmega328P烧录bootloader

(对,就是这里,失败多次,苦苦试探之下,终于成功了)。

1.按如下方式接线(两种方式都是一样的,推荐前者)


参考接线方式1.png
参考接线方式2.png

你可能还需要一份引脚定义。


引脚定义.png ATMEGA328与Arduino引脚对应关系

2.接好线后就是下面这样了
(这是一个悲伤的故事,不建议学习我的这种接线方式)


飞线Arduino.jpg

3.接好线后,就可以给Arduino Mega 2560下载程序了,再通过Arduino Mega 2560Atmega328P烧入bootloader

用到的文件可以点这里下载:github资源

3.1把这个程序上传上去(下载进去)就把Mega 2560变成了一个烧入器了。
这里是常规操作,和下载Blink没什么不同。


烧入程序至Mega2560中

3.2连接好Mega 2560ATmega328P的线后,打开串口监视器,

下面是异常情况


image.png

如果出现上面这种情况

1.检查连接的线是否正确,是否有松动。
2.如果芯片连接了除晶振电路以外的外围设备,请断开重试(我就是问题出在这了,然后把CH340C和DS3231全部拆下,烧入,然后就OK了)

正常情况如下:
(这图不是我的,因为我已经将飞线拆下,不想重来一次,就直接截别人的图了)

image.png
我还出现了一个选择高低电压版本的选项,U or L 要根据自己实际情况选择,然后通过这个串口监视器Send(发送)一个U(我是5V,16MHz,所以是U),然后再Send(发送)一个G(表示对ATmega328P进行烧录bootloader的意思),然后几秒钟就好了。
图如下:
image.png
发送完G,然后会出现下图:
image.png
这样就完成了bootloader的烧录了,此时就完成了ATmega 328Pbootloader烧录了,然后就是一块正常的 Arduino UNO了,可以正常上传程序了。

然后就完成了一次DIY Arduino 了。

1.如果还有问题,就把这个视频看两遍,然后基本问题就不大了。

我就是看了他的视频才成的,别人的方法不行估计是同样的原因,自己硬件问题,接了外设

2.如果用Arduino的其他版本(但要支持SPI)也是OK的,也可以参考下网上别人的贴子。
3.这里有官方自制 Arduino的材料。

image.png

4.碰到了问题还可以去这里看看,蛮好的。

image.png

END.

自制Arduino干什么呢?这里做了个时钟功能https://www.jianshu.com/p/6a9e219567ba

上一篇下一篇

猜你喜欢

热点阅读