Enter ISIS

!!! MAKE SURE THAT YOU GET USED TO THE NOT SO INTUITIVE INTERFACE AND CONTROLS OF PROTEUS ISIS! THIS LAB IS AN ISIS TUTORIAL, THE NEXT ONES ASSUME THAT YOU CAN WORK WITH ISIS ALREADY !!!

Proteus is what in industry is called an electronic design automation (EDA) tool. What this means is that it facilitates design of electronic schematics and PCBs while it also allows the engineers to simulate their circuites.

EDAs are powerful tools and Proteus is no exception. It even allows us to introduce microcontrollers customizable black-boxes (including our beloved AtMega324) and to program them, even to run the code or to debug our program like in any other debugger (put break-points, step, etc.). Furthermore, it allows us to debug our schematic like we did in real-world: using multimeters, logic analyzers, oscilloscopes, etc - and we even attach them to our design as we did in the real world.

All these features make Proteus an ideal candidate for remote labs. Think of this as some form of pre-silicon design and dev (that is, when you cut the time to market by using a simulator to increase the amount of parallelism in a team - you don't have the hardware yet, but you can write your code in the simulator and once the hardware is out you can put the two together).

Since we are doing remote laboratories and each of you have different computers with different configuration, OSes, etc., we provide you with a Virtual Machine so that we have a uniform environment and therefore better assist you with your learning. Please enroll to the Microsoft Teams team, where we provide you the link to the VM and where we also hold the lab sessions.

Make sure that you periodically save your progress throughout the lab (File > Save Design As).

Intro to HW Design in Proteus ISIS

We'll introduce basic work-flow with ISIS by doing a very simple circuit and writing a very simple program, namely you'll push a button and light a LED, all while these are connected to an AtMega324P.

1. Insert an Atmega324P. Delete it then insert it again.

Pressing P shows the Pick Devices window which grants you access to the Proteus library (containing many devices).

Use the keyword section in the Pick Devices window to search for a device.

In order to remove an element in Isis right click the element then press delete.

VCC and GND of the controller are automatically connected and not shown in the schematic. Don't make the mistake to connect the AVCC pin to VCC - that pin is intended for ADC (analog to digital conversion) and we don't do that in the session this week.

2. Connect a generic LED to a GPIO-capable pin of the controller. Make sure that the schematic will later allow you to light the LED when putting a positive tension on the pin.

You can use ”+” and ”-” keys to rotate the device before inserting it.

You can add VCC or GND points by right click on empty space in your schematics > Place > Terminat > Select Power or GND.

Make sure you don't overvoltage the LED! How can you get rid of excess voltage?

3. Connect a push-button to a(nother) GPIO-capable pin of the controller.

If you are unsure about what electric potentials you need to have on each side of the button remember that on AtMega324 pull-up resistors are already included in the controller and they can be connected or disconnected from SW.

Integrating binaries with ISIS

1. Allright, time to code! Write a program that lights that led if you push the button. In order for the Makefile to work, name your source demo.c. The Makefile is in the archive at the bottom of this page.

2. Compile your source code to binary (a hex file).

3. Next, integrate it with ISIS.

Right click on the uC in your schematic → Edit Properties → Program File → Browse for your binary file → OK.

Look, Mom! I can shine!

1. On the bottom left corner of your ISIS window, you have a Play button. Press it to start the simulation.

Note that you can't modify any of the parameters of your circuit or the schematics itself while the simulation is running (you have to press STOP for that).

2. Press the button (click on it while simulating) to light the LED.

You can interact with your circuit while simulation is running, you just can't modify it.

3. To see the influence of the resistor on your circuit, insert a virtual DC voltmeter and check the voltage difference at its terminals. Try to do the same for the LED. What are the values, do they agree with what you expect? If yes, why? If not, why?

Right click on empty space in your schematic → Place → Virtual Instrument → DC Voltmeter.

[BASIC HW DEBUGGING] When you debug SW you try to see if the model you have in mind agrees with the reality (your code). The same goes for HW. In order to see values in software you use prints or debuggers, in order to see values in a circuit you use measuring instruments.


pm/lab/lab0xc0-1.txt · Last modified: 2020/03/17 10:01 by daniel.berbece
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0