Parallel Pic Programmer Problem - Help!

Discussion in 'Embedded Systems and Microcontrollers' started by chileflora, Jul 11, 2009.

  1. chileflora

    Thread Starter New Member

    Jul 11, 2009
    7
    0
    I have a parallel DIY PIC programmer which is similar to a Tait programmer (I do not know any more which exact model it was) and which worked well with some software programmer (I also do not remember which one was it) and which I used to program 16F877A by means of ICSP connector and it has also a base for 18 pin chip (16F84).

    The problem is: it worked fine up to 2007 and I have done several major projects for 16F877. Since then I have given up programming, and now I have to retake to make half a dozen Temperature Dataloggers (based again on 16F877). But the problem is that I can not make the programmer work...

    I have checked all the signals, their inversion, and all seems to be OK.

    I have tried different programming softwares, Winpic, ICProg, Picpg.

    I was not able to program or read 16F877. With one program (Picpgrm)which autodetects the processor, about 50% of the times it gave the correct processor and sometimes it returned the first word of code correctly (i.e. the first code 2805 and then 3fff).

    I have found a 16F84A and put it into the onboard socket. With Winpic I got the following: Sometimes it is possible to program both CODE and DATA, but the system tells me about a verify error at some memory location (for instance at 70h, and from there one all the subsequent codes are off (but not 3ff), sometimes it tells me that programing/erasing failed completely. However, when I read the chip, the CODE always returns as 3FFF, but the DATA seems to be programmed well, returning the correct values...

    I am completely lost, since this behaviour is very strange. The worst is that the programmer worked fine before without any glitches... I have tried it on two different computers (both windows XP), but the result is the same. I suspect that the problem maybe more software related (timing issue, but the cables and the physical setup is exactly the same when it worked fine!), but this is a wild guess...

    ADDITIONAL INFORMATION: I was able to program 16F84A with PICpgm, and it verifies OK; however, when reading I get the first four words of CODE as "FF00 FFFF FFFF FFFF" and then it returns correctly the subsequent words (from 0004, something like 3012 3C18 3E29 3012 etc.) . The EEPROM data seems to read correctly as programmed.


    Can someone help?
     
    Last edited: Jul 11, 2009
  2. SgtWookie

    Expert

    Jul 17, 2007
    22,182
    1,728
    So, we're supposed to guess what's wrong?

    Did you change the settings on your parallel port?

    Did you change operating systems?

    What happened to the program that you USED to use to program the PICs with?
     
  3. chileflora

    Thread Starter New Member

    Jul 11, 2009
    7
    0
    I believe I found finally on the web the programming software which I was using then - PICALLW, with the PRO16 Mode, and with that one it seems that I can program 16F84A on board. However, the ICSP for 16F877 still does not work. I have two 16F877A processors, and none of them seems to work. Now, I do not exclude the possibility that I might have killed them in all these wild attempts to make the darn thing work... I will try to buy some fresh ones. The connector cable is very short, 15 cm, and is the same I used before, so I doubt that it can be blamed.

    I also do not understand why the PICALLW works, and others, like ICPROG, Winpic either do not work at all or work with errors. I am very sure that I set the Parallel Port connector pinout correctly for all of these programming softwares.

    Operating System: I had a complete system crash, so now I have XP service Pack 2, but I think that the previous operating system was also XP (not sure about the service pack).
     
  4. SgtWookie

    Expert

    Jul 17, 2007
    22,182
    1,728
    Before you order more PIC16F877A's, consider looking at PIC16F887's.

    They're much less expensive, similar functionality, and don't require a crystal, as they have a built-in software-selectable clock from 31kHz to 8MHz. However, you can still use a crystal if you need to run at up to 20MHz or need the extra precision.
     
  5. eblc1388

    Senior Member

    Nov 28, 2008
    1,542
    102
    Quote: By c d saunter
    ==========
    Forgot to say - under OS' derived from Windows NT (i.e. NT 3.5, NT4, 2K,
    XP and future) it is not possible to directly access the parallel port,
    this has to be done by a kernel driver, hence the need to install
    something like DLPortIO, which partly exists in the kernel to access the
    hardware, and partly in userland to allow your programs to talk to the
    kernel part.
    ========
    End Quote

    Many of these parallel programmer software were developed in the days of Window98 and thus do not install automatically the required drivers for newer OS and resulted in access problem to the parallel port hardware directly.

    If you haven't installed DLportIO, its worth trying to.

    To test out the software before actually using it to program a PIC, You should place a voltmeter on specific pins of the programming socket and use the programming user interface to toggle manually the logic level to see if the wanted action can really reach the pin. e.g. to switch ON/OFF the 13V programming voltage.

     
  6. chileflora

    Thread Starter New Member

    Jul 11, 2009
    7
    0
    Still having the same problem. Bought new 16F877A, and still can not program them. I have tried pulling RB3 pin to ground, same story. But when I insert 16F88A into the socket it works 100%. I have cut out all connectors on the target board, just leaving the 5 programming connections, same story. The first word in the program is 1683, and on the first read after programming the programmer returns 2B41 as the first word, followed by 3FFF-s, but the strangest thing is that on subsequent reads it returns 3FFF.
     
  7. chileflora

    Thread Starter New Member

    Jul 11, 2009
    7
    0
    I dumped the old programmer and made JDM style, and it apparently works fine with winpic800.

    Question: When clock/data is low, I get a reading of -0.7 and -1 V at the clock/data line with respect to Ground when the PIC is not connected, with PIc connected I get -0.65V. Highs are 4.8 and 5.8 V. It is outside the PIC specifications, could it damage it? Should I maybe put two protective diods (it would lower High to 4.1 and 5.2, and would prevent reverse bias)?
     
    Last edited: Jul 18, 2009
Loading...