Issue: I have a board which uses a MCP2510 CAN controller and ATMega 32U4. During testing I found I couldn't communicate with the CAN controller. After some probing I found the CAN controller clock wasn't oscillating at all. The clock circuits for the 32U4 and the CAN controller share the same components: 7V-16.000MAHE-T crystal and a pair of 22pF capacitors. The 32U4 has an RS resistor bridging XI and XO with a value of 1M, the CAN controller has no RS resistor by default which was an oversight on my part.
Things I've tried:
- I verified the 32U4 clock was oscillating at 16MHz with a clean wave form.
- I verified the designed load capacitance: 22pf^2/(2*22pF) = 11pF. Load capacitance of crystal is 12pF, I've allowed 1pF for trace and component capacitance.
- Adding RS to the MCP2510 clock circuit. I've tried 1M and 100K. This would cause the crystal to start oscillating but it was at 150kHZ and quite unstable.
- Tried another 16MHz crystal I had in stock. This is a unmarked part but is likely for a Arduino, packaged in a can with leads. It would also oscillate at 150KHz with any RS.
- Tested on two different assemblies with the same results.
I'm not sure what else to try to get the oscillator working. Any ideas would be appreciated.
Edit:
32U4 Clock Circuit
MCP2510 Clock Circuit
MCP2510 Pin Assignment