搜索
bottom↓
楼主: shaoshunda

AVR-CDC - a USB to Serial Converter(软USB实现通用串口(用CDC类))

[复制链接]

出0入0汤圆

发表于 2007-6-2 12:22:20 | 显示全部楼层
关注中

谢谢

出0入0汤圆

发表于 2007-9-19 21:14:49 | 显示全部楼层
这个东西不至于那么差吧.
20楼:AVR309里,好像有做CRC校验吧。没校验的东西电脑的USB驱动芯片不认的。

出0入0汤圆

发表于 2007-9-20 16:27:59 | 显示全部楼层
用串口调试软件试验,自发自收,容易出现这个对话框:WriteFile function failed(win error code:23)。然后从usb上拔下来,重新关开一次串口,又可以了。win2k

出0入0汤圆

发表于 2007-9-25 10:10:28 | 显示全部楼层
测试了一下,发送很快,基本上不会丢包。接收有丢数据,如果速度太快就会有些数据收不到,但是总的来说比avr309快多了,无论是发送还是接收。但是309有好像不会出现丢数据的情况。

出0入0汤圆

发表于 2007-9-25 12:14:03 | 显示全部楼层
TINY45或TINY13能做吗?有谁试过吗?

出0入0汤圆

发表于 2007-9-26 00:03:33 | 显示全部楼层
实验了,真的要丢数据,不知道是不是:USB的 D+ 和 AVR外中断 共用的缘故。
AVR309是分开的。
或者说驱动程序的问题。

出0入0汤圆

发表于 2007-9-26 03:02:18 | 显示全部楼层
初步试了一下:
AVR309官方提供的M8源代码编译后,PC无法识别,不只是怎么回事,AVR-CDC的挺好用。
ATMEL,官方提供的AVR309源代码,不知为什么,
选择
version 2
m8def.inc文件头
要加一句
       .equ        OR        =3                ; old name kept for compatibilty

USBtoRS232.asm
       ldi         bitcount,CRC16poly   
而不是
       ldi        bitcount,low(CRC16poly)

造成编译错误
选择
version 1,编译通过,结果PC还是无法识别

出0入0汤圆

发表于 2007-9-30 23:00:54 | 显示全部楼层
要是能改到57600或115200的速率就好了

出0入0汤圆

发表于 2007-11-21 10:26:53 | 显示全部楼层
请问各位有没有ICC下面的源程序?

出0入0汤圆

发表于 2007-11-21 13:05:15 | 显示全部楼层
57600 test ok

出0入0汤圆

发表于 2007-11-22 08:56:36 | 显示全部楼层
接收数据丢包

出0入0汤圆

发表于 2007-12-4 20:05:42 | 显示全部楼层
请问在 AVRISO mkII熔丝位要如何设置

# Fuse high byte:  
# 0xc9 = 1 1 0 0   1 0 0 1 <-- BOOTRST (boot reset vector at 0x0000)  
#        ^ ^ ^ ^   ^ ^ ^------ BOOTSZ0  
#        | | | |   | +-------- BOOTSZ1  
#        | | | |   + --------- EESAVE (don't preserve EEPROM over chip erase)  
#        | | | +-------------- CKOPT (full output swing)  
#        | | +---------------- SPIEN (allow serial programming)  
#        | +------------------ WDTON (WDT not always on)  
#        +-------------------- RSTDISBL (reset pin is enabled)  
找不到BOOTRST
BOOTSZ0
BOOTZS1
这三个选项

出0入0汤圆

发表于 2007-12-5 19:45:01 | 显示全部楼层
【110楼】57600 test ok ?!!!!!!能否传上来
谢谢!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

出0入0汤圆

发表于 2007-12-7 09:54:57 | 显示全部楼层
这个程序用的usb驱动,现在有最新的版本了,最高可支持16.5MHZ的主频

是否有时间进行CRC校验了呢?

出0入0汤圆

发表于 2008-3-1 07:46:27 | 显示全部楼层
对于这个CDC的项目驱动USBSER.sys微软出了一个XP下的补丁

http://publish.it168.com/2008/0227/20080227041701.shtml


