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.

PIC VPP 13v how much current?

Status
Not open for further replies.
William At MyBlueRoom said:
1. What is the minimum and maximum VPP?
in manual it is said that 13+/-0.5
2. are the 16Fxx & 18Fxxx the same VPP voltage?
donno
3. How much current at 13v does the PIC require to be programmed?

very little/insignificant. it is just to enter the programming mode , power is from vcc only
 
1. Manual states Vdd+3.5 to 13.5 (for 16 Series)
2. Nearly. Manual states Vdd+4 to 12.5 (for 18 Series)
Both of the above can be as low as 2V for low voltage programming.
3. Very little on newer chips.

The above is only general and you should check the data sheet. All of the programming specs are available as separate data sheets from microchip.

Mike.
 
Last edited:
yes, newer PICs use an insignificant amount (FLASH-based PICs), it is nothing but a high-impedance input, and Vpp just has to be above some threshold voltage to indicate programming mode. I don't know for sure, but I seem to remember hearing the older PICs used the 13v directly as part of programming the memory, thus the added current draw.

There are some programmers that are USB bus-powered and use a simple capacitor charge-pump voltage tripler to get 13v, and usually they specify that it can only do FLASH PICs, because of the lower current draw (such small charge-pumps are only capable of supplying just a few mA)
 
Wow thanks all for the quick responses, I'm trying to steal power from a MAX232 chips (with 10uf caps for a little more ooomph).

I've added a half wave doubler (thanks to an app note from maxim #669) to the V+ & C2+ and get just a little less than 18v using 1N4148 diodes. I'm looking into using the C2- and V- to convert it into full wave but not sure if I need the extra current. I only want to program newer F series chips, maybe the 16F84 classic would be a good older chip to try it on. Not sure how much current the MAX232 will supply but it's worth a shot.

A 13v zener should do the trick, I needed to know the current to calculate the series resistor.
 
The data sheet for the 18F chips states 300uA for Vpp current and 10mA for Vdd.

Mike.
 
Pommie said:
1. Manual states Vdd+3.5 to 13.5 (for 16 Series)
2. Nearly. Manual states Vdd+4 to 12.5 (for 18 Series)
Both of the above can be as low as 2V for low voltage programming.
3. Very little on newer chips.

The above is only general and you should check the data sheet. All of the programming specs are available as separate data sheets from microchip.

Mike.

Hmm I wonder why everyone uses 13 instead of 12? Is it for the older chips?

I could make a simple 1.5x multiplier and with the 1N4148 diodes it's about 13.5v I could switch in an extra diode or two to bring it down to 12 for the 18F series .

Yup another ICD2 Clone... with a 5v supply...
 
Last edited:
Pommie said:
The data sheet for the 18F chips states 300uA for Vpp current and 10mA for Vdd.

Mike.

Great, that's easy. I can get 1 to 2 ma without effort.
 

Attachments

  • max232 vpp.gif
    max232 vpp.gif
    8.4 KB · Views: 991
Last edited:
as for "older" chips, I believe that the "F" in the part number implies that a PIC uses FLASH memory, whereas the older type would have a "C", so you might have to find a 16C84 or something to test it out on a high-Vpp-current PIC.
 
evandude said:
as for "older" chips, I believe that the "F" in the part number implies that a PIC uses FLASH memory, whereas the older type would have a "C", so you might have to find a 16C84 or something to test it out on a high-Vpp-current PIC.

Not strictly true!, many of the F parts are EEPROM rather than FLASH, but any recent F series chips (either FLASH or EEPROM) will take very little Vpp current anyway. I'm not even sure that the 16C84 takes much?, it was more the OTP chips that required current.
 
Sounds like you'd have to look kind of hard to find a PIC that needed a lot of Vpp current nowadays... which is a good thing, since you won't have to worry too much about whether your programmer can handle it!
 
Some chips, their VPP voltage range with VDD=5v, and comment on "VDD first" or "VPP first" method for placing the device into high voltage program/verify mode.

Code:
;18F242    9.0-13.25 VDD
;18F248    9.0-13.25 VDD
;18F252    9.0-13.25 VDD
;18F258    9.0-13.25 VDD
;18F442    9.0-13.25 VDD
;18F448    9.0-13.25 VDD
;18F452    9.0-13.25 VDD
;18F458    9.0-13.25 VDD

;18F1230 future?
;18F1330 future?

;18F1220   9.0-13.25 VDD
;18F2220   9.0-13.25 VDD
;18F4220   9.0-13.25 VDD
;18F1320   9.0-13.25 VDD
;18F2320   9.0-13.25 VDD
;18F4320   9.0-13.25 VDD

