Continue to Site

Welcome to our site!

Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

  • Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

P16PRO Programmer problem

Status
Not open for further replies.

bananasiong

New Member
Hi all,
I've been building this programmer for a few weeks, it doesn't work. When I tried to program my PIC16F877A, WinPicProgBeta showed this message: 'Program Verify Error at Program Address 0x000'. I've also checked the hardware wiring by toggling them (Vpp, Vdd, Clock and Data in). My PIC is not spoilt, I've tried to program it by my friend's programmer and software, it is working.

I've read the sticky, maybe I'm bad luck and nothing I can do to make it working?

Thanks
 
OK. Please program some codes into the PIC using your friend's programmer and see if you can read them back using your programmer. Its best if you can borrow another PIC from your friend that has code/data inside it just for READ operation only.

Only if you can READ the data correctly should you starts to program your PIC using your own programmer.

You can also try different programming softwares like WinPic800, WinPic etc....
They all support the P16PRo programmer setup.

Edited: Make absolutely sure that you have not set the "code protection" configuration fuse in your hex file, otherwise you will get that verification error.
 
Last edited:
I'm using 877A, but I see some software doesn't support this, for example ICProg, I can't see 877A in the list.
So, I need to read PIC using my programmer right? If the PIC is empty, all the data is 3FFF right?

Thanks
 
bananasiong said:
I'm using 877A, but I see some software doesn't support this, for example ICProg, I can't see 877A in the list.

Have you checked WinPic and WinPic800? Both support 877A.

bananasiong said:
So, I need to read PIC using my programmer right? If the PIC is empty, all the data is 3FFF right?

Try a READ operation without a PIC in the socket, it still gives you 3FFF so this proves nothing.

What we want is some other data bytes on a good programmed PIC, as this would prove that the communication between the PIC and computer is good. If there are still verification error, then you have to check your programmer power supply for the possibility of high ripple.
 
eblc1388 said:
Have you checked WinPic and WinPic800? Both support 877A.
I haven't tried yet, I've just downloaded WinPic only.

Try a READ operation without a PIC in the socket, it still gives you 3FFF so this proves nothing.
Yea, I got what you mean ;)
What we want is some other data bytes on a good programmed PIC, as this would prove that the communication between the PIC and computer is good. If there are still verification error, then you have to check your programmer power supply for the possibility of high ripple.
How to check whether there is ripple or not? Oscilloscope?

Thanks
 
I've tried to program with my friend's programmer with simple LED flashing program. But I failed to read by using my programmer. When I read it back using my friend's programmer, i can see the code.
 
Whichever software you use, make sure to select the 877A. One of the big differences between A and non-A microcontrollers is the programming algorithm.
I suppose that your your friend selected the 877A.. didnt' he? By the way, I think that PIC is supported by all the software programmers you listed.
 
Last edited:
bananasiong said:
I've tried to program with my friend's programmer with simple LED flashing program. But I failed to read by using my programmer. When I read it back using my friend's programmer, i can see the code.

This indicates that your programmer hardware has problem or not properly setup or there is communication trouble between PC and programmer.

First, you need a setup file for WinPic to tell WinPic which signal(s) you are using to communicate with the programmer. The file that I use has the name "LChung_Parallel.INI" and its content is as follow:

If you need to know more about what each line means, clicks "HELP on LPT Interface" on the WinPic Menu.

Code:
[Info]
Purpose=Setup for the parallel port

[ProgrammerControlLines]
DataIn=bsy
OkButton=nc
VppOnOff=D2
VddOnOff=!D3
Connect=nc
ClockOut=D1
DataOut=D0
PullMclrDown=nc
DataOutWhileReading=1
ClkEnable=nc
OutEnable=nc
RedLed=nc
GreenLed=nc

You cannot use this setup file as is because you need to use the correct signal input/outputs of your programmer which is different from mine. Just copy/paste the code above and create a new text file with INI extension. Edit the file with proper signal bit names(e.g. D0 or D3 etc...) used in your own programmer and save it to the WinPic directory. Then select to use it in WinPic.

Connect up the programmer to PC parallel port and power up the programmer. Start WinPic software.

Inside WinPic, there is a menu Tab for "Interface", with several tick boxes under the "Interface Test" section on the left.

With no PIC in the socket, place a voltmeter between 0V and check each of the following pins(Vpp, Vdd, Clock and Data out) in turn, while ticking a box repeatedly, with a tick a voltage should be presented and gone when there is no tick. Check that the level is correct, Vpp=13V and others = +5V.

Now I need to say more about the "Data(to PIC)" tick box. You'll notice there is a "Data In = 0" under it which has no tick box associate with it. It don't. The level is suppose to change together when you clicks the "Data(to PIC)" box. You must get this right for the programmer to work. If it appears to be not changing or changes in reverse, then you have to edit the above setup up INI file to make it changes together with correct polarity.

If any of the above tests failed, try to find out the reason why. If it appears to be reversed, (ie. voltage without tick and voltage gone with a tick) then you have to add the "invert, ! symbol" before that signal name in the INI file.

If all else fails, you can select "SLOW mode" at the bottom right of the WinPic interface type menu to check out whether this is caused by the timing of your computer.

Good luck.
 

Attachments

  • WinPic_Setup.png
    WinPic_Setup.png
    17.3 KB · Views: 212
Last edited:
Hi,
Thanks for the information. I've read the LPT interface tutorial, but I still can't figure out what does the code mean.
If I use WinPicProgBeta, do i need these setting?

Thanks
 
Status
Not open for further replies.

Latest threads

New Articles From Microcontroller Tips

Back
Top