PIC-Programmer 2 for PIC16C84 etc.
Invalid Oscilator Value, or not programming ok?
A lot of people has the problem. Most was able to make it
running by using another computer with more power on RS232.
But I do not beleave that it is because of too low power. I
do beleave that it is something that need to be modified to
make it work with the power that is aviable.
If it works on one computer, and not on another, then it may
be lot of resons for it, and it is no guarentee that it is
caused by too weak ports. First when it has been proved by
using an oscilloscope, or just a multimeter, is it proved.
You should not add external power supply. The circuit has
been designed to not use external power, and a power supply
may cause danger - the chip may latch up, be hot, or even
be destroyed.
Do not use COM84 driver with the programmer. It results in
too low voltage because COM84 is based on using TxD for
powering, and not for using DTR, RTS. Use only jdm84 or some
of utilities to program PIC16C84 or PIC12C508. Do only use
new version of PIP02 to program PIC12C508, and remember to
enter the value read at 1FF in the data to program. Address
at 1FF contains the oscilator calibration value, and it is
programmed when you recive the chip. The calibration value
need to be typed in the programming data to not cause an
error.
To be sure, if the voltage is high enough, try to messure
the voltage across C2 and C3, when DTR, CTS is low, and TxD
high. To pull TxD high and CTS, RTS low, use debug:
O3FB 43 - Break, TxD high (2FB if port 2)
O3FC 0 - DTR and RTS low (2FC if port 2)
Verify that voltages is high on TxD and low on DTR, RTS.
When connecting the programmer, messure the voltage across
C2 and C3. The voltage on C2 is typical 13V while it is 5V
across C3 when no chip in the socket. When it is a chip
inserted, and when programming, then the voltage fall a bit.
The typical current used by PIC12C508 is less than 3.5mA on
Vcc, and less on Vpp.
Try to messure both without any chip, and with a chip in.
If the voltage is too low, then I like to know if it is
better when adding a diode in ground or if if it does no
difference. The diode makes it possible to pull Vss lower,
and then it will not need as high voltage on RS232 signals.
But the disadvance is that it cause the programmer to not
work with programming 24Cxx eeproms. Report if problems,
then it may be corrected.
Try to use testv10.zip too. It test if it is a problem with
reading data. You need a 8-way dipswitch to test it. It has
nothing with too low voltage to do, but tests the wires
only.
Finaly, if you has a PIC16C84, then try to read / write it
by using PICTEST. You should not use PICTEST with PIC12C508
since it may program codeprotect, and then is PIC12C508
destroyed.
If it is sure that it is a problem with programmer, and if
anyone is able to show - then I will see if I am able to
change the programmer, or maybee make a new version that is
much better.
It is a lot of trics to do to make it possible. One is to
make a new programmer that resets to keep the power down. Or
to adjust some small delays in jdm84io.pas, to make RTS, DTR
lower in more time.
But since I not have the problem myself is it very difficult
to modify. It may be the delays in jdm84io that is too
short. It may be problems with too low voltage at RS232. Or
it may be all other problems. Nearly all problems return
with this error. Bad connected wires too. If it not is able
to read any data, then it return the error. If it is too low
voltage - it also returns it.
You need to try messurements above, and then mail it. Do
also mail schema from testv10.zip, and the pictest result.
Then I beleave that I am able to find the problem. If you
has a scope, then I like to know about stability of the
voltages too, but remember that some scopes may be grounded
and cause a problem if not messuring compared to computer
ground.