24
\$\begingroup\$

Can anyone offer any useful strategies on going from a rat's nest to a routed PCB?

(I'm using Eagle and aiming to make single/double sided PCBs at home)

Drawing the schematic is fine, but when it comes to routing the tracks, it feels like unravelling a giant ball of wool.

\$\endgroup\$
  • \$\begingroup\$ I'm interested in how the fabrication works out. Please keep us posted. \$\endgroup\$ – Dirk Jun 12 '10 at 19:12
  • 3
    \$\begingroup\$ So, "spaghetti code" isn't just a software thing! \$\endgroup\$ – DarenW Oct 15 '10 at 21:18
19
\$\begingroup\$

One resource that I refer people to quite frequently is David Jones' PCB Design Tutorial.

Lots of good info on component placement, routing, tolerances, layers, etc...

Just to reiterate what others have said, and D. Jones says as well, it all starts with component placement. Be willing to rip up, move components, start over, etc... Don't get lazy or stubborn and try to force that round peg into a square hole. If the routing becomes difficult, there is probably a way to move or rotate parts so that suddenly it becomes easier.

\$\endgroup\$
  • \$\begingroup\$ +1 I read it a few months ago, its an excellent tutorial \$\endgroup\$ – volting Jun 12 '10 at 15:29
16
\$\begingroup\$

I like to start by putting my schematic in front of me. You generally want your parts to be arranged in such a way that the traces don't have to go further then they need to.

Usually when people make schematics they try to make their schematics "pretty". Laying your board out in the same manner as your schematic is usually a very good start. But, before you do that, look at anything that you will need to actually interact with, USB ports, programming ports, buttons, etc and put them where would be best for the end product.

Once you have your parts laid out, start by routing the most important traces. These traces are ones that have high speed data on them and you would prefer for them to not be jumping to different sides of the board.

After you get those traces laid out, route your power traces. By this point you should be able to figure out how to best route anything remaining.

It usually takes me 3 or 4 iterations of laying out a board before I am happy with what I have made. Every time I do it, I learn particular ways that traces need to be routed to make the routing simpler.

As a final note, if you have the ability to, be willing to change what pins connect to a peripheral. For example, if you have an LED connected to a microcontroller, you should try to use a pin that is the closest to where you want the LED placed on the board. Many times you don't have this freedom, but it is something to try to do if you can.

\$\endgroup\$
  • \$\begingroup\$ If you have such parts, you can also switch used ports/gates etc on logic chips, drivers and the like so you end up with ins and outs on the most convenient pins. It might look funny in a schematic but will work more neatly on a board. \$\endgroup\$ – XTL Aug 13 '10 at 12:11
  • \$\begingroup\$ I have actually been split on this approach. Part of me wants to have the control to see that pins should be moved and do it manually. The other part of me says that for any complex board I will do, I should take advantage of features like this. \$\endgroup\$ – Kellenjb Aug 13 '10 at 16:25
11
\$\begingroup\$

Place the components however you like so that so that your layout "makes sense" from a usability standpoint. Make polarized components always have the same orientation. Place connectors on the perimeter of your board, make IC chips have a consistent orientation.

Then let the autorouter do it's magic, setting the DRC to use trace widths that are large initially (I like to start around 20mil). If it fails to get to 100% routed, type "ripup;" in the command line to take you back to a rats nest and change the DRC to progressively lower trace widths until the autorouter is happy.

I know a lot of "die hard" people have "problems" with the autorouter, but I happen to think it does a pretty great job. Unless you are doing really high bandwidth digital I/O or maybe RF design, the path the signal takes will seldom be a cause of concern for you. I would be a little bit careful about putting things like crystals close to the IC chips pins they are using if you have any, though.

\$\endgroup\$
  • 3
    \$\begingroup\$ In a real circuit auto-route is the devil. if your circuit works in a breadboard auto-route will probably work, but if you circuit has any high speed signals it will be your end. It will end up taking ground traces on long walks through the woods. I have seen simple boards(less than 30 components) have half volt sin waves on ground pins because of auto-route. \$\endgroup\$ – Kortuk Jun 9 '10 at 16:02
  • \$\begingroup\$ Auto-route however is very good for beginners to learn to do layouts. \$\endgroup\$ – Kortuk Jun 9 '10 at 16:02
  • 2
    \$\begingroup\$ I have been able to make single sided boards in 5-10 minutes and then tried to run auto-route to compare and auto-route would fail and say it needed another layer. \$\endgroup\$ – Kellenjb Jun 9 '10 at 16:13
  • \$\begingroup\$ As a response to your edit: You just need to make sure that the ground and power traces are good. Auto-route is still the devil, the cause of early onset male-pattern baldness and global warming. \$\endgroup\$ – Kortuk Jun 9 '10 at 16:20
  • \$\begingroup\$ To add on to Kortuk, I don't feel as though I have done much that I would consider high bandwidth digital I/O or RF design, but I have run into issues with auto-router. Even just connecting a microcontroller to a FTDI usb chip has caused me headaches when autorouter was used. I have been able to route a circuit with a microcontroller, RFID, USB, Canbus, IR, and XBee by hand with no issues. \$\endgroup\$ – Kellenjb Jun 9 '10 at 16:26
6
\$\begingroup\$

Im just going to list some tips here in no particular order:

  • Determine your power/ground strategy first. Whenever possible use a power and ground plane. If sticking to a 2 sided board use a ground pour on the bottom and remember to remove any orphaned copper. Your goal is to always have the shortest path to ground. Higher frequency signals will follow the lowest inductance path to ground, not the lowest resistance. You may need to add additional decoupling capacitors.

  • Do your layout on a grid, make the grid size a multiple of your smallest trace size. Make larger traces a multiple of your grid.

  • Place components with special attention to any high frequency signals or buses with high capacitance, any which requires you to consider transmission line effects. Some examples: I2C bus that connects to lots of chips (3-4+), even if its a low speed bus. SPI buses @ 1MHz or greater especially, I2S buses, clock distribution, crystal oscillators, USB, ethernet, memory buses, etc.

  • Autorouters suck. They are useful if you have 25 GPIO signals that are just on-off control and you really really don't care where they go, even then you'll likely scratch your head as you look at what it did. Never let it route power or signal lines. I've used altiums, orcads and eagles, they are all pretty bad.

  • Never, ever, unless you really really know what you are doing, use a split ground plane, even if the ADC/DAC datasheet says you need separate analog and digital grounds. Pay attention to the ground return paths but do no split the plane.

  • If you have to use a split power plane due to areas of multiple supply voltages: No signal trace can cross the split on an adjacent layer. Doesn't matter what the trace is or what it does, do not cross that split. Put keep outs on the effected layers to enforce this.

  • When placing components, it can help to layout the component and its closely associated circuitry first, then move them onto the board as a group. For example with a switching power supply the IC itself is often very small but you need to consider the layout of the external support circuitry as well which often needs to be kept very close together with controlled current paths. So layout the entire piece of the circuit outside the board dimensions first so you have a good idea of how much space it actually needs. Do the same for all IC's as even decoupling caps can take up more space than you think they will.

\$\endgroup\$
4
\$\begingroup\$

I am not going to go into the great detail everyone else has. They have done a great job of discussing a method.

I would like to link you to an app note created by Intel that helped me, when I was starting, to get my mind to think about the things it should first. If you would like other sources just comment and I can show you where I have gone from there to really improve my technique. This however can show you how to get the quality of a 4 layer board with a ground and a power plane from a well designed 2 layer board.

\$\endgroup\$
4
\$\begingroup\$

Im no expert, but this is the approach that I follow and it works...

1. Routing the most important tracks first starting with power and ground rails

2. Run the ground around the edge of the board where possible (but not so close that it is touching the edge)

3. Next step is to divide the circuit into functional building blocks

4. Arrange the blocks so that connections between them are as simple as possible..

5. I would then use auto routing to check the layout -auto routing should succeed with a few seconds (say less then 60, though this obviously depends on the complexity of your ciruit)if youve your placement is good (please note I use protel 99se, Im not familiar with eagle so auto routing time may vary)

6. Then undo the auto route... and manual route.. routing the tracks within the functional blocks first and then the connections between the blocks.

An old saying is that design is 90% placement and 10% routing, take the time to get the right placement and the rest will fall into place.

\$\endgroup\$
  • \$\begingroup\$ Are you saying you should run power and ground along the edge of the board? \$\endgroup\$ – Kortuk Jun 9 '10 at 16:44
  • \$\begingroup\$ I do agree that 90% is placement. \$\endgroup\$ – Kellenjb Jun 9 '10 at 16:45
  • \$\begingroup\$ @Kortuk I ment to say that ground should be run around the edge, at least where single and double sided boards are concerned \$\endgroup\$ – volting Jun 9 '10 at 18:20
  • \$\begingroup\$ Volting, Ground should be as short of a connection as possible, should be as low of impedance as possible, and you should shoot for making a ground plane, even on one layer where it will not be very much. Running a trace near the edge greatly increases your emissions, and if you have anything running at higher speeds I can guarantee that you have EMI problems and the FCC will not like an product. I know I am railing on this, but people often do not realize how much of a science a layout is. You are doing it very well, and I agree in general, but you should take a look at my link. \$\endgroup\$ – Kortuk Jun 9 '10 at 18:29
  • 1
    \$\begingroup\$ I have found a ground plane in a two layer design greatly reduces complexity. Yes, I just find all too often people form bad layout habits and it carries over to problems with their circuits, and they often blame the circuits. \$\endgroup\$ – Kortuk Jun 12 '10 at 16:39
3
\$\begingroup\$

A useful strategy when laying put a board is to place the larger components first, and connectors, then the smaller components like Rs and Cs. Component placement is very important. When routing, start with the critical nets like power, ground and any clocks. Then, start routing the shortest nets, leaving the longest to last.

\$\endgroup\$
0
\$\begingroup\$

Also, you often find placement and routing guidelines in the datasheet of ICs that require some external peripheral components. I think it wasn't mentioned yet. And from my experience i wouldn't suggest using the autorouter. It was said that its good for beginners, but IMO the opposite is the case. There are so many "best practices" that most autorouters have no knowledge of.

Since i was confronted with getting a PCB to be EMV approved forthe first time, i know haw important the attention to details is and how most autorouters would mess those details up.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.