美文网首页Arduino
自制Arduino UNO

自制Arduino UNO

作者: keep1234quiet | 来源:发表于2019-04-02 20:29 被阅读0次

    记录一下这次自己 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

    相关文章

      网友评论

        本文标题:自制Arduino UNO

        本文链接:https://www.haomeiwen.com/subject/ujqnbqtx.html