Intro to Microprocessors

From: Eric Dittman <dittman_at_dittman.net>
Date: Wed Jul 18 15:00:16 2001

My take on learning microprocessors:

1) Pick a reasonable processor. An 8085, Z80,
    6502, or 680x is reasonable. A Pentium III is
    not.
2) Read the data sheets. Get an idea of what the
    timing requirements are, how you interface to
    the timing, address, data, and I/O. Don't rely
    on other people's schematics unless you absolutely
    have no idea what you should do. Make sure after
    using other people's schematics that you do under-
    stand what they did and why.
3) Build a simple circuit on a large wire-wrap
    board. Include the processor, minimal ROM,
    minimal RAM, and a simple I/O port with eight
    LEDs attached. Write a small program to write
    different values to the LEDs. Verify they are
    correct. Use a wire-wrap board with enough room
    to add lots of stuff later. You'll be glad of
    the room later.
4) Add a serial I/O port. Write a small program to
    read data from a terminal (or equivalent) and
    echo the data back.
5) Start extending the program to write your own
    machine language monitor. You've got the I/O
    routines. Add the functions one or two at a
    time, testing along the way. You'll want to
    add memory read, memory write, memory fill,
    register read, register write, port read,
    port write, program start, breakpoints, but
    not a disassembler or assembler. Learn the
    machine code first. Later you can add the
    assembler/disassembler.
6) Add some kind of program storage, either out
    through the serial port, through an additional
    serial port (adding another shouldn't be
    difficult), or some other way. Be creative.
7) Go off on your own. Experiment. Add some
    A/D converters. Add some D/A converters.
    Whatever you find interesting. But the most
    important point to remember is to understand
    the whats and whys of everything you do.

Step (5) is probably the one you'd be most tempted to
cheat on, but it really isn't that difficult to roll
your own. If you'd like, after you've got the basic
functions going, you can either add features from
some other monitor program, or use a completely
different monitor program modified to work with your
system, but definitely write the basics yourself so
you know what's going on.

Any comments?
-- 
Eric Dittman
dittman_at_dittman.net
Received on Wed Jul 18 2001 - 15:00:16 BST

This archive was generated by hypermail 2.3.0 : Fri Oct 10 2014 - 23:33:53 BST