I am an experienced software developer, but about a week into the embedded world. I've been doing a lot of reading to prepare for a project based on an AVR 8-bit uC with USB (very likely the AT90USB162 or 82). I don't have any hardware yet... I'm trying to figure out what I need and how I'll use it all. I'd appreciate any help with the following questions:
- It isn't clear to me why I would use the AVR Dragon vs the JTAGICE mkII. Documentation on the dragon is pretty thin and I don't understand how the two are different (other than cost).
- It looks to me like both the dragon and jtagice use the OCD feature on the AVRs. Why then do the docs for both say things like "Emulates Digital and Analog On-Chip Functions". What is being emulated? Aren't they just interfacing with the actual chip? Or is "emulate" in this case just a way to say "not simulation"?
- Does anyone still use tradition ICE emulators with AVRs? I think OCD + simulation would cover most of my needs.
- I haven't found anything in the AT90USB82/162 datasheets about hardware (register) breakpoints. Do these devices have them?
- Does AVR Studio + WinAVR + debugWire allow for symbolic debugging of C code during "emulation"? I see that is works in the simulator, but don't have hardware yet.
- Any idea when the avr-gcc bundled with WinAVR will support the USB82/162? I found commits to avr-gcc for this, but they are very recent and not bundled with WinAVR yet. Actually even the latest AVR Studio beta lists the USB162 but not the 82. Am I a bit early for the 82?
- How does one program the finished devices efficiently if you need to make thousands or tens of thousands? Hooking up an ISP to each one would be impractical. I guess there must be 3rd parties with fancy equipment that can do this out-of-circuit? I can't picture how you'd quickly mount a QFN 32 out of circuit without automation.