INTRODUCTION

Introduction

The aim of this tutorial is to take you through the process of entering a circuit of modest complexity in order to familiarise you with the techniques required to drive the schematic capture module in Proteus. The tutorial starts with the easiest topics such as placing and wiring up components, and then moves on to make use of the more sophisticated editing facilities, such as creating new library parts.

An accompanying tutorial in the PCB module then continues the project development using the completed schematic drawn in this tutorial.

For those who want to see something quickly, DSPIC33_REC_SCHEMATIC.pdsprj contains the completed tutorial circuit but no layout while DSPIC33_REC_UNROUTED.pdsprj and DSPIC33_REC_COMPLETE.pdsprj both contain a completed schematic and a PCB. All of these projects can be loaded from the Open Sample command on the Proteus 8 home page under the tutorials category.

Note that throughout this tutorial (and the documentation as a whole) reference is made to keyboard shortcuts as a method of executing specific commands. The shortcuts specified are the default or system keyboard accelerators as provided when the software is shipped to you. Please be aware that if you have configured your own keyboard accelerators the shortcuts mentioned may not be valid. Information on configuring your own keyboard shortcuts can be found in the General Concepts section of the Documentation.

See Also:

PCB Layout (Tutorial)

Schematic Capture (Reference Manual)

Application Framework : Backup and Recovery Procedure

Creating a New Project

We shall assume at this point that you have installed the Proteus 8 software package.

To start the software, click on the Start button and select Programs, Proteus 8 Professional and then the Proteus 8 application. The main application will then load and run and you will be presented with the Proteus home page.

If you have a Demonstration copy of the software you can start the Proteus application via the Proteus 8 Demonstration tab from the Start Menu.

In order to create a schematic we must first create a project. Since this tutorial is partnered with the PCB tutorial we will create a project for schematic/PCB.

See Also :

New Project for VSM Simulation (VSM Tutorial).

Start by pressing the new project button near the top of the home page in Proteus.

On the first page of the wizard specify a name and path for the project.

We need a schematic so check the box at the top of the next step and then choose the default template.

Similarly, we need a layout so check the box at the top of the layout page and again choose the default template.

The next screen allows us to define the layer stack for our PCB. Since we will be designing a simple two layer board there is no configuration necessary here.

For multi-layer PCB's the stackup wizard button would be used to define the number of copper layers, cores and pre-preg's. This is discussed in more detail in the accompanying PCB tutorial.

The next screen is for configuration of drill spans. Again, for our proposed 2-layer board the only possibility is thru-hole so there is no action required.

The final screen in the PCB configuration is simply a preview of a PCB cross section that displays visually what has been set up in the previous screens.

We are not simulating the design so leave the firmware page blank and continue on to the summary which should look like the following:

Click on the finish button to create the project

Further Reading:

A schematic template can contain sheet size, colour scheme, company logo, header block and various other aesthetic presets. Further information can be found in the Templates chapter of the reference manual.

A PCB template can contain board edge, mounting holes, design rules, layer stack and various other technology information. Refer to the Templates chapter in the PCB documentation for more information.

The configuration of the Layer Stack and Drill Spans is really important for multi-layer PCB's and is discussed in some detail in the reference manual.

The project will open with two tabs, one schematic capture and the other for PCB layout. Click on the schematic tab to bring the schematic editor to the foreground.

Guided Tour

The largest area of the screen is called the Editing Window, and it acts as a window on the drawing - this is where you will place and wire-up components. The smaller area at the top left of the screen is called the Overview Window. In normal use the Overview Window displays, as its name suggests, an overview of the entire drawing - the blue box shows the edge of the current sheet and the green box the area of the sheet currently displayed in the Editing Window. However, when a new object is selected from the Object Selector the Overview Window is used to preview the selected object - this is discussed later.

Schematic Capture Window

If you don’t like the default layout of the toolbars you can pick them up and dock them on any of the four sides of the application. Similarly you can move the Object Selector & Overview Window pane across to the right hand side of the application by dragging the end of it all the way across to the other side.

Toolbars and menu options will switch according to which tab is active (at the front). Throughout this tutorial when we refer to an icon or a menu command we are assuming that the schematic tab is active.

Right clicking the mouse either in the Object Selector or in the Overview Window will provide a context menu, including the option to ‘auto hide’ the left hand pane. This is extremely useful if you want to maximise the editing area of the application. When enabled the Object Selector and Overview Window will be minimised to a ‘flyout bar’ at the left (or right) of the application by default and will appear either when the mouse is placed over the bar or when the mode of operation is changed by selecting a different icon.

Auto hide the Object Selector Device Mode Icon

See Also:

Screen Layout (Reference Manual)

Navigation of the view displayed in the Editing Window takes two forms; adjusting the scale of the drawing (zooming) and adjusting the area of the drawing displayed (panning). These techniques are somewhat intertwined and are discussed in more detail below:

Zooming

There are several ways to zoom in and out of areas of the schematic :

  • Point the mouse where you want to zoom in and out of and roll the middle mouse button (roll forwards to zoom in and backwards to zoom out).
  • Point the mouse where you want to zoom in or out of and and press the F6 or F7 keys respectively.
  • Hold the SHIFT key down and drag out a box with the left mouse button around the area you want to zoom in to. We call this Shift Zoom
  • Use the Zoom In, Zoom Out, Zoom All or Zoom Area icons on the toolbar.

Zoom Icons

The F8 key can be used at any time to display the whole drawing.

The Shift Zoom and the middle mouse zoom techniques can also be used over the Overview Window. That is, you can position the mouse over the Overview Window and either roll the middle mouse button or use Shift Zoom to navigate in or out of an area of the schematic.

Panning

As with zooming, there are a number of options for panning across the editing window.

  • Click on the middle mouse button to enter track pan mode. This puts the schematic in a mode where the entire sheet is picked up and will move as you move the mouse. The track pan cursor will indicate when you have entered this mode. Left click the mouse again to exit track pan mode.
  • To simply 'pan' the Editing Window up, down, left or right, position the mouse pointer over the desired part of the Editing Window and press the F5 key.
  • Hold the SHIFT key down and bump the mouse against the edges of the Editing Window to pan up, down, left or right. We call this Shift Pan.
  • Should you want to move the Editing Window to a completely different part of the drawing, the quickest method is to simply point at the centre of the new area on the Overview Window and click left.
  • Use the Pan Icon on the toolbar

Note that when using the track pan method above you can also zoom in and out by rolling the mouse wheel. So, click the middle mouse button to pick up the sheet and move the sheet by moving the mouse and zoom the sheet by rolling the middle mouse button. Left click to 'drop' the sheet and exit track pan mode.

It is well worth spending a few moments familiarising yourself with navigation on the schematic - it is after all one of the most common operations you will perform. In particular, learning to use the middle mouse button both for track pan and for zooming will save you time during schematic design.

A grid of dots or lines can be displayed in the Editing Window as a visual aid using the Grid command on the View menu, or by pressing 'G' to toggle the grid from ‘dots’, ‘lines’ or ‘off, or by clicking the Grid Icon on the toolbar. The grid helps in lining up components and wires and is less intimidating than a blank screen. If you find it hard to see the grid dots or lines, either adjust the contrast on your monitor slightly (by default the grid is displayed in light grey) or change their colour with the Set Design Defaults on the Template menu.

Below the Overview Window is the Object Selector (sometimes known as a 'parts bin') which you use to select devices, symbols and other library objects. We'll familiarise ourselves further with using the Object Selector later.

Finally, at the bottom of the screen is the co-ordinate display, which reads out the co-ordinates of the mouse pointer when appropriate. These co-ordinates are in 1 thou units and the origin is in the centre of the drawing

Origin Co-ordinates

Note that Proteus allows you to reposition all the icon toolbars as well as move/resize the Object Selector/Overview Window. Do be aware however, that this documentation refers to all the rebars and windows in their default locations.

Visual Aids to Design

The Proteus capture module is designed to be as user friendly as possible and provides two main ways to help you see what is happening during the design process – objects are encircled with a dashed line or ‘twitched’ when the mouse is over them and mouse cursors will change according to function. Essentially, the object-twitching scheme tells you which object the mouse is over (the ‘hot’ object) and the mouse cursor tells you what will happen when you left click the mouse on that object. While extremely intuitive, a summary of cursors used, together with their actions, is provided below:

Cursor | Description
 | Standard Cursor - Used in selection mode when not over a 'hot' object.
 | Placement Cursor - Placement of an object will commence on a left click of the mouse.
 | Hot Placement Cursor - Appears green when placement of a wire is available on left click of the mouse.
 | Bus Placement Cursor - Appears blue when placement of a BUS is available on left click of the mouse.
 | Selection Cursor - Object under the mouse will be selected on a left click of the mouse.
 | Move Cursor - The currently selected object can be moved.
 | Drag Cursor - The wire or 2D graphic can be dragged by holding the left mouse button down.
 | Assignment Cursor - When over an object (having set the Property Assignment Tool) You can assign the property by left clicking the mouse button.

We will see more of the different cursor types throughout the course of the tutorial.