我用90S2313做这个CDC在XP下没 驱动起来 :( 不知道为什么?

出0入0汤圆

发表于 2008-3-1 22:52:43 | 显示全部楼层
按http://www.recursion.jp/avrcdc/ 网站做了两个90S2313的AVRCDC ,
一个写CDC-2313.2007-10-03版,一个写CDC-2313.2008-01-27版

CDC-2313.2007-10-03好用
CDC-2313.2008-01-27 windows xp 不识别

出0入0汤圆

发表于 2008-5-28 08:15:45 | 显示全部楼层
这个也要记号

出0入0汤圆

发表于 2008-5-28 08:54:26 | 显示全部楼层
记号

出0入0汤圆

 楼主| 发表于 2008-5-28 09:37:40 | 显示全部楼层
现在最新的AVR USB软核已经支持20MHz的主频了.

出0入0汤圆

发表于 2008-5-28 13:06:46 | 显示全部楼层
记号

出0入0汤圆

发表于 2008-5-28 13:09:23 | 显示全部楼层
谁有57600的资料,能否传上来

出0入0汤圆

发表于 2008-6-4 09:03:37 | 显示全部楼层
谢谢了,学习!~!!

出0入0汤圆

发表于 2008-6-4 09:46:11 | 显示全部楼层
mark,xiexie

出0入0汤圆

发表于 2008-6-4 11:52:34 | 显示全部楼层
作者Tamura很严谨,他说过CDC规程是USB 2.0的,对USB 1.1的低速(1.5Mbps)并无支持的保证,所以他这个作品是实验性的,不能肯定以后的OS是否能正常动作。现在确认的仅到Windows XP,Vista可能需要改动一些东西才能支持。
俺们国人就缺乏这份严谨啊,看看网上流传的电路便知,十之七八能捉出毛病来,画图者往往还不以为然,认为能动作就行了。

出0入0汤圆

发表于 2008-6-4 12:18:04 | 显示全部楼层
这个作者的东西试过,115200没问题.但有些调试助手只发一次就必须要重新关开端口.很多调试软件都没问题

出0入0汤圆

发表于 2008-6-4 13:08:39 | 显示全部楼层
学习

出0入0汤圆

发表于 2008-6-4 16:22:22 | 显示全部楼层
好东西,正在找这个,本来想自己通过监测USB to UART的信号包来实现,现在有了就省了

出0入0汤圆

发表于 2008-6-4 20:08:06 | 显示全部楼层
找了一个报废U盘盒子做了个USB-TTL转换线,很好试.

115200bps小数据传输没发现丢数.

出0入0汤圆

 楼主| 发表于 2008-6-12 13:31:33 | 显示全部楼层
Windows Vista 驱动
点击此处下载 ourdev_308122.rar(文件大小:772字节) (原文件名:avrcdc-vista.rar)

出0入0汤圆

发表于 2008-7-5 14:07:35 | 显示全部楼层
这个在xp下能用吗? 我在2000下可以, xp下就不行了,有没有什么改善方法?

出0入0汤圆

发表于 2008-7-8 12:58:27 | 显示全部楼层
为什么我照着做了3个都不行,接上电脑总是显示“无法识别的USB设备”。
开始第一个是用以前没用完的PCB,但芯片是MEGA16。飞了几根线出来接USB插头,然后修改makefile改成mega16重新编译,烧进去后出现无法识别,以为是改成mega16后程序有问题,没那多精力看源代码,就打算按原版用mega48做.
第二个是用的mega48-8p,用万能板临时焊了个。直接用包里的hex文件,还是无法识别。将数据口串接的电阻改成50-100欧,上接电阻减小,也不行。接到其它几台电脑上试还是不行。以为mega48-8p不能超到12M,又开始做第3个。
第三个用的mega8-16pu,专门去了一趟电子市场买的。回来一试仍然不行。
现在我对这个USB转串口都快没信心了,想请教下做成功的朋友,用原版的电路是不是直接用包里面现成的hex就行?或者电路是不是哪里要改一下?

出0入0汤圆

发表于 2008-7-8 13:07:10 | 显示全部楼层
XP下可以的,M48V做一个就成功了,用包里的HEX烧的.

出0入0汤圆

发表于 2008-7-9 13:49:57 | 显示全部楼层
为什么我和电脑串口通讯不行啊
com3和com2口

出0入0汤圆

发表于 2008-7-9 14:24:06 | 显示全部楼层
耶,好了,通了

出0入0汤圆

发表于 2008-7-9 17:05:57 | 显示全部楼层
奇怪,同样的电路,又重新做了一个,电脑就认出来了。但很不稳定,连上电脑过十几分钟又出现无法识别,拔掉后重连又恢复正常。串口发送也有问题,RXD与TXD短接,用串口调试软件自发自收,有时发很长一串字符都可以正确接收,有时发几十个字符才收到一个。

出0入4汤圆

发表于 2008-7-9 17:09:47 | 显示全部楼层
ding

出0入0汤圆

发表于 2008-7-9 18:02:41 | 显示全部楼层
mark

出0入0汤圆

发表于 2008-7-10 11:03:03 | 显示全部楼层
谁用过2008-01-27版本的
我用了,rs232通讯可以,我看到程序里加了rs485通讯,但我试了,收发使能PORTD6脚怎么老是不起作用啊
谁用过,给解释一下。。。。

出0入0汤圆

发表于 2008-7-13 16:07:38 | 显示全部楼层
记号!

出0入0汤圆

发表于 2008-7-14 09:15:54 | 显示全部楼层
用M8做了一个,RXD与TXD短接,自发自收没问题,但用在STM32的ISP烧录中,却完全工作不正常,用数字示波器和BUSOUND截取数据对比,发现TXD的数据没问题,但RXD只收到第一个字节,后面的没有了,所以导致ISP烧录失败;我用的是2008-01-27的版本(目前最新的),看来还是要等版本更新才可以考虑了.

另,我后来找了个很旧的USB转串口,要另外安装驱动的,驱动的型号是HE800,接起来后实际使用工作正常.

出0入0汤圆

发表于 2008-7-26 10:00:36 | 显示全部楼层
我也做了一个,发现如果是简化接线的就可以通信,可是如果系统是要求全功能的话就没辙了。

出0入0汤圆

发表于 2008-7-26 10:10:23 | 显示全部楼层
而且发现在发送了几次数据后,要关闭串口再打开才能再发送。更奇怪的是我的主机上的串口1竟然工作不正常了,重启后才正常,但是插上usbcdc后又不正常了,很奇怪的现象。

出0入0汤圆

发表于 2008-7-28 19:17:26 | 显示全部楼层
这么好的东西

出0入0汤圆

 楼主| 发表于 2008-7-29 10:47:52 | 显示全部楼层
总结:
     无法识别,也就是有些网友说的“制作失败”。
     主要原因有以下几点:
     1.硬件电路参数不正确。
     2.芯片熔丝位设置不正确。
     3.重新编译时,编译选项不正确。
     对于第一点,USB官方文档规定USB的信号电平是在3.6V左右,有些电脑主板对USB的信号电平要求严格。
     如果将电路图中的两个二极管省掉,将会出现有些电脑可以识别,有些电脑无法识别的现象。不用两个
    二极管的话,也可以使用一个3.3V的稳压管替代。还有晶振必须使用12MHz,两个68欧的电阻不能省。
    如果没有68欧的电阻,也可以使用其它电阻替代,替代的电阻必须大于50欧小于100欧,越接近68欧越好,
    要不然也会出现无法识别的现象。
    对于第二点,熔丝位要设置正确,要设置成使用外部晶振,晶振频率12MHz.如果设置不正确也会出现无法识别的现象。
    对于第三点,编译的时候晶振频率要设置成12MHz,还有设置的芯片型号要与实际使用的芯片型号对应。
    如果设置不正确也会出现无法识别的现象。

    对于需要硬件握手的设备来说,可能无法正常工作(用作“USB转串口”(用作桥接设备)),现在只支持TXD,RXD。
    解决办法还是有的,那需要修改代码,用于支持完整的“USB转串口”。
   
补充:
     目前根据官方的测试,绝对稳定的波特率是57600。当然这是用作“USB转串口”(用作桥接设备)。
     如果不用作桥接设备,高波特率也是稳定的。比如说使用Avr的A/D采样通过USB的CDC类进行传输,使用115200也是稳定的。
     现在最新的AVR USB软核已经支持20MHz的晶振频率。avrcdc-vista的驱动已经OK了。
最后:
     软USB CDC并不是完美的,想要完美的USB CDC 那需要使用硬件的USB或者使用现成的USB转串口线。

出0入0汤圆

发表于 2008-7-29 18:47:14 | 显示全部楼层
按照MCU串口通讯的一般性规范
    RXD和TXD两根信号线在“平时”,都应该是“高电平”状态的——因为是“低电平‘有效’”
    但是,这个 CDC 的 RXD和TXD两根信号线、却是在“平常状态”之下,“总是”呈现“低电平”的!
    各位,是不是“注意到”这个情况?

    我利用这个CDC,可以和51通讯;
    但是,不能烧写STC51芯片......【STC_ISP_V3.5】和【STC_ISP_V3.9】软件,可以检测到这个 CDC串口......但是最后还是烧写失败——不知道是否和 CDC的这个“异常状态”相关?

出0入0汤圆

 楼主| 发表于 2008-7-30 10:19:42 | 显示全部楼层
【145楼】 wxfhw
CDC端的串口是硬件的?

出0入0汤圆

发表于 2008-8-18 09:05:47 | 显示全部楼层
哪位大侠 能传个在IAR下编译好的 AVR USB-232  ???

出0入0汤圆

发表于 2008-9-25 15:31:19 | 显示全部楼层
收藏,学习....

出0入0汤圆

发表于 2009-4-1 15:41:56 | 显示全部楼层
强 收藏学习

出0入0汤圆

发表于 2009-4-1 16:33:22 | 显示全部楼层
MARK

出0入0汤圆

发表于 2009-4-1 18:02:36 | 显示全部楼层
mark.
不知道MEGA16能用不?

出0入0汤圆

发表于 2009-4-2 21:32:51 | 显示全部楼层
好,准备着手做一个

出0入0汤圆

发表于 2009-4-5 19:53:17 | 显示全部楼层
收藏下

出0入0汤圆

发表于 2009-4-8 00:33:22 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-4-8 11:03:22 | 显示全部楼层
MARK

出0入0汤圆

发表于 2009-4-8 13:04:18 | 显示全部楼层
MARK
强帖!

出0入0汤圆

发表于 2009-4-11 17:02:13 | 显示全部楼层
如果系统老是提示没有brusbser.sys,而且用了C:\WINDOWS\system32\drivers下的brusbser.sys时,系统显示说该端口不正常。我该怎么办呢?

出0入0汤圆

发表于 2009-4-11 23:02:55 | 显示全部楼层
记号

出0入0汤圆

发表于 2009-4-22 03:38:59 | 显示全部楼层
记号

出0入0汤圆

发表于 2009-4-22 08:22:06 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-5-6 15:57:02 | 显示全部楼层
做了一个,电脑无法正确识别。
晕!

出0入0汤圆

发表于 2009-5-8 19:38:36 | 显示全部楼层
请问 我手焊了个 电脑识别了 驱动也装上了
我直接下载STC系列单片机 为什么不行啊?谢谢回复

出0入0汤圆

发表于 2009-5-15 22:09:26 | 显示全部楼层
现在不是有CYGNAL的CP210X系列的芯片了吗,直接就可以将UART转换为USB了,再电平适配一下就好了,我用的波特率做到了912000bps,很稳定呀

如有不妥请指正

出0入0汤圆

发表于 2009-6-22 12:02:43 | 显示全部楼层
...

出0入0汤圆

发表于 2009-6-22 13:38:40 | 显示全部楼层
记号

出0入0汤圆

发表于 2009-6-22 23:56:59 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-6-26 13:11:26 | 显示全部楼层
小弟谢了

出0入0汤圆

发表于 2009-8-3 08:50:01 | 显示全部楼层
先谢谢咯,

出0入0汤圆

发表于 2009-8-14 00:29:36 | 显示全部楼层
用mega8能做USB转串口,而usb的jtag ice是mega16 + PL2303(或其他芯片)
那么可以把他们结合起来,这样的话USBjtag只要一个mega16就能搞定奥
期待牛人出现啊!!!!!!!!!!!呵呵

出0入9汤圆

发表于 2009-9-28 23:25:30 | 显示全部楼层
也准备试做一个

出0入9汤圆

发表于 2009-10-18 12:10:03 | 显示全部楼层
昨天做了一个,原理图和2楼一样,不过我没有使用1N4848,也就是说M8的电源直接取USB口的,但我在USB数据线上加了两个3V8的稳压管(手头找不到3V0到3V6的)。测试300到115200的波特率自发自收OK。
另外,直接接收单片机的数据正常,但是发送给单片机的数据单片机却收不到,发现将TXD线上的470欧姆短路后,单片机才能正常接收。

出0入0汤圆

发表于 2009-10-22 22:32:00 | 显示全部楼层
标记一下位置,好东西支持了

出0入0汤圆

发表于 2009-10-24 23:30:22 | 显示全部楼层
好,顶

出0入0汤圆

发表于 2009-10-26 22:01:05 | 显示全部楼层
mark,挖一下坟,现在是cdc232.2009-07-20.zip了

ATmega8/48/88's internal UART is configured from the PC automatically.
1200-57600bps, data 7/8, parity N/E/O, stop 1/2

出0入0汤圆

发表于 2009-11-12 17:56:15 | 显示全部楼层
既然WINDOWS有CDC类的标准驱动
那文件里的usbdrv文件夹是干啥用的?

出0入0汤圆

发表于 2009-11-30 22:54:42 | 显示全部楼层
这个好啊,可以DIY做USB转RS-232了!

出0入0汤圆

发表于 2009-12-5 01:40:07 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-12-7 19:41:43 | 显示全部楼层
这个东西又更新了

出0入0汤圆

发表于 2009-12-22 08:55:41 | 显示全部楼层
MARK

出0入0汤圆

发表于 2009-12-22 09:36:55 | 显示全部楼层
MARK

出0入0汤圆

发表于 2010-1-2 21:02:51 | 显示全部楼层
ding!

出0入0汤圆

发表于 2010-1-2 23:58:10 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-1-3 09:15:11 | 显示全部楼层
mark

出0入59汤圆

发表于 2010-1-5 00:13:17 | 显示全部楼层
记号~

出0入0汤圆

发表于 2010-1-5 13:42:28 | 显示全部楼层
有空也做一个试试

出0入0汤圆

发表于 2010-1-13 21:07:43 | 显示全部楼层
电阻用27欧都行,烧录了armok01129021能正常运行,不过这类的东西确实很头晕,有些工程中可以正常识别,而有些工程中又不可以,感觉好像是USB数据线上的电阻太小了.最近搞这个M8的USB接口,用一些例程确实让人头晕,有些不可以用,怎么都无法识别USB,有些就可以,在熔丝设置一样的情况下手上的两片M8 IC有一块可以一块不可以的问题都发生,在这个例程中我发现我的这两块IC都能用,本以是一块坏的一块好的.现在都证明了.用上面那个例程,我手上的这块"有问题板"都能正常识别,没有发现有不能识别的现象.感觉还好,希望能为学习的朋友提供了使用信息,供参考.

出0入0汤圆

发表于 2010-3-5 09:20:27 | 显示全部楼层
回复【7楼】shaoshunda
-----------------------------------------------------------------------

出0入0汤圆

发表于 2010-3-5 13:23:31 | 显示全部楼层
USB to 232

出0入0汤圆

发表于 2010-3-5 13:49:09 | 显示全部楼层
正在学习,谢谢!

出0入0汤圆

发表于 2010-3-5 14:06:09 | 显示全部楼层
MARK

出0入0汤圆

发表于 2010-3-12 18:41:31 | 显示全部楼层
myjnj 请问如何安装avrcdc.inf文件。

出0入0汤圆

发表于 2010-3-12 19:13:22 | 显示全部楼层
Mark

出0入0汤圆

发表于 2010-3-15 11:19:36 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-4-1 22:02:14 | 显示全部楼层
“如果没有68欧的电阻,也可以使用其它电阻替代,替代的电阻必须大于50欧小于100欧,越接近68欧越好, ”

我用33欧的,。。工作正常。。。

出0入0汤圆

发表于 2010-4-9 21:29:17 | 显示全部楼层
记下,明天来看

出0入0汤圆

发表于 2010-4-9 21:45:29 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-4-17 11:04:12 | 显示全部楼层
我做了个,自收自发没问题,就是连不上TOP851。为什么?

出0入0汤圆

发表于 2010-4-20 19:08:55 | 显示全部楼层
关注,mark

出0入0汤圆

发表于 2010-5-24 16:24:59 | 显示全部楼层
编译通不过,undefined reference to `usbCrc16Append'

出0入0汤圆

发表于 2010-6-5 16:39:28 | 显示全部楼层
发现两个怪现象
1在XP系统下一安装inf就蓝屏并自动重启,试验了两台机器都是这样
2在64位Win7下使用正常,但是如果在连接有USBASP的情况下插入CDC232,系统会将其识别为USBASP。
以上问题,待高人解答
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-13 20:44

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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