USB on the AT90USB646/647 missing

Go To Last Post
9 posts / 0 new
Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I'm trying to set up the ASF USB tack on an AT90USB646. I tried a 647 too, just in case. The USB service doesn't appear in the list:

 

 

Am I missing something? Does the ASF not support AT90USB parts?

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

About 9 months ago, I wanted to compare the ASF USB implementation to LUFA for the AT90USB1286. Not finding it in ASF, I contacted Atmel and they said that it would be added in a "future" release.

I have just continued using LUFA.

David (aka frog_jr)

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Surely for Mega-USB you'd want to be using LUFA wouldn't you? For Xmega+ then ASF is the solution for USB but I think even Atmel would admit that LUFA is the "best" solution for AT90USB.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hmm, okay, I'll look at LUFA. I'm familiar with the ASF and just wanted a quick, easy development path. Normally I would stick with XMEGA, but I need 5V I/O.

 

Thanks.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Ugh... For 5V and USB the best option looks like a USB->UART converter and a MEGA. Atmel really don't offer much for this scenario.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

mojo-chan wrote:
For 5V and USB the best option looks like a USB->UART converter and a MEGA
Not sure what your requirements are, but there are several 5V USB options.

You've obviously seen the AT90USBs, and there are the ATmega32U2 ATmega32U4 which operate from 2.7 to 5.5V. I avoid the use of a USB->UART converter whenever possible, as it is extra component cost (however, sometimes it is unavoidable). Can you explain what LUFA did not offer? (Did you see that there is a LUFA Atmel Studio Extension?)

David (aka frog_jr)

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hi frog_jr.

 

Thanks, I did take a look at those. Basically I want to make a ROM card emulator using flash memory. The card operates at 5V. I will have a USB interface for connecting to a PC and writing the flash memory. The flash memory (MX29F800C) is 8Mb so low baud rates like <100k are going to take a very long time to write it all.

 

Being an 8Mb card there are 20 address lines and 8 data lines, plus some control. I need at least 33 I/O pins for the flash memory alone, plus either USB or a UART and program/debug. At the moment I'm looking at a MEGA165P based design with an MCP2200 USB to UART. Hopefully 500k baud will be possible.

 

There are a few AVR32 UC3 and some up-coming SAM parts that might do the trick. The 32U4 doesn't have enough I/O. Well, I suppose I could be clever and multiplex some of the address lines or something. Or some bus interface ICs, but that's getting to a lot of parts.

 

I was hoping to use my existing knowledge of the ASF USB stack. I had to use LUFA a few years back, it didn't even compile without warnings... I gather it's better now, but for example I know how to set up custom Windows USB descriptors in the ASF. I could look at it I suppose, but at the moment the MCP2200 seems like the simplest option. If only they did a 5V XMEGA I could wrap this up really quickly.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

mojo-chan wrote:
I know how to set up custom Windows USB descriptors in the ASF.

AFAIK it's very easy to change descriptors in LUFA too - there is a very consistent project structure across the entire thing so if you look at any of the demos or example projects you will find something like:

LUFA-130901/Projects$ find . -name Descriptors.[ch]
./Magstripe/Descriptors.c
./Magstripe/Descriptors.h
./USBtoSerial/Descriptors.c
./USBtoSerial/Descriptors.h
./MIDIToneGenerator/Descriptors.c
./MIDIToneGenerator/Descriptors.h
./TempDataLogger/Descriptors.c
./TempDataLogger/Descriptors.h
./SerialToLCD/Descriptors.c
./SerialToLCD/Descriptors.h
./Webserver/Descriptors.c
./Webserver/Descriptors.h
./LEDNotifier/Descriptors.c
./LEDNotifier/Descriptors.h
./MediaController/Descriptors.c
./MediaController/Descriptors.h
./Benito/Descriptors.c
./Benito/Descriptors.h
./RelayBoard/Descriptors.c
./RelayBoard/Descriptors.h

What's more each project has a .txt file that documents the Class and descriptor details.

 

For most things it's just a case of find an example/demo close to what you want to do then cloning that and making small changes.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Thanks Cliff. For the Windows custom descriptors you need to add some new ones. The ASF has a hook for it. Maybe I'll investigate LUFA too.