Keyboard Shortcuts

For those customers who prefer to invoke commands and dialogues via the keyboard Proteus provides a comprehensive and flexible scheme for assigning shortcuts. The dialogue form is invoked from the System Menu – Set Keyboard Mapping command, where all commands and operation modes can be accessed from the combo box at the top. Simply select the command you want, apply a key sequence and assign it to that command

Keyboard Mapping Dialogue Form

While there are few limits on shortcuts, a few standard windows accelerators are restricted as they are global across the entire Proteus system (e.g. CTRL+S for save).

See Also:

Keyboard Configuration (Reference Manual)

Display Options

Proteus is capable of harnessing the power of your computers graphics card to speed up operation and present a crisp and smooth display. However, as not all machines have sufficient graphics cards the software is also capable of using Windows to perform display and graphical operations. The available modes of operation are called:

  • Windows GDI Mode.
  • OpenGL Hardware Accelerated Mode.
  • Direct 2D Hardware Accelerated Mode.

If your graphics card is not powerful enough to support hardware acceleration then Proteus will simply default to Windows GDI mode. Should your computers graphics card be capable of both Direct2D and OpenGL the system will default to Direct2D mode as this tends to be more reliably implemented by graphics card vendors.

Configuration of the screen display takes place from the Set Display Options on the System menu. Some of these options are specific to a particular hardware acceleration technology and will be disabled when a different mode is enabled.

The Set Display Options Form for OpenGL and Direct2D

The first section of the dialogue reports on whether your graphics card will support OpenGL and/or Direct2D hardware acceleration and, if so, allows you to switch between graphics mode.

The auto-pan section of the dialogue allows you to control distance, smoothness and speed of pan operations on the schematic. For example, holding down the shift key and bumping the mouse against the edge of the window will auto-pan the screen.

The highlight animation options allow you to specify the speed at which objects become active when the mouse is moved over them. The attack rate is the rate at which the object is highlighted and the release rate is the speed at which the object returns to it’s default state. These options are only available in hardware accelerated display modes.

Finally, the multi-sampling combo box allows you to specify the level of anti-aliasing you want when working in OpenGL mode. The higher the level of multi-sampling the better the anti-aliasing effect but the more GPU resources are consumed. If you select a level of multi-sampling which is not supported by your graphics hardware the software will reset the level to the closest one which your card can handle.

What you get with multi-sampling varies enormously between graphics cards. Some present extremely smooth text, while with others it looks blurry and on a few it causes display issues. We would suggest you being with multi-sampling off if you choose to work in OpenGL mode.

Configuration of colours and styles on the schematic takes place from the Template Menu. This allows to change everything from paper, grid and highlight colours to the thickness and colour of all the object types used in a design. Please refer to the reference manual section on Templates for more information.


DESIGN OVERVIEW

Introduction

The circuit we are going to draw is shown below. This is reasonably straightforward schematic that will nonetheless allow us to cover most of the major features of the schematic capture package. Being a real-world design, it will also allow users to follow the design through the PCB phase of development via the PCB tutorial.

The dsPIC33 Data Recorder Sample Design

General Description

The dsPIC33 Data Recorder Tutorial circuit is a solid state recorder designed to collect three of the most important environmental variables:

  • Atmospheric pressure
  • Ambient temperature
  • Relative humidity

A number of low cost silicon transducers with built-in signal conditioning or digital interfaces have been used for measurement. This reduces the number of components to the minimum required for dsPIC33 interfacing.

All measurements get periodically stored into a non-volatile, low power memory in row binary format for later transfer to a host PC either by using a serial terminal or, more properly, a simple program (not supplied with the project). For the purpose of this project a serial terminal is used.

The circuit is designed to work with a battery for relatively long period in an unattended environment and, as such, a particular emphasis has been given to optimizing the power consumption and consequently the battery life. The recorder will sleep most of the time and will be woken up periodically only to accomplish the required recording operations.

Circuit Description

The following is a block diagram showing the behaviour and interaction of the circuit components.

Block diagram of the dsPIC Data Reorder Design

We’ll cover the basics of the design construction as we progress through the tutorial but in order to keep the focus on the practical aspects of using the software, design decisions and theory will not be discussed in this document.


SCHEMATIC ENTRY

Basic Schematic Entry

We’ll start the tutorial by familiarizing ourselves with the basics of schematic design; picking components from the libraries, placing them on the schematic and wiring them together.

The design in question is relatively large and there is therefore a reasonable amount of drawing involved. We provide a completed schematic at the end of this section so, if you feel that you have mastered the basics at any point, there is no need to continue with drawing the remainder of the circuitry. We do however urge you to read through the full contents of the documentation as we introduce important features throughout.

The first thing we need to do is to get the parts from the libraries that we need in our schematic.

Selecting Parts from the Library

You can select parts from the library in one of two ways :

  • Click on the P button at the top left of the Object Selector as shown below. You can also use the Browse Library icon on the keyboard shortcut for this command (by default this is the P key on the keyboard).

  • Right click the mouse on an empty area of the schematic and select Place – Component - From Libraries from the resulting context menu as shown below :

Either of these two methods will cause the Device Library Browser dialogue form to appear.

For reference, the following is a list of all the components we will need for our design:

2N7002 | 24LC64 | AVX0805NPO22P | AVX0805X7R1N | AVX0805X7R10N
AVX0805X7R100N | B82432T1103K000 | BAS40 | CHIPRES1K | CHIPRES10K
CHIPRES20K | CHIPRES68K | CHIPRES100K | CHIPRES100R | CHIPRES200K
CONN-H2 | CONN-SIL4 | CONN-SIL6 | CRYSTAL | DSPIC33FJ12GP201
JUMPER | LED-RED | LM285-2V5 | LM358 | MAX1724
MPX4115 | SHT15 | TAWD106M025R0600 |  |

There are several ways in which we can find and import components from the libraries into the schematic. In the case of parts where you would know the part name its usually best to start the search with that. Try entering ’2N7002’ into the Keywords field on the Device Library Browser dialogue form. This gives three components to choose from and we can then simply double click on the part in the results list to import it into the schematic. When you do this you should notice that the part now populates the Object Selector as in the following screenshot.

The 2N7002 in the Object Selector

Given that we know the names of all the parts we want we could simply proceed by using this technique to bring in all the components we need. However, this may not always be the case and Proteus provides several methods for finding parts in the component libraries. One of the most intuitive is to use the library browser a little like an internet search engine, typing in descriptive keywords and then browsing the results to find a specific part. Try this now with the resistors, typing in ‘1k SMT resistor’ in the keywords field of the library browser dialogue to locate the CHIPRES1K component (double click on the part in the results list to import into the schematic). We could similarly search for ‘10k SMT resistor’ to find and insert the CHIPRES10k component and so on.

Picking a CHIPRES1K Resistor from the Pick Devices form / Websearch

Note that there are web search results accessible by clicking on the yellow bar at the bottom of the search display. This provides free access (you need to register a free account) to over 15 million library parts, meaning that if the part is not included with the installed libraries you can still source it from this dialogue form.

See Also:

Library Form Web Search.

You can customize the information displayed in the Library Browser’s results list by right clicking the mouse on the results list. The context menu provides you with options to display Categories, Sub-Categories, Manufacturer and Library alongside each result.

It may be that we simply want to browse for a specific type of part and/or one available from a specific manufacturer. To take an example, clear out the contents of the keyword field and then select the Capacitors Category. In our design we are looking for some Nickel Barrier caps from AVX so we can further filter the results set by selecting Nickel Barrier from the sub-category field and AVX from the Manufacturer field. There are still a large number of caps available so we might type in ‘22p’, ‘1N’, etc. in the keywords field to isolate and select the particular components we require (AVX0805NPO22P, AVX0805X7R1N and so on).

Whilst this exercise is a little contrived given that we are starting from a preset list of parts, the techniques described are flexible enough to allow you to locate any library part quickly. Work through the full parts list for the design (as provided above) now using one or more of these methods to find and select the parts into your design. When you are finished you should have all of the required components in the Object Selector as shown in the following screenshot.

A Full list of required components

For example, if you wanted to search for a specific stockcode you would need to make sure that the stockcode column was enabled (right click on results list) and then type something like ‘digi <stockcode>’ to locate the digikey stockcode.

Similarly, if you want to search through only your own library parts, you can simple enable the library field and then type something like ‘user <partname>’; the user term will filter the results to the USERDVC library thus reducing the search range to your own libraries.

It is inevitable that at some point there will be parts needed for a project which aren't supplied in the installed libraries. In such cases you can quickly download and import the parts free of charge from popular third party vendors such as Ultra-Librarian, SnapEDA, Library Loader or PCB Library Expert. The process is discussed in detail in the reference manual and also covered in video format on the website and our Youtube channel.

Placing Objects on the Schematic

Having selected the parts we need the next thing is to actually place them on the drawing area – the Editing Window – and wire them together. You’ll notice from the screenshot that we have also split the contents of the schematic into logical blocks of circuitry. This is partly aesthetic but also reduces wiring clutter on the schematic and will allow us to cover the use of terminals to form connections as we work through the tutorial.

