# University Programs Knowledge Base

cancel
Showing results for
Did you mean:

# University Programs Knowledge Base

## Creating a new baremetal project for a Freescale KwikStik

CW_NEW_PROJECT.wmv

## MPC5604b Training Videos

Qorivva Based Freescale Cup Webinars:  Lecture 1: Introduction and Motor Basics Lecture 2: Pulse Width Modulation Lecture 3: Control Design Lecture 4: Speed and Position Lecture 5: MPC5607B Overview

## MCU 101: Pulse Width Modulation for DC Motors

This tutorial will discuss Timer Peripheral Modules, DC Motors, motor controllers, and configuration of your chip to output a PWM or Pulse Width Modulated Signal. The first section of this this tutorial provides the basics of DC (Direct Current) motors. The electronic circuits created to control these motors and schematics for PCBs, tips to reduce noise over important signals are also contained within this tutorial. Usage A dc-motor is an electrical device that converts energy into rotational movement. The motor moves a gear in one direction if current flows through the terminals (clockwise or counterclockwise), and in the opposite direction if current flows backwards through the same terminals. If there is a force opposing the motor, then the terminals are short circuited and the current through the terminals can go as high as 14 A or more. The voltage or current that must be delivered to the motor to work is too much for a microcontroller output port so an intermediary device must be used, such as the mc33932evb motor control board. Pulse Width Modulation (PWM) For a refresher in Pulse Width Modulation. Once you feel comfortable that you understand the concepts behind a duty cycle signal, you may move to the next step of understanding H bridge circuits. Circuit Amplification A microcontroller is typically not designed to directly drive DC motors.  Keep in mind MCU's are low-power devices and motors usually draw a lot of power.  So what is one to do?  Amplification!  There are lots of ways to do this and each has it's trade-offs.  Below are the most popular... Discrete Components A few MOSFETSs should do the trick.  This is a great learning exercise, you can probably get more oomph out of your circuit but it takes time to build and troubleshoot. If you search the web for motor driver board, you should find plenty of resources, designs, etc. Half-Bridge (aka H-bridge) These are integrated circuits with the aforementioned discrete components already configured for you.  Because these are integrated (into a very small footprint) these tend to be  power limited due to thermal issues.  Generally speaking, the better a device is at dissipating heat the more power it can handle. Get a basic view of H bridge circuit. Click here which describes H bridge circuits. DC Motor Describes how a DC motor works: here Microcontroller Reference Manual: Timer Information You will find high level information about Timer usage in several different areas of a reference manual. See the reference-manual article for more specific information on how best to navigate through to the areas which are relevant. Relevant Timer Chapters: Introduction: Human-machine interfaces - lists the memory map and register definitions for the GPIO System Modules: System Integration Modules (SIM) - provides system control and chip configuration registers Chip Configuration: Human-Machine interfaces (HMI). Signal Multiplexing: Port control and interrupts Human-Machine Interfaces: General purpose input/output Hardware Motor cup-car-motor: In testing the motor, we found that it drew between 0.35A and 0.5A with no load on the wheels and peaked at a little over 14A at stall. With this Data and 150% value for the H-Bridge or Motor Controller we need one with a current rating of 20A at least. The Motor has a Resistance between 0.9 and 1.0 ohm.  For motor control you can use the Freescale H-Bridge such as MC33931or MC33932, however these controllers peak at ~5 amps, so you will not be able to maximize speed Power & Current Requirements Additional Theory Training Resources Freescale Motor Control Tutorial Freescale Lecture 1: Introduction and Motor Basics Freescale Lecture 2: Pulse Width Modulaiton Freescale Lecture 3: Control Design Freesacle Lecture 4: Speed and Position Freescale Lecture 5: MPC5607B Overview

## MCU 101: LEDs

