(short version)
Hi all,
I had written a longer post, included below, and I am trying to shorten it now in hope to get some suggestions about my problem with programming a PIC.
I am trying to burn a 16F74 with a Tait like parallel port programmer - unsuccesfully. Used about three different programs, tried stretching the clock signals to up to 2 ms per cycle. Still nothing, it either does not write, or does not read - since it always reads $3FFF from all memory. I finally thought that I could troubleshoot using an application like VBPortTest (http://www.beyond-designs.com/download/VBPortTest/VBPortTest.htm), which allows to pulse individual pins on the parallel port by clicking on them:
**broken link removed**
So i could sort of click through a programming sequence of the 16F74. So by clicking on Data0, Data1, Data2, Data3, I would pulse Data, clock, Vdd and Vpp, and then I would see the state of Data reported back on nAck, and would know whether 16F74 is being programmmed.
The idea is then, by clicking, to raise Vpp, enter a Load data command (6 clock pulses), enter the data contents (16 clock pulses), enter Begin/End programming and then issue Read data (6 clock pulses) - and then in the next 16 pulses I should be able to read the Data pin on the nAck, and see whether the data contents have been entered. The questions are:
- Is this approach possible at all - if not why? (since specs do not specify a max time for a pulse, theoretically it shouldn't matter the prog sequence is entered slow?)
- If it is, how should I set the Data pin on the parallel port (Data0) while during the 16 clock pulses while reading - high or low - so I can read the right contents via nAck (pin 10 on parallel port?)
Basically, my biggest problem now is getting the programmer to run, so any suggestions related to that would be of great help. In that sense, I would also like to ask:
- Are there any hardware peculiarities of 16F74 that prevent me from using the Tait-like (see long post for details) parallel port programmer to burn it?
- I get Vdd=4.9V, Data/Clock high on 4.9V and Data/Clock low on 1.2V. As the specs say that low should be max 0.2*Vdd which is 0,98, and I get 1.2>0.98, could that be a reason the chip is not programmed?
- Does it matter if a programming sequence is executed very slow? Could it help resolve timing problems?
- Is the chip sensitive to how long it is kept under the high programming voltage - is it likely it could get damaged more easily?
- Is there a simple method to do a hardware check (something say involving a multimeter only ) and see if the chip is "alive" and what contents it would have in memory?
- Should both Vdd pins and Vss pins on a 16F74 be short-circuited to the Vdd and Gnd of the programmer, or only one each should be used (like in P16PRO40)?
- Is the LVP pin the same as the PGM pin on the 16F74? Should it be connected to ground via a resistor?
- How critical is the rise time of Vpp to the chip going into programming mode? Are there differences in how software could activate a parallel port pin from low to high, or PC software has no control over that? Or is this a matter of those parallel port modes (EPP, ECP?)
- Is there a measurable signal (say on some pin) on the 16F74 to tell if it has gone into programming mode?
For a detailed description of the situation please see the long post. Thanks for any suggestions you might have.
cheers
Hi all,
I had written a longer post, included below, and I am trying to shorten it now in hope to get some suggestions about my problem with programming a PIC.
I am trying to burn a 16F74 with a Tait like parallel port programmer - unsuccesfully. Used about three different programs, tried stretching the clock signals to up to 2 ms per cycle. Still nothing, it either does not write, or does not read - since it always reads $3FFF from all memory. I finally thought that I could troubleshoot using an application like VBPortTest (http://www.beyond-designs.com/download/VBPortTest/VBPortTest.htm), which allows to pulse individual pins on the parallel port by clicking on them:
**broken link removed**
So i could sort of click through a programming sequence of the 16F74. So by clicking on Data0, Data1, Data2, Data3, I would pulse Data, clock, Vdd and Vpp, and then I would see the state of Data reported back on nAck, and would know whether 16F74 is being programmmed.
The idea is then, by clicking, to raise Vpp, enter a Load data command (6 clock pulses), enter the data contents (16 clock pulses), enter Begin/End programming and then issue Read data (6 clock pulses) - and then in the next 16 pulses I should be able to read the Data pin on the nAck, and see whether the data contents have been entered. The questions are:
- Is this approach possible at all - if not why? (since specs do not specify a max time for a pulse, theoretically it shouldn't matter the prog sequence is entered slow?)
- If it is, how should I set the Data pin on the parallel port (Data0) while during the 16 clock pulses while reading - high or low - so I can read the right contents via nAck (pin 10 on parallel port?)
Basically, my biggest problem now is getting the programmer to run, so any suggestions related to that would be of great help. In that sense, I would also like to ask:
- Are there any hardware peculiarities of 16F74 that prevent me from using the Tait-like (see long post for details) parallel port programmer to burn it?
- I get Vdd=4.9V, Data/Clock high on 4.9V and Data/Clock low on 1.2V. As the specs say that low should be max 0.2*Vdd which is 0,98, and I get 1.2>0.98, could that be a reason the chip is not programmed?
- Does it matter if a programming sequence is executed very slow? Could it help resolve timing problems?
- Is the chip sensitive to how long it is kept under the high programming voltage - is it likely it could get damaged more easily?
- Is there a simple method to do a hardware check (something say involving a multimeter only ) and see if the chip is "alive" and what contents it would have in memory?
- Should both Vdd pins and Vss pins on a 16F74 be short-circuited to the Vdd and Gnd of the programmer, or only one each should be used (like in P16PRO40)?
- Is the LVP pin the same as the PGM pin on the 16F74? Should it be connected to ground via a resistor?
- How critical is the rise time of Vpp to the chip going into programming mode? Are there differences in how software could activate a parallel port pin from low to high, or PC software has no control over that? Or is this a matter of those parallel port modes (EPP, ECP?)
- Is there a measurable signal (say on some pin) on the 16F74 to tell if it has gone into programming mode?
For a detailed description of the situation please see the long post. Thanks for any suggestions you might have.
cheers