I'm working on a project where I have two different prototypes (exactly same board), and one of them works the other doesn't.
I'm using an atmega32u4 with 16MHz external crystal. I have attached the PCB layout too.
- external crystal is at 16MHz, 22pF without 1M resistor.
- fuses are at: E:FF H:D2 L:DE (I need eeprom preservation, no jtag, no watchdog, isp programming)
The 16MHz doesn't oscillate, but everything works with the internal 8MHz oscillator.
I have tried the following:
- changing out the 16MHz oscillator
- changing the caps to new 22pF caps
- adding 1M
- changing the startup time with fuses
- resoldering everything, checking for cold joints
- create a shorter gnd trace
My way of testing the board is to init everything and send debug data through UART.
I have 100nF caps between vcc and gnd.
I'm not using USB.
Keep in mind that one of my boards works and the other doesn't. Every component is the same.
Feel free to ask questions about the setup.