FPGA Two Day Workshop Instructors

Download Report

Transcript FPGA Two Day Workshop Instructors

1
Microcontroller Two Day Beginners
Workshop
Instructors
Craig Kief
Deputy Director, COSMIAC
[email protected]
Brian Zufelt
Faculty, UNM
[email protected]
Karl Henry
Instructor, JF Drake State
[email protected]
Bassam Matar
Instructor, Chandler-Gilbert
[email protected]
Nasser Alaraje
Associate Professor, MTU
[email protected]
1
Introductions
• Who are you?
• Where are you from?
• Any Microcontroller or Microprocessor experience?
• Any C experience?
• What do you want to learn from this?
2
Syllabus
Day 1
- 8:30 am Introduction / Survey
- 9:15 am
What is a Microcontroller
- 9:45 am
Compiler and C as Tools
- 10:15 am
Break
- 10:30 am
Lab 1 – Load Software
- 11:00 am
Lab 2 – White Light
- 12:00 pm
Lunch
- 1:00 pm
C Syntax, Compilers, Basic C Statements, Preprocessor
- 2:00 pm
Lab 3 – Blinking Light and Preprocessor
- 3:00 pm
Lab 4 – LED and Counter
3
Syllabus
Day 2
- 8:30 am
- 9:00 am
- 10:00 am
- 11:00 am
- 12:00 pm
- 1:00 pm
- 2:00 pm
- 3:00 pm
- 3:45 pm
- 4:00 pm
- 4:30 pm
- 5:00 pm
Recap of Day 1
Functions and Libraries
Lab 5 – Interrupts
Lab 6 – UART
Lunch
Lab 7 – Accelerometers
Lab 7 – Temp Sensor
Lab 8 – OLED / Final Project
Microcontroller peripherals
Support System (Software & Wiki, etc.)
Implementation / Adaption Plan / Issues at schools
Conclusions / Feedback / Survey
4
Why we are here
The average instructor when they are told they should be updating their
microcontroller lab by a department chair
5
The Big Picture
6
Technologies in My Lifetime
Application Specific
Technology
Gates
1960's
Transistors
101
1970's
SSI (7400)
102
1980's
PALs (22V10)
103
1990's
CPLDs
2000's
2010's
Tools
Processors
Languages
Focus
8-bit
Fortran
Algorithms
Scripting
16-bit
Pascal
Data Structures
104
Schematic Capture
32-bit
C, C+
Objects
FPGAs
106
HDL, synth, analysis
Multi-core
C++, Java
Threads, Networks
SOCs
109
HLSTs, IP, Cores
SOCs
C/HDLs?
Partitioning, synching
Human Bandwidth Exceeded: Behavioral Design
Processors
Human Ingenuity Challenged: CAD Tool Lag
7
Declining Interest in EE/CS
8
Declining Enrollments and Graduates in
EE/CS
9
Method: Immersive hands-on design for
every student
Students learn more, faster, and
better with unrestricted access to
design tools…
…overall learning improves when
applied design skills taught early;
…overall performance improves
when design skills used frequently;
…and they like it*
*results published in 2008 and 2009 ASEE proceedings
I never teach my pupils; I only attempt to provide the conditions in which they can learn. Albert Einstein
10
Microcontroller across the Curriculum
• Computer Architecture
• Embedded Processors
• System on a Chip
• Digital Logic
• Dedicated Controllers
• Application Specific Circuit Testing
• Controls
• Motor Control
• Sensor Interface
• Robotics
• DSP
• Dedicated MAC
11
Please interrupt and ask questions
12
What is a Microprocessor
• A microprocessor incorporates the functions of a computer's central
processing unit (CPU) on a single integrated circuit (IC). It is a
multipurpose, programmable device that accepts digital data as input,
processes it according to instructions stored in its memory, and
provides results as output.
• It is an example of sequential digital logic, as it has internal memory.
• Microprocessors operate on numbers and symbols represented in
the binary numeral system.
• The advent of low-cost computers on integrated circuits has
transformed modern society.
13
What is a Microcontroller
• A microcontroller (sometimes abbreviated µC, uC or MCU) is a small
computer on a single integrated circuit containing a processor core, memory,
and programmable input/output peripherals. Microcontrollers are designed for
embedded applications, in contrast to the microprocessors used in personal
computers or other general purpose applications.
• Microcontrollers are used in automatically controlled products and devices,
such as automobile engine control systems, implantable medical devices,
remote controls, office machines, appliances, power tools, toys and other
embedded systems.
• By reducing the size and cost compared to a design that uses a separate
microprocessor, memory, and input/output devices, microcontrollers make it
economical to digitally control even more devices and processes.
• Mixed signal microcontrollers are common, integrating analog components
needed to control non-digital electronic systems.
14
What is C and Assembly
All computers process information in the form of bits. However writing code in
1’s and 0’s can be a impossible task for complex systems. For this reason
higher level programing languages such as C and Assembly were created.
Assembly is a language that is closely tied to a given architectures instruction
set. An instruction set is the commands a given processor is able to execute as
a single instruction. For example, bit shifts , memory jump, basic math
operations.
C is a widely used programming language that rises above a specific
instruction set. This allows C to be more readable and portable to multiple
devices, while still remaining close enough to the hardware language that
minimal performance sacrifices are made. For these reasons C has become
the language of choice for many embedded system designers.
As you move to higher languages (C++, Java, C#, and objective C, Visual Basic) the language is easier to read,
however performance is sacrificed.
15
The Compiling Process
• A compiler is a computer program (or set of programs) that transforms
source code written in a programming language (the source language) into
another computer language (the target language, often having a binary form
known as object code). The most common reason for wanting to transform
source code is to create an executable program.
• The name "compiler" is primarily used for programs that translate source
code from a high-level programming language to a lower level language (e.g.,
assembly language or machine code).
• For this course, we will use the Texas Instruments Code Composer Compiler.
16
What projects are Microcontrollers good for?
The Stellaris LM4F series of ARM Cortex-M4 microcontrollers provides top performance and
advanced integration. The product family is positioned for cost-conscious applications requiring
significant control processing and connectivity capabilities such as:
■ Low power, hand-held smart devices
■ Gaming equipment
■ Home and commercial site monitoring and control
■ Motion control
■ Medical instrumentation
■ Factory automation
■ Fire and security
■ Smart Energy/Smart Grid solutions
For applications requiring extreme conservation of power, the LM4F120H5QR microcontroller
features a battery-backed Hibernation module to efficiently power down the LM4F120H5QR to a
low-power state during extended periods of inactivity. A Hibernation module positions the
LM4F120H5QR microcontroller perfectly for battery applications.
17
18
Why this tool
Eclipse (Design Environment) – Free
Code Composer (not free but open with IDE)
ADT (Android Development Tool)
Java
PIC (gcc)
AVR (gcc)
…
In computer programming, Eclipse is a multi-language software development
environment comprising a base workspace and an extensible plug-in system for
customizing the environment. It is written mostly in Java. It can be used to develop
applications in Java and, by means of various plug-ins, other programming
languages including Ada, C, C++, COBOL, Fortran, Haskell, JavaScript, Perl, PHP,
Python, Scala, Scheme, and Erlang.
19
Pinouts for Projects
20
Section Objectives
At the end of this section you will be able to
 Understand the high-level architecture of ARM processor
 Understand the CPU, Digital, Analog and Programmable
Routing / Interconnect Systems
21
Why we went the way we did
TI Stellaris LaunchPad
Digilent Orbit Board Mounted on
Stellaris LaunchPad
• ARM is the way of the future. Wanted a way to teach intro
microcontrollers but also a path way ahead to life long learning
• Wanted to have hardware that instructors could inexpensively obtain for a
long period of time
• Wanted to utilize Digilent reliability
• Wanted a free high quality design environment
• Wanted to utilize simple enough C code that instructors could immediately
begin simple projects
22
Stellaris LaunchPad
The Stellaris Launchpad is an
evaluation platform provided by
Texas Instruments. It provides an
excellent platform for exploring all
the options the Stellaris family of
microcontrollers provide. Some
features include:
•
•
•
•
•
•
In-circuit-debugger
I/O headers
USB connection
RGB LED
USB to Serial converter
Pushbuttons
23
Digilent Orbit Board
The Orbit board contains many
features to help students grasp the
concepts presented
• OLED display
• Expandable PMOD connectors
• Potentiometer
• Switches
• Push Buttons
• LEDs
• I2C headers
24
CPU Subsystem
Texas Instrument's Stellaris® family of
microcontrollers provide designers a highperformance ARM®
Cortex™-M-based architecture with a broad set of
integration capabilities and a strong ecosystem
of software and development tools. Targeting
performance and flexibility, the Stellaris
architecture
offers a 80 MHz Cortex-M with FPU, a variety of
integrated memories and multiple programmable
GPIO. Offering quicker time-to-market and cost
savings, the Stellaris family of microcontrollers is
the leading choice in high-performance 32-bit
applications.
25
What and Why ARM?
• The ARM architecture describes a family of RISC-based computer
processors designed and licensed by British company ARM Holdings. It was
first developed in the 1980s by Acorn Computers Ltd to power their desktop
machines and subsequently spun off as a separate company, now ARM
Holdings.
• Globally as of 2013 it is the most widely used 32-bit instruction set
architecture in terms of quantity produced. According to ARM Holdings, in
2010 alone, producers of chips based on ARM architectures reported
shipments of 6.1 billion ARM-based processors, representing 95% of
smartphones, 35% of digital televisions and set-top boxes, and 10% of
mobile computers.
• As an IP core business, Advanced RISC Machine (ARM) Holdings itself does
not manufacture its own electronic chips, but licenses its designs to other
semiconductor manufacturers.
Why are they important
• Virtually every appliance, smart phone, automobile, well,
you name it, has one in it.
• Having a technician, technologist or engineer that doesn‘t at
least have a working knowledge of them is doing them an
injustice.
26
How are Microcontroller projects Designed?
• For our workshop, we will use three packages
• Code Composer Studio
• StellarisWare Firmware Development Package
• LM Flash Programmer Utility
• ATE Workshop Lab
• The overall design language is C code!
27
I wish to help all of you to begin
teaching Microcontrollers
28
Three Elements of Focus
• Hardware : Includes the
architecture of the microcontroller /
microprocessor used, and if there
is and operating system installed.
• SDK: Includes all software used
for development; IDE, Debuggers
,etc..
• Programming Language:
Includes all programming
languages used to develop your
project. We will use C.
29
30
ARCHITECTURE OVERVIEW
ARM Processor
31
ARM CORTEX
M4F
• The next series of slides will drill
down into the specifics and
capabilities
ARM Cortex M4F
• Four Parts that will be
discussed:
• ARM
• System Peripherals
• Serial Peripherals
• Analog Peripherals
32
ARM Cortex M4F
• “F” means the processor
has a Floating Point Unit
(FPA)
33
ARM Cortex M4F – Processor Core
• 32-bit ARM Cortex-M4F architecture optimized for small-footprint
embedded applications
• 80-MHz operation
• Outstanding processing performance combined with fast
interrupt handling
• ARM core in a compact memory size usually associated with 8and 16-bit devices, typically in the range of a few kilobytes of
memory for microcontroller-class applications
• IEEE754-compliant single-precision Floating-Point Unit (FPU)
• 16-bit SIMD vector processing unit
• Fast code execution permits slower processor clock or increases
sleep mode time
• Harvard architecture characterized by separate buses for
instruction and data
34
ARM Cortex M4F FPU and Peripherals
• Floating-Point Unit (FPU) - The FPU fully supports single-precision add,
subtract, multiply, divide, multiply and accumulate, and square root
operations. It also provides conversions between fixed-point and floatingpoint data formats, and floating-point constant instructions.
• The LM4F120H5QR microcontroller is integrated with the following set of onchip memory and features: 32 KB single-cycle SRAM, 256 KB single-cycle
Flash memory and 2KB EEPROM
35
Memory Mapped I/O
Memory Mapped I/O is a method of assigning a memory address to all the
peripherals attached to the processor. This allows the processor to access
peripherals in the same way it accesses memory. This method reduces
development time, and code space.
36
37
SERIAL
38
SERIAL - OVERVIEW
The LM4F120H5QR controller supports both
asynchronous and synchronous serial communications
with:
• USB 2.0 Device
• Eight UARTs with IrDA, 9-bit and ISO 7816 support
(one UART with modem flow control)
• Four I2C modules with four transmission speeds
including high-speed mode
• CAN 2.0 A/B controller
• Four Synchronous Serial Interface modules (SSI)
39
SERIAL - USB
• Universal Serial Bus (USB) is a serial bus standard designed to allow
peripherals to be connected and disconnected using a standardized
interface without rebooting the system.
• USB was designed to standardize the connection of computer peripherals
(including keyboards, pointing devices, digital cameras, printers, portable
media players, disk drives and network adapters) to personal computers,
both to communicate and to supply electric power.
• It has become commonplace on other devices, such as smartphones, PDAs
and video game consoles. USB has effectively replaced a variety of earlier
interfaces, such as serial and parallel ports, as well as separate power
chargers for portable devices.
40
SERIAL - UART
• A Universal Asynchronous Receiver/Transmitter (UART) is an integrated
circuit used for RS-232C serial communications, containing a transmitter
(parallel-to-serial converter) and a receiver (serial-to-parallel converter),
each clocked separately.
• The LM4F120H5QR microcontroller includes eight fully programmable
16C550-type UARTs. Although the functionality is similar to a 16C550
UART, this UART design is not register compatible. The UART can
generate individually masked interrupts from the Rx, Tx, modem flow
control, and error conditions. The module generates a single combined
interrupt when any of the interrupts are asserted and are unmasked.
41
SERIAL – I2C
• The Inter-Integrated Circuit (I2C) bus provides bi-directional data transfer
through a two-wire design (a serial data line SDA and a serial clock line SCL).
The I2C bus interfaces to external I2C devices such as serial memory (RAMs
and ROMs), networking devices, LCDs, tone generators, and so on.
• The I2C bus may also be used for system testing and diagnostic purposes in
product development and manufacture.
• Each device on the I2C bus can be designated as either a master or a slave.
I2C module supports both sending and receiving data as either a master or a
slave and can operate simultaneously as both a master and a slave. Both the
I2C master and slave can generate interrupts.
• The LM4F120H5QR microcontroller includes four I2C modules.
42
SERIAL - CAN
• Controller Area Network (CAN) is a multicast shared serial-bus standard for
connecting electronic control units (ECUs). CAN was specifically designed to
be robust in electromagnetically noisy environments and can utilize a
differential balanced line like RS-485 or twisted-pair wire. Originally created
for automotive purposes, it is now used in many embedded control
applications (for example, industrial or medical). Bit rates up to 1 Mbps are
possible at network lengths below 40 meters. Decreased bit rates allow
longer network distances (for example, 125 Kbps at 500m)
• CAN bus is a vehicle bus standard designed to allow microcontrollers and
devices to communicate with each other within a vehicle without a host
computer.
• CAN bus is a message-based protocol, designed specifically for automotive
applications but now also used in other areas such as aerospace, industrial
automation and medical equipment.
43
SERIAL – SSI
• Synchronous Serial Interface (SSI) is a four-wire bi-directional
communications interface that converts data between parallel and serial.
The SSI module performs serial-to-parallel conversion on data received
from a peripheral device, and parallel-to-serial conversion on data
transmitted to a peripheral device. The SSI module can be configured as
either a master or slave device. As a slave device, the SSI module can
also be configured to disable its output, which allows a master device to
be coupled with multiple slave devices. The TX and RX paths are buffered
with separate internal FIFOs.
• The SSI module also includes a programmable bit rate clock divider and
prescaler to generate the output serial clock derived from the SSI
module's input clock. Bit rates are generated based on the input clock and
the maximum bit rate is determined by the connected peripheral.
• The LM4F120H5QR microcontroller includes four SSI modules
44
ANALOG
45
ANALOG - OVERVIEW
The LM4F120H5QR microcontroller provides analog
functions integrated into the device, including:
• Two 12-bit Analog-to-Digital Converters (ADC) with
12 analog input channels and a sample rate of one
million samples/second
• Two analog comparators
• 16 digital comparators
• On-chip voltage regulator
46
ANALOG - ADC
• An analog-to-digital converter (ADC) is a peripheral that
converts a continuous analog voltage to a discrete digital
number. The Stellaris ADC module features 12-bit
conversion resolution and supports 12 input channels plus
an internal temperature sensor. Each ADC module has a
digital comparator function that allows the conversion value
to be diverted to a comparison unit that provides eight
digital comparators.
• The LM4F120H5QR microcontroller provides two ADC
modules.
47
ANALOG – ANALOG COMPARATOR
• An analog comparator is a peripheral that compares two
analog voltages and provides a logical output that signals
the comparison result. The LM4F120H5QR microcontroller
provides two independent integrated analog comparators
that can be configured to drive an output or generate an
interrupt or ADC event.
• The LM4F120H5QR microcontroller provides two
independent integrated analog comparators.
48
DEVELOPMENT TOOLS
ARM Processor
49
IDE IS A TOOL
Code Composer Studio is more than a compiler. CCS contains
many tools
•
•
•
•
•
•
•
•
Debugger
Editor
Disassembler
GUI
Simulator
Drivers / Libraries
Examples
Optimization
|
Published 1988
|
| Published 2012 |
Syllabus
Day 1
- 8:30 am Introduction / Survey
- 9:15 am
What is a Microcontroller
- 9:45 am
Compiler and C as Tools
- 10:15 am
Break
- 10:30 am
Lab 1 – Load Software
- 11:00 am
Lab 2 – White Light
- 12:00 pm
Lunch
- 1:00 pm
C Syntax, Compilers, Basic C Statements, Preprocessor
- 2:00 pm
Lab 3 – Blinking Light and Preprocessor
- 3:00 pm
Lab 4 – LED and Counter
50
Start the Learning
The key from this workshop is to learn what you need to know to
successfully teach with Microcontrollers
51
Lab 1 Overview
• Provides you with an introduction to the design tools
• Steps you through the design tool installation process
• Loading and licensing the software
52
Lab 2 Overview
• Turn on a light
• Still only using the Stellaris
LaunchPad
• Change the color
53
Syllabus
Day 1
- 8:30 am Introduction / Survey
- 9:15 am
What is a Microcontroller
- 9:45 am
Compiler and C as Tools
- 10:15 am
Break
- 10:30 am
Lab 1 – Load Software
- 11:00 am
Lab 2 – White Light
- 12:00 pm
Lunch
- 1:00 pm
C Syntax, Compilers, Basic C Statements, Preprocessor
- 2:00 pm
Lab 3 – Blinking Light and Preprocessor
- 3:00 pm
Lab 4 – LED and Counter
54
Lunch
• Talking ATE
55
Syllabus
Day 1
- 8:30 am Introduction / Survey
- 9:15 am
What is a Microcontroller
- 9:45 am
Compiler and C as Tools
- 10:15 am
Break
- 10:30 am
Lab 1 – Load Software
- 11:00 am
Lab 2 – White Light
- 12:00 pm
Lunch
- 1:00 pm
C Syntax, Compilers, Basic C Statements, Preprocessor
- 2:00 pm
Lab 3 – Blinking Light and Preprocessor
- 3:00 pm
Lab 4 – LED and Counter
56
57
C PROGRAMMING LANGUAGE
ARM Processor
Basic C
• Variables and Datatypes
• Arithmetic Expressions
• Relational and Logical Operators
• Bitwise operators
• Conditional statements
• Loops
• Functions
• Pointers
58
Variables and Data types
• Variables store bits of data, the size depends on the data type.
• Missing data types are bool and bit. These are typically handled
differently by the compiler.
59
Arithmetic Expressions
60
Relational and Logical Operators
These operations
always return a
Boolean result aka:
True/False , On/Off.
NOTE: False is any
zero value, and True
is a non-zero value.
61
Bitwise Operators
Bitwise Operations work on each bit within a given value
62
Conditional Statements
• Conditional Statements execute ONLY when a certain
condition is evaluated as true, or tested to be a specific
value.
• if(condition){}
• else{}
• switch(value){
case value1:
break;
case value2:
break;
default:
break;
}
63
Loops
• Loops involve a code block that will continue running in a
loop while a current condition is evaluated to be true.
• While(condition)
• For((initialize); (condition) ; (after loop)){}
Notice that each example contains a while(1) loop. If this
code block was not there, the code will execute only once.
64
Functions
• Functions allow you to separate you code into small
chunks that are intended to accomplish a specific task.
• All programs begin with the main(){}; function
• Functions must be declared before the main function. This
is called a prototype.
• All functions that call another function, must be declared
below the called function.
65
Pointers
• Pointers are variables that contain the
memory address of a specific value.
• Pointer bit size depends on the
architecture of the hardware used.
• Pointers are usually the most confusing
subject for those new to programming.
There is even books dedicated to the
proper use of pointers.
• We will cover pointers in the labs as they
come up.
66
Preprocessor
• The C preprocessor, is a macro processor that is used
automatically by the C compiler to transform your program
before compilation.
• The Preprocessor allows the developer to organize code
to make it more readable, portable, and reusable.
• All statements that begin with ‘#’ are handled by the
Preprocessor before the compiler is invoked.
67
C Syntax
• All #define are in all CAPS
• All functions begin with a capital letter
• All variables are lower case
• Indent one tab for all sub block code (eg. All code
between {})
• Keep all code related to a particular task together. Don’t
create patchy code.
• Comment, Comment, Comment!!!
68
Syllabus
Day 1
- 8:30 am Introduction / Survey
- 9:15 am
What is a Microcontroller
- 9:45 am
Compiler and C as Tools
- 10:15 am
Break
- 10:30 am
Lab 1 – Load Software
- 11:00 am
Lab 2 – White Light
- 12:00 pm
Lunch
- 1:00 pm
C Syntax, Compilers, Basic C Statements, Preprocessor
- 2:00 pm
Lab 3 – Blinking Light and Preprocessor
- 3:00 pm
Lab 4 – LED and Counter
69
Advanced Technological Education (ATE)
Synopsis of Program:
With an emphasis on two-year colleges, the Advanced Technological
Education (ATE) program focuses on the education of technicians for the
high-technology fields that drive our nation's economy. The program
involves partnerships between academic institutions and employers to
promote improvement in the education of science and engineering
technicians at the undergraduate and secondary school levels. The ATE
program supports curriculum development; professional development of
college faculty and secondary school teachers; career pathways to twoyear colleges from secondary schools and from two-year colleges to fouryear institutions; and other activities. Another goal is articulation between
two-year and four-year programs for K-12 prospective teachers that focus
on technological education. The program also invites proposals focusing on
research to advance the knowledge base related to technician education.
ATE Video
What is ATE? Video
Advanced Technological Education (ATE)
Cognizant Program Officer(s):
Please note that the following information is current at the time of publishing.
See program website for any updates to the points of
contact.
V. Celeste Carter, Lead Program Director, 835 N, telephone: (703) 2924651, email: [email protected]
Gerhard L. Salinger, Lead Program Director, DRL, 885 S, telephone: (703)
292-5116, email: [email protected]
David B. Campbell, Co-Lead Program Director, DRL, 885 S, telephone:
(703) 292-5093, email: [email protected]
Pamela Brown, 835 N, telephone: (703) 292-4674, email: [email protected]
Zhanjing (John) Yu, 835 S, telephone: (703) 292-4647, email: [email protected]
Advanced Technological Education (ATE)
Synopsis of Program:
With an emphasis on two-year colleges, the Advanced Technological
Education (ATE) program focuses on the education of technicians for the
high-technology fields that drive our nation's economy. The program
involves partnerships between academic institutions and employers to
promote improvement in the education of science and engineering
technicians at the undergraduate and secondary school levels. The ATE
program supports curriculum development; professional development of
college faculty and secondary school teachers; career pathways to twoyear colleges from secondary schools and from two-year colleges to fouryear institutions; and other activities. Another goal is articulation between
two-year and four-year programs for K-12 prospective teachers that focus
on technological education. The program also invites proposals focusing on
research to advance the knowledge base related to technician education.
Advanced Technological Education (ATE)
Synopsis of Program:
With an emphasis on two-year colleges, the Advanced Technological
Education (ATE) program focuses on the education of technicians for the
high-technology fields that drive our nation's economy. The program
involves partnerships between academic institutions and employers to
promote improvement in the education of science and engineering
technicians at the undergraduate and secondary school levels. The ATE
program supports curriculum development; professional development of
college faculty and secondary school teachers; career pathways to twoyear colleges from secondary schools and from two-year colleges to fouryear institutions; and other activities. Another goal is articulation between
two-year and four-year programs for K-12 prospective teachers that focus
on technological education. The program also invites proposals focusing on
research to advance the knowledge base related to technician education.
Anticipated number, size, and duration of
new awards
- ATE Projects: approximately 45-60 new awards, ranging from $25,000 to $300,000 per year
and having a duration of up to three years, except for Large Scale Materials Development
(LSMD) projects, which are limited to $500,000 per year for four years.
- ATE small grants for institutions new to the ATE program: approximately 15-20 awards for up
to $200,000 (each) typically spread over three years. It is expected that the budget request will
match the scope of the project.
- National Centers of Excellence: up to 2 new awards for up to $5 million (each) spread over
four years, with the possibility of a competitive grant renewal, normally at a lower level of
annual funding, for an additional three years.
- Regional Centers of Excellence: up to 3 new awards for up to $3 million (each) spread over
four years, with the possibility of a competitive grant renewal, normally at a lower level of
annual funding, for an additional three years.
- Resource Centers: up to 4 new awards for up to $1.6 million (each) spread over four years
with the possibility of a competitive grant renewal.
- Planning Grants for Centers: up to 4 new awards for up to $70,000 (each) to develop wellformulated plans for future national or regional centers (see Section V.A ["Proposal
Preparation"] for additional information).
- Targeted Research on Technician Education: approximately 5 to 8 new awards, ranging from
$100,000 to $300,000 per year for up to 4 years.
Lab 3 Overview
• Blinking Light and Preprocessor
76
Next Project
77
Lab 4 Overview
• LED and Counter
78
Syllabus
Day 1
- 8:30 am Introduction / Survey
- 9:15 am
What is a Microcontroller
- 9:45 am
Compiler and C as Tools
- 10:15 am
Break
- 10:30 am
Lab 1 – Load Software
- 11:00 am
Lab 2 – White Light
- 12:00 pm
Lunch
- 1:00 pm
C Syntax, Compilers, Basic C Statements, Preprocessor
- 2:00 pm
Lab 3 – Blinking Light and Preprocessor
- 3:00 pm
Lab 4 – LED and Counter
79
Day 2
• Recap yesterday events
80
Syllabus
Day 2
- 8:30 am
- 9:00 am
- 10:00 am
- 11:00 am
- 12:00 pm
- 1:00 pm
- 2:00 pm
- 3:00 pm
- 3:45 pm
- 4:00 pm
- 4:30 pm
- 5:00 pm
Recap of Day 1
Functions and Libraries
Lab 5 – Interrupts
Lab 6 – UART
Lunch
Lab 7 – Accelerometers
Lab 8 – Temp Sensor
Lab 9 – OLED / Final Project
Microcontroller peripherals
Support System (Software & Wiki, etc.)
Implementation / Adaption Plan / Issues at schools
Conclusions / Feedback / Survey
81
Functions
• A function is a block of code that has a name and it has a
property that is reusable (i.e. it can be executed from as
many different points in a C program as required
• A function groups a number of program statements into a
unit and gives it a name.
• Functions give the ability for code segmented into
modules or “black boxes”
82
Libraries
• A C library is a set of named functions. Some libraries are
part of the C language standard. There are static and
dynamic libraries
• Static Libraries are part of the build environment
• Dynamic Libraries are part of the run-time environment
• .h files or header files include functional prototypes and declarations
(not definitions) of functions
• The .h file is used to generate a library
83
Lab 5 Overview
• Interrupts
84
Lab 6 Overview
• UART
85
Lab 7 Overview
• Accelerometer
86
Lab 7 Overview
• What is an accelerometer?
An accelerometer is an electromechanical device that will measure
acceleration forces. These forces may be static, like the constant
force of gravity pulling at your feet, or they could be dynamic caused by moving or vibrating the accelerometer.
• What are accelerometers useful for?
By measuring the amount of static acceleration due to gravity, you
can find out the angle the device is tilted at with respect to the
earth. By sensing the amount of dynamic acceleration, you can
analyze the way the device is moving. At first, measuring tilt and
acceleration doesn't seem all that exciting. However, engineers
have come up with many ways to make really useful products with
them.
87
I2C – Trolled Google for a I2C Sensor
OPENED THE DATASHEET
Found the I2C Address
Lab 8 Overview
• Temp Sensor with a UART
91
Don’t get frustrated
The project may not be
successful for each person each
time. Don’t get frustrated. The
process is simple but it is often
easy to make simple mistakes.
92
Lab 9 Overview
• Final Project
•Suggestions:
•Output Temp sensor data to the LEDs on the Orbit board
•Output Accelerometer data to the UART
93
Impediments to Implementation
• Hurdles we have seen
• We have always done it this way
• Hurdles you might see
• Fear factor
94
Additional Materials
• Here is the link for our tutorials
• http://cosmiac.org/Projects_Micro.html
• Here is a link for an advanced TI ARM
series of tutorials and workshops.
• http://processors.wiki.ti.com/index.php/
Getting_Started_with_the_Stellaris_EKLM4F120XL_LaunchPad_Workshop
95
The Team’s Plan
• Develop Instructional Material
• Train Faculty
96
Collaboration
•
We do
collaborations
very well
•
Small Grants
for Institutions
New to the ATE
Program
•
Project
Proposals
97
Developing Curriculum
• Lab1 – Intro – SW Install
• Lab 2 – LED
• Lab 3 – Blink LED
• Lab 4 – Switches Buttons
• Lab 5 – Interrupts
• Lab 6 – UART
• Lab 7 – Accelerometer
• Lab 8 – Temp Sensor
• Lab 9 – OLED
• Lab 10 – EEPROM
• Lab 11 – ADC
• Lab 12 – Graphic Display Module
98
Moving Forward
• Different Development Platforms
• Additional resources and examples
• Different architectures
• Operating Systems
• Higher level languages
• Object Oriented language
99
Conclusions
100
Painful survey
We need
your help in
statistics.
We will be
contacting
you!
101
APPENDIX
102
103
104