A great exercise when first starting with a new microcontroller is to get LEDs to turn-on, flash, or dim. Depending upon the configuration of your circuit, a LED (light-emitting diode) is accessed by toggling a GPIO or 'General Purpose Input Output pin either high or low. GPIO pins can be configured either as an input (read) or output (write). A high signal is often referred to as "Asserted" or a logic "1" and a low signal designated as Negated or logic "0". The input and output voltage range for GPIO pins is typically limited to the supply voltage of the evaluation board. Usage To optimize functionality in small packages, physical microcontroller pins have several functions available via signal multiplexing. Internally, a pin will have several wires connected to it via a multiplexer (wiki) or MUX. A multiplexer selects between several inputs and sends the selected signal to its output pin. The Signal Multiplexing chapter of your reference manual illustrates which device signals are multiplexed on which external pin. The Port Control block controls which signal is present on the external pin. The configuration registers within a microcontroller require proper configuration to select the GPIO as an input or output. The same GPIO pins utilized to blink a LED can be wired to read a signal coming from an external device such as the input from a hall effect sensor. Freescale Cup participants will configure GPIO pins as outputs to control the line-scan-camera via timed pulses and clock type signals. Read/Write In write mode, the GPIO pin can be set, cleared, or toggled via software initiated register settings. To determine which pin on the microcontroller is connected to a LED and how to access it from software, refer to the schematic of the microcontroller board. This pin will have numeric or alfanumeric value as well as an descriptive designation such as PTC7. Microcontroller Reference Manual: GPIO Information You will find high level information about GPIO usage in several different areas of a reference manual. See thereference-manual article for more general information. Relevant Chapters: Introduction: Human-machine interfaces - lists the memory map and register definitions for the GPIO System Modules: System Integration Modules (SIM) - provides system control and chip configuration registers Chip Configuration: Human-Machine interfaces (HMI). Signal Multiplexing: Port control and interrupts Human-Machine Interfaces: General purpose input/output Hardware As stated before, internal registers control whether a pin is high or low. Determining the polarity or orientation of your LED is important because this will let you know whether to set the associated pin in the HIGH or LOW state. The evaluation boards from Freescale all provide LED circuits like the one shown below. LED Circuit The circuit in figure (1) demonstrates a simple way to to power a LED. The circuit consists of connecting in a LED, resistor (which limits the current) and voltage source in series. LED's are semiconductors which convert current to light. When they are forward biased (turned on), electron and holes will recombine with no change in momentum, emitting a photon or light wave. Choosing the resistor is simple if you know the operating current requirements for your LED which are determined by reading the LED datasheet or specification document. R = (Vs - VL)/ IL Where V s is the power supply voltage, and V L is the Voltage Drop across the LED, and I L is the desired current through the LED.

## Wire diagram for the TRK-MPC5604B

Connection Diagram for TRK-MPC5604B to Rev. 1 Motor Control "Shield" Board Connection Diagram for TRK-MPC5604B to Rev. 0 Motor Control Board For the TRK-MPC5604, connect the flat ribbon cable to PortB as seen in the picture below. Make the cable connections as shown below for dual motor with independent drive connection Make the cable connections as shown below for dual motor with series drive connection Make the cable connections as shown below for Single motor connection Protect your electronics 1. Try not to stop the wheels while in motion.  This can cause current spikes. 2. Don’t disconnect or connect any cable when board is powered [ON] . 3. Don’t discharge the battery below 5.5V 4. Don’t hit stationary objects

## DIY Camera Mounts

Option #1 Camera Mount Designed by Eli Hughes of WaveNumber LLC. You can order these parts through Shapeway.com which 3D prints on demand. You can choose from all sorts of materials depending on how much you want to spend. Option #2 To attach the camera we found useful to prepare two metal L-shaped pieces made from aluminium. With the help of black plastic distance posts (already available in the kit) and these metal stands, you may freely change the position of the camera over the surface. You may use following files to cut the required shapes (drawing was made using the QCad program): Preview (.pdf) CAD file (.dxf)

## Freescale Cup - Mounting a Tower System

First and foremost, be creative!! Below are just a few inspirational ideas. Option #1 - I cut-down (miter saw) a 4-position TWR-ELEVATOR to make this 2-position design. With the intent of having two boards mounted 1) TWR-PROTO and 2) MCU of choice (K40). If cutting PCB's with power tools is not your thing, you can buy a 2-position Tower Elevator here: http://wavenumber.net/twr-elev-2/ I just marked the holes on the back supportand drilled holes into the TWR-PROTO, a few stand-offs and viola! Option #2 - This option requires the removal of the rear spring. I am not sure how much value that spring honestly provides since most of the track is nice and flat. If you have a newer TWR-ELEVATOR you usually find some way to mount it to the screw holes with some form of L-Bracket. If you have an older TWR-ELEVATOR you can drill a hole in the Secondary Elevator (less PCB traces to worry about) and then mount it to the chassis with a L-Bracket. Option #3 - Check out this gallery of images: https://plus.google.com/u/0/photos/106056936857240793028/albums/5598207628299505201

## Freescale Cup - Board Mounting Template for the TRK-MPC5604B

Depending on which MCU Devlopment board you have chosen, you will need to figure out a way to mount this to the chassis. I have seen everything from cardboard, to aluminum, to wood. Below is a template complete with CAD drawings to mount the Qorivva TRK-MPC5604B board and the Motor Board onto the chassis. We use plexiglass for ours, but any other millable material is appropriate. The large hole in the middle is for cables from the servo. We attach the board to the car using the plastic standoffs (you will need them 55 mm long, so in our case, we used the combination of 40 + 15 mm) - see an example (SOS code 10260). To attach both the processor and interface boards the simillar 5mm plastic standoffs were used. Preview (.pdf) CAD file (.dxf)

## Servo and Steering Assembly Directions

