Good morning all!
I’m new to the Arduino forums. I’m trying to use the Atmega328 chip off of the Uno board. I’ve uploaded my sketch and confirmed that it’s working while the chip is connected to the Uno board, but when I extract the chip and insert it into my project it’s no longer working. I’ve confirmed 5V at pins 7 & 20, and gnd tied to 8 & 22, so I know the power supply portion of the circuit is working. The only thing that I’m seeing as a possible issue is that I don’t have the 16.000MHz crystal on pins 9 and 10. I hadn’t thought about the crystal being required for such a basic circuit. Would this prevent the chip from functioning as intended?
It need a clock and when programmed in an Arduino Uno (with crystal) it does expect a crystal so YES, it is required Like ALL tutorials show you
Yes, that's the problem. You can run on the internal oscillator of the ATmega328P if you like but you need to have a clock source connected until you change the fuses to configure it to use the internal oscillator. The easiest way to do this is:
- Put the ATmega328P back in the Uno so that it will have the resonator on the board as a clock source.
- Connect an ISP programmer to the ICSP header on the Uno. If you don't have a dedicated programmer you can use an extra Arduino as an "Arduino as ISP".
- Install MiniCore, following the instructions here: https://github.com/MCUdude/MiniCore#how-to-install
- In the Arduino IDE, select Tools > Board > ATmega328
- Tools > Clock > 8 MHz internal
- Tools > Programmer > select the appropriate programmer
- Tools > Burn Bootloader
- Now you can remove the ATmega328P from the Uno and use it without an external clock source.
You have to set the chip to use the internal oscillator if you don't have an external crystal (and of course you're limited to 8 MHz).
Remember to add a 100 nF ceramic cap to the Vcc pins, as close as possible to the chip.