Professional Documents
Culture Documents
Fast and Effective Embedded Systems Design: Applying the ARM mbed
In English, by Rob Toulson and Tim
Wilmshurst
Published by Newnes
ISBN: 978-0-08-097768-3
Physical
by Daniel W. Lewis
Published by Prentice Hall
ISBN-10: 0132916541
ISBN-13: 978-0132916547
Embedded boards:
The ARM University Program recommends the following development boards for
teaching Embedded Systems/MCUs:
ARM and Energy Micro are official University Program partners providing teaching
materials and development tools at a low entry cost. The partnership encourages
learning and helps institutions start their own microcontroller training programs quickly.
Who is it for? The ARM and Energy Micro University Program partnership is primarily
intended for universities planning to expand their microcontroller labs. However, the
lecture series is also valuable for people wanting to learn more about microcontrollers in
general, with special focus on low power application development.
What is included? The Energy Micro University package contains several parts:
A series of lectures
Keil MDK-ARM Microcontroller Development Kit:
http://www.keil.com/arm/mdk.asp
Simplicity Studio - energyAware Designer and Profiler tools
A discounted package of at least 10 EFM32 Giant Gecko starter kits.
mbed.org
mbed Starter Kit:
http://skpang.co.uk/catalog/mbed-lpc1768-starter-kit-b-p-717.html
mbed Application Board:
https://www.sparkfun.com/products/11695
mbed Breakout Board
Application Note 207: Porting an mbed Project to Keil MDK-ARM:
http://www.keil.com/appnotes/docs/apnt_207.asp
mbed textbook:
http://mbed.org/cookbook/Textbook
The mbed Sponsorship Program aims to support worthy people doing worthy projects
with microcontrollers. We've allocated some mbed microcontrollers for use in projects
or activities that go towards an academic qualification or official engineering
achievement.
Development Board
A Full MCU development kit + tools
The STM32 Value line Discovery is the cheapest and quickest way to discover the
STM32. It includes everything required for beginners and experienced users to get
started quickly. The STM32 Value line Discovery includes an STM32F100 Value line
microcontroller in a 64-pin LQFP package and an in-circuit ST-Link
debugger/programmer to debug Discovery applications and other target applications. A
large number of free, ready-to-run application firmware examples are available
on www.st.com/stm32-discovery to support quick evaluation and development using the
LEDs, button and extension header to connect to other boards or devices.
Cortex-M3-based STM32F1 Discovery
http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/PF250863?
sc=internet/evalboard/product/250863.jsp
Keil offers starter kits based on the ARM Cortex-M-based microcontrollers. These kits
include an evaluation board, a Keil ULINK-ME USB-JTAG interface, as well as
the MDK-ARM software tools.
The NuMicro NUC100 Series are 32-bit microcontrollers with embedded ARM
Cortex-M0 cores for teaching embedded systems. The Cortex-M0 provides 32-bit
performance and at a cost equivalent to traditional 8-bit microcontroller. NuMicro
NUC100 Series includes NUC100, NUC120, NUC130 and NUC140 product line.
The NuMicro NUC140 Connectivity Line with USB 2.0 full-speed and CAN
functions embeds a Cortex-M0 core running up to 50 MHz with 32K/64K/128K-byte
embedded flash, 4K/8K/16K-byte embedded SRAM, and 4K-byte loader ROM for the
ISP. It also equips plenty of peripheral devices, such as Timers, Watchdog Timer, RTC,
PDMA, UART, SPI, IC, IS, PWM Timer, GPIO, LIN, CAN, PS/2, USB 2.0 FS Device,
12-bit ADC, Analog Comparator, Low Voltage Reset Controller and Brown-out
Detector.
Chapter 1 Introduction
1.0 Introduction
An embedded system is some combination of computer hardware and software, either fixed
in capability or programmable, that is specifically designed for a particular function.
Industrial machines, automobiles, medical equipment, cameras, household appliances,
airplanes, vending machines and toys (as well as the more obvious cellular phone and PDA)
are among the myriad possible hosts of an embedded system. Embedded systems that are
programmable are provided with programming interfaces, and embedded systems
programming is a specialized occupation.
Certain operating systems or language platforms are tailored for the embedded market, such
as Embedded Java and Windows XP Embedded. However, some low-end consumer
products use very inexpensive microprocessors and limited storage, with the application and
operating system both part of a single program. The program is written permanently into the
system's memory in this case, rather than being loaded into RAM(random access memory)
like programs on a personal computer.
An embedded system combines mechanical, electrical, and chemical components along
with a computer, hidden inside, to perform a single dedicated purpose. There are more
computers on this planet than there are people, and most of these computers are single-chip
microcontrollers that are the brains of an embedded system. Embedded systems are a
ubiquitous component of our everyday lives. We interact with hundreds of tiny computers
every day that are embedded into:
- consumer electronics as: personal digital assistants (PDAs), mp3 players, mobile phones,
videogame consoles, digital cameras, DVD players, GPS receivers. Household appliances,
such as microwave ovens, washing machines, and dishwashers,
- home automation uses wired- and wireless-networking that can be used to control lights,
climate, security, audio/visual, surveillance, etc,
- advanced avionics such as inertial guidance systems and GPS,
- motor controllers for brushless DC motors, induction motors and DC motors,
- medical equipment for vital signs monitoring, electronic stethoscopes, and medical
imaging,
- telecommunications -telephone switches, cell phones, routers and network bridges,
- computer peripherals as printers and 3Dprinters.
As our world has become more complex, so have the capabilities of the microcontrollers
embedded into our devices. Therefore the world needs a trained workforce to develop and
manage products based on embedded microcontrollers.
1.0.1 Impact
We believe effective education requires students to learn by doing. In the traditional
academic setting this active learning is delivered in a lab format. A number of important
factors have combined that allow a lab class like this to be taught at this time. First, the
massive growth of embedded microcontrollers has made the availability of lost-cost
development platforms feasible. Second, your instructors have the passion, patience, and
experience of delivering quality lab experiences to large classes. Third, on-line tools now
exist that allow students to interact and support each other.
The overall educational objective of this class is to allow students to discover how the
computer interacts with its environment. It will provide hands-on experiences of how an
embedded system could be used to solve problems. The focus of this introductory course
will be understanding and analysis rather than design. It takes an effective approach to
learning new techniques by doing them. We feel we have solved the dilemma in learning a
laboratory-based topic like embedded systems where there is a tremendous volume of
details that first must be learned before hardware and software systems can be designed.
The analog to digital converter (ADC) and digital to analog converter (DAC) are the chosen
mechanism to bridge the computer and electrical worlds. Electrical engineering concepts
include Ohms Law, LED voltage/current, resistance measurement, and motor control.
Computer engineering concepts include I/O device drivers, debugging, stacks, FIFO
queues, local variables and interrupts. The hardware construction is performed on a
breadboard and debugged using a multimeter (students learn to measure voltage). Software
is developed in C; all labs will be first simulated then run on the real microcontroller.
Software debugging occurs during the simulation stage. Verification occurs in both stages.
The course has 7 labs and, eventually, a final project. Students begin by learning the
fundamental concepts via lectures, interactive animations and readings. The second task is
for students to observe an expert working through an example lab project (interactive
tutorial where the students are required to follow along by building exactly what the
instructor is building). Third, students are examined to make sure they understand the
concepts by solving homework problems. Fourth, they are given a lab assignment where
they must design hardware and software. Students connect circuits to their microcontroller
board and write software to run on the board. The automatic grading system to verify
specifications have been met. If the students are unsuccessful they will interact with their
peers and be able to attempt the lab again.
simulation and then on the real board. For each module we will design a system and you
will build and test a similar system as part of the lab for that module.
1.3 Syllabus
Following is the liast of all modules, the corresponding examples we will build in each and
the relevant lab you will complete. Some of the modules do not have examples or labs.