;18F2331   9.0-13.25 VDD
;18F2431   9.0-13.25 VDD
;18F4331   9.0-13.25 VDD
;18F4431   9.0-13.25 VDD

;18F2221   9.0-12.5 VDD (e)
;18F2321   9.0-12.5 VDD (e)
;18F2410   9.0-12.5 VDD (e)
;18F2420   9.0-12.5 VDD (e)
;18F2450   9.0-12.5 VDD (f) check
;18F2455   9.0-12.5 VDD
;18F2480   9.0-12.5 VDD (e)
;18F2510   9.0-12.5 VDD (e)
;18F2515   9.0-12.5 VDD
;18F2520   9.0-12.5 VDD (e)
;18F2525   9.0-12.5 VDD
;18F2550   9.0-12.5 VDD
;18F2580   9.0-12.5 VDD (e)
;18F2585   9.0-12.5 VDD
;18F2610   9.0-12.5 VDD
;18F2620   9.0-12.5 VDD
;18F2680   9.0-12.5 VDD
;18F4221   9.0-12.5 VDD (e)
;18F4321   9.0-12.5 VDD (e)
;18F4410   9.0-12.5 VDD (e)
;18F4420   9.0-12.5 VDD (e)
;18F4450   9.0-12.5 VDD (f) check
;18F4455   9.0-12.5 VDD
;18F4480   9.0-12.5 VDD (e)
;18F4510   9.0-12.5 VDD (e)
;18F4515   9.0-12.5 VDD
;18F4520   9.0-12.5 VDD (e)
;18F4525   9.0-12.5 VDD
;18F4550   9.0-12.5 VDD
;18F4580   9.0-12.5 VDD (e)
;18F4585   9.0-12.5 VDD
;18F4610   9.0-12.5 VDD
;18F4620   9.0-12.5 VDD
;18F4680   9.0-12.5 VDD


;12F508
;12F509
;12F510
;12F629 (*) 8.5-13.5 VPP
;12F635    10.0-13.0 VPP
;12F675 (*) 8.5-13.5 VPP
;12F683    10.0-13.0 VPP
;
;16F505 ID 12.5-13.5 VDD
;16F506 future?
;16F54  ID 12.5-13.5 VDD
;16F57  ID 12.5-13.5 VDD
;16F59  ID 12.5-13.5 VDD
;16F627     8.5-13.5 VDD
;16F627A   10.0-13.5 VPP
;16F628     8.5-13.5 VDD
;16F628A   10.0-13.5 VPP
;16F630     8.5-13.5 VPP
;16F636    10.0-13.0 VPP
;16F639    10.0-13.0 VPP
;16F648A   10.0-13.5 VPP
;16F676     8.5-13.5 VPP
;16F684    10.0-13.0 VPP
;16F685    10.0-13.0 VPP
;16F687    10.0-13.0 VPP
;16F688    10.0-13.0 VPP
;16F689    10.0-13.0 VPP
;16F690    10.0-13.0 VPP
;16F716    11.0-13.5 VDD
;16F72

;16F73     12.8-13.3 VDD
;16F737    12.8-13.3 VDD
;16F74     12.8-13.3 VDD
;16F747    12.8-13.3 VDD
;16F76     12.8-13.3 VDD
;16F767    12.8-13.3 VDD
;16F77     12.8-13.3 VDD
;16F777    12.8-13.3 VDD

;16F785    10.0-12.0 VDD/VPP
;16F818     8.5-13.5 VDD
;16F819     8.5-13.5 VDD
;16F84A
;16F87      8.5-13.5 VDD
;16F870     8.5-13.5 VDD
;16F871     8.5-13.5 VDD
;16F872     8.5-13.5 VDD
;16F873     8.5-13.5 VDD
;16F873A    8.5-13.5 VDD
;16F874     8.5-13.5 VDD
;16F874A    8.5-13.5 VDD
;16F876     8.5-13.5 VDD
;16F876A    8.5-13.5 VDD
;16F877     8.5-13.5 VDD
;16F877A    8.5-13.5 VDD
;16F88      8.5-13.5 VDD
;16F913    10.0-12.0 VDD/VPP
;16F914    10.0-12.0 VDD/VPP
;16F916    10.0-12.0 VDD/VPP
;16F917    10.0-12.0 VDD/VPP
;16F946
 
Last edited:
To 'clarify' this a little bit more?, I've never found a PIC yet that requires Vpp first - the reason behind it being in the specs is that is you apply Vdd first then the oscillator might start BEFORE you can rise Vpp to access programming mode. As long as you apply Vpp VERY shortly after Vdd, then it works fine - exactly the same as other PIC's.
 
