MCU programming differ fundamental from PC programming:
Most MCU act like a state machine. No intensive file-IO, mathematics
or graphical output must be done. The main task is simple interaction with
the connected environment, like switches, relays, AD or DA converters and
many more. Today are simulators available for the micros. But they can only
help to develop some basic routines. Most of developing need interaction
with the true environment !
So you need a developing system, which is closest on the real application as it can be.
Many thanks to the today available Flash and MCU with inbuilt Flash to make this realistic.
On MCU is a fast download and real application execution a must.Since this can be done today, I use no longer EPROM or OTP or similar bad things.
Also I focused only on MCU, which support this. Especially on the 51-derivate Atmel starts with low sized Flash. And today many other manufacturer followed also for higher size. Dallas offer also a SRAM based 51 device ideal for developing, but only for the standard 8051 device (no 8052 or DS80C520 features included).
Today also the Flash based MCUs are limited in variation, most 51-derivates still only OTP. On using OTP only derivates an external Flash can be used.
In one application, I must use the OTP only device C505. Since the 51-series
can both use, internal and external program memory, I connect a Flash to
use the full 64kB program memory size, enough for most of today in C written
applications.THe OTP was programmed with the download to Flash program. Since
that it must never altered and the Flash can be donwloaded over the UART
(need about 20sec for full 64kB). The Atmel Flash AT29C512 was ideal since
it have a page size of only 128 Byte. So you need no additional RAM above
the 256 Bytes of every 8052 derivate. Also the Flash can call routines
inside the OTP to alter itself. So no additional EEPROM for nonvolatile data
was needed. So nonvolatile data can easy be placed inside the program memory.
Then they can also be preload with its default values simple by writing it
insude the program source.
With a jumper you can select waiting for download or executing Flash immediately after reset.
The DS5000 can direct receive Intel-Hex. Thus why it is not so fast than the Flash download.
The sheet below use the handshake signals to activate the programming mode. Then you need no switch on the board to do so. I like it, if I can easy recompile and download with only a single key click.
Especially for C programming recently some high sized Flash-MCU (e.g. SST89C58) available. But I have not yet tested it. If anbody have it done please can you tell me the experience with it.