I’m new to the scene and trying to wrap my mind around exactly what the AT “u” series chips do as compared to the more common AVR chips. I’ve seen they include a “native USB core”, but what exactly does that mean?
To put this in perspective, I found a project online that allows an ATmega8 to become a USB slave device with a few zener diodes and resistors. The data line triggers an ISR via Int0, and some highly-optimized assembly routines handle the software portion. Incidentally, on the other side of the ATmega is a set of NES/SNES controllers, thereby allowing use of old-skool gamepads as HID joysticks. Great! It’s limited to low-speed USB, and can’t really handle bulk transfers, but that’s OK for projects like this.
Since apparently you can make a USB device from a mega8, what’s the justification for the “u” family? What advantages are there to having “native” USB support? Is there any reason not to use a generic AVR? Parts count is already ridiculously low, and from what I can tell, the “u” chips still require a software stack, so I’m assuming the difference is reliability, speed, or code simplicity.
(Disclaimer: I haven’t read the datasheet yet, since I expect that to be much more detailed and targeted towards someone that already knows why they’ve chosen that part. I’m looking for a high-level bullet list to get my frame of reference. If there’s some high-profile article on this, I’ve missed it.)