搜索
bottom↓
回复: 233

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

[复制链接]

出0入0汤圆

发表于 2006-7-6 21:39:21 | 显示全部楼层 |阅读模式
AVR-CDC - a USB to Serial Converter



This ingenious project implements the USB Communication Device Class, making use of the operating system's driver for the device class. No separate driver is needed on the host! Although it goes somewhat beyond the USB specification, it works on all major operating systems.

http://www.recursion.jp/avrcdc/



Author: Osamu Tamura





相关资料

点击此处下载armok01122528.zip

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2006-7-7 08:27:42 | 显示全部楼层
非常好,谢谢!

出0入0汤圆

 楼主| 发表于 2006-8-21 20:24:55 | 显示全部楼层
原理图

出0入0汤圆

 楼主| 发表于 2006-8-21 20:41:43 | 显示全部楼层


COM3是用ATMEGA8虚拟出来的串口

出0入0汤圆

 楼主| 发表于 2006-8-21 20:45:09 | 显示全部楼层

出0入0汤圆

 楼主| 发表于 2006-8-21 20:55:56 | 显示全部楼层


串口号COM1到COM256可选

出0入0汤圆

 楼主| 发表于 2006-8-21 21:13:05 | 显示全部楼层
在Jtag ICE中使用

出0入0汤圆

 楼主| 发表于 2006-8-21 21:15:54 | 显示全部楼层

出0入0汤圆

 楼主| 发表于 2006-8-21 21:19:22 | 显示全部楼层
cdcmega8.hex

点击此处下载armok01126921.rar

驱动

点击此处下载armok01126922.rar
-----此内容被shaoshunda于2006-08-21,21:20:54编辑过

出0入0汤圆

 楼主| 发表于 2006-8-21 21:34:49 | 显示全部楼层
下一步将用ATmega8的USB串口类实现单片的USB接口的AVR910

出0入0汤圆

发表于 2006-8-21 22:17:46 | 显示全部楼层
狂顶不带停!!!!!!!!!!!!!!

出0入0汤圆

发表于 2006-8-21 23:25:02 | 显示全部楼层
这个不错哦,顶

出0入0汤圆

发表于 2006-8-22 09:11:06 | 显示全部楼层
呵呵,大家可以自己做USB转串口线了,如果稳定性好的话,那就很棒了!

出0入42汤圆

发表于 2006-8-22 09:11:11 | 显示全部楼层
很好   狂谢楼主!!!!

出0入42汤圆

发表于 2006-8-22 10:58:13 | 显示全部楼层
好了   搞定   能跑 不错

出0入0汤圆

发表于 2006-8-22 11:06:21 | 显示全部楼层
好东西!

终于开发出来了!大家试验下。

不知最高速度能达到多少?

出0入0汤圆

发表于 2006-8-22 11:19:21 | 显示全部楼层
文档里面写是19200bps。



不知道14楼兄弟用什么编译的?我用WINAVR总是显示“Don't know how to make 'all'”

出0入42汤圆

发表于 2006-8-22 12:29:54 | 显示全部楼层
我直接把.hex文件直接写到MEGA8里试的  发现可以跑

不过我也不知道用什么编译,我觉得用Studoi 4应该能编译的

出0入0汤圆

 楼主| 发表于 2006-8-22 12:33:33 | 显示全部楼层
我用 AVR Studio 4.12 Service Pack 3 + Winavr 20060421

芯片用ATmega16  重新编译后可以正常工作

出0入0汤圆

发表于 2006-8-22 13:17:33 | 显示全部楼层
我试过了, 不稳定

    我的是Win2k professional+SP4, M8烧的是下载包里提供的hex文件, M8插在面包板上.

