极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 51174|回复: 25

Arduino CP2102版本完美DIY(转)

[复制链接]
发表于 2012-6-29 11:11:23 | 显示全部楼层 |阅读模式
转自丁丁的博客
原文地址:http://iteyes.blog.sohu.com/224001712.html

昨蝌蚪之夜晚参加了北京科协“”跨界科学沙龙之“DIY终极聚会”,在会上介绍了下一个月前做出来的Arduino CP2102版本的情况。
五月底开始休了次长假,于是把自己以前的一个想法付诸实施,DIY一个CP2102版本的Arduino。因为之前从网上查了下,Global范围内,几乎还没有DIY成功过的,国外有几个贴子说成功了,但下面跟贴的也基本上一致反映不能成功。经过大半天的查资料、研究、试验,终于做好了。过了几天又做了一个,同样成功。




因现场是做的PPT演示,下面贴一下之前陆续写的一些总结:
目前流行的Arduino版本,如UNO、Mega2560、Duemilanove等,其USB口基本都采用了ATMEGA8U2、ATMEGA16U2、FT232RL等芯片。这几种芯片在淘宝上的零售价基本都在15-20元左右。ATMEGA8U2、ATMEGA16U2等芯片由于是ATMEL较新的型号,也很难在本地买到。ATMEGA8U2、ATMEGA16U2芯片在Arduino板子上,主要的作用只是用作USB转UART,用在Arduino上确实是大材小用了。新版的Leonardo已经省略了USB IC,直接用一片ATMEGA32U4实现了所有功能。
CP2102是俺之前一直用着的一个USB转UART芯片,Silicon出品。不论是实际使用还是网上的评论,这个片子的性能都非常让人满意。另外,这个芯片的价格与前面几种芯片相比,显得更加平易近人,淘宝上的价格普遍在5元左右。
CP2102另外的优势在于,在实际使用时,外围不用接任何其它元件即可稳定地工作,而且还有3.3V100mA的电源输出,用在Arduino上时,完全不用再加5V-->3.3V的DC-DC元件。




Arduino官方却从没出过CP2102版本的方案。最近趁着比较空闲,想到做个CP2102版本的Arduino UNO板子玩玩。Arduino UNO的板子是从淘宝上买的,买回来对比了下官方的PDF,发现这个版本是UNO最早的一版。由于是自己在家里用,并且几乎也没有使用大功率外围模块的可能,所以UNO的USB、外围电源切换方面的电路可以不用。简化掉这部分电路之后,可以发现Arduino的主板,就是一块最小系统的AVR学习板:)。
事先,先用USBASP给ATMEGA328写好Bootloader,然后,将CP2102的TXD、RXD与ATMEGA328的RXD、TXD连接。在Win7 32位系统下安装CP2102的最新驱动。打开Arduino的IDE程序,选好型号、虚拟端口后,往Arduino UNO上写例程时却发现总是编程出错。错误代码是avrdude: stk500_getsync(): not in sync resp=0x00
这样的代码很抽象,从网上搜索,也给出一堆不同的提示。参考性不高。
Google搜索后,发现网上都在反映CP2102用在Arduino上出现的问题。主要是Arduino在编程时,需要有一个自动复位的过程,如果编程时不能复位,就会编程失败。
目前网上的方案主要有3个:
1、编程过程中,在IDE提示上载文件时,手动按板子上的RESET按钮复位。
2、将CP2102的DTR脚引出来接到328的RESET脚上。
3、将CP2102的DTR脚及RTS脚引出来接接到328的RESET脚上。
其中,第一种方法需要连续试几次找准复位的时机,也就是需要有经验后,才可以方便地操作。虽然可以编程成功,但每一次写程序时都要手动复位,比较麻烦。
第二种方法,是根据Arduino UNO的官方电路图来的。DTR要通过一个0.1UF的电容接到ATMEGA328的RESET脚。




第三种方法,是根据Arduino Duemilanove的官方电路图给出的。DTR要通过一个0.1UF的电容接到ATMEGA328的RESET脚;RTS脚直接接到ATMEGA328 RESET脚上。



