[Arduino|Zero]做块 Arduino“开发板”

Photobucket

又玩了一阵子 Arduino,对这个板子慢慢了解起来,于是可以自己动手做块 Arduino 的“开发板”。其实也没有那么难,这样想开始玩 Arduino,又感觉像 UNO 这样的板子太贵,或者说“学不到东西”的话,那就自己做一块咯。

就本质来说,以AVR系列芯片为核心的 Arduino 就是将特定引脚引出来排列好,修改好熔丝位(fuse)并烧写好芯片引导区(bootloader),可以通过 USB 转串口下载程序的一套平台。Arduino 真正强大之处,在于其开放的资源,以及高度封装的核心库,让技术门槛又降低了许多,让更多文艺青年可以玩起来。软件部分,我们依然使用官方提供的软件平台,硬件则是可以自己做的。毕竟电路的原理图也是开放的,而且 Arduino 社区里,也有大量 DIY 的自制 Arduino 电路板,比较有名的,包括:ladyadaBoarduino

我这里介绍的 Arduino_Developer,就是我用洞洞板在尽量少飞线的情况下,制作的 Arduino 最小系统。配合市面上,大量销售的 USB-ISP 下载器 和 串口模块,实现一个完整的 Arduino 硬件系统。并结合最近开发的经验,对引脚进行了多排的扩展。

Photobucket

就简单来说,这块板子,是之前《【Hardware】 AVR之旅的第一步~ | Beginning AVR》的 AVR 最小系统,和 《【Arduino】使用ATmega8-16PU制作Arduino最小系统 》中 Arduino 最小系统,二合一以后,并改良的版本。对于线路连接以及下载方法没什么把握的朋友,建议先去看看这两篇 Blog,重复的部分,不再复述。

改进修正的部分,硬件包括:

  • 添加了自动复位电路,可以实现自动下载;
  • 芯片座改为锁紧座,这样更经得起折腾;
  • 优化了扩展座的排列;
  • 将 AVCC 加上一个 105 滤波电容以后,与 VCC 接上了。(这是AD转换要用的电源,原先一直没有加)
  • 晶振可插拔,可以配合不同类型 Arduino 的 Bootloader。
  • 引出了大量 VCC 和 GND;(用 UNO 标准版的朋友,是不是永远感觉 GND 和 VCC 不够用呀?)

软件:采用 Optiboot 的 Bootloader,也就是 UNO 所采用的 Bootloader,这个开源 Bootloader 下载包中包含有 ATmega8、ATmega168、ATmega328 以编译好的 Bootloader,很强大。至少在M8上,再也没有原先 NG板 Bootloader 诡异的 10秒钟 启动时间,很给力。

如果要在 ADE 给 ATmega8-16PU,用上 Optiboot 的 Bootloader,需要在 (ADE)\hardware\arduino\boards.txt 文件内添加如下配置信息:

########################################
opti8.name=Arduino Optiboot8 
 
opti8.upload.protocol=arduino 
opti8.upload.maximum_size=7680 
opti8.upload.speed=115200
 
opti8.bootloader.low_fuses=0xbf 
opti8.bootloader.high_fuses=0xcc 
opti8.bootloader.path=optiboot 
opti8.bootloader.file=optiboot_atmega8.hex
opti8.bootloader.unlock_bits=0x3F 
opti8.bootloader.lock_bits=0x0F
 
opti8.build.mcu=atmega8 
opti8.build.f_cpu=16000000L 
opti8.build.core=arduino
opti8.build.variant=standard

在官方 ADE 1.0 版本中,直接添加就可以使用,因为 optiboot_atmega8.hex 已经存在于 hardware\arduino\bootloaders\optiboot 文件夹内。由此配置文件可知:熔丝位低位为0xbf,高位为0xcc,下载波特率为115200。

关于 Optiboot,可以参考 《arduino学习笔记25 – 给ATmega8使用新版arduino bootloader》一文,我写在上面的配置与引文里面略有不同,在其基础上根据ADE1.0进行的相应的修改,各位需要根据ADE的版本进行选择。

布线图:
Arduino Developer Layout

背面实物图:
Photobucket

引脚对应关系,可参考 (ADE)\hardware\arduino\variants\standard\pins_arduino.h 文件中的定义。

Photobucket

关于自动下载,可参考这篇文章:关于实现最小系统的自动复位 ,有两点经验:

  1. 连接单片机 RST 脚与串口模块的 DTR 脚之间的独石电容,104可能还不够给力,我用的是105的。
  2. 选择USB转串口模块,要找可以引出 DTR 引脚的。市面上能把这个脚能引出来的串口模块,其实并不是很多。

最后,骚包一下最近堆锡线的水平,似乎又有点进步,嘿嘿~
Photobucket

Photobucket

