3
\$\begingroup\$

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 ?
\$\endgroup\$
  • \$\begingroup\$ That is a $5k circuit board. Do you have a configuration file for the fpga? Is it in fact a virtex 5? Digikey lists that FPGA at $1.8k \$\endgroup\$ – HL-SDK Jul 30 '14 at 18:08
  • 2
    \$\begingroup\$ You're in over your head. Put it aside and gain experience for a while. \$\endgroup\$ – Matt Young Jul 30 '14 at 18:18
  • \$\begingroup\$ @HL-SDK : It is a Virtex-5 FPGA. I've been programming the Verilog code for the FPGA for a while now and have a bit file for it if that is what you are referring to. It does have JTAG so I assume the Xilinx ISE will take care of the configuration ? \$\endgroup\$ – GamingX Jul 30 '14 at 18:23
  • 2
    \$\begingroup\$ Don't listen to @MattYoung. You've got to learn somehow. You may want to try to find a mentor, however. You may also suggest to your supervisor that this is probably a 2-person job at least (the other job(s) being FPGA designer, assembly technician, and/or product lead). \$\endgroup\$ – kjgregory Jul 30 '14 at 20:15
  • \$\begingroup\$ @KGregory : Well, I was drafted in initially to program the FPGA and I've been doing that these past few months. But then I got assigned to do the hardware stuff too and that's where I am right now. It's a research project in my lab and as a student, I am expected to learn if I don't know it. \$\endgroup\$ – GamingX Jul 30 '14 at 20:19
7
\$\begingroup\$

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.
\$\endgroup\$
  • 2
    \$\begingroup\$ Gets my +1, but its a little too "over the wall" for me. Testing is best considered during the design stage, which allows for all sorts of things, from added pads for pogo pin jig testing to a full functional inspection at the assemblers. I'm sure you embrace this as best practice, but its a little hard to show it as a list. \$\endgroup\$ – Scott Seidman Jul 30 '14 at 20:16
  • \$\begingroup\$ Absolutely, @ScottSeidman. I can say that I've made the mistake of not sufficiently factoring my test plan into my PCB design before. It can make testing very difficult. It sounds like, in his case, it's probably be too late for that, however. I will just hope for him that this was taken into consideration by the original designer. \$\endgroup\$ – kjgregory Jul 30 '14 at 20:19
  • \$\begingroup\$ @KGregory : Thank your for your inputs. I think the Safe-To-Mate step is the most critical in my case since I don't want to blow anything up. So I want to power up the FPGA first, but I want to isolate the FPGA and check the voltages and currents just before it reaches the FPGA so that I know how much of it is reaching the FPGA and confirm that its not going to destroy it. How do you suggest that I go about it ? \$\endgroup\$ – GamingX Jul 30 '14 at 20:33
  • \$\begingroup\$ The safe-to-mate test is done without power applied (it could be called safe-to-power, in fact). As for the power-up test, if it's in a socket, then you would simply remove it. If it's not (it probably isn't) then I would look for any jumpers that can be removed to isolate it in any way. If neither of those are true, then you can at least take some comfort in the fact that most FPGAs have their I/Os set in a high-impedance state until they are programmed. \$\endgroup\$ – kjgregory Jul 30 '14 at 20:39
  • 1
    \$\begingroup\$ +1, my only addition is I try and turn new circuits on gently. Maybe with a wimpy or current limited power supply, of course you've then got to have a guess at how much current it should draw. And when you do power on the first time, be ready to shut it off, if you see smoke or excess current. \$\endgroup\$ – George Herold Jul 30 '14 at 23:25

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.