Main Sheet of the dsPIC33 Data Recorder Schematic

We are going to start off simply and complete the block of circuitry comprising the I2C Memory device as shown below.

I2C circuit section

Begin by placing the I2C memory device as follows:

  • Select the 24CL64 device from the Object Selector.

  • Left click on the schematic to enter placement mode.

  • Move the mouse to the desired location for the part, then left click the mouse again to ‘drop’ the part and commit placement.

Often we need to move parts or blocks of circuitry after placement and now is a good time to cover the different ways in which we can do that. The procedure for this should be familiar to most users; we need to select the object(s) we want to move, left depress the mouse, drag to the new location and finally release the mouse to drop.

We can select an object in several ways as detailed below:

  • Choose the Selection Icon and then left click on the object. This is a standard technique found in most graphical applications and will tag any object. Bear in mind when using this technique that you must change back to component mode for example, when you wish to perform other actions such as placing components etc.
  • Right clicking the mouse on an object will both tag the object and present a context menu containing available actions on that object.
  • Draw a tagbox around the object by depressing the left mouse button and dragging the mouse to form a box encompassing the object to be selected. This method will work for any object (or indeed sets of objects). Sizing handles are provided to allow you to resize the tagbox in the event that it does not fully enclose the object. This is the technique that should be used for moving multiple, connected objects or blocks of circuitry.

We’ll get plenty of practice moving things around as we lay out the schematic; for now just use one of these techniques to move the memory device down towards the bottom left of the Editing Window in roughly the same position as in the screenshot at the top of the section.

Having placed the memory device, we now need to get the peripheral circuitry down and oriented correctly. We are going to need two 10k pull up resistors and two 100 Ohm resistors for the data and clock lines. Additionally, we are going to need to use terminals to achieve connectivity with power, ground and other sections of circuitry. Begin by selecting the CHIPRES10k device and click left once on the anti-clockwise Rotation icon (shown below); note that the preview of the resistor in the Overview Window shows it rotated through 90°.

Using the Rotation Icons with the Overview window

Now place the resistor above and to the left of the memory device in the same way as before. Then, simply left click again on the Editing Window to start placing the second 10K resistor just beside the first one.

Next, select CHIPRES100R, rotate appropriately (see above) and place two to the left of the memory device in line with the SCK and SDA pins.

You can also rotate parts 'live' when in placement mode. Left click the mouse once to enter placement mode (at this point you will see the component outline following the mouse) and then use the '+' and '-' keys on the numeric keypad to rotate the component as you are placing it. Left click again to commit the placement in the normal way.

We use terminals in schematic design simply to terminate a wire and assign a connection. Often this connection is to either power or ground but it can just as easily be to another wire elsewhere on the circuit. Terminals allow us both to vastly reduce actual wiring (avoiding spaghetti schematics) and to make connections between different sheets on the schematic. To place terminals, start by selecting the terminal mode; this will switch the Object Selector and provide us with a listing of the available terminal types.

We need a power terminal, ground terminal and also two default terminals for the connections on the I2C bus. From this stage, placement and orientation are identical to any other object and should now be quite familiar. Place the appropriate terminals in their approximate locations now, such that the area around the memory device now looks something like the following

Selecting the Default Terminal

Unless you are fairly skillful, you are unlikely to have got all the components oriented and positioned entirely to your satisfaction at the first attempt, so now is a good time to practice moving things around as discussed earlier. In particular note that you can drag a tagbox around a group of objects to move the lot in one go.

Components positioned correctly

Similarly, you can clear a selection (or group of selections) either by left clicking in empty space or by right clicking in empty space and choosing the Clear Selection option from the resulting context menu

Dragging components

Remember that you can rotate while moving by using the '+' and '-' keys on the numeric keypad.

Wiring Up

Having placed all the requisite components we now need to wire them together. There are three main techniques used to help make wiring a circuit as simple and quick as possible :

Modeless Wiring

There is no 'wiring mode' in the schematic editor - wires can be placed and edited at any time, without the hassle of entering a dedicated wiring mode prior to placement. This means less mouse travel, less mode switching and quicker development.

Follow-Me Wire Autorouting

After starting to place a wire, the proposed route of the wire will follow the movement of the mouse orthogonally to the termination point of the wire.

Live Cursor Display

The cursor will change as a visual indicator when wiring to show when a wire can be placed, when a wire can be terminated and when a wire is being placed.

The basic procedure for placing a wire between two pins is given below, using the connection between the SCK pin of the memory device and the 100Ohm resistor as an example:

  • Move the mouse over the SCK pin on the memory device - the cursor will change to a green pen.

  • Left click the mouse and then move it to the left until it is over the pin of the 100 Ohm resistor. The wire will follow the mouse and the cursor / pen is white during wiring

  • Left click the mouse again to commit the connection and place the wire.

The procedure for wiring onto an existing wire is almost identical but there are a couple of items to note:

  • You cannot directly start a connection from an arbitrary point on a wire; in our example you want to start the connections from the pin and terminate them on the wire.
  • When you terminate the connection on another wire a junction dot will be placed automatically to complete the connection.

If, during a design, you want to make a wire-to-wire connection you must first place a junction dot on the wire and then wire from the junction dot to the other wire

If you want to adjust a wire after placement (for example, the wire from the SDA pin to the resistor) then simply right click on the segment you want to move and then either select the ‘Drag Wire’ context menu option or simply depress the left mouse button and drag to the new location.

Dragging a wire

Armed with the above you should now be able to connect up all of the circuitry, so that your schematic now looks something like the following

Schematic section with all parts / terminals placed

Remember, Proteus provides visual indicators to help you. If the cursor turns green you can start/stop wire placement.

See Also:

Wiring Up (Reference Manual)

Connectivity by Touch

The following basic rules of thumb may be helpful:

  • If you are placing the component you can attach to another component, wire or terminal directly.
  • If you are dragging the component you can attach to another component pin, junction dot or terminal.
  • If you are copy and pasting you can only attach it to a pin end, a bus pin, a junction dot or a terminal only.

Further information can be found here: Connectivity by Touch (Reference manual)

Making Connections with Terminals

The final thing we need to do to complete this block of circuitry is label the terminals. Terminal naming is extremely important as it denotes the connection to be made. We could name the terminals in any fashion we liked but sensible names make the schematic more legible and easy to understand.

Terminal connection

Power, Ground and NC terminals are the exception to this rule, although there is no reason not to label them; an unlabelled power terminal is assigned to the VCC net and an unnamed ground terminal will be assigned to net GND. A pin connected to the NC terminal is NC and cannot then be connected on the layout.

Essentially what we are doing by labeling a terminal is making a connection to somewhere else on the schematic (a terminal with the same name) without placing a physical wire between the two objects.

As discussed previously the Proteus schematic is flexible enough to present you with several methods for editing parts - choose your preferred method for editing the terminal from the following:

  • Double left click on the terminal.
  • Right click on the terminal to select it and launch the context menu and then use the Edit Properties menu option.
  • Enter Selection Mode, left click to highlight the terminal, then right click to launch it's context menu and use the Edit Properties menu option. Remember to exit selection mode when you are finished.

Having now launched the terminals dialogue form, type in VDD in the edit field as shown below and hit ok to exit the dialogue form

Note that, where appropriate you should always prefix numerical terminal values with a '+' or '-'. For example, a terminal labeled 12V is ambiguous and you should therefore ensure it is labeled +12V or –12V

Finish the job now by editing the other terminals and labeling them appropriately such that your completed circuit block now looks like the following:

Schematic section completed

See Also:

Terminals (Reference Manual)

Power Connections

Proteus capture supports a powerful scheme for making power connections implicitly, thus vastly reducing the number of wires on the schematic. There are three main concepts involved that we will discuss in turn below.

Hidden Power Pins

Almost all relevant parts in the installed libraries have their power pins hidden (not visible on the schematic). The crucial point to remember is that in such cases is that by default the name of the pin denotes the net to which it will connect.

If you need all pins to be visible on the schematic (e.g. for auditing purposes) consider using the library import tool (Library Menu -> Import Part) to bring in the parts you need. This process is quick and easy and works with library parts supplied from all major vendors.

See Also:

Hidden Power Pins (Reference Manual)

Power Rail Configuration

The easiest way to manage power nets and connectivity is through the Power Rail Configuration dialogue form, which is invoked from the Design Menu. If we do this now we can see that we have three pre-defined power supplies, namely GND, VCC/VDD and VEE. Changing the combo box at the top we should also see that the GND net is connected to the GND supply and that both the VCC and the VDD nets are connected to the VCC/VDD supply. It’s worth examining how this happened more closely:

  • The GND net is created by connections to an unlabelled ground terminal.
  • The VDD net is created by connections to the power terminal labeled VDD.
  • The I2C memory has two hidden power pins, VCC and GND, which are assigned to nets bearing their names.

