Atmel's new USB XMEGA series
A package with Atmel’s atxmega32a4u finally arrived on Thursday. Although I’ve been waiting for the chip to become available for months, I’ve only gotten to etch a demo board for it on Friday night (what’s one to do on Friday night after all).
Anyway, I have a working board now, which I can easily program with my Shupito programmer (shameless plug). I also got to try out a micro USB recepticle.
A few interesting things popped out.
- From the programming perspective, the chip identifies itself with the same signature as it’s cousin chip, atxmega32a4; in fact, all atxmega32a chips identify themselves the same.
- The micro USB connector was difficult to align. Then again, I was probably doing it wrong – it’s an SMD component and I used tweezers to hold it in place in the same way I would an SMD resistor. What I should have done instead is to lay the connector on the board and use the tweezers to carefully push it to alignment (like you would a TQFP).
- I shouldn’t design boards in rush, I’ve completely missed on the difference between the 5V on the USB bus and the 3.3V maximum supply voltage of XMEGA. What a newbie mistake. Fortunately, I realized it the next morning (well, noon, you know, right after I woke up) before I plugged the cable in. Cutting a trace on the board solved the problem; still, I have to provide the supply voltage externally. There really should have been an LDO to allows the board to be powerd from USB.
- Trying to rotate a crimp socket on a standard (square) pinhead to get a better contact is counter-productive. It turns out they lose springiness very easily – to a point where you can pretty much throw them away.
- Putting a transparent coating on a board will prevent it from corroding. Putting it on a pinhead will prevent electrical contact. Perhaps you can mechanically scrape the coating off by rotating the socket?
- Atmel provides a USB bootloader for XMEGA with sources and precompiled binaries. I don’t think it was preprogrammed in the chip though (I might have accidentally erased it, I’m not sure). You need to download Atmel’s FLIP software to get it running, or you can write your own.
I’m thinking of implementing the FLIP protocol into my avr232client or to Lorris, although neither is particularly suited for raw USB connections.
I’d also like to try out the Atmel’s software framework, especially for the USB functionality (the download requires registration).
Last but not least, I should finally port the rest of avr232client to Lorris, but there are lots of details that need to be taken care of and I’m not sure how much time it would take (also, it’s GPL and Qt, neighter of which particularly motivates me).