universal programmer



Since I'm trying to get into MCU it seems I will need a programmer to get
anywhere. From looking online it seems that any "decent" programmer is
pretty expensive(1k+) and those that are cheap seem to offer very few
features and few chip support.

I was thinking that it shouldn't be very difficult to program just about any
chip by using a computer if the computer had "access" to all the pins on the
chip. From looking at a few data sheets it seems that its very easy to
program a MCU by simply handling the procedure through the software.

heres a quote of how to program the PIC16C84

The device is placed into a program/verify mode by
holding the RB6 and RB7 pins low, while raising the
MCLR pin from VIL to VIHH (see PIC16C84 EEPROM
Memory Programming Specification (DS30189)). RB6
becomes the programming clock and RB7 becomes
the programming data. Both RB6 and RB7 are Schmitt
Trigger inputs in this mode.
After reset, to place the device into programming/verify
mode, the program counter (PC) points to location 00h.
A 6-bit command is then supplied to the device, 14-bits
of program data is then supplied to or from the device,
using load or read-type instructions. For complete
details of serial programming, please refer to the In-Circuit
Serial Programming Guide (DS30277).
For ROM devices, both the program memory and Data
EEPROM memory may be read, but only the Data
EEPROM memory may be programmed.


It seems to me that if most chips follow a very similar method where you use
a few pins(lets say arbitrary too) to get it into program mode and a serial
communication on one pin to transfer the code then it would be extremly easy
to program any of those chips by using a computer(with just about any number
of pins). Is this the actual case?

Lets suppose I have a device that simply lets me access any of the pins on a
chip from software.... could I then not use the software to program the
chip? If so, is this true of pretty much most of the MCU's and EEPROMS or
just a few? If not, what are the reasons why I couldn't do this?

Only thing I can think of that could prevent it from being so easy is
supplying the proper voltage to the right pin(but this shouldn't be that
hard) and getting the right clock into the chip. Other things like having
ot have resistors and stuff on certain pins for certain reasons and such
would surely scew this method up as then it might become to complicated to
do(well, it would be just easier to buy a "universal programmer"). If there
are no resistors needed and I can generate the clock from the software in a
computer and potentially the voltage(or just allow the voltage to be
selectable by the hardware and on what pin it should be on) then I can't see
why this would be that difficult. Definately would be much cheaper to do
than buying a 1000$ programmer.

Is it safe to say that the generalization of the above procedure for the
PIC16C84 applies to almost all other MCU's? And what about those MCU's that
cannot be programmed in that way, what makes them so different?

Any ideas?

Thanks,
AD


.