Managing power nets and power supplies is a very important concept so we’ll experiment a little to re-inforce the point. Exit the Power Rail Configuration dialogue form, right click on the I2C memory part and select Edit Properties from the resulting dialogue form. Next, click on the Hidden Pins button at the right hand side to view the hidden pins and their net assignments.

Hidded Power pins in schematic components.

Let’s change the power pin to be on net VDD, instead of the default of VCC. If we then exit the dialog and re-invoke the Power Rail Configuration dialogue and switch to the VDD/VCC power supply we should see that the VCC net is no longer present (this was the only connection on our schematic so far).

While we are here and for completeness change the Voltage of the power supply to be 3.3V, which is actually what we will be using. In PCB Design this is useful only as a reference to ourselves but actually has significance in the software for simulation purposes.

This exercise, while useful in explaining how to view/change the power nets for individual components, had no effect on design connectivity. The software is clever enough to assign both the VCC and the VDD nets to the same supply and the Power Rail Configuration dialogue allows us to configure our power connectivity at design level.

Returning to the schematic now, edit the VDD terminal (right click, edit properties) and change the terminal label to ‘MY_POWER_NET’. If you go back to the Power Rail Configuration dialogue you should see that this is now an unconnected power net (a power net which is not associated with a power supply).

Changing the Terminal name

If we were doing this for real, we would now have to select the VCC/VDD power supply and then click the assign button to map our power net onto the correct supply.

If we had simply removed the label from the power terminal (instead of renaming it), it would have been designated to the VCC net and again everything would be done for us.

A final point worth noting is that new power supplies are created automatically when you label a terminal with a voltage. For example, labeling a power terminal +12V would create a +12V supply and assign the +12V net to the supply automatically. This means again that no action is required by the user.

In general usage therefore, the software will handle the assignments of power nets to power supplies and will create new supplies automatically. However, if you need more flexibility (for example, an analogue ground and a digital ground) then using terminal labels and the Power Rail Configuration dialogue gives you the control you need. Please see the reference manual for more information if required.

Let’s change our terminal label back to VDD for consistency before we move on.

See Also:

Power Rail Configuration (Reference Manual).

Global Power Nets

Power nets and connections are always global on a given sheet on the schematic. By default, they are also global to the design. However, if you do have a multi-sheet design and you want separate power supplies on different sheets you can isolate the supplies by un-checking the Global Power Nets box (Design Menu - Edit Design Properties dialogue form). This means that you need to explicitly wire through the sheets on the design but not within a given sheet. It is typically used only for the most complex of designs and is not relevant for the purposes of this tutorial.

Part Labels and Annotation

You should see that all the parts you have placed have both a unique reference and a value. A unique and sequential annotation is assigned to components as you place them on the schematic, although you can re-annotate manually if you need to.

You have full control over the position and visibility of part labels – you can change the values, move the position or hide information that you feel is unnecessary. The discussion below details how to manipulate part labels on a per component basis.

If you zoom in on any resistor you have placed you will see that Proteus has labelled it with a unique Reference (e.g ‘R1) and also with a Value (e.g. ‘10k’). You can edit both these fields and their visibility via the Edit Component dialogue form. Launch this dialogue form now by double clicking the left mouse button over the resistor (or using one of the alternative methods discussed previously).

The Edit Component dialogue form

From the resulting dialogue form you can edit both the part name reference and, in this case, the resistance. Of more interest to us however, is the visibility options (highlighted in the above screenshot). It can be useful, particularly in densely populated schematics to hide some details displayed beside the parts – the trade off being that you would then need to edit the part as above to see it’s reference and value.

At this stage it is worthwhile familiarising yourself with editing components and hiding and showing references and values.

Some caution is required when changing part references in this manner. If, for example, you change ‘R1’ to be ‘R2’ then you will have two parts with the same reference on the schematic. This will cause netlist errors when working in the PCB module. If, however, you re-annotate using the new button on the edit component you are guaranteed a unique part reference.

The 'New' button will automatically assign a new reference

Similarly, the Global Annotator (discussed later in the tutorial) will always avoid duplication of part references.

As well as the ability to hide part labels you can move them to a more convenient place. This is commonly used where you might want to place a wire over the current position of the label and need to free up some screen space. We will try this now with the 'R2' and the '10k' labels on the pull up resistor, moving them across to the other side of the component body.

Start by selecting the resistor. Now point at the label 'R2' and with the left button depressed, drag it to its new position to the left of the component body. Then do the same with the '10k’ label.

Dragging a reference

Timesaving Techniques & Block Editing

Armed with all of the basic techniques we can now look at the other blocks of circuitry on the front sheet of the design, practice what we have covered so far and introduce a couple of new timesaving techniques. Let’s start by drawing the dsPIC33 block as shown below:

dsPIC33 Circuit section

You should be able to tell which components go where by comparing the component names in the Object Selector to the parts labels on the screenshot above. For clarity however, you can use the following table as a reference:

C1,C2 | AVX0805NP022P | X1 | CRYSTAL
C3 | TAWD106M025R0600 | C4 | AVX0805X7R100N
R8 | CHIPRES10K | R9 | CHIPRES1K
R10 | CHIPRES100R | D1 | LED-RED
D2 | BAS40 | JP1 | JUMPER
U1 | DSPIC33FJ12GP201 |  |

Begin by placing and wiring the oscillator and power sections (left hand side) of this circuitry using the methods outlined in the previous sections. When you are ready we’ll look at the right hand side, where we can use a couple of additional features to speed up the process.

The schematic editor provides a very useful feature to help with wiring when we are laying out a series of topologically identical wires. Essentially, it allows us to auto-repeat the last wire placed to form a new connection.

Start by rotating and placing a couple of the terminals to the right of the processor.

Terminals belonging to the dsPIC33

Now drag a box around the terminals and select the block copy command; this will allow you to quickly copy out three more sets of terminals ready for connection. Right click the mouse when you are finished to exit block copy mode

Block copying Terminals

Wire up the first connection from pin 4 (RB0) of the dsPIC to the terminal exactly as we discussed previously. Instead of repeating the process for the other seven connections simply hover the mouse over the next pin down (so that the cursor turns green) and double click. This will auto-repeat the previous connection, allowing you to rapidly wire up the other lines.

Note that this technique works by placing an identical wire to the one placed directly beforehand. It follows that the destination must be exactly the same distance away (i.e. aligned) and that you must perform the operations consecutively

We can now complete this section of circuitry, placing and wiring up the remaining components and labeling the terminals as per the screenshot at the top of the section. Note that a list of existing terminal label names is available as a drop down list from the Edit Terminal dialogue form (refer to the section on labeling terminals if you need a reminder).

Drop down list of Terminals

It is highly recommended that you use this where applicable as it avoids the potential to make typing errors. Remember that terminal names donate connections so care should be taken during labeling.

You should be getting quite proficient at basic schematic entry now and the other three small blocks of circuitry on this sheet should present no problem. When you are finished your schematic should look something like the one below:

Completed dsPIC33 circuit

If you feel comfortable with the topics we have covered to date, you can skip some of the drawing and load a pre-supplied completed schematic later in the tutorial

As a final point it is worth re-emphazing that you can re-arrange or move blocks of objects at any time by tagging a box around them and dragging them to the desired location.

Moving a block of circuitry to the desired location


MULTI-SHEET DESIGNS

Multi-Sheet Designs and Connectivity

It is increasingly common in larger designs to split the schematic into multiple sheets. This serves both to reduce clutter on the schematic and also to organize the design into logical blocks. The Proteus schematic capture fully supports this methodology and we have arranged our tutorial design into two sheets in order to cover the relevant procedures. The work we have done so far has been to complete the first sheet (processor, sensors and memory circuitry), meaning we still need to cover the analog and power circuitry. We’ll do this on a separate sheet.

While beyond the scope of this tutorial it is worth mentioning that Project Clips provide a method for re-using logical blocks of design and layout. More detail is in the reference manual and a short tutorial movie is linked below.

Introduction to working with Project Clips

Also, note that what we are doing here is adding a second sheet at the same level as the first sheet. Proteus fully supports hierarchical designs where you use sub-circuits to contain logical blocks. This is discussed in detail in the reference manual.

See Also:

Multi Sheet Flat Designs (Reference Manual).

Sub-circuits (Reference Manual)

Project Clips (Reference Manual)

Practical Examples: Duplication of Design Hierarchies (Reference Manual)

Adding Sheets to a Design

To add a new sheet to the schematic we simply invoke the command from the Design menu as shown below.

Creating a new sheet

Try this now to generate the second sheet.

Naming, Ordering and Navigating Sheets

Before we lay out the circuitry on this sheet we need to do a little housekeeping. While it’s not necessary it is often helpful to name the different sheets on the schematic and also to order them in some sensible fashion. We can do both of these things via the Edit Sheet Properties command on the Design Menu.

The Edit Sheet Properties dialogue form

The Sheet Title is what will be displayed and should therefore reflect the contents of the sheet. In our case let’s name it ‘Analog, Reference & Power’.

