Re: universal programmer




"J. David" <jdavid@xxxxxxxx> wrote in message
news:QIfrf.109779$dd6.1481029@xxxxxxxxxxxxxxxxxxxxxxx
>
> "Abstract Dissonance" <Abstract.Dissonance.hotmail.com> wrote in message
> news:11qoqhlquql4kd3@xxxxxxxxxxxxxxxxxxxxx
>> 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
>
> For myself, using microcontrollers in DIP packages (no SMD) from 8 to 40
> pins, I use a 40-pin ZIF socket (where the uC to be programmed is
> inserted) and also a small 50-pin connector which can be a DB-50.
> The first 40 pins of this connector are connected directly to the ZIF
> socket pins and five other pins are connected to the programmer well known
> signals, that are: MCLR (or Vpp), Vcc, ground, DATA and CLOCK. These five
> signals are then hardware-strapped to the appropriate first 40-pins onto a
> 50-pin plug that fits into the connector for the appropriate uC to be
> programmed (many share the same programming pinouts).
> If different uC with a new programming pinout is released, I just buy a
> new 50-pin plug and hardware-strap it for the new pinouts, that's all!
> Take a few minutes and soldering iron.
> So far, I could have coped with the many different programming pinouts
> Microchip (and others) have conceived to make our lives more difficult to
> program their chips :)
>
> Johnny
>

But wouldn't it be nice to have a ZIF socket on your programmer that
supports 100 pins? ;) Surely the complexity to handle 10 pins or 1000 pins
is virtually the same... most of those pins are useless and don't need to be
messed with? If so then if one could "rearrange" the pins so that only the
ones needed are put at the top then its like just having a 10 pins or so(or
whatever you want) and one wouldn't need to actually handle all those
useless pins.

Thats my dream though. I figure that would could have some software code
that looks like this:

out Pin3, 1
out Pin13, 0
serial_out(Pin19, bufffer)

while some other chip might be

out Pin1, 1
out Pin2, 0
out Pin8, 1
serial_out(Pin73, bufffer)

(hypothetically... it would be more complicated than this but just to give
an idea)


But the problem is having "access" to all those pins... one needs a sorta
router to route the pins used to the actual pins on the chip... I'm not sure
if this is all that difficult or not... maybe the real issues just lie in
the pratical side of things where certain chips have different
characteristic like different voltages and clocks and all that(but I still
feel it shouldn't be all that hard to do).

Thanks,
AD



.