测试时把M8的Rx和Tx相连, 然后用超级终端打开这个东东虚拟的串口, 开始还可以, 但是发了一定量(但是也不固定)的数据后, 超级终端里不回显. 坚持不懈的发, 后来回显的是前面发送的内容. 关闭串口重新打开也是如此, 只有从USB口断开或者M8复位才行. 而且把stk500, jtag的Hex烧到M16里, 通过这东东 AVRStudio 也检测不到. 分析工具检测表明, 确实是没有回传数据.

    下回我试一下烧两个M8, 让这两个M8互相通信, 看看稳定性如何.

    就USB协议来说, M8工作在12M是不够快的. 虽然有AVR309成功的范例, 但是前提条件是通信线路质量够好, 因为这里的CDC类还有AVR309都没有做CRC校验. 如果通信受干扰, 通信肯定出问题.

    我的E文不好, 阅读USB协议非常的困难, 大致意思是: USB设备收到USB host的某些包, 是需要做ACK, NAK或其它的应答的. 如果CRC检验出错, 则不做任何应答.12M的M8, 只有时间接收一个USB通信包, 来不及做检验, 只能假装接收的数据是好的, 匆匆忙忙做了应答(熟悉USB协议的帮我纠正一下). 我还没有看缓冲处理那里的代码, 不知道这个CDC类会不会有缓冲溢出等问题(上面不是有回显滞后的现象吗?).

    我本来打算为AVR309写一个串口驱动, 但是觉得实现一个CDC Frame更有意思(学习AVR嘛, 如果成功的话, 估计比cp2102等都好用), 因此在阅读USB协议文档. 此间看到这个帖子, 然后试了一下, 还大致浏览了一下它的代码.得上上述初浅的结论.不对还请诸位指出----先谢了.



    如果armok提供c5131片子邮购的话, 大家自己做USB to UART倒不错. Atmel有一个USB2.0的CDC范例. 这东东的稳定性应该是不错的, 因为它的USB通信是硬件完成的. 其它片子如PIC也提供这样的范例.



    6楼的驱动是多余的, 它实现的是标准的CDC类, Windows内置驱动, 不过需要下载包里的inf文件.

出0入0汤圆

发表于 2006-8-22 21:27:27 | 显示全部楼层
谢谢楼上的宝贵经验。



我想做一个USB遥控器,当然是指用这个例子改造一下,而不是用现成的90S2313方案。上位机程序我就非常熟悉了,关键是AVR能够一个MCU完成红外接收和USB就过瘾了。12M不够,用20M行不行?

出0入0汤圆

 楼主| 发表于 2006-8-22 21:40:53 | 显示全部楼层
我刚测试,很稳定啊

    我的系统是Winxp professional SP2,用的芯片是ATmega16,编译环境是AVR Studio 4.12 Service Pack 3 + Winavr 20060421,优化等级-0s,我是用万能板搭的电路,除了ATmega16用集成座外,其它器件都直接焊在板子上。测试时把ATmega16的Rx和Tx相连, 然后用超级终端打开这个东东虚拟的串口,不停的发字符发文件,都没问题啊

出0入0汤圆

 楼主| 发表于 2006-8-22 22:15:59 | 显示全部楼层

出0入0汤圆

 楼主| 发表于 2006-8-22 22:18:40 | 显示全部楼层
传送文件

出0入0汤圆

发表于 2006-8-23 00:01:18 | 显示全部楼层
楼上的能不能将这个模拟的COM3的输出接入COM2口的输入,用大文件传输测试一下.

出0入0汤圆

发表于 2006-8-23 09:36:38 | 显示全部楼层
那我再多做一些测试, 改善一下测试条件.

    昨天大致阅读了一下这个CDC类的缓冲处理代码, 如果缓冲慢了, 那么就丢弃新的数据, 无论是上行还是下行.

出0入0汤圆

 楼主| 发表于 2006-8-23 12:17:54 | 显示全部楼层
回【25楼】 GandF

我的笔记本电脑没有串口,COM3是ATmega16模拟出来的

出0入0汤圆

 楼主| 发表于 2006-8-23 12:31:06 | 显示全部楼层
自发自收,我用串口调试软件测试了一下,发送周期1毫秒,自动发送,不停的发送几分钟后,出现收不到字符的现象,串口关闭后重新打开,又恢复正常。出现这种现象应该是【26楼】 jimo 所说的原因。我看了一下代码接收缓冲区的大为256,发送缓冲区的大小为128