Sheets on the schematic are organized by Sheet Ordinal and by default these are 10, 20 and so on. A sheet with an Ordinal of 20 will therefore appear behind the first sheet (default Ordinal 10). If you prefer purely numeric nomenclature we can change the sheet name to be ‘2’, to better reflect it’s position in the design structure.

The default sheet names may seem inconsistent. This is because there is also a Master Sheet, present in all designs, which allows the application of a company logo, revision number, author and other schematic information. This is beyond the scope of this tutorial but more information can be found in the Templates chapter of the accompanying reference manual (Help Menu – Schematic Capture Help).

Sometimes, it is desirable to have a base annotation for a sheet; this means that the global annotator will increment from the value entered in this field. For example, if we set this to be 100 then the first resistor placed on the sheet would be annotated as R100. When left at it’s default value the global annotation will continue from it’s current position – this is fine for the purposes of the tutorial.

Setting initial annotation for sheets is useful as it can guide the Global Annotator when batch annotating. It can - if you choose - also then be honoured when annotating physically via the Automatic Annotator in the PCB Layout Module.

Before exiting, your dialogue form should now look something like the following:

Global Annotator with the Initial count set.

For completeness we should also follow this process for the sheet we have just finished laying out. Before we can change the properties of a sheet we must first navigate to that sheet in the design and Proteus provides several ways to do this :

  • From the Design Menu select Root Sheet 2 at the bottom of the menu,

  • From the Design Menu, select the Goto Sheet command, select the sheet and click OK to switch to that sheet.

  • Use the PGUP and PGDOWN keyboard shortcuts to navigate between sheets. These cycle up and down the sheets respectively, although for a two sheet design they will seem to have the same function!

The Design Explorer is also a powerful way to navigate the schematic – this is covered in the Design Verification section of the tutorial and in more depth in the reference manual.

Once you find yourself back on the sheet we have laid out simply repeat the process above, with a sheet title of ‘MCU, sensors and memory’ and a sheet name of ‘1’.

Sheet 1 properties

You should now see correctly organized and labelled sheets at the bottom of the Design Menu

This is what you should see in the Design menu

Connectivity between Sheets

Now that we have taken care of the naming, let’s navigate back to our blank sheet and lay out the analog circuitry. The following screenshot shows the circuit we need to draw.

As we can see, there are three logical blocks of circuitry; a reference generator for the ADC module, an analog buffer for the pressure channel and a DC/DC converter to provide 5V from the 3V battery to the other two sections on each pressure sampling time.

If you feel that you need more practice then you can use all of the techniques we have covered so far to complete the schematic. Alternatively, if you are comfortable with the basics of schematic entry we will load a pre-supplied completed schematic in the next section. Regardless, there are a couple of points of note that are worth emphasizing.

Firstly, connectivity between sheets is achieved by having terminals with the same name on both sheets. From the screenshot above you can see the named terminals and, switching to the first sheet, the corresponding terminals with the same name. This technique allows signals to propagate not only across a sheet but also across sheets.

See Also:

Net Names (Reference Manual)

Secondly, it is possible when placing wires to ‘guide’ the wire placement as you place the wire. This is achieved by left clicking the mouse as you change direction, placing an ‘anchor’ to help the follow-me algorithm place the wire the way you want. Typically, this is useful on more complex wire trails but we can look at a simple example for the purposes of illustration.

Consider the connection between the negative input of U4:B and resistor R18 as shown below.

Negative input wire to R18

If we delete this wire (right click and select delete), we could replace the connection in the usual way and the follow-me algorithm would make a decent job of it. However, if we wanted to be more precise we could proceed as follows:

  • Hover the mouse over the negative input such that it turns green and then left click to start wire placement.

  • Move the mouse along to the left and then left click the mouse once to place an ‘anchor’.

  • Move the mouse up, left click to place an anchor, then right, left click to place an ‘anchor’ and finally down onto the wire between the op-amp output and resistor.

This technique constrains the follow-me algorithm and provides greater control during wire placement. If at any time during placement you change your mind and wish to remove an anchor simple right click the mouse once. Finally, if you want to completely disable the wire-auto-router and, for example, place a wire at 45 degrees, simply hold the CTRL button down on your keyboard during placement.

Gateswap

Now that we have a multi-element placed (LM358 dual op-amp) it's a good time to look at gate-swapping on the schematic. The reference for a multi-element part reflects both it's part reference (e.g. U4) and also it's gate element identifier (e.g. A) as shown below.

U4:A and U4:B

Start by editing one of the LM358 gates (right click - edit properties) to bring up the Edit component dialogue form.

Edit Component Dialogue form for an Op-Amp

To swap the gates we are switching the element identifiers (A and B) on a single part (U4). The element field of the dialogue conveniently contains a combo box will all available gates so all we need do is change the element and hit OK to commit.

On schematic this switches the gates over according to the change specified in Edit component.

See Also:

Gateswap on Schematic (Reference Manual)


PCB LAYOUT

Preparing for PCB Layout

Now that we have completed the circuit we need to give some thought to PCB Layout and the information that we are going to provide from the schematic. A netlist basically consists of a set of footprint names (packages associated with schematic components) and connections (wiring on the schematic), although we can make things easier for ourselves later on by providing additional information.

If you do not have a completed schematic at this point or wish to work with the pre-supplied schematic you can load it via the Open Samples command on the Proteus home page. The file name is dsPIC33_REC_SCHEMATIC.pdsprj

Packaging Considerations

Ideally, each component on the schemaitc should be associated with a footprint in the PCB editor. While you can do this at the point of placement in the layout editor best practise would be to sort this out in the schematic. Fortunately, the Proteus system provides a large set of pre-packaged components where this work is all done for us. As a case in point, the schematic we have just created requires no alteration or packaging work as the parts we have selected from the libraries already have footprints assigned to them.

However, it is possible that you may want to change the footprint associated with a part (e.g. PTH to SMT). We’ll use the current schematic as a playground to explore how we can view and change packages to components.

To view the package associated with a component:

The footprint for a component is simply a property of the component on the schematic. We can therefore easily view the footprint by editing the component. Try this now by right clicking on one of the resistors on the schematic and selecting Edit Properties from the resulting context menu. You should see that there is a PCB Package property on the dialogue form and that the part is packaged with a standard 0805 footprint.

The new package appears in the Edit Component Dialogue form

You can also see what the default footprint is for a component at the time you select it from the libraries. At the bottom of the Pick Devices dialogue form a preview of the footprint is shown for the currently selected component.

For convenience, components in the schematic often have packagings for more than one footprint. For example, if you launch the Edit Component dialogue form for the dsPIC33 component you will see that you have the option of either an SO18W or a DIL18 footprint. In this case the designer can simply change the footprint if required via the Edit Component dialogue form.

To change a package on a component

  • Launch the Edit Component dialogue form by right clicking on the resistor and selecting Edit Properties from the resulting context menu.

  • Click on the question mark to the right of the package property to launch the footprint browser

  • Clear out the text from the keywords field and then use the filters on the left hand side to narrow down the selection. We will want to select the ‘Discrete Components’ category with type ‘Through Hole’ and Sub-Category ‘Resistors’. We can then select for example the ‘RES40’ footprint and click OK to commit.

  • You should now see that the RES40 is listed as the PCB Package for the component in the schematic.

To change a package on all components of a particular type

If we want to make a wholesale change to parts already placed we can do so from the design explorer. First, open the design exploer via the icon on the main toolbar and then switch to the search tab:

Following on from our example above, let's set category to be Resistor and hit search

You should now see a filtered list of all the resistors on the schematic in a grid view. We could filter further by entering a resistor value.

To change the package, simply type in the field at the top and then, much like Excel, drag the value down the other entries in the column.

Hit Apply Changes to commit the change.

Some caution is required with bulk editing like this because the software will accept your input without verification. It is however, extremely handy for changing passive footprints en-masse.

See Also:

Packaging (Reference Manual)

Connectivity Considerations

When we transfer our schematic to the PCB Layout software (netlist) all of the wires and connections are grouped into nets and passed through. The schematic capture module actually does quite a lot of work for us behind the scenes at this point, automatically generating numerical names for the nets and also assigning the net to a default ‘net class’.

Net names are assigned on the schemaitc according to the following rules:

  • A group of connections which include a named terminal will be assigned a net name according to the name of the terminal.
  • A group of connections which include an unnamed ground terminal will be assigned to the GND net.
  • A group of connections which include an unnamed power terminal will be assigned to the VCC net.
  • Any other group of connections is given an auto-generated numerical name.

What this means in practice is that all the work is done for us here; there is no real need for us to get involved in naming groups of connections. It is important however, that we understand the rules for unnamed ground and power terminals. If in any doubt, you should always name your terminals explicitly.

If a net does not have a name from a terminal you can if you wish explicitly name a net by placing a wire label with syntax (NET=NAME). This is useful if you wish to place a power plane on the net in ARES and otherwise helps to distinguish the net from other nets with auto-generated names.

A ‘net class’ is simply a group of nets which will have common properties in the PCB Layout. Specifically, all connections in a net class will have the same trace width and will obey a single set of rules with regard to clearances and design rules. Again, Proteus will do a considerable amount of work for us and will assign net classes as follows:

  • Any net with a power or ground terminal is assigned to the POWER net class.
  • Any net with a bus is assigned to the BUS net class.
  • Any other net is assigned to the SIGNAL net class.