以此为基础搭建 arduino 最小系统,可以将其作为成品板的核心部分,直接进行相关应用的开发,在我的上一篇blog《[Arduino|Micro] TCA1602 红外遥控液晶屏时钟》中,就是这样应用的。

视频介绍:

特别感谢:圣源电子的圣源极客工坊的Togke



关于aGuegu

阿古 真名:官微宏,技术Geek,玩Arduino,玩Linux,爱Google,爱开源;现居福州
此条目发表在内功心法, 初號機 | Zero分类目录,贴了, , , , , , 标签。将固定链接加入收藏夹。

[Arduino|Zero]做块 Arduino“开发板”》有 26 条评论

  1. Pingback引用通告: [Arduino|Micro] TCA1602 红外遥控液晶屏时钟 | Agu's Mill 古作坊

  2. QIQI说:

    何必呢 何苦呢

  3. norda说:

    怎样才能把板子焊得跟你一样好看呢?有什么诀窍没?

    • aGuegu说:

      洞洞板的话,主要还是用来搭接实验电路吧,不用强求自己都搞成这样,我习惯这样,一方面是自己没有设计PCB的能力,同时,我一定要把布线走得很清晰,写程序的时候,才更有信心吧。至于推锡,提前设计规划,加上多焊多练咯~

  4. muzhi1991说:

    请问一下,除了usp—isp (黄颜色那个),还有两个外接的连成一串那个是什么东东?是自己做的吗?还是买的?给个提示。。。我是新手,准备自己做一个arduino。。。

    • aGuegu说:

      中间那块板,只是一块转接板,六进六出,(5V, GND, TXD, RXD, 3.3V, TDR),在5v、3.3v上接了一个拨码开关就是了,这样开关电源会简单一些,不用老是拔来拔去。而且,这样调整过顺序以后,做可以统一不同串口模块,以及接口顺序不同的电路板(洞洞板布线,为了避免跳线,这类的调整很多)。

  5. thRandoll说:

    很像请教一下,为什么要用两个下载线呢?用那个USB-ISP的下载线插到你的开发版上TTL接口可以吗?我还是新手,想请教一下。谢谢

    • aGuegu说:

      一个 Arduino 的程序,包含2部分内容,一部分是 bootloader,另外一部分是 应用程序。在标准的下载流程中,Bootloader 是芯片上固有的内容,不会因为 应用程序的变化而发生改变,中文翻译成“引导区”也不为过。应用程序,正是通过 电脑程序(avrdude)和 bootloader 的配合,经由串口,下载到芯片上。这是默认的下载途径。通过 ISP 是可以对整个芯片的 flash 进行烧写,但是需要对 开发环境(ADE) 进行比较多的自定义设置。自己DIY开发板,只是希望实现硬件上的替换,希望沿用标准版的下载方法。

      • thRandoll说:

        其实当我问你这个问题的时候,我比较迷惑的是USB-ISP和USB-TTL的区别和是不是可以通用。不过我现在知道了,这两个线是不能通用的。下载数据必须通过USB转串口线。
        那你的USB转串口线是用的CP2102吧。有淘宝链接吗?我没找到。

  6. thRandoll说:

    淘宝链接找到了。

  7. chenziheziye说:

    赞一个。。。

  8. koma说:

    帅哥你好棒哦,能不能告诉我你的这个usbisp的下载线是哪里买的呢?我也想买一根呢,淘宝上的品种太复杂,不太敢随便买

  9. bluezym说:

    由于是初学者,可以提供元件清单么??最好能在图中标识元件。方便模仿。谢谢

  10. bluezym说:

    这个帖子我也看了。http://aguegu.net/?p=420

    发现新版本元件和旧版有不同。

    • aGuegu说:

      新版本就是增加了ISP接口和自动复位电路,本质是一样的,元件就是按照图片所示咯,没几个东西。因为我是用机械CAD设计的布线图,所以就是直接画的,不太方便标注元件名称,个人制作也已经够用。有哪里不清楚,就具体问一下咯。

  11. 创造者说:

    前辈:你太强了,赞一个。希望您能开发一些机器人应用,造福劳苦大众。再一次对你致以深深的敬意。

  12. Pingback引用通告: [Shell]串口校时脚本 | Agu's Mill 古作坊

  13. 李昊佳说:

    为什么我制作时flash校验总错误 ,可作为avr最小系统没错误(我用的是ATmega8A-PU)

    • aGuegu说:

      和您的下载器也有一定关系吧,检查一下咯。一般能写进去的话,校验不是什么问题。

  14. 老路说:

    锁紧座买什么型号?

  15. 傅祥文说:

    唔,洞洞板这么辛苦,还是做个3个自由度的雕刻机来画板子吧。。。。

  16. 半导体说:

    阿古,你的画线路图软件叫什么?

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>