Develompent Board

Picture

Schematics

Bootloader Program

Back

CS 185C requires the students to bring a PC laptop to class and to purchase this development board to run the embedded programs.  Cost is $50.  (That cost does not completely cover the cost of making these boards.)

The board provides the following features:

The microcontroller is pre-programmed with a bootloader program.  This program occupies the highest 1/16 of the microcontroller program memory.  Its purpose is to receive binary code on the microcontroller serial port and put it into the rest of the memory.  If no code is received immediately after reset, the bootloader simply starts whatever program is loaded at the bottom of memory.  Therefore the microcontroller behaves as if the bootloader is not there, if nothing is received on the serial port at reset (except that the maximum program size is 6 percent smaller).

Use the DBCOMM program to communicate with the bootloader and send a new program to the microcontroller.

The bootloader allows programming of the microcontroller without using the SPI pins.  The serial port carries one channel in and one out.  The SPI method requires three in and one out.

SPI programming can be done using the handshaking lines associated with the serial port, but it is very slow.   Programming all 16 Kbytes on the microcontroller takes about one hour compared with a few seconds using the bootloader.  (SPI programming can be done quickly if a second microcontroller is used to control the SPI, but this development board does not have that.)

SPI programming is necessary to change the nonvolatile fuse bits that control some operating modes of the microcontroller.  It is also needed to put the bootloader on an unprogrammed microcontroller.

You can program the microcontroller using SPI by connecting jumper JP4.  Doing so connects the handshaking lines of the serial port to the microcontroller SPI pins.  Then a program running on the PC can passively program the microcontroller by manipulating the serial port handshaking lines.  See the Ponyprog program.