This gives us quite a bit of flexibility during PCB layout as we can define different trace widths, via styles, clearances and so on for each net class. Sometimes, however, we will need a particular set of conditions for particular connections. We are therefore allowed to create our own net classes on the schematic and these will then be passed through to the PCB Layout software, allowing us to define routing and clearance properties specifically for those connections.

Let’s take an example. On the tutorial schematic consider the output of the DC/DC converter on the Analog sheet of our design. This is the 5V switched power supply for the analog circuitry so we really want to lay this out with a track width smaller than that on the POWER net class but larger than on the SIGNAL net class. The procedure for specifying a new net class is very straightforward.

To specify a new net class

  • Select the Wire Label Icon.

  • Left click the mouse on a wire we wish to assign the net class to. Any wire on the net will do – in our case let’s place it between the output of the MAX1724 and the SW_PW terminal. You will see a small ‘x’ under the cursor when the mouse is over the wire.

  • Left click the mouse over the wire to launch the wire label dialogue form. Then simply type in ‘CLASS=ANSW’ to assign the net class.

If you have completed drawing the schematic follow this procedure now to add the net class; this will already be in place if you have loaded our pre-supplied schematic. If you work through the PCB layout tutorial, you'll see how to configure routing styles and design rules for the net class.

See Also:

Routing Classes (Reference Manual)

Defining a Net Class (Reference Manual)


DESIGN VERIFICATION

Design Verification

It is always a good idea to spend a little time checking the schematic before we move through to PCB layout. Proteus provides a unique and extremely powerful tool in the form of the Design Explorer that will help us catch any errors before we sign off on the schematic phase of design. In this tutorial we will introduce the tool and cover some basic functionality but we do recommend that you read the section in the reference manual (Help Menu – Schematic Capture Help) and spend some time familiarizing yourself with it’s many capabilities.

Note that what you see in the Design Explorer throughout this section will depend on whether you have drawn the schematic yourself or loaded the pre-supplied one from disk.

The Design Explorer

The Design Explorer can be launched from top level application module toolbar and will appear as a separate tab inside the Proteus application.

The Design Explorer icon

It is worth mentioning that, in terms of your Proteus workspace, you can detach tabs into separate frames. This is particularly useful if you want to view more than one module at the same time and have two monitors or a lot of space on screen. To split a tab onto it's own frame simply drag and drop it onto an area of free space. This will allow you to view both the Design Explorer and the Schematic at the same time.

Split programs in Proteus

Alternatively, if you do prefer to work with tabs in a single frame you can quickly cycle between tabs using the standard Windows CTRL+TAB keyboard shortcut.

Once launched and in it’s default mode, you should see a dialogue form that looks a little like Windows™ Explorer. The left hand pane displays the sheets and the right hand pane displays the contents of the currently selected sheet. Clicking on another sheet in the left hand pane will force the right hand pane to show the contents of that sheet selected.

The Design Explorer

The Design Explorer has two distinct modes; partlist mode and netslist mode. The former will show a physical representation of the sheets (the components on a sheet) whilst the latter will show how the design is organized into groups of connections (nets). You can switch between the two modes via the Design Explorer Icons.

Design Explorer icon bar

Since we are in partslist mode by default let’s look at what we can do from there. You may remember that earlier in this topic we discussed how to check the packaging for a single part. The Design Explorer shows us the bigger picture and allows us to make a global check of the packagings on the design at a glance. All of the footprints used are displayed beside their schematic reference at the far right hand side of the right hand pane so all we need to do is scan down the list to make sure everything is packaged, switch sheets (via the left hand pane) and repeat the process. If a part on the schematic did not have a footprint assigned it would have bright red text stating 'MISSING' in this field to highlight the potential problem.

A quick scan will immediately show that we do not have a packaging associated with the LED schematic part. Right click on the Design Explorer on the line with the LED and select Goto Schematic Part from the context menu

The Design Explorer's context menu

This will zoom the schematic around the part and tag it for editing. Simply right click on the highlighted part and select Edit Properties in the normal way. We could follow the procedure that we discussed earlier to find a suitable footprint but in this case take it as a given that it is named LED and simply type in LED in the PCB Package field of the dialogue form.

LED Assigned as the package

After making the change, the Design Explorer will live update to reflect the current status of the schematic.

Design Explorer showing the LED packaged

Now, simply follow the same procedure as above to change the footprint to an 0805.

We can also use the Design Explorer to investigate the connectivity of the schematic – for this we need to switch into netslist mode via the icon at the top left of the dialogue form. This will give us a view as shown below.

The Netlist icon

The first point to note is the net names which, as we discussed earlier, are either named according to terminal or label or simply assigned a number if the net consists only of wire connections. We can right click on any net to view it’s connections on the current sheet by selecting the ‘Goto Schematic Net’ option from the resulting context menu. This is particularly useful when we want to check single pin nets for example, or if we want to name a net manually (see the section on connectivity considerations earlier in the tutorial). Finally, where we have a net or nets grouped with a named net class (far right column on the right hand pane) it can be useful to check our assignments.

Goto Schematic Net will highlight the selected net

The Design Explorer is an extremely powerful tool and has many different uses throughout the lifecycle of a typical project. In particular it can be used as a link between the schematic and the PCB, facilitating cross-probing and PCB lookup. We recommend that you read and work through the chapter in the reference manual (Help Menu – Schematic Capture Help) for more information.

See Also

Design Explorer (Reference Manual).

Assembly Variants

Assembly Variants provide a simple method of managing multiple product configurations in a single schematic/pcb project. This is done by specifying the fitted or not fitted status of each component on a per variant basis. They are often used for excluding parts from cheaper versions of a product or for identifying PCB versions to firmware by controlling the use of pullup resistors on an MCU port.

In Proteus, Assembly Variants are configured primarily through the Design Explorer. Let's look at a simple example and we'll remove the SHT15 temperature and pressure sensor from a new product variant. Start by creating the new variant from inside the Design Explorer and naming it budget.

Notice that this gives us a new column in the component grid. Each entry currently has a tick which indicates that the part is fitted on the board for the variant. If we click on the entries for the budget column on U3 along with R5, R6 and R7 they will change to a cross. Clicking on the apply changes button at the top will then set these parts to be excluded from the BUDGET variant.

When you have more than one variant on the schematic you can switch between Active Variants via the variant combo box at the top of the screen. When we switch to budget variant you should see that the part reference for the temperature sensor circuitry will be greyed out to indicate that the part is not present in the active variant.

We could also have done this by individually editing the parts and checking the exclude from Active Variant box on the Edit component dialogue. You need to be very careful when working this way to ensure that you have first selected the variant you want from the combo-box at the top.

Finally, you can quickly manage variants for a group of parts by first dragging a selection box around the parts and then showing selected in the search tab of the design explorer.

The Proteus software manages the variant information through all of the output systems, changing the BOM Report, the Pick and Place files, the Assembly Drawings, the 3D Viewer and any export for MCAD to reflect the fitted status of the parts. Assembly variants do not affect the 2D PCB layout.

You can add the @VARIANT text string to the schematic to indicate the current variant on the schematic. This is a useful reminder and particularly important for printing schematic documentation. See the header block in the schematic reference manual for more information.

See Also:

Assembly Variants (Reference Manual)

Header Block (Reference Manual)


BILL OF MATERIALS

Bill of Materials

Constructing a Bill of Materials is an often necessary but frustrating task at the end of the schematic design phase. Fortunately, Proteus provides a completely flexible scheme which allows you to include as much or as little information as required.

Let’s start by looking at the default Bill of Materials Output. Launch the Bill of Materials module from the application module toolbar at the top of Proteus

Launch the Bill of Materials from the icon

The section at the top of the report is largely taken from the Design Properties Command, which you can find on the Design Menu and modify accordingly.

The Edit Design Properties dialogue form

If your Active Variant is not the base design then the Assembly Variant will also be included in the header block:

Bill of Materials categories control the grouping of parts in the report and work by comparing the reference prefix of the components. For example, all resistors have a prefix of ‘R’, capacitors a prefix of ‘C’ and IC’s a prefix of ‘U’. Similarly, Bill of Materials Fields control the content of the report with each field contributing a column.

Both fields and categories can be created, edited or deleted directly from the left hand control panel on the BOM report.

Section for editing The Bill of Materials information

Let's work through a couple of examples. First, we'll order all our parts from Digikey so let's specify a supplier in the BOM. To do this, we need a new field.

BOM Fields

Launch the BOM Field editor by clicking on the Add button underneath the Fields listing.

The 'Add' button enters the Edit BOM Fields dialogue form

If you are adding a field that you have previously defined then you select it from the drop down combo box at the top of the dialogue form. However, since we have not defined a SUPPLIER property before click on the new button to create a property definition.

Adding a New BOM field

