Giter Site home page Giter Site logo

fast-usbserial's Introduction

NOTE: This is a modified version of arduino-usbserial, and
was only tested on the ATmega16U2, and the below
readme is obsolete. On my 16U2 it is hit the 16U2 reset
with pliers and sudo make dfu :P

For better instructions (and an image) of how to flash your 16U2 / 8U2:
http://forum.arduino.cc/index.php?topic=52076.msg373873#msg373873
Also note that if your board is new enough (atleast the ones with 16U2 are) you dont
need to touch/ground the HWB (point near cap), just reset.
So you might as well see if it appears as DFU device (lsusb before and after) after only the reset.

To setup the project and upload the Arduino usbserial application firmware to an ATMEGA8U2 using the Arduino USB DFU bootloader:
2. set ARDUINO_MODEL_PID in the makefile as appropriate
3. do "make clean; make"
4. put the 8U2 into USB DFU mode:
4.a. assert and hold the 8U2's RESET line
4.b. assert and hold the 8U2's HWB line
4.c. release the 8U2's RESET line
4.d. release the 8U2's HWB line
5. confirm that the board enumerates as either "Arduino Uno DFU" or "Arduino Mega 2560 DFU"
6. do "make dfu" (OS X or Linux - dfu-programmer must be installed first) or "make flip" (Windows - Flip must be installed first)

Check that the board enumerates as either "Arduino Uno" or "Arduino Mega 2560".  Test by uploading a new Arduino sketch from the Arduino IDE.

fast-usbserial's People

Contributors

urjaman avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

fast-usbserial's Issues

Update to latest LUFA

Hi,
I've seen this code and it really seems to be an awesome solution. I haven't had time to test it though.

It looks like you are using an old version of LUFA. Which isnt bad at all, but it would be interesting if you could update this to the latest LUFA and still get it working. Then we could also see it in the LUFA USB-Serial example and not only for Arduino.

And I guess you used Windows to compile the firmware (since I didnt get that working under linux again with those old sources). You could also update avr-gcc to 4.8.1 or 4.9.2 to maybe get more speed or more flash improvements:
https://nicohood.wordpress.com/2015/02/20/compiling-with-avr-gcc-4-9-2-under-windows/
https://nicohood.wordpress.com/2015/01/24/installing-avr-gcc-4-8-1-and-arduino-ide-1-6-on-raspberry-pi/

I am developing a 16u2 Bootloader that gives the opportunity to upload sketches to the 328 as usual and also to the 16u2 itself. If I have time I'd like to integrate this, if you'd like to. Is this okay for you? If you feel like playing with the bootloader and apply those patches before I've got time to, feel free to help.
https://github.com/NicoHood/HoodLoader2
NicoHood/HoodLoader2#13

It would be nice if you could do a little writeup about how this works and what youve' changed? Hope I have a chance to test this soon. (I need a 32u2 .hex file so I need to recompile it myself before using it).

why can not set RTS pin?

I'm using RTS and DTR for some control, but I found that, when I set DTR, PD7 goes LOW, but set RTS, PD6 not have any change.

then I change this function

/** Configures the board hardware and chip peripherals for the demo's functionality. */
void SetupHardware(void)
{
    /* Disable watchdog if enabled by bootloader/fuses */
    MCUSR &= ~(1 << WDRF);
    wdt_disable();

    /* Hardware Initialization */
    Serial_Init(9600, false);
    LEDs_Init();
    USB_Init();

    /* Timer0 is the LED timeout timer... */
    TCCR0B = _BV(CS02);

    /* Timer1 is the USB flush timeout timer. */
    OCR1A = 8000; // 0.5ms at 16Mhz
    TCCR1A = 0;
    TCCR1B = _BV(WGM12) | _BV(CS10);

    /* Pull target /RESET line high */
    AVR_RESET_LINE_PORT |= AVR_DTR_LINE_MASK;
    AVR_RESET_LINE_PORT |= AVR_RTS_LINE_MASK;
    AVR_RESET_LINE_DDR  |= AVR_DTR_LINE_MASK;
    AVR_RESET_LINE_DDR  |= AVR_RTS_LINE_MASK;
}


/** Event handler for the CDC Class driver Host-to-Device Line Encoding Changed event.
 *
 *  \param[in] CDCInterfaceInfo  Pointer to the CDC class interface configuration structure being referenced
 */
void EVENT_CDC_Device_ControLineStateChanged(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo)
{

    bool CurrentDTRState = (CDCInterfaceInfo->State.ControlLineStates.HostToDevice & CDC_CONTROL_LINE_OUT_DTR);
    bool CurrentRTSState = (CDCInterfaceInfo->State.ControlLineStates.HostToDevice & CDC_CONTROL_LINE_OUT_RTS);

    if (CurrentDTRState){
      AVR_RESET_LINE_PORT &= ~AVR_DTR_LINE_MASK;
    }else{
      AVR_RESET_LINE_PORT |= AVR_DTR_LINE_MASK;
    }

    if (CurrentRTSState){
      AVR_RESET_LINE_PORT &= ~AVR_RTS_LINE_MASK;
    }else{
      AVR_RESET_LINE_PORT |= AVR_RTS_LINE_MASK;
    }
}

and I change makefile

CDEFS += -DAVR_DTR_LINE_MASK="(1 << 7)"
CDEFS += -DAVR_RTS_LINE_MASK="(1 << 6)"

and I found that, when I setup RTS, there's nothing happen, but when I set DTR, something interesting happen, RTS and DTR goes to LOW together.

I think that function EVENT_CDC_Device_ControLineStateChanged not be called when I set RTS.

I debug, and found that, when I set RTS, function Endpoint_IsSETUPReceived return false when I set RTS, but return true when I set DTR

static inline bool Endpoint_IsSETUPReceived(void)
{
    return ((UEINTX & (1 << RXSTPI)) ? true : false);
}

I'm unfamiliar with avr MCU, and I do not know what to do that.

Custom BLBAUD for frser-duino

Hi.
I have updated fw on arduino's 16u2 chip and than I made
make ftdi
make flash-u2
Than with command:
e.g flashrom -o test.txt -p serprog:dev=com4:2000000 -r test.bin
I got errors flashrom invalid response 0xFF from device and something about a buffer.

can this speed be custom adjusted?

features

How is it faster and what was the problem with the original usbserial?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.