This is collection of documents from a variety of sources for use by the
students in EE 459Lx. Some of the
documents may not be relevant to the current semester's project but are left
here for reference purposes.
Some of the following documents are in PDF format. You will need a PDF
to view and print the documents.
Questions, corrections and comments about the content of this page should be
sent to Allan Weber
- EE 459Lx Lab Notes - A collection
of topics related to constructing the class projects (soldering, wire wrapping,
debugging, etc.). All students should read this before starting construction
of your project in the lab.
- Parts in stock - This is a list of most of the parts that
the EE459 class has in stock for project construction.
- These sample schematics for devices unrelated to the class projects are
similar to the types of schematics that should be produced for your project.
Note: Through the Spring 2013 semester we were using the Atmel
ATmega168A microcontroller, but have since switched to the ATmega328P whose
main difference is the amount of RAM and ROM. The notes below mostly apply
to both microcontrollers even if the description of the document only
mentions one of them.
- ATmega328P Datasheet - Atmels's full
datasheet on the ATmega328P microcontroller (22MB)
- To go to Atmels's web page for the ATmega328P microcontroller,
- ATmega328P Notes - Notes on using the
Atmel ATmega328P microcontroller
- AVR-gcc - Notes on using the AVR-gcc
toolset to program the Atmel microcontrollers. This document discusses
programming the ATmega328P but much of the information also applies to other
ATmega or ATtiny microcontrollers used in the class.
- Sample Atmel ATmega328P C and assembly language programs. These were
originally written for the ATmega168A and should run unchanged on that
processor. Programs are for the avr-gcc toolset and will compile on Mac OSX,
Linux and probably Windows. The programs do the same things as the ones
below for the Freescale JL16 processor. To use with the ATmega328p this
Makefile can be used but the
parameters at the top (OBJECTS, CLOCK, PROGRAMMER, etc.) will probably have
to be changed to reflect your environment.
- at328-0.c and
Toggles an I/O port bit on and off rapidly. Output can be confirmed
with an oscilloscope.
- at328-1.c and
Controls an LED with a switch.
- at328-2.c and
Displays a sequence of hexadecimal numbers on a seven-segment display.
- at328-3.c and
Displays a sequence of hexadecimal numbers on a seven-segment display
using an internal timer and interrupts for delays.
- at328-4.c - Prints a
short message on a parallel interface two line LCD display in 8-bit mode.
- at328-5.c - Prints a
short message on a parallel interface two line LCD display in 4-bit mode and
shows how to store strings in ROM.
- at328-6.c - Controls
a serial interface LCD display over an RS-232 link.
- at328-7.c -
Transfers data to and from a serial EEPROM over an I2C link.
- ATtiny85 Datasheet - Atmels's full datasheet on the ATtiny85 microcontroller (5MB)
- Sample Atmel ATtiny85 C programs. Programs are for the avr-gcc toolset and
will compile on Linux or Mac OSX. Similar to the samples above for the ATmega328P but
for the ATtiny85 that comes in an 8-pin package.
For all of these this Makefile can be used but
the parameters at the top (OBJECTS, CLOCK, PROGRAMMER, etc.) will probably have to be
changed to reflect your environment.
- at85-0.c - Toggles an
I/O port bit on and off rapidly. Output can be confirmed with an
- Links to useful web sites
- AVR Freaks - An AVR community web
site with lot of good information and tutorials.
Using Program Memory - Tutorial on using the ROM memory of the
Using EEPROM Memory - Tutorial on using the EEPROM memory of the Atmel
Note: Freescale Semiconductor was acquired by NXP Semiconductor in 2015. Many of the documents below
still say Freescale, some may say NXP, but the products are the same.
- MC908JL16 Datasheet - Freescale's
full datasheet on the MC908JL16 (also known as MC68HC908JL16) microcontroller
- To go to Freescale's web page for the MC908JL16 microcontroller,
- MC908JL16 Notes - Notes on the
Freescale MC908JL16 microcontroller hardware and software issues
- CPU08 Programming Reference Manual -
Programming manual for the MC68HC08 microcontroller family (2.7mb)
- TIM08 Reference Manual - Manual for the
internal timers in the MC68HC08 microcontroller family (1 mb)
- JL16 I2C Notes - This page discusses some issues
related to using the I2C (MMIIC) interface on the JL16 microcontroller.
- Baud rate calculator for the JL16 microcontroller
- ICS08JLKL Jumper Settings -
Diagram of the proper jumper settings on the MC68ISC08JLJK development
- The following documents relate to the CodeWarrior software
- Sample MC908JL16 C and assembly language programs. Programs are for the
CodeWarrior development system. Some of these are extremely simple, with the
idea that if you can't get these to run on your project board, there is no
sense trying anything more complicated.
- jl16.c and
jl16.asm - CodeWarrior C and assembler
languages template programs. Empty program to add code to.
- jl16-0.c and
jl16-0.asm - Toggles an I/O port bit
on and off rapidly. Output can be confirmed with an oscilloscope.
- jl16-1.c and
jl16-1.asm - Controls an LED with
jl16-2.asm - Displays a sequence
of hexadecimal numbers on a seven-segent display using loops for delay.
Programs jl16-2a.c and jl16-2b.c differ in that 2b shows how to get variables
allocated into the zero page of RAM in CodeWarrior C.
- jl16-3.c and
jl16-3.asm - Displays a
sequence of hexadecimal numbers on a seven-segment display using an internal
timer and interrupts for delays. These programs requires a different linker
parameter (.prm) file than the default one CodeWarrior creates in the project.
folder. Use jl16-3.prm for these programs.
- jl16-4.c and
jl16-4.asm - Prints a short
message on a parallel interface two line LCD display in 8-bit mode.
- jl16-5.c and
jl16-5.asm - Prints a short
message on a parallel interface two line LCD display in 4-bit mode.
- jl16-6.c - Controls a
serial interface LCD display over an RS-232 link.
- jl16-7.c - Transfers
data to and from a serial EEPROM over an I2C link.
- jl16-8.c - Stores and
retrieves data in the JL16 FLASH memory.
- MC908QT4 Datasheet - Freescale's full datasheet on the MC908QT4 (also known as MC68HC908QT4) microcontroller (1.2MB)
- Sample MC908QT4 programs. Programs are for CodeWarrior (C or
assembler.) Similar to the samples above for the JL16 but for the QT4
that comes in an 8-pin package.
- qt4-0.asm - Toggles an I/O port
bit on and off rapidly.
- qt4-1.asm - Toggles an I/O port
bit on and off at a 1Hz. rate.
- qt4-2.asm - Toggles an I/O port
bit on and off at a rate determined by a switch. Used to control the clock
on the PLD demo board.
Other microcontroller documents
- PALCE22V10 Notes - Using the
PALCE22V10 for programmable logic.
- CUPL Manual - This is a rough
translation into PDF format of the online documentation on the CUPL language
that comes with the Atmel WinCUPL program. Many figures didn't survive the
translation too well or are missing entirely. These will be fixed someday,
- Sample PAL programs: These are CUPL programs that show some of the concepts
in using PAL. Most are designed to test PALs on a demo board in the lab.
- PALSamp1.pld - A sample CUPL file for
implementing a 3-bit counter and a 3-input AND gate in a PALCE22V10.
- PALSamp1.si - Simulator input file for
testing the PAL defined in PALSamp1.pld.
- PALSamp2.pld - CUPL file for
demonstrating and testing 22V10 PALs on the lab demo board. Implements
a 3-bit up-down binary counter with binary outputs and seven-segment display
- PALSamp2.si - Simulator input file for
testing the PAL defined in PALSamp2.pld.
- PALSamp3.pld - CUPL file for
demonstrating and testing 16V8 PALs on the lab demo board. Implements
a modulo 5 up-down counter with binary outputs and decoded 1-of-5 outputs.
- PALSamp4.pld - CUPL file for
demonstrating and testing 22V10 PALs on the lab demo board. Implements
a 3-bit up-down Gray code counter with binary outputs and the seven-segment
display outputs the message "EE 459L".
- PLD Programmer - Notes on how to use the
GALEP-4 PLD programmer in the lab.
- GPS Interface - Wiring diagram
for interfacing to the Garmin GPS modules.
Simulators for testing projects
- HP 166X - Brief instructions on using the HP logic analyzers
The datasheets listed below have been obtained from various places on the
Internet. They are all copyrighted by someone but we're not going to worry
about that. Datasheets for the newer parts were mostly obtained from the
manufacturers or from Jameco and Digi-Key where we order most of our
parts. Others were snagged from web sites wherever we could find them.
For older 74LS TTL parts, most came from vendors like T.I., Motorola and
Fairchild that used to sell these things. If you are looking for TTL
datasheets, try the links below.
Semiconductor - They used to have a good collection of very presentable
datasheets but it looks like most of the 74LS ones have been removed. Most are
not scanned images so if you can find these, it will be easier to read and
On Semiconductor - I think they are mainly a distributer of ICs, not a
manufacturer. They may have absorbed Motorola's TTL product line, or at least
their tech library. Either way, they have a large collection of datasheets
online and they are good quality.
Instruments - TI has a large collection of datasheets online, both for
current chips and for many obsolete ones. Many of their files are scans of
pages from their printed databooks and the images come out looking pretty bad.
If you can't find a non-scanned copy somewhere else, get it from here. However
they do have a PDF of a pocket version of their
None of these sites are particulary easy to use if you don't know what part
you are looking for. If looking for 74 series TTL chips, do a search for
"74LSxxxN" where xxx the rest of the part number. The "74LS" will find it in
one of the more common logic family, and the "N" says to find a standard
A/D and D/A converters
Analog and interface ICs
Transistors and diodes
- 1N4148 diode, 75V, 300mA (similar to 1N914)
- 1N5403 diode, 300V, 3A
- 1N4732 4.7V Zener diode
- 2N2222 NPN transistor
- 2N2907 PNP transistor
- 2N3904 NPN transistor
- 2N3906 PNP transistor
- 2N6071 triac, TO-225, 200V, 4A
- L201E5 triac, TO-92, 200V, 1A
- L2004L3 triac, TO-220, 200V, 4A
Miscellaneous pin-out diagrams
Stepper motors and associated components
Miscellaneous digital ICs
Keyboards and buttons
Digital Logic ICs
Older TTL ICs. These parts are not normally used in current
EE459Lx projects. Some are non-74LS parts that are logically compatible with
74LSxx parts, but may have problems electrically due to different fan-in and
fan-out. Other parts have have power and ground at non-standard positions or
are listed as obsolete by the manufacturers and are no longer being produced.
However they are still present in the our stock of parts so if you want to use
them you can.
Where to find stuff
If you are interested in purchasing electronic components for building
projects, here are some links to places we buy parts from.
- Jameco Electronics - We used to buy most
of our stuff from Jameco before they "improved" their web site. It's now more
difficult to find stuff on the web site so you may be better off requesting a
printed catalog or looking through the PDF version of the printed catalog.
It's usually easier to find parts in that catalog than online. It will also
get you on their mailing list for future catalogs.
- Digi-Key - This is our other primary
supplier. They have a large inventory, the prices are reasonable, and we
usually get the order pretty quickly. They send out a printed catalog of over
1000 pages. However the size of the catalog sometimes make it hard to find
- SparkFun Electronics - This company
sells a lot of interesting items for the hobbiest/experimenter. Their
inventory changes a lot so you might not be able to buy the same things six
months from now.
- These are similar to SparkFun in that most of the stuff is for the hobbyist.
- Modern Device - They seem to have
a interesting variety of components including many sensors and related
- Newark and
Mouser Electronics - These two are major suppliers to the electronics industry
with very large inventories. Not sure if they have minimum order amounts that may
make it hard for the hobbyist but they are worth a look.
- All Electronics - This is
basically a surplus store with both new and used components.
Their prices on some stuff is very good, provided you can find what you need.
You can also visit their store at 14928 Oxnard St., Van Nuys.
- B.G. Micro - They sell a wide variety of
interesting stuff. Download their PDF catalog.
- Apex Electronics, This is a large
electronics surplus store in an industrial area of the San Fernando Valley
(8909 San Fernando Road, Sun Valley). If they have something you need, you can
probably get it at a good price, but it's sometimes hard to find things. It's
definitely worth at least one trip there just to see the place, and its storage
area outside in the back.