Re: universal programmer




"Dr. Anton T. Squeegee" <SpammersAreJerks@xxxxxxxx> wrote in message
news:MPG.1e1649e6155811bf98973e@xxxxxxxxxxxxxxxxx
> In article <11qoqhlquql4kd3@xxxxxxxxxxxxxxxxxx>, "Abstract Dissonance"
> <Abstract.Dissonance.hotmail.com> says...
>
>> 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.
>
> This is my understanding. I invite others to offer constructive
> correction if I mis-speak.
>
> There are two distinct classes of device programmer. The dividing
> line is whether they're dedicated to memory devices, such as EPROMs,
> EEPROMs, FLASH devices, etc., or whether they are true 'universal'
> programmers with pin-driver architecture.
>
> Dedicated programmers are fairly simple units, designed to be
> inexpensive and to perform a limited range of functions for just a few
> families of chips. This is because the programming algorithms required
> for EPROMs and such are not particularly complex in themselves.
>
> The next step up is an architecture called 'pin-driven.'
> Programmers based on such technology are at least an order of magnitude
> more complex -- and, consequently, more expensive -- than those that are
> not pin-driver capable.
>
> Neat thing about pin drivers is that they're software-controlled.
> You can program any pin in the programming socket to do anything you
> need it to do: Vcc, ground, address, data, programming voltage,
> programming waveform, whatever. Pin driver technology also gives you
> very precise control over signal timing.
>
> This means that you can, in theory, set them up to handle
> read/program for any imaginable programmable device. Functionality like
> that does not come cheaply.
>

Ok, basicaly I want to create a pin driver then. Something that I just have
access to all the pins on any chip in the software so I can deal with all
the programming problems there. I'm sure that I could easily make a specific
programmer that will program the chip I have as long as the procedure is
outlined in the data ***... but I'd rather not do this every time I get a
new chip.


>> 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.
>
> It's a lot more complex than it may appear at first glance. True
> "universal" programmers are, in fact, small dedicated-purpose computers
> designed to do exactly as you describe.
>
> Example: I use Data I/O's Unisite and 2900 series programmers.
> They both require their own operating system, and they both contain all
> the elements of a microcomputer: CPU, memory, hard drive (in the case of
> the Unisites, anyway), and I/O functions.
>

Well, for me, I would have no problem with the software part of it. I've
programmed low level devices many times on the computer and I have a fairly
good grasp of it(well, its been a while since I've done a lot of it but it
should come back quickly). The main problem I have is that I don't have
much experience with digital electronics. I've been reading a lot about it
lately trying to learn as much as I can and it seems pretty damn easy
actually. I just figured that it might be interested to try and make my own
programmer that can handle many different types of chips. I just can't see
it being that complicated though if one has the "right tools".

> The Unisite and 2900's are most definitely pin-driver based, and
> the pin driver cards alone are complex enough to make me cringe. Each
> pin driver board (the Unisites have 17, with each board capable of
> driving four pins of the programming sockets) has a customized CPLD on
> it in an 84-pin PLCC package, and enough logic and discrete components
> that it looks like a tiny city under a magnifier.
>

Well, the way I see it is that one doens't need to have a "pin driver card"
for each set of pins(4 in your example)... why? because only 4 or so pins
are used on any chip. So in this example one would only need one pin driver
card. That is, only if the 4 pins that are used to program the chip are in
line and fixed... this is why I asked about a "permutation" device. If one
can take say, 40 arbitrary pins, and reorder them so the programming pins
are also pins 0-4(or 0-8 or whatever) then one could just use 1 pin
driver(or 2 if one supports more pins)...

Theres another way I was thinking too.

Say you have n pins on your chip, you could serially transfer from your
serial port data so that the data is grouped in n bits. the first bit goes
to the first pin, the second bit to the second pin, etc...

so one would just have to run the serial interface from the computer
n*faster and maybe have some sample and hold circuit on each pin so that it
runs smooth. There would be a device to convert the serial data into
parallel data on the "programmer" simply by grouping the bits into groups of
n bits and then "dishing them out" to the proper pins.

Seems like it would be quite simple to do and one would have access to all
the pins in the software(one would just have to pack the bits properly and
deal with the real problems(I guess timing and maybe some others) that might
exist).

Again, my whole goal is to see how much can be done in the software. If I
can get it all done in the software then its pretty easy to do. The hardware
is what I'm worried about since I don't have a lot of experience with it(I
might just have to go ahead and play around at first with some MCU's to get
an idea of what it takes).

>> heres a quote of how to program the PIC16C84
>
> <snip description>
>
> Coordinating all those pin transitions and data flow is one very
> good reason why PIC programmers are either inexpensive, and dedicated
> solely to PIC chips, or universal and a lot more expensive.

I don't see why it should be that hard? Specially not something that would
cost more than a new car(for some programmers).

>
>> 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
>
> They don't. Every single manufacturer uses different algorithms
> and pin levels to program their chips. Algorithms from Intel, for
> example, would be worthless (and probably even damaging) to a PIC chip,
> and vice versa.
>


Algorithms = software?
pin levels = programming voltage levels... most MCU's fall withing 1.8 to 18
volts, right? Even if I had to manually select the proper voltage using a
selector switch and to which pin it went wouldn't bother me much. I don't
care much about speed or efficiency.

> The bottom line: Good programming hardware is a tool. An
> investment. Treat it as such, bite the bullet, and shell out the bucks
> for a unit that meets your needs.
>
> HOWEVER -- this does not necessarily mean you have to shell out
> thousands for the latest/greatest stuff. I bought my hardware used, at a
> fraction of what DIO wanted for it new.
>
> Also, I've seen Advin 'Pilot MVP' programmers (really outstanding
> units, actually) go on Ebay, brand new, for around $500 (they're
> normally $900 or so), and they have free software updates for life.
>
> Such a unit will most certainly read/program any PIC chip you may
> choose to play with (though you will need an adapter if you want to do
> something other than a DIP package), not to mention a whole raft of
> other memory and logic devices. If I were shopping for a second
> programmer, I'd go with an MVP in a heartbeat.
>
> Happy hunting.
>

True, but for example, I saw a programmer for 300$ that only programmed
8-bit chips ;/ WTF is that? So I'd have to have to get a new programmer if
I wanted to move to 16 bits? then a new one for 32-bits? or just buy one
that does them all for 1000$+?

I might end up just getting some chips and hacking the programming of them
for now just to get something done.... or I'll build one of those specific
programmers that have schematics online until I learn more about all the
complexities

>
> --
> Dr. Anton T. Squeegee, Director, Dutch Surrealist Plumbing Institute.
> (Known to some as Bruce Lane, ARS KC7GR,
> kyrrin (a/t) bluefeathertech[d=o=t]calm -- www.bluefeathertech.com
> "If Salvador Dali had owned a computer, would it have been equipped
> with surreal ports?"

Thanks,
AD


.


Loading