出0入0汤圆

发表于 2006-8-23 13:53:25 | 显示全部楼层
调试所用的速度是多少?

我也试着编译程序,发现整个程序只占用M8的FLASH和RAM一半的空间,增大接收、发送缓冲区应该是可以的。关键还是这个速度,麻烦调低速度再测试一下,看看稳定的最高速度是多少?

出0入0汤圆

发表于 2006-8-23 14:06:25 | 显示全部楼层
26楼打错了一个字, 不知道对大家的理解是否有误导, 正确的是: "如果缓冲满了"



    如果仅仅是缓冲区处理不好, 这个容易处理, 在应答前判断一下缓冲区再决定回复ACK还是NAK. 我觉得最大的问题是CRC校验, 不做CRC校验, 不符合USB通信标准, 出现干扰的话, 无法保证通信的可靠.

    至于速度, 我想不要期望太高, 但是也不赖, 应该只受限于M8的UART的速度. 上面shaoshunda不是可以工作在115200下吗? 如果改一下, 数据不用M8通过RX, TX传送, 而是用M16, 用16条IO线并行传送, 速度应该可以更高的.

出0入0汤圆

发表于 2006-8-23 17:29:18 | 显示全部楼层
我原先用标准PC串口频繁发数据,也出现过发一段时间后发送失败的情况,后来软件上判断发送失败就关闭串口重新打开,解决了这个问题,所以如果是这样的问题,我肯定可以使用,就是改写一下上位机软件即可。



我想请问,改20M晶振行不行?

出0入0汤圆

发表于 2006-8-23 17:59:50 | 显示全部楼层
12M时, 刚好有时间接收一个通信包和生成一个应答, 从代码的描述来看, 要求控制在60个时钟周期(?), 而对8字节(USB数据包的大小)进行CRC16计算, 要远大于60个始终周期, 等待完成CRC16的计算, USB Host都认为USB Device无应答而重发了. 因此24M都不行. 很多成熟的USB芯片内部的时钟都工作在48M.

    这是我对USB协议初浅的理解, E文不好,理解的不透彻.

    或许我理解错了, USB Host允许USB Device花费教长的时间才应答的话, 那倒是可以的. 但是这样导致一个后果: 低速USB Device会把高速的USB总线拖慢的: 带宽在等待中白白的浪费.

    因此20M是不行的, 而且M8超频到20M, 芯片自身的稳定性还是否可靠呢?



    改写上位机也许可以解决缓冲的问题, 但是虚拟串口很多时候是因为没有串口的电脑要使用旧的软件, 这样的话上位机软件是无法重写的. 而且象STK500等协议是有时间限制的, 不能等待过长的时间.

出0入0汤圆

发表于 2006-8-23 23:00:15 | 显示全部楼层
上传相关的USB协议供高手参考

USB_DEVICE_CLASS_COMMUNICATIONS 2 通信设备类(Communications Device) (CDC):电讯设备,如调制解调器、电话、应答机,等等 (这个程序就是用了这个协议,最好有高手翻译成中文)

点击此处打开armok01127053.pdf

IrDA设备类(IrDA Bridge Device):针对红外设备

点击此处打开armok01127054.pdf

usb 数据格式

点击此处打开armok01127055.doc

点击此处打开armok01127056.doc

出0入0汤圆

 楼主| 发表于 2006-8-24 09:30:28 | 显示全部楼层
谢谢!【33楼】 GandF

出0入0汤圆

发表于 2006-8-24 11:19:14 | 显示全部楼层
我也正准备做一个。谢谢

出0入0汤圆

发表于 2006-8-24 18:21:47 | 显示全部楼层
好东西!

想学习做一个……我是菜鸟

出0入0汤圆

发表于 2006-8-24 19:21:59 | 显示全部楼层
用这个做编程器就好多了。有很多串口的编程软件都可以用了。

出0入0汤圆

发表于 2006-8-26 11:42:53 | 显示全部楼层
我仿制了一个。

电脑认为是:“无法识别的USB设备”!?

