Skip to Main Content
Design your own USB peripheral using the Proteus software.

Proteus VSM USB Simulation

You can now design your own USB peripheral device entirely in Proteus (using one of the supported microcontrollers) and then test both the firmware and the hardware by simulating the circuit. Communication is modelled down to Windows driver level, with all requests to and replies from the simulated USB device displayed in the USB Transaction Analyser. Learn more about Proteus simulation (VSM).
The main aim of the Proteus VSM USB Simulation is to allow complete simulation of those microcontrollers having an on-board USB peripheral. Since the vast majority of such devices have a USB device peripheral as opposed to a USB host controller peripheral Proteus VSM is currently limited to simulation of USB devices (devices that attach to the USB socket on the computer), and specifically to simulation of the following USB Device classes:

  • Mass Storage Device Class (MSD.)
  • Human Interface Device Class (HID).
  • Communications Device Class (CDC).
Support for additional classes (and indeed additional microcontroller variants) may, depending on demand, be added at a later date.

Use a USB supporting processor and the Transaction Analyser to program the peripheral.

How it Works

The schematic in Proteus represents the peripheral device (e.g. a USB memory stick or a USB mouse). A special schematic part called the USB connector is wired to the USB enabled microcontroller and clicking on this schematic part during simulation is equivalent to plugging in the device to a USB slot on your PC. The microcontroller executes the firmware through the schematic and USB communication will take place with the PC operating system in the same way as plugging in a physical equivalent device to a spare USB socket on the computer.
The USB Transaction Analyser can be used to decode and display all USB transactions and register access operations during simulation and the full range of Proteus VSM debugging techniques are also available. This means that you can design, debug and test your USB peripheral entirely within the Proteus software environment before you construct a physical prototype.

What You Need

In order to run a Proteus USB simulation, there are some extra requirements in terms of drivers and licensing. Specifically, you need both a licence for a microcontroller family with supported USB variants. and a licence for the USB Transaction Analyser. The former enables the microcontroller simulation and the latter enables you to monitor and analyse USB traffic and register access operations while debugging.

Given that communication between target firmware and the OS drivers is at a very low level it is recommended that you work inside a virtual machine. A full pictorial guide to linking your USB simulation to both VMware and VirtualPC (Win7 XP Mode) Virtual machine is included in the USB help documentation.
Analysis capabilities can be upgraded to include Graph Based Simulation via the Advanced Simulation Options module. Please see the commercial price list for pricing information or contact us to further discuss requirements.
  • A Proteus VSM licence for a relevant MCU Family.
  • A Proteus USB Transaction Licence.
  • Proteus USB Drivers.
  • A fast PC.

Running a USB Simulation

In practice, running a USB simulation differs little from any other VSM simulation. The typical procedure is outlined below:

  • Install the USB Drivers.
  • Design the schematic in the Proteus schematic capture module.
  • Design the Firmware on top of a USB stack.
  • Apply the COF/HEX file to the program property of the microcontroller schematic part.
  • Run the simulation via the PLAY button at the bottom of the application.
  • Click on the USB Connector schematic part to connect the USB device.
  • Use the USB Transaction Analyser to monitor and verify USB traffic as your simulation progresses.
  • Debug and test your firmware and circuit as per any normal Proteus VSM simulation.
  • Stop the simulation via the STOP button at the bottom of the application.
  • Modify firmware or 'hardware' as required and re-run the simulation to test.
  • When complete use the netlist command to transfer to ARES and commence PCB Layout.
  • Use the Analyser to view the requests and replies on the USB device.

    USB Transaction Analyser

    The Proteus USB Analyser is a separately licensed product that displays all requests and replies to and from the simulated USB device. This provides an invaluable aid both to understanding the USB protocol and in verification of firmware implementation. The main Analyser window consists of two parts: the Requests List and the Requests Description.
    The Requests list on the left hand pane of the Analyser displays all requests in tree format. There are three levels of requests; IRP requests (IOCTL, MJ_PNP), Transaction requests (IN, OUT, SETUP) and register operations associated with a given transaction.
    The request description forms the right hand side of the Analyser and provides detailed tabular information on the currently selected item in the Requests List. Given that the Requests list is granular to three levels it follows that comprehensive information can be retrieved at either the IRP Level, the transaction level or the register level.
    The small toolbar at the top of the Analyser provides options to start logging, stop logging and also to clear the log. This is particularly useful where you are interested in communications after the setup phase or in response to activity from the host controller.

    Find the right package for you

    Package Configurator Contact Us