Guys, let me know if you like this document. If its successful, I will keep improving it and I will add much more examples and points to check. Let me know what you think about it. Thank you. Robert
“How to check a hundred page schematic? Break it into a number of small circuits and be sure every one of them works.”
Apply this procedure to each page in your schematic.
1) Read the first page of datasheet (for every component on the page)
Why: All the most important information is on the first page. This gives you an idea what the component does and if it has all the features you need – very quickly and easily.
How: Find the component datasheet and read the first page.
2) Symbol check, Pin number and Pin name check
Why: You will be using the pin names as a reference in all the future checking. If the pin name is wrong, the connection will be wrong.
How: Find the page with a component top view which shows all the pins and its names (for a BGA, find the table with all the balls listed in). Compare with your symbol.
3) Read pin description and check pin type (input / output / power)
Why: It’s very important to compare your schematics pin connection with the pin description in datasheet and its features.
How: Find the table which lists all the pins and their description. Find a particular section about the pin in the datasheet. Read carefully and compare with your schematic.
What to look for?
Check for every pin
- if there is an external component required to connect to this pin, be sure you do so (pull up/down, a capacitor, precise resistor, etc.)
- if this is an open drain pin, be sure there is pull up / down
- if this pin is an input, be sure there is a defined level on the signal – all the time. For example, if this pin is connected to a processor or microcontroller GPIO “Output” pin, this “Output” pin may be set initially as Input, until its not initialized by software. Without an external/internal pull up/down resistor, the level of this signal would not be defined.
- if this is a power pin, check required voltage level on the pin, check decoupling capacitors (number of capacitors and value of capacitors), check if a bead/ferrite is not required (e.g. to filter analog or PLL power)
- always check if the pin maximum voltage level is not exceed (e.g. if a pull up on this signal is not connected to higher voltage – this happens a lot)
- check if the pin has an internal pull up / down and compare with your external pull up / down (e.g. if you use a weak external pull down resistor oposite of an internal pull up resistor, you may get undefined voltage level on the signal, as the two resistors will work as a voltage divider)
If the symbol is a chip, be sure that
- if this is a configuration pin, read configuration table and check required external pull up/down resistors
- if this pin is used during booting process, be sure, that after reset it is configured to have the feature you need (e.g. if you are connecting a NAND FLASH to this pin, be sure, this pin is configured to be a NAND interface after reset by default)
- sometimes, an internal pull up / down is enabled by default. Be sure the output level is what you want (e.g. if you use the pin to drive an LED, do you want the LED to be ON or to be OFF after reset?).
If the symbol is a connector,
- find and open the interface specification (e.g. PCI, PCIE, USB, …). Find the connector pinout description and compare with your schematic.
BE SURE YOU HAVE DONE ALL THESE BEFORE YOU CONTINUE. You need all the information to fully understand your schematic.
4) Browse through the datasheet (look for important notes and get an idea about the chip)
Why: There are always some important parts in datasheet which you really should read. Be sure you do.
How: Go through the datasheet, scan headers & topics and read if important. Look also for equations and tables. Check what they are for. Have a look on the pictures.
5) Check electrical characteristics
Why: You need to be sure you follow the recommending working conditions.
How: Open datasheet and find the table called “Recommended Operating Conditions”. Check all the important things, such:
- VCC, VDD (Minimum and Maximum operating voltage),
- Vin High / Low (Low and High input levels),
- Operating temperature,
- Maximum required current (be sure, you can deliver that), …
If a connector
- check maximum current per pin
6) Compare your schematic with all the available reference schematics (or interface specification)
Why: If you compare your schematic to the schematic of an existing and working board, there is a pretty high chance, that your board will work at the first time.
How: Find the recommended schematic in the datasheet and compare with your schematic. Look on the Internet and find reference or development boards with your circuit. Have a look how they connected it and compare. Be sure, your connections and components are correct. What to look for:
- compare and check, if your connection is correct (this point may look simple, but be careful, you still can make a mistake here)
- compare and check, if you have used correct components, compare with the reference schematics (if required, recalculate the values, e.g for power regulators you may need to recalculate resistor divider on FB pin)
- compare and check, if all the Not Fitted components from the reference schematics correspond to your notes in your schematic.
Ideally, if you can find a reference circuit, which exactly fits to your needs, use it (e.g. if you need a power regulator, find a reference schematic of a regulator which delivers exactly the voltage and current you need). If you can not find the exact circuit, be sure, you double check your schematic and recalculate your components properly.
7) Browse all the nets on the page, one-by-one
Why: You want to be sure, your schematic is correctly connecting all the components and pins.
How: Go through all the nets in your schematic page, one-by-one, and check how and where they are connected. If needed, follow the signal to the other pages. If a series resistor / capacitor / inductor is used on the net, follow the net to a chip input / output or a connector pin.
What to look for?
Check for every pin
- if pin name is same/similar to the net name
- look, if all the important nets are named, so they can be recognized during layout (power nets, clocks, interrupts, …..)
- if signal polarity is correct (e.g. P is connected to P and N to N)
- in case the net continues after a series resistor, capacitor, inductor then be sure the net name is consistent on the whole net (e.g. if a signal is P/+ or Positive, check if all the segments between series resistors / capacitors / inductors of this net are also marked as Positive)
- check, if the pin name on both ends of the signal is same (e.g. a pin on a chip called USB+ should be connected to a pin on a connector called USB+)
- if the net is a power, always be sure its connected to the output of a regulator (follow the signal back to the regulator output)
- look if there is no more than one pull up/down per net
- if an output connects to an input, be careful in the cases like: “Transmit vs Receive”. Sometimes you connect RX to RX and TX to TX, sometimes you need to swap it, sometimes the pins are called the name of the signal what should be connected there and not by the actual name of the pin.
- while browsing your schematic, always check every pin connected to the net (this is very important, especially in cases, when you think, that this net is only on one page, but sometimes this may not be true and you could accidentally use the same net name on a different page – for example in case its a power net, this will be a wrong connection – this really may happen)
- be sure, all the pins in the net are working at same voltage level (some interfaces can run on multiple voltage levels e.g. audio interface can run at +1.8V or +3.3V, I2C can run at +1.8V or +3.3V or +5V, …).
- look if all the pull ups are connected to the right power rail (e.g. sometimes may happen, that by accident you connect a +3.3V signal with a pull up to +5V)
- be sure, there will be no current leaking between different power rails (for example, check if there are no two pull up resistors on different voltages – you need to take in count also internal pull ups and look not only for different level but also different time e.g. two pull ups can be connected to +3.3V, but one of the +3.3V can be always powered and the other one can be powered only when the board is on – there still will be current leaking when the board is off between these two rails)
If the net is connected to a chip
- if this is an enable pin, check required level to be in High / Low. Compare with your schematic.
If the net is connected to a connector
- if you have designed your own connector pinout, ask this question: “What will happen if someone plugs in this connector the wrong way?” It should not damage your board.
“It is very important, that you look at your schematic from different points of view.”
When you browse a net with one input and one output, you will be browsing this net from different points of view – the first time when you are checking the input pin (you are looking if there is an output connected to this net and if there is a defined level on the net), second time you are checking the output pin (and you are looking if there is no other output on the net, if the output is not an open drain and an external pull up is not required, ….)
Schematic view (this view has several levels, check them all)
- Level 1 – PIN to PIN connection (e.g. if USB0+ positive signal from a chip is connected to USB0+ positive signal on the connector),
- Level 2 – BUS connection (e.g. if USB0 from a chip is correctly connected to a USB0 connector. In this case, the USB0 has two signals USB0+ and USB0-)
- Level 3 – INTERFACE connection (e.g. this includes also USB0 power switch, and signals like USB0 OC, USB0 PWR Enable, … all these signals must be connected to run the USB0 interface correctly on the connector)
- Level 4 – BLOCK connection (e.g. in case you use an USB Hub, this has to be connected correctly to support output on USB0)
- Level 5 – FULL Schematic VIEW (e.g. this is the USB connection between your CPU -> USB Hub -> Connector)
Power up view
Imagine, you connect a power to your board. What will happen? What will switch on first, second, third, …. Is everything configured correctly?
Software point of view
Is your schematic compatible with current software? If not, what changes are needed, can they be done? (e.g. in case you use a new unsupported chip, it may be extremely hard to write a completely new driver for it)
8 ) Go through component Schematic checklist and errata (if available)
Why: Some components have bugs. You need to be aware of them. Also, going through a schematic checklist will give you confidence, that your connection is correct.
How: Download errata and schematic checklist (if available). Go through all the points and be sure, your schematic is correct.