出0入0汤圆

 楼主| 发表于 2006-8-26 13:02:29 | 显示全部楼层
电路中的一个1.5K上拉电阻和两个68欧电阻不能省掉,还有熔丝位要正确,要用12M的晶振

出0入0汤圆

发表于 2006-8-26 16:38:27 | 显示全部楼层
谢谢 shaoshunda 楼主的答复!



一、安装情况

  1、由于手头一时没有完全相同的阻值:

    上拉电阻1.5K、使用了1K,上拉强了一些,是不是“大问题”?

    两个68欧电阻不能省掉,是47欧;

    M8的pin4(PD2),有弱上拉电阻1N(R4)。

  2、其余按电路图,12M的晶振。

  3、熔丝位,按 GandF的意见,全部取“0”:

     M8设置:

      (1)、外部晶振CKSEL0..3(1111)

      (2)、慢速启动(11)

      (3)、512字节BOOT区(11)

      (4)、BOOT启动(1)

            [提勾为“0”]____也就是所有的提勾全部取消。

           我是菜鸟。只能“依葫芦画瓢”。

   



二、测试了一些芯片的直流电压情况:

  1、USB供电串接两个4148二极管:

      Vcc=3.83V;

      晶体两端直流电压=7.88V/7.86V(pin9/Pin10);

      未使用IO端子直流电压~1.8V;

      USB之DATA+/DATA-直流电压=3.570V/0.055V;

      USB之+5V电源电压=5.00V。

  2、USB供电串接两个4148二极管短路……USB+5V直接供电:

      Vcc=5.00V;

      晶体两端直流电压=7.95V/7.92V(pin9/Pin10);

      未使用IO端子直流电压~2.24V;

      USB之DATA+/DATA-直流电压=3.862V/0.072V;

      USB之+5V电源电压=5.00V。



      请行家指教!

出0入0汤圆

 楼主| 发表于 2006-8-26 18:44:02 | 显示全部楼层
熔丝位的设置情况

# 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)

# Fuse low byte:

# 0x9f = 1 0 0 1   1 1 1 1

#        ^ ^ \ /   \--+--/

#        | |  |       +------- CKSEL 3..0 (external >8M crystal)

#        | |  +--------------- SUT 1..0 (crystal osc, BOD enabled)

#        | +------------------ BODEN (BrownOut Detector enabled)

#        +-------------------- BODLEVEL (2.7V)



两个68欧电阻不能省掉,47欧太小了,要50欧以上,但又不能太大

具体见以下贴子

http://www.ouravr.com/bbs/bbs_content.jsp?bbs_sn=548326&bbs_page_no=1&bbs_id=1000

出0入0汤圆

发表于 2006-8-26 21:08:17 | 显示全部楼层
shaoshunda 楼主您好:



    1、您的这个熔丝表,和 GandF 的,可是不一样啊?

    但是,按这个熔丝表烧写,电脑还是“不认识”这个USB设备!?



    2、两个68欧电阻,是“稍微”隔离一下 USB接口的数据线 Data+/Data- 和 M8端口的电阻;而 M8端口的输入阻抗又是非常高的;需要这样“精确”吗(个人愚见)?

    明天,我更换一下电阻,再试试?



    非常感谢您的细心指导!!!

出0入0汤圆

发表于 2006-8-27 09:31:46 | 显示全部楼层
今天,重新更换了电阻值:

    R1=R2=68.0欧姆;

    R3=1.5K;

    R4=0/1M(接入与否,都试过);

熔丝设置

    按GandF的和 shaoshunda的,都试过......

电源电压

    Vcc=3.8V/5.0V,都试过......

    ......

仍然是“无法识别的 USB 设备”!



    无能为力了——准备重新安装一块试验板——是否这块太拥挤了一点点(M8的插座下面、有6个元件,包括晶体)?

    好像论坛有人说,不使用PCB的安装,可能“无法识别”?



    我是临时“搭”的试验板:

   

出0入0汤圆

 楼主| 发表于 2006-8-27 11:06:37 | 显示全部楼层