There are two non-editable fields that you can apply, namely .placed and .name. The placed field will show whether the part is placed on the layout (component or solder side) while the name field simply populates with the component names.

Property name is SUPPLIER, description can also be Supplier and Type is String.

New Property dialogue filled out correctly

We don't need to prefix or suffix values and this is not a numerical property so sub-totals are meaningless. Click on the OK to exit the dialogue form and create the property.

At this point the BOM has switched to the Property Editor tab which is essentially a grid view of the data in the report. We need to add information for each component in the Supplier column. We could do this individually but since all of our parts are coming from a single supplier it's far easier to use find/replace. Left click on the supplier column and then either use the CTRL+F shortcut or click on the find/replace icon.

Find and Replace form

Leave the find edit box blank (we are entering data into blank fields), type Digikey in the Replace edit box and make sure that the current column only checkbox is selected.

Replacing blank fields with 'DigiKey'

Hit the replace all button to enter the data. You should see that all of the fields in the Supplier column are populated and coloured in blue.

DigiKey now appears where the blank fields were

The blue indicates that the changes have not yet been committed; if you have made a mistake the clear pending changes button will revert your edits. When you have reviewed your changes use the Apply Changes button at the top to commit.

Applying BOM Changes

If you switch back to the HTML View of the report you should now see the information you entered in the report.

DigiKey is now assigned as the supplier

Also, if you return to the schematic and edit a component the data will be present there as well.

The Supplier field is automatically added to the schematic part

Changing the data in the edit component dialogue form will live update the BOM report.

The BOM updates live with any changes made on the schematic

This process can of course be repeated as required with other properties such as RoHS, MoQ, Lead Time, etc. More practical examples and detail can be found in the Bill of Materials reference manual (accessed via the Help Menu in BOM Module).

Note that property changes are applied locally to the schematic components and not to the library parts. If you want to update your parts with newly entered information then run the 'Compile to Library' command from the Library menu. This will put all components in the design (along with their new properties!) into a library of your choice.

Having configured the information on the BOM you can generate the report from the export options from the icons at the top.

Export options for the BOM

It is beyond the scope of this tutorial but you also have full control of the colour and styling of the report. This works via the customize stylesheet button at the top of the HTML view and is discussed in detail in the BOM Reference manual.

Printing

To print the schematic, first select the correct device to print to using the Printer Setup command on the File menu. This activates the Windows common dialogue for printer device selection and configuration. The details are thus dependent on your particular version of Windows and your printer driver - consult Windows and printer driver documentation for details. When you have selected the correct printer, close the dialogue form and select the Print option on the File menu to print your design. There are a number of options available on this dialogue form, all of which have context sensitive help and are also discussed in more detail in the reference manual under Hard Copy Generation. For our purposes we will simply center the schematic output on the page and print. Do this now by right clicking on the Print Preview and selecting the Position Output at Center option as shown below.

You can also export the schematic directly in PDF format from the Output Menu (no driver installation required).

The current schematic is now ready for board layout so if you have purchased a Proteus PCB Design package you can move straight onto the accompanying tutorial booklet for ARES.

See Also:

Printer Output (Reference Manual)


LIBRARY PARTS

Introduction

The Proteus Design Suite comes with a significant installed base of schematic components, almost all of which are already packaged with the correct PCB footprint. However, with the number of new parts entering the market every day and the vast choice available to engineers it is inevitable that users will have to either import library parts into Proteus or create library parts inside Proteus.

Importing Library Parts

Importing Library Parts is by far the preferred option. It is both much faster to do, is far less error prone and you can import both the schematic part and the layout footprint at the same time. Proteus supports two ways to import parts:

  • Integrated Web Search and Import (Requires a valid USC)
  • Manual Library Part Import Dialogue.

Short tutorial videos on working with both methods can be found on our Youtube Channel

Web Search Import

The integrated web search import works directly from the library picker dialogue. You simply type the part name you want and, after searching the installed libraries, you can search a database of over 15 million parts from our partners Samacsys & SnapEDA. Just click on the provider that you wish to use! This service requires a free account to be registered with Samacys / SnapEDA and a valid USC to import the parts.

Library Part Import Dialogue

This method enables you to manually import via the Import Part command on the Library menu in either the schematic of the layout editors. This import will work with all major vendor files such as those generated by Ultra-Librarian, Samacys, SnapEDA and PCB Library Expert as well as through common supplier portals such as Digikey or RS Components. It does not require a valid maintenance contract to work but does involve slightly more effort.

The Import Part dialogue with a part loaded.

Technically, the import works with PADS Library V9.x files, meaning that the import will work with any supplier who can generate a fileset in this format.

To import a library part using the library picker

Web search import works as follows:

1) Launch the library picker in the schematic module (also 'P' on the keyboard).

2) Search for a part. If matches exist in the installed libraries they will be shown and you can click to open web search results from the bar at the bottom of the picker. If there are no matches from the installed libraries you will go directly to web search results.

3) Results in normal font are available for import. Results in disabled text can be requested (at no charge) from the build service form.

4) Double click to import. The first time you do this you will need to supply credentials or create a free account.

5) When you double click to import, both the schematic part and the associated PCB footprint will be brought into your user libraries and also picked into the current project. In most cases, the 3D STEP file for the footprint will also be imported.

If you need to request a part to be made you can do so directly from the pick dialogue by double clicking on one of the disabled entries in the web search. The service is free of charge and average turnaround is 24-48 hours.

To import a library part using the dialogue

1) Download the part you want onto your computer. This will almost always be in a zip file.

2) If the part doesn't come from a vendor source that we directly support (see here) then you'll need to extract all the files from the zip into a folder of your choice.

3) From the Library Menu in Proteus select the Import Part command

4) Click on Select File and use the file selector on the right hand side to select either generic PADS Library V9 files or the vendor of your choice.

5) Choose the appropriate file to load. This will normally be a zip file if the vendor is selectable in the file selector or a .p file if you've had to extract the parts into a folder.

6) Review the parse log and the previews to make sure everything looks good. Use configuration settings if need be to fix problems.

7) Use Import Part and follow the wizards to bring first the footprint and then the component into Proteus. This will both put the parts into your libraries and deposit them in the parts bin of the current project ready for placement. You should have an end parsed result that looks like the following:

What you are actually doing at this last stage is running the Make Package tool to create the footprint and then running the Make Device tool to make the schematic component. The areas where input may be required from you are in the library choice and the description and categorization of the part.

For most complex devices, you can also find a BSDL script from the manufacturer. This is schematic part only but can be imported via the same import part command (select BSDL in stage 4 above).

Creating New Devices

If all else fails you can create parts yourself entirely inside Proteus. Alternatively, you may wish to permanently adjust the properties or footprints of an existing component. This section of the documentation starts from the basics of creating a new device and covers the entire process through to storing the new part in the library.

While the following topics are a detailed explanation of how to create component parts in Proteus, in practise this should almost never be necessary. In addition to the many installed libraries Proteus includes a web search with access to 15 million library parts and also the universal part importer provides support for almost all third party part vendors (Ultra-Librarian, Samacsys, SnapEDA, etc.). If the part doesn't exist in Proteus itself the next step is to search for and then import it directly from a third party vendor. This is discussed in some detail in the importer help file and shown on our Youtube Channel.

Graphics and Pins

For our example part lets assume that we want to create a Microchip MCP23008 I2C expander. The first thing we need to do is to create a graphical representation of the part on the schematic. When we are finished it should look something like the following:

The MCP23008 Completed

Let’s begin by placing the component body as follows:

  • Select the 2D Graphics Square icon and make sure the component style is selected in the Object Selector.

  • Left click once on an empty area of the schematic to begin placement.

  • Move the mouse until the rectangle is around the size of the part that you want. It’s better to make this slightly larger than might be required as we can easily resize it later.
  • Left click again to complete placement of the graphic.

Proteus supports a powerful graphics style system of local and global styles and the ability of local styles to follow or track global styles that allows you to easily and flexibly customize the appearance of your schematic. See the section Graphics and Text Styles in the online reference manual for a complete explanation of how styles work and how they are used.

The next job is to place the component pins.

Select Component pin mode and make sure that you have the default pin type selected in the Object Selector.

  1. Left click the mouse on the schematic to begin placement. The small cross at the end of the pin indicates the side of the pin that will be wired to so it is important that this is outward facing.

  2. Move the mouse so that the other end of the pin touches the edge of the component graphic and left click again to place

  3. A new pin is automatically primed for placement so simply move the mouse down slightly and left click to place again.

  4. Repeat the process down the left hand side of the component graphic using the completed screenshot as a reference. Right click to finish placement.
  5. Click on the X-Mirror icon to point the pin in the opposite direction ready for placement down the right hand side.
  6. Repeat as of stage 3 to place the pins down the right hand side of the component.
  7. Right click the mouse when you are finished to exit pin placement mode.

The Plus (+) and Minus (-) keys can also rotate the pin during placement, but you will find that when adding pin numbers, they will be on the opposite side of the pins that you placed before rotation. In this case right click on the pin(s) affected and click the Y-Mirror option to correct the pin(s).

