

                                    CDC-232


    This is the Readme file to firmware-only CDC driver for Atmel AVR
    microcontrollers. For more information please visit
    http://www.recursion.jp/avrcdc/


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:    1200 - 38400bps
        datasize: 5-8
        parity:   none/even/odd
        stopbit:  1/2

    AVR-CDC with USART (ATtiny2313)
        speed:    2400,9600,38400bps Fixed (rebuild to use 600-57600bps)
        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

    Internal RC Oscillator is calibrated at startup time. It may be unstable 
    after a long time operation (ATtiny45/85).

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


USAGE
=====
    [Windows XP/2000/Vista]
    Download "avrcdc_inf.zip" and read the instruction carefully.
 
    [Mac OS X]
    You'll see the device /dev/cu.usbmodem***.

    [Linux]
    The device will be /dev/ttyACM*.
    Linux 2.6 does not accept low-speed CDC without patching the kernel.


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.16 and WinAVR 20090313.
    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.
    INVERT      Reverse the polarity of TXD and RXD to connect to RS-232C
                directly (ATtiny45/85).
    INTERRUPT   Using RxD interrupt achieves the higher transfer rate, but
                it causes obstacle in USB communication.
                Try this if the USB connection is stable. (ATmega)

    Rebuild all the codes after modifying Makefile.

    Fuse bits
                          ext  H-L
        ATtiny2313         FF CD-FF
        ATtiny45/85        FF CE-F1
        ATtiny461/861      FF C8-F1
        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 



    Osamu Tamura @ Recursion Co., Ltd.
    http://www.recursion.jp/avrcdc/
    26 June 2006
    7 April 2007
    7 July 2007
    27 January 2008
    25 August 2008
    10 April 2009
    18 July 2009