【43楼】 wxfhw 怎么没看到12M晶振啊

出0入0汤圆

发表于 2006-8-27 21:33:48 | 显示全部楼层
to shaoshunda :

    12M晶振,在M8芯片的下面。





今天下午安装了第二块试验板。

为了有可对比性,我还是“增加”了一些可选择的元件。



    这次,一下子就“成功”了.......

      初步看了看元件参数的变化容许范围:

1、电源电压Vcc:3.6V/5.0V——均可;

2、USB接口 Data+/Data- 隔离电阻:47~(47+68)——均可;

3、Data- 上拉电阻 R3:510~1.5K——均可;

      上面的“均可”,就是均可在电脑的《设备管理器》的《端口(COM和LPT)》之中,增加一个“Commuications Part(COM3)"--------即完成了USB--COM的装换。

      印象:

      1、硬件的参数范围,不是非常严格的(尚未考虑真正的通信特性,只是指能否识别USB端口而言);

      2、为什么我的“第一板”不行?需要进一步对比分析。



出0入0汤圆

发表于 2006-8-27 23:03:17 | 显示全部楼层
它山之石可以造玉!

出0入0汤圆

发表于 2006-8-28 07:04:04 | 显示全部楼层
今天早上不放心,检查了一下熔丝位,是 GandF 建议的。

有意思的是:shaoshunda 介绍的 熔丝数值,“效果相同”,同样认识!

为什么???

出0入0汤圆

 楼主| 发表于 2006-8-28 09:20:59 | 显示全部楼层
关键是设置成外部晶振12M

出0入0汤圆

发表于 2006-8-28 11:42:02 | 显示全部楼层
RS-232电平转换也正常了。

使用串口调试软件 sscom32.exe 自己发送+自己接收,是正常的。



——但是,试验连接 Easy51pro串行通讯编程器,失败了......

——原因有待查找!
-----此内容被wxfhw于2006-08-28,12:36:33编辑过

出0入0汤圆

发表于 2006-8-28 22:20:49 | 显示全部楼层
问题找到了——低级错误——RS-232的Txd/Rxd错误了。



可以连接 Easy51pro串行通讯编程器——手头只有这个三线连接的串口设备。

可是,读写过程之中有误码发生。

出0入0汤圆

发表于 2006-8-29 07:24:32 | 显示全部楼层
连续试验,还是存在误码.......波特率高时,相对误码多一点点。

出0入0汤圆

发表于 2006-9-1 10:58:22 | 显示全部楼层
wxfhw 找到第一板和第二板的差别了吗?我也失败了,现象和你一样。

出0入0汤圆

发表于 2006-9-1 12:14:59 | 显示全部楼层
To LRNAVR:

    不好意思了——最近没有时间——如果发现了差别(问题),我将在第一时间汇报。

出0入0汤圆

发表于 2006-9-4 14:28:17 | 显示全部楼层
wxfhw 你用的是M8还是M8L啊?

出0入0汤圆

发表于 2006-9-5 10:24:52 | 显示全部楼层
碰到“无法识别的 USB 设备”! 问题的朋友,最好确定一下PC机的USB口是否正常.

本人碰到类似问题,换个USB口搞定!

出0入0汤圆

发表于 2006-9-6 19:10:08 | 显示全部楼层
LRNAVR: 至今没有找到两次的关键差别(不同)!?

        我用的是M8还是M8L。



malife:我的在多于5台电脑上面试用,好像和PC机的USB口“无关”。

出0入0汤圆

发表于 2006-9-7 09:01:45 | 显示全部楼层
1. 从USB口取电, 串两个二极管分压, 得到近似3.3v电压

2. 烧个流水灯程序, 确保芯片工作正常

3. 检查1.5k的电阻在D-线对3.3v电源上拉

4. D-, D+线两个68-100欧姆的电阻不能错

5. 把2000年前的电脑仍到垃圾箱

6. 把USB口坏的电脑仍到垃圾箱

7. 烧范例里提供的Hex文件

8. M8的RX, TX短接

9. 安装驱动时使用范例里提示的inf文件

