2. Purpose
Teach the basics of embedded controls using a
very cheap ($4.30), easy-to-use board
Cover electronics theory as applicable to
common situations in embedded design. Topics
will range from basic electric circuits to
electronics depending on the project
Provide open-source device schematics and
diagrams that demonstrate concepts
3. Motivation
Open source, while free and amazing, is not
always cheap
Cost is a very important factor. Our focus is on
people who aren't quite sure yet
Practical knowledge and theory or analysis can
be mutually exclusive in the electronics world
Teaching through immediately visible and
practical projects is the best way to instill
theoretical and conceptual knowledge
4. Goals
Projects and Tutorials covering:
Basic C programming (bit masks, loops, interrupt
conventions (or lack thereof), etc)
Electric Circuits (pull up/down, Basic KVL/KCL,
LCR Applications)
Electronics (Diodes, Transistors, Op Amps focus
on Rectification, Switching, and Driving)
5. Goals
Embedded (Timers, Communication, ADC, DAC/
PWM, Flash Memory)
Power Practices
Stand-Alone applications
Complex project geared towards robotics
(Optional) More Complex tools for computer
communication
6. Tools
CCS (TI's IDE) for Windows, CCS and other
open-source goodies for Linux (Ubuntu)
MCU's are programmed in C
Python for computer serial interface
All documentation and writing in ODT Format,
using Lotus Symphony
7. Demos
simplex UART, 2400 baud, 8N1
Python for computer interaction and debouncing
the switch
“Creative” use of the reset button
For demonstration, “bit-banging” is used instead
of the dedicated UART chip
Uses Timer Interrupts, bit shifts and a bit mask
Needs fairly accurate clocks to work
8. Timers
In Up-Mode (most commonly used), a counter
increments every CPU cycle
Capture/Compare registers trigger interrupt
service routines when a set value is reached
The CPU is not active until the ISR is executed
Direct outputs – virtually no CPU overhead
9. RGB LED Tile
PWM, ADC Demonstration
MOSFETs used to ground each color
PWM works as a way to dim LEDs by controlling
the amount of time they are active
This is accomplished through use of two timers
and associated capture/control registers
Flickering can be a disorienting problem if the
switching frequency is not high enough