第二种及第三种方法,在网上这些给出方案的网友都说可以正常编程了,但读者的回复基本都说还是存在问题,不能正常编程。
从Arduino UNO电路图中,可以看到ATMEGA8U2有一条DTR线要连接到ATMEGA328的RESET脚。在进行编程时,ATMEGA8U2需要给ATMEGA328一个信号让其自动复位。按网上的第二种方法,将CP2102的DTR脚引出,通过C5 0.1UF电容接到ATMEGA328的RESET脚,编程时依然出错。
在Arduino Duemilanove版本中,FT232RL芯片除了DTR外,RTS脚也引到了ATMEGA328 RESET上。按其电路接法,编程时同样会出错。
也就是说后两种方法在实际使用时,依然不能实现预定的要求。经过俺不懈滴努力研究,终于将CP2102版的Arduino完美方案研究出来。根据UNO的电路图,ATMEGA8U2的13脚其实也有个功能是CTS,将CP2102的CTS脚引出接至ATMEGA32的RESET脚即可。经这样的改造,使用CP2102编程成功。电路见下图。有滴同学可能很喜欢RXD、TXD编程时LED闪烁的效果,这个电路图里没有给出。我个人感觉没什么用处。如果实在想要的话,可以在RXD、TXD对地接LED+102或152左右的电阻。阻值根据LED的电流调整,数值尽量大一些。










上图为用漆包线引出CP2102相应脚并与PCB相应接点焊好后,加了热融胶的效果。
有滴同学可能说了,这么简单,还喷了这么多。其实就如那划条线1000美元的故事类似,知道在哪里画线更重要,哗哗。
写在最后,Arduino项目组推出使用ATMEGA8U2、ATMEGA16U2版本的产品是有自己的想法的,在绝大多数的应用中,这些USB接口的芯片只是作为串口“刷机”及通信用。有少数的应用,如有USB键盘鼠标或MIDI控制等应用时,可以通过给ATMEGA8U2或16U2刷firmware的形式,实现相应的功能。用CP2102来做Arduino的USB编程及通信,实现了UNO及mega2560等版本的绝大部分功能,功能与Arduino Duemilanove官方版本一样,但成本降低很多,也算是达到了本次DIY的目的~~~

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2012-6-29 12:42:49 | 显示全部楼层
{:soso_e102:}牛B!!!!!!!!!!!!!!!
回复 支持 反对

使用道具 举报

发表于 2012-6-29 15:24:42 | 显示全部楼层
这个强大!!!!!!!!!!!!!!!!!!!!!!!!!!!!
回复 支持 反对

使用道具 举报

发表于 2012-6-29 18:25:28 | 显示全部楼层
{:soso_e153:}传说中的牛屎!
那一坨弄成黑色更有范!
文章有时间再仔细看
回复 支持 反对

使用道具 举报

发表于 2012-6-30 18:10:44 | 显示全部楼层
问个问题:
CTS 上面那个电阻是10K还是100K?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-6-30 20:02:14 | 显示全部楼层
wing 发表于 2012-6-30 18:10
问个问题:
CTS 上面那个电阻是10K还是100K?

10K
回复 支持 反对

使用道具 举报

发表于 2012-7-1 10:15:24 | 显示全部楼层
本帖最后由 小菜 于 2012-7-1 10:18 编辑

不错额,,,不过最近入了个,这个成本多少?可否组团diy?


{:soso_e113:} 一直在学习楼主的笔记,很不错啊,有木偶QQ号或者群啊》?短消息给我呗,,,
回复 支持 反对

使用道具 举报

发表于 2012-7-2 00:42:17 | 显示全部楼层
我用过一块 洞洞板arduino  就是用CP2102 来下载程序的
CP2102上的DTR和 arduino的 RST   下载很简单 每次都成功
回复 支持 反对

使用道具 举报

发表于 2012-11-28 00:19:38 | 显示全部楼层
挖掘出来这个篇文章。。。但是我遇到了一个同样纠结的事情。
我重复了lz的所有方案,均告失败。
我的USB2TTL是PL2303的方案~~~
回复 支持 反对

使用道具 举报

发表于 2013-1-10 13:50:28 | 显示全部楼层
飞线达人



回复 支持 反对

使用道具 举报

发表于 2013-1-10 16:34:40 来自手机 | 显示全部楼层
好强大啊!!!!!
回复 支持 反对

使用道具 举报

发表于 2013-1-25 11:38:24 | 显示全部楼层
楼主,,,,这个需不需要加一个自恢复保险丝,万一烧坏usb口怎么办
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-1-25 20:38:10 | 显示全部楼层
无趣 发表于 2013-1-25 11:38
楼主,,,,这个需不需要加一个自恢复保险丝,万一烧坏usb口怎么办

一般板子设计的时候需要加一个~
回复 支持 反对

使用道具 举报

发表于 2013-2-25 23:40:01 | 显示全部楼层
值得学习一下
回复 支持 反对

使用道具 举报

发表于 2013-2-27 23:40:29 | 显示全部楼层
标记,这个写的有用~~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-5-9 01:20 , Processed in 0.045370 second(s), 30 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表