I've never programmed an AVR/Arduino without the bootloader but at work we have a couple of [u]JTAG[/u] programmers for in-circuit programming of a handful of different chips and a couple of stand-alone programmers for various older socketed flash and PLD chips.
Virtually everything "in production" is in-circuit programmed. The bootloader is a feature for hobbyists. The booloader is one of the coolest things about the Arduino... The board itself is the programmer and the development board so you don't have to buy (of configure) anything else to get started.
- What secondary circuit (programming circuit) do I need to add to my primary circuit (the target circuit for the runtime)?
You shouldn't need to add anything. (ICSP1 on the [u]Uno schematic[/u] does show a resistor & diode on the reset pin.)
Of course, you need the USB port if you want to use the bootloader.
I supose it is different for each programmer... In that case, could you tell me about the circuit for Atmega 328P, for example? (it's cheap and it sounds for me
).
Maybe, but usually you don't need much. The programmer hardware is usually standardized so it can work with many different chips. (Sometimes you'll find different connectors/adapters.)
- Can programming process cause damage on primary circuit? In that case, what I need to do for 'isolating' both circuits?
I've never seen anything damaged by programming. But, I've only used commercial programmers. Things could go wrong with a homemade one. Or, depending on your circuit design you could potentially make it fry itself, or fry something else, by running the "wrong" software. (Maybe with an input pin accidently programmed as an output, etc.?)
- If I'm not wrong, what I need is an external programmer (as a Arduino on ISP mode or an external PCB designed for that purpose) for connecting with the pins that are ready for the programming. Is there any example of this last kind of circuit for Atmega 328P?
Yes, you can build or buy a programmer. You can make a programmer with an Arduino, but of course you need an Arduino with the bootloader to get started.
- When uC code is built and compiled, what I need for standalone working? I've read that one capacitor and a crystal oscillator... And maybe some resistors. Something else?
You' have to study the [u]datasheet[/u]. I'm pretty sure there's a built-in oscillator so you don't really need an crystal, but if you're using USB or RS-232 you need an accurate clock. I'd suggest you build your prototype as a "complete circuit" (maybe copy the Arduino schematic) and then start removing parts.
- I know that is possible to use a USB/TTL (UART) converter for programming some Atmega uControllers... Is this possible for all kind of uCs? I suppose this solution is only valid when the uC has the bootloader, and for burning it is needed to use a special circuit. Maybe I'm wrong...
You should only need a "special circuit" if you are using the bootloader. Without a bootloader, the the special circuitry is built-into the programmer.