Hello, I have a question about Arduino Uno which exists in configuration with DIP ATMega328 microcontroller. Would it be possible to use board as programmer for such microcontrollers? So after writing my program into the microcontroller, to take it out from Arduino board, put on the breadboard, and use it autonomously, with my elements on the breadboard (of course, give controller voltage supply). And such way next time program another micrcontroller with this Arduino board.
And that is exactly what can be done, with a couple of problems:
You need to provide not only the supply voltage, 5 V, on your breadboard, but a crystal oscillator with loading capacitors, and bypass capacitors.
In order to program a chip on the UNO board, it must have the bootloader installed first. You can buy chips with the bootloader installed, but have to be careful what you get.
The chip socket is not sufficiently durable for too many insertions.
See Nick Gammon's reference.
Ok, but then some questions more:
- As I understood, there are two ways of using it as programmer: to insert microcontroller directly onto the chip, or to put it onto the breadboard as described at the provided by you reference. Does the second method not require the same microcontroller (Atmega328)? So, I guess, the second method can be used for programming other atmel microcontrollers, right?
- As far as I understood from the reference, if I buy a raw microcontroller, it already should have an internal oscillator.
- Are the capacitors and oscillator needed only for the writing program, in case if I write bootloader which later will work using internal oscillator? If the bootloader works with external 16MHz oscillator, then the oscillator and capacities should be on board all the time?
I also found also this tutorial https://www.arduino.cc/en/Tutorial/ArduinoToBreadboard , however provided above reference has more details in case of different problems.
You can bootload and program Atmega 328 using Aruino as ISP. Need to plug your 328 onto a bread board and plug the necessary pins.
While bootloading you can specify which clock to use. Internal or external.
If internal it uses internal clock. But keep in mind the internal clock is not good in case of serial communications. Sometimes it works, and other times it wont.
Using external clock is always reliable. Once you burn fuses to use external then the processor should have an external crystal connected all the time.