Proteus Specs

back to Introduction

Technical Specifications

  • Freescale Kinetis K60 (ARM Cortex M-4)
    • 96 MHz single core
    • 128 kB RAM
  • 8 Core Parallax Propeller Micro-controller
  • Programmable I/O
    • 32 Flex I/O Ports (3.3V)
      • Digital input
      • Digital output
      • Digital encoders
      • Analog input
      • Analog encoders
    • 8 Servo Ports (5V)
    • 4 DC motor ports (12V)
  • 320 x 240 Color Touchscreen LCD Display
  • 3-Axis Accelerometer
  • Micro-SD Card Slot
  • Mini USB Programming Port
  • Xbee Wireless Module

Proteus Block Diagram

Port Overview

The image below labels the available ports on the Proteus. The 32 Flex Input/Output ports are located below the screen of the Proteus. The 8 servo ports are located above the screen of the Proteus. The reset/power button, the 4 motor ports, and the 12V DC charging barrel jack are located on the top face of the Proteus. The micro-SD port is located on the right face of the Proteus.

Proteus_Ports_SD

 

 

Servo & Motor Ports

The image below details the servo ports (seen left) and the top face of the Proteus (seen right). Looking at the front face of the Proteus, the servo ports are labelled 0 to 7 from left to right, respectively. Looking at the top of the Proteus, the motor terminals are labelled 0 to 3 from left to right, respectively. The differential voltage between the positive and negative terminals of the motor ports is 12V.

Proteus Top Ports

 

Servo Port Software Enumeration

The enumeration for the servo ports are found in the FEHServo library. In the constructor function when declaring a servo, the available ports are as follows:

  • Servo0
  • Servo1
  • Servo2
  • Servo3
  • Servo4
  • Servo5
  • Servo6
  • Servo7

Because this enumeration is defined in the FEHServo library, you must use the binary scope resolution operator in order to access the enumeration. In other words, a valid servo port would be: FEHServo::Servo0

Motor Port Software Enumeration

The enumeration for the motor ports are very similar to the servo ports. The enumeration is located in the FEHMotor library. The available ports are:

  • Motor0
  • Motor1
  • Motor2
  • Motor3

You must use the binary scope resolution operator in order to access the port enumeration. An example o f a valid motor port would be: FEHMotor::Motor0

Flex I/O Software Enumeration

The following image displays the naming convention for the flex I/O ports. Each bank is labelled 0-3, respectively, and has 8 pins labelled 0-7, respectively.

ProteusGPIO

The enumeration list in the FEHIO library is as follows:

  • P0_0
  • P0_1
  • P0_2
  • P0_3
  • P0_4
  • P0_5
  • P0_6
  • P0_7
  • P1_0
  • P1_1
  • P1_2
  • P1_3
  • P1_4
  • P1_5
  • P1_6
  • P1_7
  • P2_0
  • P2_1
  • P2_2
  • P2_3
  • P2_4
  • P2_5
  • P2_6
  • P2_7
  • P3_0
  • P3_1
  • P3_2
  • P3_3
  • P3_4
  • P3_5
  • P3_6**
  • P3_7**

The binary scope resolution operator will need to be used in order to access this enumeration. The protocol for doing this would be (using flex I/O pin 0 in bank 0): FEHIO::P0_0

**P3_6 and P3_7 cannot be used for digital encoders!!

Each bank of pins can also be enumerated as follows

  • Bank0
  • Bank1
  • Bank2
  • Bank3

The binary scope resolution operator will need to be used in order to access this enumeration. The protocol for doing this would be (using flex I/O bank 0): FEHIO::Bank0

Flex I/O Internal Pull-Up

When a DigitalInputPin is declared, the Proteus configures internal pull-up resistors. When a switch is wired in a normally open configuration and the switch is not pressed, the .Value() function will return True. If the switch is pressed, the .Value() function will return False. A diagram detailing this phenomenon is detailed below.

Proteus Internal Pull-Up

continue to General Care