Navigation bar
  Start Previous page  5 of 6  Next page End Home  1 2 3 4 5 6  

Flash Microcontrollers Solve Problems
One method to overcome the weakness associated with RAM corruption due to power supply problems is to have
"protected blocks" in the FLASH memory.  This can be accomplished by having a small "write protected" block
within the FLASH array itself.  This protected block can contain the programming algorithm.  One method to provide
write protection is to require an external high voltage source for this particular block.  If the external high voltage is
not available, then it will not be possible to erase the protected block.  In the actual application, the high voltage
would probably be absent.  The remainder of the FLASH module can use an internal charge pump to generate the
required high voltage necessary for programming and erasing the FLASH.  The down side of this methodology is
that an external high voltage signal must be supplied to erase the "protected block".  However, the bootload code in
this protected block is a small routine not intended to be changed over the life of the product.  Thus, in an actual
production application, the high voltage supply to erase the protected block would rarely be included.
Programming time presents yet another opportunity for significant cost savings.  Different FLASH technologies can
vary significantly in the amount of time required to program a byte.  Older technologies often had byte programming
times greater than 20 milliseconds per byte.  The more modern FLASH technologies, such as those used on the
MC68HC908 microcontrollers, require significantly less time for byte programming.  Programming times of 45
microseconds per byte are commonly attainable with the MC68HC908 FLASH technology.  The shorter
programming times have several implications.  First, there is the economic advantage of being able to reduce the
amount of time to reprogram. Less operator time is involved per unit and the same machine used to do the
programming becomes more efficient.  Thus, the double advantage of lower per unit cost and reduced need for
programming hardware is achieved.
Programming time is not the only problem associated with producing a product containing a FLASH microcontroller. 
The logistics of actually programming the device must also be considered.  The general programming techniques
have been presented already.  However, the actual logistics of applying these methods in a production environment
must also be considered.  A common way to program One Time Programmable Devices (OTP's) as well as FLASH
based microcontrollers is use a gang programmer.  This is a tried and true method and has been used for many
years.  There are still significant costs associated with gang programmers.  First of all, there is the cost of operator
time associated with getting the FLASH based devices in and out of the gang programmer.  There is also the
associated problem with simply handling devices, such as damaging a part through static discharge.  Soldering a
blank FLASH device on a board and programming it in-circuit eliminates these production steps.
The method for programming a blank FLASH based device is to enter a special mode.  When a blank (erased)
MC68HC908 powers up, it automatically enters a monitor mode from which the FLASH can be programmed.  This
eliminates the need for setting mode select pins to enter the programming mode.  When the special programming
mode is entered, code in an internal ROM which is visible only during the special programming mode, is executed. 
This code drives an I/O pin so that the pin appears to he a half-duplex data link.  Software operating on a PC or a
test machine communicates with the microcontroller using a prearranged format.  The first step is to download a
programming algorithm into the internal RAM of the device and then direct the microcontroller to start executing that
program.  The PC will then download the code to the microcontroller through the I/O pin for the programming
algorithm to program into the FLASH.  All this is accomplished through the serial port of the PC using standard
software.  The advantages are that programming is done in a standard way, the hardware to perform the FLASH
programming is minimal, it is highly adaptable to field programmability, it eliminates a production step, and it is very
cost effective.
Previous page Top Next page