At this stage your component graphics should look something like the following:

The body of the MCP23008

The actual positioning of the pins is of course somewhat aesthetic and you may prefer to have different groupings to those we have chosen.

Now that we’ve placed the pins we may need to adjust the size of the component body. If you need to adjust the size of the component body to better fit. To do this, click on the Selection Mode icon and simply left click on the edge of the component body, then left depress the mouse on one of the nodes, drag to the new size and release the mouse to commit.

This works much like any other graphics package. For example, if you right click along the bottom you can drag up and down and if you right click on an edge and you can drag diagonally. Make sure however, that you do not leave any of the pins ‘hanging’ (not touching) when you do this, else you will have to subsequently move the pins back onto the component edge.

If you want to make fine adjustments you may need to adjust the Snap level – these options are available from the View menu (defaulted to 0.1in) and are discussed in more detail in the reference manual.

Now that we have the basic shape of the part we need to add names to the pins. This can be done as follows:

  • Right click on the pin at the top left of the component and select Edit Properties from the resulting context menu.

  • Type in the name of the pin (SCL), the default pin number (1) and the electrical type (INPUT). You can use the other options to control visibility but for our purposes the defaults are fine.

  • Hit the Next button at the bottom to switch to the next pin in the list and repeat the process – the schematic will update to show which pin you are editing. If you are unfamiliar with this part and don’t therefore know the electrical type of the pin simply leave it as the default Passive type.

  • When you get to the RESET pin you’ll need to add an overbar. Do this simply by adding a dollar (‘$’) prefix and suffix to the name.

  • Hit the OK button when you are finished.

You may have noticed that there is a significant omission from the schematic part as we have drawn it so far, namely that there are no physical power pins on the device. Since we do not need to wire power nets explicitly we do not need a physical pin for the component. We need only ensure that the power pins are handled correctly with respect to the physical PCB footprint and we’ll discuss this in more detail in the next section. It is worth noting however, that while it is very common to have non-physical power pins in order to reduce clutter on the schematic, you may have a preference for everything to be explicitly wired. In this case you could simply add two extra pins and name them VDD and VSS respectively.

Our final task now is to make a device from the composite graphics and pins that we have placed. Start by drawing a tag box around the entire graphic (right depress the mouse and drag the selection box). Next, right click the mouse inside the selection box and select the Make Device option from the resulting context menu.

Make Device icon and the Context menu option

This presents us with the Make Device dialogue form, where we can customize the part. All fields throughout this wizard have context sensitive help associated with them, accessed by clicking on the question at the top right and then on the field in question. However, the only items we need to deal with here are the Device Name and the Reference Prefix. The device name should be MCP23008 and the reference prefix should be ‘U’.

The reference prefix serves to categorize parts for Bill of Materials Output and is also used in annotation. These are fairly standard across the industry with ‘R’ denoting resistors, ‘C’ for capacitors, ‘U’ for IC’s and so on.

Use the Next button at the bottom of the dialogue to move onto the next screen.

Adding Footprints

In a previous section of the documentation we saw how to quickly add a footprint to a schematic part. This is useful for small passives and simple parts but, when we are creating a device we need to follow a more complete procedure. This ensures not only that we have a correct mapping between the pins on the component and the pads on the footprint but also allows us to better handle power pins.

From the screen on the Make Device dialogue form click on the Add/Edit button to launch the Visual Packaging Tool. The first thing we need to do is to find the footprint we want to use so click on the Add button at the top of the dialogue form.

The 'Add' button in the Packaging Tool

This brings up the package browser dialogue which we covered earlier in the documentation. Assuming that we want the surface mount package, type SOP18 in the Keywords field and then double click on the part in the results list to select it.

Selecting the SO18W from the package library

The Visual Packaging Tool will now look something like the following screenshot.

There are several points of note here. Firstly, the pads in the preview which are white are deemed to be mapped onto component pins. This has happened as we have correctly specified the default pin numbers when we edited the pins earlier on (pad name maps onto pin number when present). If we had chosen to leave the pin number fields blank we would have to map all of the pins in this dialogue form.

Secondly, we can see that there are three pads (7, 9 and 18) which are not mapped onto component pins. Normally we would have the datasheet beside us to get the footprint mappings but in this case pin 7 is an NC pin, pin 9 is the VSS pin and pin 18 is the VDD pin.

The NC pin is easily handled – simply type 7 in the field for NC Pins. Notice that the preview on the right hand side will update to show that this pad is now considered dealt with.

We now need to add two ‘virtual’ pins for the power pins. These are pins which don’t need to be on the schematic (their connection is made implicitly according to their name) as they will add unnecessary clutter, but do need to be mapped onto pads in the footprint.

If you want to have all pins visible on the schematic (e.g. for auditing purposes) you can certainly do so. You would add another three pins to the device, connect one of them to an NC terminal (to put on the NC net) and connect the other two to power terminals with the correct names. If you are in any doubt regarding power nets and connections please see the section earlier in the document on powering the circuit or consult the reference manual.

Click on the Add Pin button underneath the grid, type VSS to name the pin and then repeat the process for the VDD pin. Remember that connections to these virtual pins are made according to their name so make sure that you name them correctly.

Adding a virtual pin

Having created the pins we assign them to pads on the footprint as follows:

  • Click in the column at the far right of the VSS pin.
  • Click on the corresponding pad on the footprint (pad 9).
  • The cursor will move down to the next pin (VDD) so all we need to do is click on pad 18 on the preview.

Clicking on pads will assign the pin

We should see that all the pads on the footprint are now highlighted, indicated that the part is fully packaged. Simply hit the ‘Assign Package’ button at the bottom of the Visual Packaging Tool to commit and return to the Make Device dialogue form.

It is possible (and extremely useful) to have more than one packaging for a given component. We could, for example, follow the exact same procedure to add a DIL18 footprint to the component. Where more than one packaging exists you can specify the one which will be used by default by checking the default box underneath the package name in the Visual Packaging Tool.

Click the next button at the bottom of the dialogue form to move onto the Property definitions section.

See Also:

Packaging Tool (Reference Manual)

Adding Properties

This screen allows us to add component properties to the device. We looked at doing this on a particular instance of a device (the part on the schematic) earlier in the documentation; the difference is that properties entered here will be stored in the master library part and therefore available every time we use the part in a design.

We can see that the PACKAGE property is already defined – this was what we configured visually on the previous screen

Package preview on the Make Device form

Let’s assume we want to add a property for RoHS compliance.

  • Start by clicking on the New button at the bottom left and then clicking on Blank Item.
  • On the right hand side fill out the name as ‘ROHS’ and the description as ‘RoHS Compliant’
  • The next field is the data type which in our case is a simple Boolean (Yes/No) – select this from the drop down list.
  • Change the Default value to be Yes and leave the visibility defaults as they are.

If you want to add more properties (e.g. MoQ, Price, Code, Supplier, etc.) simply repeat the process above. Alternatively, the Bill of Materials provides a convenient way to apply data to schematics as discussed earlier in the tutorial. Finally, for complete control or if you are doing this on a large scale, we recommend you read up on ASCII Data Import in the reference manual.

Click the next button at the bottom of the dialogue when you are finished to move on to the next screen.

Attaching a Datasheet

This screen allows us to attach a datasheet to the part we are creating. To do this we would need to enter the filename for the datasheet and then configure the path as required. As we don’t have a datasheet handy we’ll ignore this step but the following screenshot shows an example of how we would set it up.

Adding a datasheet to the component

The main advantage of working through this step is to have the datasheet handy when you place the part. If present, you can simply edit the component and click on the Data button at the right hand side.

The Data button will launch the assigned Datasheet

For convenience, we have configured many of our library parts with datasheets which you can download from our web server via this button.

If there is a data sheet that you want to use from the manufacturers or suppliers website, you can also add this. For example, find the URL of the datasheet:

https://ww1.microchip.com/downloads/en/DeviceDoc/MCP23008-MCP23S08-Data-Sheet-20001919F.pdf

and add as such:

Data Sheet Filename: MCP23008-MCP23S08-Data-Sheet-20001919F.pdf

Download Server: https://ww1.microchip.com

Download Path: downloads/en/DeviceDoc/

When you click on the DATA button in the Edit properties form, you will be told Datasheet not found, with an option to download it. Click on the Download button and it will pull it from the stated URL.

Indexing and Library Selection

The final screen allows us to categorize our part and choose which library we will place it in. As we have seen earlier in the tutorial the part description and the categories are used as filters when finding and selecting parts from the library so it is worth giving some thought to your description. An example of what you might enter is shown in the following screenshot.

Final section where you save the component to a library

When you are finished simply click the OK button. You will be prompted to replace all instances of the device on the schematic – this allows you to update the current design if you are modifying a part which already exists on the schematic.

Finally, if you now select the part from the Object Selector and edit it’s properties you should see something like the following screenshot.

Edit Component for the MCP23008

It is also possible to create multi-element parts in Proteus. While beyond the scope of this tutorial these are covered in the reference manual.

See Also:

Creating Multi-Element Devices (Reference Manual)