Nigel Goodwin said:
To 'clarify' this a little bit more?, I've never found a PIC yet that requires Vpp first - the reason behind it being in the specs is that is you apply Vdd first then the oscillator might start BEFORE you can rise Vpp to access programming mode. As long as you apply Vpp VERY shortly after Vdd, then it works fine - exactly the same as other PIC's.
I've run across devices that would only go into high voltage program/verify mode using the "VPP first" method (using programming hardware and software of my own design).

I recall experimenting for several days (long ago in Dec' 2004) trying to come up with a single 'compromise' method that would work with the twenty or so different devices I had on hand but "no joy" and so I finally added a "vpp method" flag bit to the device tables because using the correct method always worked. Perhaps it had something to do with my hardware/software designs or the particular devices I was testing.

I remember you mentioning this a year or more ago too. At that time I went to your web site, downloaded your programming software, and then realized it only supported a few legacy "F" series devices (something like seven 'flash' devices total at that time? I don't recall exactly).

I'd love to hear comments from other chaps who have designed programming hardware and/or software that supports 12F/16F parts with the "VPP first" specification. Which method are you using? How many of the 12F/16F parts with the "VPP first" specification have you tested?

For reference, I've built three programmers using hardware similar to that below (16F88, 18F258, and 18F2320 versions).

Regards, Mike
 

Attachments

  • PPP-88 #3.jpg
    PPP-88 #3.jpg
    80.3 KB · Views: 1,536
  • PPP-88.JPG
    PPP-88.JPG
    43.7 KB · Views: 746
Mike said:
I've run across devices that would only go into high voltage program/verify mode using the "VPP first" method (using programming hardware and software of my own design).

I recall experimenting for several days (long ago in Dec' 2004) trying to come up with a single 'compromise' method that would work with the twenty or so different devices I had on hand but "no joy" and so I finally added a "vpp method" flag bit to the device tables because using the correct method always worked. Perhaps it had something to do with my hardware/software designs or the particular devices I was testing.

I remember you mentioning this a year or more ago too. At that time I went to your web site, downloaded your programming software, and then realized it only supported a few legacy "F" series devices (something like seven 'flash' devices total at that time? I don't recall exactly).

The supported devices list is at , the asterisked ones are in the latest beta, they all work - but 18F support is somewhat flakey so far (problems with config fuses). But all switch to programming mode fine.

I'd love to hear comments from other chaps who have designed programming hardware and/or software that supports 12F/16F parts with the "VPP first" specification. Which method are you using? How many of the 12F/16F parts with the "VPP first" specification have you tested?

For reference, I've built three programmers using hardware similar to that below (16F88, 18F258, and 18F2320 versions).

Looks nice, do you have it released on a website?.

I don't see any reason for your problem with Vdd first?, unless you're sending seperate RS232 messages to do the switching?, that would probably be too slow for devices with internal oscillators?.
 
Nigel Goodwin said:
To 'clarify' this a little bit more?, I've never found a PIC yet that requires Vpp first - the reason behind it being in the specs is that is you apply Vdd first then the oscillator might start BEFORE you can rise Vpp to access programming mode. As long as you apply Vpp VERY shortly after Vdd, then it works fine - exactly the same as other PIC's.
Yes, the "VDD first" method can be a problem when a target device has been configured with INTOSC enabled and MCLR disabled.

Some older programming hardware/software combinations rely on MCLR being asserted to ground to keep the target device in the reset condition when VDD is applied. But if the target device has been configured with the MCLR function disabled (the MCLR pin is an input) then asserting the pin to ground does not hold the device in reset.

The INTOSC starts up very quickly compared to crystal oscillators. If VDD is applied and the PIC starts executing a program, it simply will not go into high voltage program/verify mode when VPP is applied to MCLR.

Clearly, as Nigel mentions, timing and control is everything. While he has had good results using a very fast "VDD first" algorithm for all of the target devices he has tested, I have not been able to duplicate those results. Again, perhaps it's a difference in hardware or perhaps we're testing different target devices?

Has anyone else had experience in this area?

Regards, Mike
 
Nigel Goodwin said:
The supported devices list is at , the asterisked ones are in the latest beta, they all work - but 18F support is somewhat flakey so far (problems with config fuses). But all switch to programming mode fine.
Happy to see you're supporting more devices but, gosh, that's still a puny list. Where are the 18F' devices from the DS39622F spec' (34 devices including the '2320, '2420, '2520, '2620, '4520, '4620, etc.)?

You can program all 18F' devices with a very narrow set of algorithms compared to the 12F/16F parts. The 34 devices in the DS39622F spec' simply require a new "bulk erase/chip erase" algorithm. Other than that, they use the same read/write/verify algorithms based on an N-byte (up to 64 byte) device dependent "write buffer size" buffer. You need three different "bulk erase/chip erase" algorithms (two if you don't need to support the ******* XX39 devices). A single algorithm for writing data eeprom works for all three variations listed across all the programming specifications. And a single variable N-byte "write" algorithm works for all 18F' devices.

I'd be happy to share/compare notes if you're interested in expanding 18F' support.

Looks nice, do you have it released on a website?.
I have not released the design. I built it to help the folks at melabs find a problem on their serial programmer. The VDD and VPP drivers are virtually identical to theirs and I was able to help them by finding an error in the DS39622 document that prevented '2620 and other devices from erasing properly.

I don't see any reason for your problem with Vdd first?, unless you're sending seperate RS232 messages to do the switching?, that would probably be too slow for devices with internal oscillators?.
I'm controlling the VDD and VPP switching in firmware on the programmer with 200-nsec resolution. Much finer control than I suspect you have by setting or clearing bits on the parallel port from a PC app'.

Perhaps you're "lucky" or you just don't have experience with devices that truly require the "VPP first" method. Or, perhaps there's a problem with my hardware/firmware/software. Time will tell and I'll certainly come back here with apologies when/if I find a problem (grin). Meanwhile, I'm going to assume there's a reason for the spec', since that's the only way if works on some devices for me.

Take care. Have fun. Kind regards, Mike
 
Last edited:
Mike said:
Happy to see you're supporting more devices but, gosh, that's still a puny list. Where are the 18F' devices from the DS39622F spec' (34 devices including the '2320, '2420, '2520, '2620, '4520, '4620, etc.)?

You can program all 18F' devices with a very narrow set of algorithms compared to the 12F/16F parts. The 34 devices in the DS39622F spec' simply require a new "bulk erase/chip erase" algorithm. Other than that, they use the same read/write/verify algorithms based on an N-byte (up to 64 byte) device dependent "write buffer size" buffer. You need three different "bulk erase/chip erase" algorithms (two if you don't need to support the ******* XX39 devices). A single algorithm for writing data eeprom works for all three variations listed across all the programming specifications. And a single variable N-byte "write" algoritm works for all 18F' devices.

I'd be happy to share/compare notes if you're interested in expanding 18F' support.

I would love to, but these days I rarely have time - since my daughter hit teenage I have far less time available than I used to, particularly with her playing in a band! (and me doing the PA).

I have not released the design. I built it to help the folks at melabs find a problem on their serial programmer. The VDD and VPP drivers are virtually identical to theirs and I was able to help them by finding an error in the DS39622 document that prevented '2620 and other devices from erasing properly.

Yes, you have to be inventive with MicroChip datasheets (as with others as well!), mistakes are not uncommon!.

Your programmer design is obviously intended for ICSP!, I notice you have the capability of pulling MCLR LOW as well as HIGH, an essential requirement for ICSP, and it saves having to switch Vdd (at least usually!).

I'm controlling the VDD and VPP switching in firmware on the programmer with 200-nsec resolution. Much finer control than I suspect you have by setting or clearing bits on the parallel port from a PC app'.

Oh yes, far finer :D

No 'suspect' required!, that's the advantage of doing it in a PIC, MUCH closer to the hardware.

Perhaps you're "lucky" or you just don't have experience with devices that truly require the "VPP first" method. Or, perhaps there's a problem with my hardware/firmware/software. Time will tell and I'll certainly come back here with apologies when/if I find a problem (grin). Meanwhile, I'm going to assume there's a reason for the spec', since that's the only way if works on some devices for me.

Yes, it's obviously no problem doing it the other way round, you just need a flag to signify which way to use - my first 'experience' was with the 16F628 (not the A), which isn't a 'Vpp first' chip, but does have the internal oscillator. After problems when using the internal oscillator, I modified WinPicProg to add a variable time setting between Vdd and Vpp, but it's only mS resolution (the best you can really do under Windows).
 
William At MyBlueRoom said:
Mike, in your schematic the ICP pinout is from top to bottom
GND
PGC
PGD
VDD
VPP

I use
VPP
VDD
GND
PGD
PGC

Is there a standard you know of?
Please pick one; (A) No real standards I'm aware of. Or, (B) Everyone has their own standard (grin).

I used a pinout that matches the melabs serial and usb programmers so that I could use my melabs programming adapter board.

You could always use an RJ14 connector for an ICD2 compatible ICSP interface.

BTW, did you happen to notice that a VPP voltage of 12v seems to cover more PIC devices than a VPP voltage of 13v?
 
Status
Not open for further replies.

New Articles From Microcontroller Tips

Back
Top