10. 在电脑上用串口调试软件或者超级终端测试

出0入0汤圆

发表于 2006-9-16 19:44:12 | 显示全部楼层
我的使用M16,用超级终端发送文件winxp出现蓝屏死机,不知是什么原因?

出0入0汤圆

 楼主| 发表于 2006-9-16 21:16:08 | 显示全部楼层
【58楼】 malife

是不是每次都蓝屏
头像被屏蔽

出0入0汤圆

发表于 2006-9-16 21:29:24 | 显示全部楼层
Cool!



另:上面的说明: No separate driver is needed on the host! 



中文好像是:host上不需要驱动程序 ? 是什么意思?

出0入0汤圆

 楼主| 发表于 2006-9-16 23:16:59 | 显示全部楼层
【60楼】 armok 阿莫

USB 的CDC类所用的驱动是Windows自带的,安装驱动时所用的Inf文件的作用是,告诉Windows

用了windows中哪些驱动文件,以及USB的PID、VID还有产品信息等

出0入0汤圆

发表于 2006-9-16 23:25:41 | 显示全部楼层
速度要求不高的可行,文档中说明最大波特率19200。115200估计是不行的。可以计算一下usb与串口的耗时。

出0入0汤圆

发表于 2006-9-16 23:53:29 | 显示全部楼层
标记关注,以后实践

出0入0汤圆

发表于 2006-9-17 02:27:20 | 显示全部楼层
固件是2006-06-28的版本了,

已经有AVR-CDC.2006-07-18和AVR-CDC.2006-08-28了.

刚刚开始学,还不是很明白,

以至于没有办法验证.

送给大家共享
-----此内容被jh_320于2006-09-17,02:28:06编辑过

出0入0汤圆

 楼主| 发表于 2006-9-17 13:19:52 | 显示全部楼层
AVR-CDC.2006-08-28.zip

点击此处下载armok01128932.zip

出0入0汤圆

 楼主| 发表于 2006-9-17 13:43:57 | 显示全部楼层
待会儿上传,可通过USB接口升级固件的Bootloader

出0入0汤圆

 楼主| 发表于 2006-9-17 14:07:05 | 显示全部楼层
通过USB接口升级固件截图

出0入0汤圆

 楼主| 发表于 2006-9-17 14:09:38 | 显示全部楼层

出0入0汤圆

 楼主| 发表于 2006-9-17 16:57:23 | 显示全部楼层
USB Bootloader 固件及PC端软件见帖子

http://www.ouravr.com/bbs/bbs_content.jsp?bbs_sn=644779&bbs_page_no=1&bbs_id=1000

出0入0汤圆

发表于 2006-9-18 11:33:06 | 显示全部楼层
刚用winavr,那位将工程打包后上传,谢谢,我尝试到winavr下编译不成功

出0入0汤圆

 楼主| 发表于 2006-9-18 12:06:14 | 显示全部楼层
【70楼】 myjnj

晚上我会上传工程

出0入0汤圆

发表于 2006-9-18 12:23:17 | 显示全部楼层
谢谢先

出0入0汤圆

发表于 2006-9-18 20:18:58 | 显示全部楼层
我也是编译不成功,请楼主上传做好的吧。

出0入0汤圆

 楼主| 发表于 2006-9-18 20:52:28 | 显示全部楼层
AVRCDC.rar

点击此处下载armok01129021.rar

AVRCDC放在D:盘根目录

Winavr装在C:

AvrStudio V4.12 SP3 Build 490 + Winavr 2006.04.21

出0入0汤圆

发表于 2006-9-18 22:07:49 | 显示全部楼层
;avrcdc.inf 文件 修改



Signature="$Windows NT$"

Class=Ports

ClassGuid={4D36E978-E325-11CE-BFC1-08002BE10318}

Provider=%COMPANY%

LayoutFile=layout.inf

DriverVer=06/06/2006,1.0.0.0



[Manufacturer]

%MFGNAME% = ManufName



[DestinationDirs]

DefaultDestDir=12



[ManufName]

