Electronic – Testing procedure for a PCB

debuggingpcb-assemblypcb-design

I have a little bit of experience with PCB design and made a couple of small circuits for learning purposes.

I need to test out a new PCB designed by another person and its kind of a complicated board with a ton of components on it. It consists of an ADC and an FPGA and other components that go along with it. It's really similar to TI's LM97600RB Reference Board and was based off that design.

The board was incomplete and I managed to solder what was left however, I have little to no experience on how to test it out.

  1. Are there any guidelines I can use in order to test the board and the components on it ?
  2. Do I test the FPGA separately first?
  3. Would it be possible to just test the ADC separately ?

Best Answer

Here is a general outline of how I would go about testing a PCB such as the one you described. Note that some of these tasks can take place in parallel or in a different order than I have listed. Also note that some of the latter tests aren't always performed at the card level because they can get expensive. Sometimes you would integrate your PCB into whatever it is you're building (car, appliance, medical device, industrial equipment, aircraft) before completing the test. The level of detail and type of testing also depends quite a bit on what industry you are building it for and what is the application (particularly in the later tests) as well as your budget and risk tolerance.

  1. Design Review - (You are probably past this step) Verify that the design meets your requirements (will do what you need). Verify that the FPGA pins are assigned in a way that will satisfy the FPGA design's needs. Verify external interfaces (connectors) are designed correctly. Analyze traces for signal integrity. Analyse part selection and perform worst-case analysis on all components.
  2. FPGA Testing - I recommend verifying your FPGA design first by simulation, but I know many people who skip this step. You can also try to verify the full design or parts of it using a development kit. Or you can do both.
  3. Receiving Inspection - After the PCB returns from fabrication, inspect it to ensure that all parts are placed properly and in the correct orientation. Verify good workmanship on solder joints.
  4. Safe-to-Mate - Select critical areas of your card to test isolation, resistance, and continuity. Essentially, pick some places where you can measure resistance using a multi-meter, estimate what the expected resistance should be, then measure and compare. This will help find any defects, especially those that could do damage when power is applied.
  5. Power-up test - Configure your card in the safest state possible. This means don't install ICs that are removable (unless they are necessary), don't connect interfaces that don't need to be connected, current limit your power supply, use a less than nominal supply voltage, etc. Power up your card and measure voltage regulator outputs and any other supply voltages or bias currents that are important for correct operation. You can also check that your oscillator is functioning or any other basic functions of your board ehre.
  6. Functional testing - Design some tests to verify basic functionality. These are very application specific, so I won't go into much detail here. You generally want to make sure that your interfaces work correctly and make sure your card performs all of it's key functions under nominal conditions. Most of your remaining bugs/issues should be resolved by the end of this step.
  7. Calibration - This is where you calibrate any measurements that are being made by the device. This may not always apply, and will be very application specific. By this stage, you should be very precise about how you are making and documenting your measurements.
  8. Performance testing - This is where you would identify key performance criteria and measure what performance you are achieving. Examples may include SNR, bandwidth, latency, power consumption, data rate, etc.
  9. Environmental testing - This is where you verify that your design will function in the environment it was designed for. This often includes thermal cycling, but may also include vacuum testing, submersion, radiation testing, etc. You would often repeat functional, calibration, and or performance tests in each environment that the card may be subjected to.