This page will guide you through the attachment of the servo to the Freescale Cup chassis.   The servo steers the vehicle and is controlled using Pulse-width modulation . Video Tutorial (no sound): Step-by-Step: (Click any image to enlarge) Servo Plate Inside the kit are various mounting options for different servo manufacturers. Look for the bushing of the servo that you are using. You will need the three pieces shown below. You will screw this into the servo. Pieces are notched, so assembly is straight forward. Remove the screw and black servo plate. Mount the yellow servo plate assembly to the servo as shown below. Make sure to add the small yellow washer (pictured below) in between the servo plate and the screw. Tighten well, a servo produces a good amount of torque and will slip if not tight. Steering Bar Assembly Assemble the short arm. Assemble the long arm.   Putting the Two Together Attach the short arm to the yellow bracket. First, insert the bearing into the control arm. This allows the joint to flex and move. Screw this assembly into the servo plate. Attach the long arm to the yellow bracket. Mounting the Servo Motor Attach the motor mount blocks to the back of the servo on both sides. Screw in the attachment blocks from the bottom of the car. Words of Wisdom Be sure to have servo motor in the 0 degree position before securing the control arms. Failure to do so will result in not being utilize the full range of motion. Do not change the position of the steering servomotor by hand. The position of the steering servomotor should be changed through electrical input only. Don’t move the steering servo motor beyond the maximum limit of the movement and this will damage the servo motor

## How to Assemble the Car Chassis

Assembly Of The Freescale Cup Car Chassis Before you start building your program for your car, It would be better if you can assemble your car chassis first. With your car correctly assembled, you can easily test it with your different programs in the later tutorials. The followings are all the tutorials about car chassis assembly. A step-by-step car chassis assembly manual & hints (pub)  (PDF) Servo and steering assembly directions DIY Board mounting template for the TRK-MPC5604B DIY Board mounting template for the Tower System Board mounting suggestions for the FRDM-KL25Z with shield DIY Camera Mounts Wiring connections for the TRK-MPC5604B Hints and notes to chassis assembly Freescale Cup Innovation Challenge EMEA Model B car assembly file in attachment below Exploded Assembly Diagrams Chassis Build Directions [PPT] Original Manufacturer Directions [PDF]

## Microcontroller Programming 101

Getting Started with the Freescale Cup How to achieve the goal of creating an autonomous vehicle that quickly navigates around a track? Before continuing with this tutorial, students should take the time to choose which Freescale Microcontroller your team is going to use. The Introduction to Freescale Cup Training article has some details about how to choose your microcontroller. Although the concepts and end results are similar no matter which microcontroller you decide to utilize, much of the software implementation details will differ. What is a Microcontroller? For information on what a microcontroller is head to the microcontrollers article. Getting Started - Learn to Program a microcontroller First off, you are going to need to know C programming. For a crash-course head to c-programming-for-embedded-systems. The classic first application to learn how to program a microcontroller is to get through the process of Blinking an LED. This wiki contains a tutorial for each of the Cup microprocessors which simplifies the process of setting up the evaluation board, installing the Integrated Development Environment, and programming the board with a simple set of software which blinks a LED. The Blink a LED tutorial is the first of 4 tutorials designed to familiarize students with the process of designing a cup car. These four tutorials will introduce students to many of the fundamentals of robotics, the software used to control the locomotion and sensors on an autonomous line following vehicle, and provide example code which help simplify the process of creating a competitive entry in the Freescale Cup. Here is an outline of the Basic Microcontroller Programming Tutorial: Read the microcontroller article Choose a microcontroller Set up the development environment Set up the microcontroller evaluation board Program A LED move to the next tutorial…

## NXP Cup Overview

Overview: The NXP Cup is a global competition where student teams build, program, and race a model car around a track for speed. The fastest car to complete the trac k without derailing, wins. The creation of this autonomous car requires: Embedded software programming and basic circuit creation using NXP parts included in the entry kit Students to create motor control hardware and software to propel and steer their intelligent car Students must also interface to a camera to navigate the car through the race course by following the guide line. This competition lends itself well to use in senior design/capstone project courses.  The contest time frame can fit within the average 3-4 month semester.  Most development work can be done easily within that timeline. History: The NXP Cup Challenge is a collaborative, competitive, and hands-on way for students to learn about embedded systems and control. The NXP Cup, formerly known as the Smart Car Race began in 2003 in Korea at Hanyang University hosting 80 teams of students. Since that time the competition has spread to China, India, Malaysia, Latin America, North America, and most recently Europe in 2012, impacting more than 500 schools and 15,000 students a year. In 2010 it took the name of the Freescale Cup followed by NXP Cup after the most recent merger in December 2015.

## Wooden Jalopy @ Freescale Cup Europe Finals in Prague

Team Wooden Jalopy from the University of Applied Sciences in Landshut on their run at the Freescale Cup Europe Finals in Prague (2012-04-04). We ranked the 5th place.

## Team 3,14_front_HighSpeedCam

FreescaleCup race test - Team 3,14 STU Bratislava Slovakia 31.3.2012 High Speed Camera 400fps