%Modem3% = Modem3, USB\VID_16C0&PID_05E1



;------------------------------------------------------------------------------

;  Windows 2000/XP Sections

;------------------------------------------------------------------------------



[Modem3.nt]

CopyFiles=USBModemCopyFileSection

AddReg=Modem3.nt.AddReg



[USBModemCopyFileSection]

usbser.sys,,,0x20



[Modem3.nt.AddReg]

HKR,,DevLoader,,*ntkern

HKR,,NTMPDriver,,usbser.sys

HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider"



[Modem3.nt.Services]

AddService=usbser, 0x00000002, DriverService



[DriverService]

DisplayName=%SERVICE%

ServiceType=1

StartType=3

ErrorControl=1

ServiceBinary=%12%\usbser.sys



;------------------------------------------------------------------------------

;  String Definitions

;------------------------------------------------------------------------------



[Strings]

COMPANY="OURAVR"                ;改成你公司的名字

MFGNAME="www.ouravr.com"        ;改成你公司的名字

Modem3="Communications Port"      

SERVICE="USB-232 Emulation Driver" ;改成你公司的名字



;这样就可以嵌入到你的产品中
-----此内容被myjnj于2006-09-18,22:16:05编辑过

出0入0汤圆

发表于 2006-9-19 12:46:24 | 显示全部楼层
usbconfig.h 文件中的信息也要作修改



//******************************************************************

#define USB_CFG_VENDOR_NAME     'w', 'w', 'w', '.', 'r', 'e', 'c', 'u', 'r', 's', 'i', 'o', 'n', '.', 'j', 'p'

#define USB_CFG_VENDOR_NAME_LEN 16

/* These two values define the vendor name returned by the USB device. The name

* must be given as a list of characters under single quotes. The characters

* are interpreted as Unicode (UTF-16) entities.

* If you don't want a vendor name string, undefine these macros.

* ALWAYS define a vendor name containing your Internet domain name if you use

* obdev's free shared VID/PID pair. See the file USBID-License.txt for

* details.

*/

#define USB_CFG_DEVICE_NAME     'U', 'S', 'B', '-', '2', '3', '2'

#define USB_CFG_DEVICE_NAME_LEN 7

出0入0汤圆

 楼主| 发表于 2006-9-19 20:46:24 | 显示全部楼层
虽然我知道怎么改,但还是要谢谢myjnj

出0入0汤圆

发表于 2006-10-17 20:21:28 | 显示全部楼层
我把我做的usbasp改了一下,溶丝位没变,发送在19200下都是正常的,但接受一点反映也没有。直接把rxd,txd连上也收不到,哪位遇到过?

出0入0汤圆

发表于 2006-10-25 12:50:07 | 显示全部楼层
ji hao

出0入0汤圆

发表于 2006-10-25 18:27:03 | 显示全部楼层
谢谢

上面有好几处相关下载,楼主若能整理一下合在一个包里就太好了。

出0入0汤圆

发表于 2006-10-25 19:46:28 | 显示全部楼层
"COM3是用ATMEGA8虚拟出来的串口"是什么意思?

还有超级终端是WINDOWS自带的吗?

出0入0汤圆

 楼主| 发表于 2006-10-26 09:31:20 | 显示全部楼层
超级终端是WINDOWS自带的。

COM3是由M8实现的USB转串口。

出0入0汤圆

 楼主| 发表于 2006-10-26 09:33:30 | 显示全部楼层
【80楼】 xiaoke

最近比较没忙,有空我会打个完整的包上传。

出0入0汤圆

发表于 2006-11-4 15:46:19 | 显示全部楼层
【74楼】 shaoshunda

请问你的default的文件里怎么没C文件,如何编译呀?

出0入0汤圆

 楼主| 发表于 2006-11-4 18:40:52 | 显示全部楼层
回【84楼】 MYMCU

default是用来存放目标文件的。

C文件在avrcdc中,注意是AVRCDC中的avrcdc。

-----------------------

注意:

AVRCDC放在D:盘根目录

Winavr装在C:

AvrStudio V4.12 SP3 Build 490 + Winavr 2006.04.21



打开AvrStudio的工程文件D:\AVRCDC\AvrCDC.aps进行编译

出0入0汤圆

发表于 2006-11-4 22:04:04 | 显示全部楼层
我打算用它来改造AVR JATG 用到手提电脑上.

出0入0汤圆

发表于 2006-11-7 19:04:29 | 显示全部楼层
【85楼】 shaoshunda 你好:

谢谢你的回复,按照你说的做了,结果不行.我想用Winavr 2006.04.21编译,总是出错.见下面

> "make.exe" all

make.exe: *** No rule to make target `all'.  Stop.



> Process Exit Code: 2

> Time Taken: 00:00

我将cdcmega里的makefile文件放到avrcdc里也不行,我是新手,还望指教.

出0入0汤圆

发表于 2006-11-7 19:53:48 | 显示全部楼层
好贴,要顶!

出0入0汤圆

 楼主| 发表于 2006-11-7 22:25:47 | 显示全部楼层
回【87楼】 MYMCU ,

看【74楼】,【85楼】,【22楼】。

从【74楼】下载文件,具体存放路径已经在【74楼】,【85楼】做了说明了,

工程的具体设置看【22楼】。如果采用芯片不同,只需更改芯片的选项“Device”即可,看

【22楼】。无需更改makefile。生成的HEX文件在default文件夹中,名为AvrCDC.HEX

出0入0汤圆

发表于 2006-11-8 14:22:58 | 显示全部楼层
shaoshunda 你好:

谢谢你的回复,按照你说的做了,结果行了.谢谢你!

下面是我编译的结果:

AVR Memory Usage

----------------

Device: atmega48



Program:    2744 bytes (67.0% Full)

(.text + .data + .bootloader)



Data:        481 bytes (93.9% Full)

(.data + .bss + .noinit)





Build succeeded with 0 Warnings...

出0入0汤圆

发表于 2006-11-20 22:29:32 | 显示全部楼层
shaoshunda说用mega16做的,如果是16L,那么是不是超频在跑?如果是16的话,datasheet上建议的电压为4.5以上,usb串了2个4148不是就3.6V左右了,能稳定工作吗?

楼上有人用8PI做的,应该是超频跑的吧?
-----此内容被gingin于2006-11-20,22:30:55编辑过

出0入0汤圆

发表于 2006-11-20 23:18:49 | 显示全部楼层
哦,不需要驱动程序实在是太好了。

出0入0汤圆

发表于 2006-11-21 08:11:45 | 显示全部楼层
shaoshunda 你好:

有没有办法加个USB连接指示灯呀?

出0入0汤圆

发表于 2006-11-26 21:10:45 | 显示全部楼层
试过了,好东西

出0入0汤圆

发表于 2007-5-16 00:25:00 | 显示全部楼层
请问楼主,我用本网站的串口调试助手试过收发都OK.

但是用windows自带的超级终端就无法发送文件?!

每次发送都提示"无效的消息格式"



请问有哪朋友知道以上原因?

出0入0汤圆

发表于 2007-5-17 21:20:01 | 显示全部楼层
这个东西..还是不完善.



老的主板不能用.....

出0入0汤圆

发表于 2007-5-24 22:43:46 | 显示全部楼层
我有个问题不太明白,为什么要通过2个4148把电压降低,5V的电压不是正好是标准的吗?

出0入0汤圆

发表于 2007-5-25 08:35:44 | 显示全部楼层
标准是3.3V

出0入0汤圆

发表于 2007-5-27 21:19:02 | 显示全部楼层
AVRCDC出来的TX RX是在3.3V电压下出来的,可以直接和5V电源的目标板上的RX TX连接吗?

出0入0汤圆

发表于 2007-5-31 22:55:19 | 显示全部楼层
我今天用ATMEG8 做了一个,用了3个串口调试软件 自收自发,刚开始都没有问题,一般1分钟左右,电脑就重新启动了..好奇怪..



有一个电脑还兰屏 提示usbser.sys 等
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-13 08:16

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

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