Tait Serial Programmer
Hi dude i'm new to pic programmer and having some question regarding to the tait classic programmer you posted. In the picture you posted, there are two 7407 at the left hand side, the bottom one label with 13, and 12. What are these two number refer to?
Tait Serial Programmer Schematic
The 12 end should connect to where?? Sorry i'm abit confused with those numbering. And is all those grounding to the same pin? Can all ground point connect to the parallel port's ground(pin 18-25)? This programmer support 16F84A right?
Isnt it need a crystal to function? I saw from some site, they using crystal sometimes. Getting confused sorry for my bad english.
Click to expand.The number refers to the pin number of 7407 IC. This IC is a 14-pin IC and inside it has 6 buffers, each taking up two pins as input and output pin respectively.
6x2 = 12 pins and the remaining two pins are positive 5V and 0V(Ground) connection pin. So you really need a single 7407 IC to build the circuit. Just connect the pins with the correct pin numbers shown in the schematic. The pin 12 is not connected to anywhere and left unconnected as the buffer is not used in the circuit, a spare one, so to speak. The configuration word/bit has nothing to do with the programmer.
Do this, you need the Tait T2000 Trunked Programming Application, running on a PC. Connector at the serial port end. To program the Tait radios, the.
It is a certain non-volatile 'memory area' inside the PIC to store important information related to its operation. It defines among other things how your PIC is being clocked in your project. You can have the options of using crystal, resonator or simply a R-C combination for the clocking, but you have to tell the PIC what to use first. You can do that in several ways. You can setup up the configuration fuses/bits in your ASM or high level program, or you can manually select/change them inside the programming software just before you 'burnt(program)' the PIC. The details of the configuration fuses are listed on page 21 of the 16F84a datasheet. Note: you can not change the configuration bits when the PIC is running, you will need to erase the PIC and do a reprogram if changes is required.
Make your own PIC programmer for your computer's parallel port. This is a variation of David Tait's classic design. It is very reliable and there is good programming software available for free. I like IC-Prog and PICpgm programmer. Best of all, it uses just two voltage regulator and 5 transistors!. I added a pic of the final result, and pics of my new mini-programmer with a clear top.
Click the smaller images below!. This is a new variation and it didn't work 100% correctly on the first attempt. I guess I got ahead of myself. I have built several variations, and I thought I was on top of things.:) There are a couple of changes, but everything worked out in the end. I had to add an additional npn transistor and change a couple of resistor values. These changes are already reflected in this list, but are not updated in all the pics.
See step 7 for pics of the software I use and how to set up the programmer. You need: A male DB25 socket 4x NPN transistors, such as the 2n3904 1x PNP transistor, such as the 2n3906 1x 7805 voltage regulator 1x LM317 voltage regulator (and appropriate resistors to make 12.5V) 1x 10k SIP resistor network 4x 10k resistors 1x 22k resistor. update for step 3 1x 5k resistor 1x 1k resistor. update for step 3 1x machined-pin chip socket soldering iron, protoboard, wraping wire, wrapping tool, glue gun. Make an ICSP port with part of a chip socket, like this. Carefully bend the pins at a right angle. Now glue port down.
Now is also a good time to glue your transistors on. You can also solder the emitter of your npn transistors to the ground plane, now.
I have labelled each transistors purpose here. The three npn transistors will be wired as inverters.
They will essentially 'take power away' from their respective pullup resistor when a current is placed onto their base pin. The PNP transistor (upside down) will control the programming voltage. It is also going to invert it's signal.EDIT: I just realized an omission in this design.
There should be one additional npn transistor that is used to drive the PNP transistor. This will buffer your computer port from the voltages at the pnp's base. This will also uninvert the signal. I used 10k base resistors. Solder where circled. I messed up the pnp transistor in this pic.
Disregard the whited out area.EDIT: the base resistor for the 'data in' tranny should be 22k. Also, data out tranny should not be pulled up with the 10k resistor network. Instead, pull it up with a 1k resistor. I just realized that these two resistors will form a voltage divider, and if each is 10k data high will be 2.5V. (Alternatively, you could just leave things the way they are, but connect Data Out transistor's collector to all remaining 5 10k pullups. This makes the divider 2/10, which should still suffice. On my particular circuit, that's what I did, and it registers 4.24V as high, which should be enough.) Picture 2: The pnp transistor gets two base resistors wired as a divider.
Solder the 10k resistor between emitter and base. Solder one end of your 5k (actually I used 3.3k cuz I had it lying around) to the base. You can connect collector to Vpp pin, now, since it is close. Eventually, you will be connecting the emitter to 12.5V source. The 10k resistor keeps the base high - thus programming voltage off. When pin 5 of your parallel port goes low, it pulls the base low, via the 5k resistor.
The schemmy I used also showed a 10k resistor between collector and ground. I'm not sure what it's for. I think it is to ensure that the PIC's MCLR pin does not float.
But that would be silly, since MCLR is usually going to be connected to an external pullup, anyway. In addition, MCLR pin is an active sink of a few microamps.
It doesn't float. At any rate, I have recklessly omitted this resistor. Bonus points for anyone who can tell me why this is bad idea.
Pin 2 of the DB25 port is the data out pin. Connect it to the 'data out' base resistor.
The final result: when this pin goes high, the pic's RB7/data pin will receive a low signal. (what's the point of inverting things? A side effect of inverting a signal is that you buffer it, as well. Buffering the signals here, using an external power source, is the whole point of the npn transistors.) Pin 3 is the clock out pin.
Connect it to the 'clock out' base resistor. Picture 2: pin 10 is the data IN pin. Connect this to the pullup resistor of the 'data in' transistor, as seen in blue circles. Pin 5 is the programming voltage pin, or Vpp pin. You will need to add a fourth npn transistor, and connect this line to it's base resistor. The transistor's collector will connect to the 5k base resistor of the pnp transistor.
The emitter will connect to ground plane. In my setup, I chose to make clock bottom, data top, and ground, Vdd, and Vpp inbetween. This is completely arbitrary. The ICSP data pin will connect to BOTH the pullup resistor for the 'data out' tranny AND to the base resistor of the 'data in' tranny.
BLUE circles.EDIT: pull up Data Out with either a 1k resistor, or with all 5 remaining 10k pullups on the resistor network. Using just one 10k resistor will cause data high signal to be divided down to 2.5V. That won't register as high, as CMOS parts running at 5V need about 3.5V to register high. The Vpp pin will connect to the PNP transistor's collector.
The Vdd pin will connect with your network resistor pin 1. ORANGE circles If you want an on/off switch on the programmer, insert it between these points. The ground pin will connect somewhere on the ground strip. The clock pin will connect with the pullup resistor of the 'clock out' transistor. YELLOW circles.
Here's the correction. See next pic. You should have another npn transistor to buffer the port from the potentially hazardous voltages at the pnp's base. This is depicted in the top left. Collector does not attach to a pullup resistor.
The pnp base is already pulled up to Vpp. Emitter is grounded. The collector connects to the 5k base resistor of the pnp transistor. I also show the 10k pull down resistor that I omitted earlier. I still don't know what it's for, though.:) Because you are buffering with the use of inverters, when you use a TAIT compatible programming softare, you will need to go into the programmer settings and invert the clock, data out, and data in. Because you double invert the Vpp line, you will leave it alone. FYI, the original TAIT uses DB25 pin 4 to control Vdd.
I don't like this, because then you can't run your pic from the programmer's power source. I have added a manual switch in some of my other progammers, but it never gets used. Why would you go behind your computer to turn your circuit on/off? I just add a switch to my breadboard/circuit to control Vdd. You have to disconnect power or the icsp cable when not in use, though, so as to avoid shorting power and ground. Pic 1: Just add an on/off switch to the battery, and this programmer is good to go.
If your circuit draws more power than the wimpy battery can handle, add a different power supply between 9 and 12.5V (check if with a multimeter! 12V unregulated usually means 18-20V under low draw - and will kill yor pic). If your nearest wall wart gives more than 12.5V, then you will have to add another voltage regulator. Vsti pack torrent.
OR you could leave the 9V battery connected to the pnp transistor, but disconnect it from the 7805. Then insert your external power source, less than 35V, to the 7805. Well, now that you understand how the programmer works (ya do, right?), you can modify it any way you like from here.
Adding some indicator LEDs might be nice? Pic 2: Smurfy. Shhhh, she's sleeping. Well, adding a socket it ok for 1 type of chip. But this can program a lot of different chips. Many have different pinouts. So I prefer to just leave a port where you can plug in a 5 wire cable.
Anyway, AFAIC the best way to program a DIP chip isn't with a socket. I've tried that. During debugging, you'll end up programming a chip dozens of times. Regular sockets are a PITA to put the chip in and out. ZIF sockets are slightly less of a pain, but they are sorta fragile; they don't last long in my hands, anyway.
I prefer to wire up the programming connections to a breadboard, permanently. It's easier to use than a regular socket, and you can program in-circuit. Another nice thing to use is a chip clip. This it a plastic spring clip that goes over a DIP chip. It is quicker than any socket, and it can do ICSP even on chips that are soldered onto a PCB. Nope, not all.
Theoretically it could program pretty much all chips that can operate at 5V. But in reality, it depends on what the software you are using supports. Back when I made this, I used PicPGM software. Some of the older, more 'obsolete' chips weren't supported, such as the 10F and many of the 12F series chips. And 18F series chips were also not supported. But most all the recent 12F and 16F series flash chips were supported.
This includes a good variety of 8 pin, 14 pin, 18 pin, 20, 28, and 40 pin chips. But if you used a different software, you might be able to program different chips. I think the other one I used was called WinPic, or something. Using that software, you could program a good bit of the 18F series.
Nowadays I use Microchip's PicKit2 programmer, so I'm not really up on the latest free programming softwares.:) More Comments Post Comment.