How to Bring Up a Board
PCB Design is a time-consuming and mentally exhausting process. There are so many competing manufacturing and design considerations to keep track of that it is no surprise that most boards require at least one re-spin to create a functioning board. The following article describes the board bring-up process once you have an assembled PCB in hand.
You will need the following tools to complete this process in a speedy and efficient manner:
- Logic Analyzer (Saleae, Tektronix)
- Digital Multimeter (Fluke, Bryman)
- Thermal Camera
Step 1: Physical Inspection Checklist
(Power off, Program not loaded)
Impedance/ Continuity testing
Once you receive your board, use a quality multimeter to check the continuity of each power rail at the input to each IC. All analog and digital power rails should show very low or even no resistance between the voltage regulator output and the IC power pin inputs.
Using inspectAR can speed up this process as you can easily highlight rails and ground contacts. Unless you have a resistor divider in your system, the power rails should be isolated from one another. So, typical resistance between power rails should be very high or have infinite resistance.
PCB components are very small these days. Look at your PCB underneath a microscope -- either optical or digital. You’re looking for a variety of potential issues that might cause you to either rework the board or return it to your fabrication/assembly house.
Potential fabrication issues
Burrs /Mechanical Damage
Can you see fiberglass fibers along the edges of your board or inside drilled holes? The presence of a rough or uneven edge may increase the potential for delamination of multi-layer boards.
A lightened area around a hole or via, typically induced by mechanical stress. Sometimes haloing will bridge two conductors this can lead to failures in a board later in time.
Did someone mishandle your board at some point before you received it? Are there visible scratches, nicks, gouges? If the trace is disconnected, it may result in open circuits, among other issues, and you should reject the board and have a new one manufactured.
Sometimes, boards get a bit too hot during the reflow process or are not laminated properly during fabrication. It’s not too common these days, but it still happens. Look for signs of delamination. Are there bubbles on the surface, or can you peel apart the edges with your fingernails? Does the color of the board appear to change to a lighter color over some specific areas of the board?
Can you clearly see the fiberglass pattern in a patch of the board? Do these areas go underneath connectors? Any of these signs can indicate that the board is starting to come apart. They are a clear indication that the board was delivered in an unsatisfactory state and should be rejected.
Do all the traces, pours, and pads have well-defined edges? Are there obvious copper bridges between adjacent traces on the surface of the board? Are there pinholes in the middle of a trace?
Is your board bowed/ twisted / deformed? Usually, this is caused by an asymmetric distribution of materials in the board stack up. But if your board isn’t flat, there’s a good chance that there are components on the board that are not properly bonded to their pads. Like many of the other issues discussed -- this is cause enough for a respin.
Missing /Misaligned Through Holes
Missing through holes doesn’t happen too often and usually can be traced back to an error made by the design engineer. If you are missing one, some, or all of your drills, you should trace the error back to the root cause.
Common Engineering Mistakes
Check your Gerber and drill files. Are the through holes present? Perhaps you made the mistake while you were adding the part to your library, or perhaps you neglected to include your drill file when submitting your job. Maybe a drill broke during the manufacturing process. But a missing hole can mean a missing via, which can mean that you don’t have the net connectivity that you think you do.
Modern manufacturers do not “forget” to drill holes in a printed circuit board. Most of modern fabrication machines have cameras that monitor drill health and replace broken or worn drills. However, these machines do have limitations. Copper is a very tough material, and it can deflect high-aspect ratio drills rather easily. Manufacturers call this “wander.” The result is a hole that is not centered in a pad. Class 2 PCBs allow holes to break out as much as 90° from a pad, while Class 3 PCBs require no break-out and an annular ring of at least 2 mils. These are depicted in the following diagrams:
Lack of Adhesion
To see if the copper traces are really stuck to the board, press a piece of tape tightly against the board and pull it up. The copper should stay stuck to the board, and your tape should come up cleanly, with no piece of the board stuck to the tape.
Tip: Assembly Issues
Once you have a properly fabricated PCB, the board is sent off to an assembly shop -- where the parts are soldered on the board. Assembly shops sometimes offer the option of consignment, where you ship them the parts, or they will offer to procure the parts for you. Your best course of action is to allow the assembly shop to source the parts for you. Factory sourced parts will be properly identified, labeled, oriented, and stored in low-humidity and ESD-safe environments. Consigned parts can be damaged before they ever reach the board.
Tombstoning is where one end of the component lifts from a pad of the PCB during reflow soldering process and affects mainly surface mount components such as resistors, capacitors and inductors.
Cold Solder Joints
A 'Cold Joint' is one where the solder did not melt completely. It is often characterized by a rough or lumpy surface.Cold joints are unreliable. The solder bond will be poor and cracks may develop in the joint over time.
Solder Bridging occurs when two or more solder joints have melted together, forming an unintended connection between the two.
Components can be tiny and often are only identified by their serial numbers. Ensure the correct components are used on your board. A simple mistake, such as an AND chip in place of a XOR chip, can completely change the function of the board.
Before soldering components, ensure they are correctly oriented, otherwise, you could easily be connecting the GND to a power supply or worse, and possibly burn out the component.
Step 2: Power Supply Setup and Conformation
(No Power Supplied to the Board)
Most modern boards are powered by direct current. If you connect the power to the board incorrectly, and you neglected to place a protection diode at the power input on your PCB, you can destroy the components on your board in milliseconds. Take a moment to use a multimeter and ensure that the power supplied to your board is of the correct polarity and that there are no shorts to ground.
Check Power Supply Voltage
Engineers usually have more than one power source available to them. And it’s very easy to grab the wrong DC-barrel jack plug or set of wires and fry your board. So always get in the habit of using a multimeter to verify the potential difference of your plugs/wires. Ensure that you have the correct voltage out of your power supply. 12 V, 5.0 V and 3.3 V are all common supply voltages. You should check that you have selected the correct supply voltage to avoid damaging your power components and check the inputs and outputs to each of your on-board power supplies and voltage regulators (Ido, busk, boost, etc.)
Set Current Limits
On the off chance that you have a short-circuit, it’s always a good idea to set current supply limits on your power supply. Modern power supplies make this very easy to do. If you are using an unprotected power source, place a fuse holder in line with all positive and negative leads and place appropriately rated fuses in the holder. If you have a floating ground, you should think about whether you should tie it to an earth grounding point through properly rated resistor, connect it directly to earth ground, or allow it to continue floating. Ground leads are only fused in very specific circumstances.
Step 3: First Power On
(Power supplied to the board)
When PCBs fail, the result is usually either an open circuit, which does nothing or a short-circuit, which creates a great deal of heat. If the temperature is high enough, it can destroy a circuit board and the components that are on it. That’s why you should use a thermal camera or thermo couples to test the temperature of the board in a variety of areas
Nothing beats a thermal camera for finding hot spots. But use whatever tools are available to you. If you detect a hot-spot, you should turn off the power supply immediately and investigate. You never want to“release the magic smoke” from a component. Once it is hot enough to vaporize parts of itself, the component is ruined.
Check Power Rails
Once the power is on, connect the black lead from your multimeter to ground and use the red lead to probe the power rails. Ensure that the rails have the correct voltage.
The inspectAR application can easily highlight nets, and pads to show the user where to place their probes. In addition, with components, the application clearly highlights each pad and the net connected.
Modern MEMS-based oscillators are relatively foolproof, but crystal oscillators can still give engineers headaches. Use a non-contact or near-field probe on an oscilloscope to detect the operating frequency of your clock-signals. Ensure that your device is running at the desired frequency. If, for example, your program assumes a 20 kHz clock signal, and you’ve accidentally called out a 25 kHz clock on your BOM, your device may not function, and the timing of your asynchronous serial interfaces will be wrong, which means you will not be able to debug your board over UART. NOTE: Ensure you have added a bias resistor in parallel and refer to the crystal datasheet.
JTAG pinout Confirmation
Unfortunately, there are several JTAG patterns for PCBs in a variety of pitches. You need to ensure that your JTAG programming cable will mate properly with the PCBs JTAG pattern.If not, you will need to purchase or make an adapter that allows your programmer to communicate with your PCB.
Tag-Connect is a popular “plug-of-nails” that allows header less connections -- if you use one of these devices, it is very easy to move from one board to another without worrying about reversing the connection.
Pre-flash Thermal Profile
You might consider leaving your board powered on for several minutes before you first load code on it. This gives you an opportunity to characterize the thermal properties of the board with a thermal camera. Later, when you add the firmware, you can run the test again -- The difference in the thermal profile running your code and the temperature profile without code gives you an indication of the power consumption of your code
Step 4: First Programming
Check programmer Voltage
Modern printed circuit boards run at a variety of voltages: 1.8 V, 3.3 V, 5.0 V, etc. Your programmer will need to be configured to operate at the same voltage as the board that you are programming -- sometimes this is done by moving a switch, and sometimes this is done in software.
If your IC already has firmware on it, you should take a moment to read and save it to your computer. Debug, debug, debug! Put statements all throughout your code -- at counters, at loops, at the start and end of each function. The idea is to make the debug statements so abundant that you can trace a bug down to a particular function, and perhaps a certain line of your code.
Then compile your code and upload it to your target IC.
Open Debug Port
Almost all firmware programmers can program and debug -- so open a debug port and hope that you see some form of debug information streaming in. Alternatively, if you have enabled a separate UART port, connect an external USB-to-UART converter (such as Silicon Labs CP2102n), configure the transmission speed, and view it with a program such as PuTTY.
Put a statement in your code to toggle a GPIO pin or read the state of a switch. The idea is to get positive confirmation that you are controlling the target integrated circuit.
Post-Flash Thermal Profile
Once you get your firmware up and running, let it run continuously for a while and point a thermal camera at it again. The difference in temperature profile between running with code and running without code can give you an idea of how much power your device consumes.
What to do when things go wrong
Sometimes gremlins lurk in unexpected places. If your design uses a new microcontroller vendor, your toolchain will likely change with it. You can save a great deal of time troubleshooting your custom board if you first ensure that your entire toolchain is functional using a known good board. Consider purchasing an evaluation kit or evaluation module from your microcontroller vendor at the very beginning of the design process. Not only does this help you better understand how your new microcontroller family works -- it removes one potential point of failure from the board bring-up process.
The Smart Work Order
Say you want to highlight a manufacturing error? The old way was to open a photo of your board(or specific layer) and in an old paint program and write text and draw arrows to try and communicate to another engineer what changes need to be made. The inspectAR application will revolutionize this process. In future release, the application will enable users to add custom layers to projects to highlight instructions for manufacturers to make changes to the board or communicate to other Engineers step by step instructions for assembly, debugging or reworking all in one format. This will enable concise communication and will eliminate miscommunication between Engineers, Manufacturers and Users. This feature will keep instructions on assembly, reworking and debugging on one platform as depicted below.
Connect 5V power adaptor
Trigger GPIO_27 as highlighted and monitor for expected packets
If the expected packets are not received validate the integrity of the I2C clock line (SCL) as highlighted. If measured out of spec, send your scope measurements to firstname.lastname@example.org