BXAK 发表于 2012-8-10 20:28:33

好资料:软USB之CDC-232、CDC-IO、CDC-SPI

本帖最后由 BXAK 于 2012-8-10 20:30 编辑







SUMMARY
=======
    The CDC-232 performs the CDC (Communication Device Class) connection over
    low-speed USB. It provides the RS-232C interface through virtual COM
    port. The AVR-CDC is originally developed by Osamu Tamura.
    Akira Kitazawa has significantly contributed to improve this software.


SPECIFICATION
=============
    AVR-CDC with USART (ATmega8/48/88/168)
      speed:   600 - 38400bps
      datasize: 5-8
      parity:   none/even/odd
      stopbit:1/2
      controls: DTR, RTS, CTS

    AVR-CDC with USART (ATtiny2313)
      speed:   600 - 38400bps
      datasize: 8
      parity:   none
      stopbit:1

    AVR-CDC without USART (ATtiny45/85)
      speed:    1200 -4800bps
      datasize: 8
      parity:   none
      stopbit:1
      supply current: 8-15mA

    The RTS indicates that the receive buffer is not full, and the CTS stops
    sending data at '0' input. These controls cannot be controlled/read by the
    host PC (ATmega).

    Internal RC Oscillator is calibrated at startup time on ATtiny45/85.
    When the other low speed device is connected under the same host
    controller, the ATtiny45/85 may fail to be recognized by the downstream
    broadcast packet.

    Although the CDC protocol is supported by Windows 2000/XP/(Vista/7), Mac
    OS 9.1/X, and Linux 2.4 or 2.6.31-, low-speed bulk transfer is not allowed
    by the USB standard. Use CDC-232 at your own risk.


USAGE
=====
   
    Download "avrcdc_inf.zip" and read the instruction carefully.

   
    You'll see the device /dev/cu.usbmodem***.

   
    The device will be /dev/ttyACM*.
    Linux <2.6.31 does not accept low-speed CDC without patching the kernel.
    Replace the kernel to 2.6.31 or higher.


DEVELOPMENT
===========
    Build your circuit and write firmware (cdcmega*.hex/cdctiny*.hex) into it.
    C1:104 means 0.1uF, R3:1K5 means 1.5K ohms.

    This firmware has been developed on AVR Studio 4.18 and WinAVR 20100110.
    If you couldn't invoke the project from cdc*.aps, create new GCC project
    named "at***" under "cdc232.****-**-**/" without creating initial file.
    Select each "default/Makefile" at "Configuration Options" menu.

    There are several options you can configure in
    "Project/Configuration Options" menu, or in Makefile

    (General)
    Device      Select MCU type.   
    Frequency   Select clock. 16.5MHz is the internal RC oscillator.
                (ATtiny45/85)
                3.3V Vcc may not be enough for the higher clock operation.

    (Custom Options) add -D*** to select options below.
    UART_INVERT Reverse the polarity of TXD and RXD to connect to RS-232C
                directly (ATtiny45/85).
                Enables software-inverters (PC0 -|>o- PB0, PC1 -|>o- PB1).
                Connect RXD to PB0 and TXD to PC1. The baudrate should be
                <=2400bps (ATmega48/88/168).

    Rebuild all the codes after modifying Makefile.

    Fuse bits
                        extH-L
      ATtiny2313         FF CD-FF
      ATtiny45/85      FF CE-F1
      ATtiny45/85(Xtal)FF 6E-FF / FF 6E-F1 (PLL)
      ATmega8               8F-FF
      ATmega48/88/168    FF CE-FF

        SPIEN=0, WDTON=0, CKOPT(mega8)=0,
        Crystal: Ex.8MHz/PLL(45,461), BOD: 1.8-2.7V

    * Detach the ISP programmer before restarting the device.

    The code size of AVR-CDC is 2-3KB, and 128B RAM is required at least.


USING AVR-CDC FOR FREE
======================
    The AVR-CDC is published under an Open Source compliant license.
    See the file "License.txt" for details.

    You may use this driver in a form as it is. However, if you want to
    distribute a system with your vendor name, modify these files and recompile
    them;
      1. Vendor String in usbconfig.h
      2. COMPANY and MFGNAME strings in avrcdc.inf/lowbulk.inf

CDC-232、CDC-IO、CDC-SPI源代码 及 Driver 直接到原网下载
转自原网:http://www.recursion.jp/avrcdc/

dexidz 发表于 2013-1-6 16:01:29

挺好的,大家好象不喜欢,可惜了

wx85105157 发表于 2013-2-6 18:40:25

怎么移植啊。自己编译总是不能用。Orz

xwkm 发表于 2013-2-6 19:06:25

我的内核貌似不支持low speed device bulk

xwkm 发表于 2013-2-8 17:12:19

发送是没问题了。但是貌似接收的时候那个该死的usbInterrupt就是不就绪

eriks626 发表于 2013-2-8 17:52:21

VUSB 挺有意思的!用软件做 USB!

xwkm 发表于 2013-2-8 18:25:18

eriks626 发表于 2013-2-8 17:52 static/image/common/back.gif
VUSB 挺有意思的!用软件做 USB!

做bulk-in/bulk-out就不行了。很多的hub和操作系统都会ban掉

zhousun 发表于 2013-2-8 19:31:36

蛮好的,更好的学习USB

zydl123 发表于 2013-2-8 20:46:13

早就做过,但总是没有专用的USB芯片好

John_123 发表于 2013-2-16 17:02:26

Thanks you!!

csdnct 发表于 2013-2-16 20:13:20

软USB没意义,支持usb的单片机C8051F320也才10元左右,费这个劲没必要

pic_flash 发表于 2013-5-24 16:36:28

请问有人成功移植用在PIC 晶片吗?

adan9033 发表于 2013-5-30 22:31:28

谢谢楼主的分享的资料,支持!

Elec_Ramble 发表于 2013-5-30 23:03:10

Mark…
来自:amoBBS 阿莫电子论坛 Windows Phone 7 客户端
页: [1]
查看完整版本: 好资料:软USB之CDC-232、CDC-IO、CDC-SPI