I breadboarded a USB design using a Microchip 18F4550. It worked perfectly well on the breadboard, then I created a prototype with BatchPCB. The design uses a 20MHz crystal with 15pF load capacitors.
My PCB is almost completely SMT, as opposed to the breadboard. However, I think I flubbed the layout, because the board works with the internal oscillator, but won't operate at 20MHz. I suspect that my traces should have been equal length instead of completely asymmetrical as they are, but I don't know enough about PCB layouts to confirm this.
I don't have the Eagle files with me right now, but at the risk of total public humiliation and the hope of getting some help, I'm posting the layout pic from BatchPCB.
1. Can anyone confirm how I flubbed this design?
2. Is there a good source with tips like the below for beginners on routing SMT boards? I just found the below in the forum, which was very helpful.
inventore123 wrote:Eagle's autorouter does not suck, it must be used properly. For example, you route manually all critical parts of the design, like traces from a crystal to a micro, and temporarily fill the manually routed pieces with some t_restrict, b_restrict to avoid the autorouter placing high speed digital lines close to the crystal. Or things like the ground lines of a DC-DC converter to avoid poor gnd design and high ripple, all things that an autorouter cannot know. Then you start the autorouter, that is enough intelligent not to ripup the manually routed traces. To avoid long lines with many vias you can reduce grid size, increase ripup level, and add more optimizations. My projects are extremely simple compared with what you want to do, but I think that eagle autorouter will be a better choice than manually routing everything.link to original post here