View previous topic :: View next topic |
Author |
Message |
edaou
Joined: 07 Jul 2023 Posts: 5
|
Not reading any device code |
Posted: Fri Jul 07, 2023 7:47 am |
|
|
Hi, I'm not sure which information to post So I hope I provide enough relevant info.
I'm using ICD-U64 programmer with the ICD interface.
ICD software version - 5.082
ICD firmware version 3.57
Hardware rev 3
I keep getting the "read" device ID as 0x0 when I should be reading 0x6180 (PIC18F25K80).
There is a rev 1 of the board that I can program fine. This rev2 had no major changes to the wiring of the programmer or any pins on the chip.
I found two things in my schematic that could have affected it:
1. I accidentally wired pin 9 (RA7/ OSC1/ CLKIN) to ground through a resistor. I removed the resistor (making it floating). I am using the internal OSC.
2. I put a small 0.1uF capacitor for Vss (both grounds pins 8 and 19) which I removed and replaced with a 0ohm resistor.
This comes from a reputable board house. The chip has the PIC18F25K80 I/SS printed on it with the microchip logo and a batch number. It doesn't SEEM counterfeit? I tried reinstalling the programmer but I don't think that is the issue because I was able to use it to program the rev1 board.
In the diagnostics area of the ICD interface there is a section "if the device ID is wrong use a DVM to test each pin" and i am able to force MCLR down to VSS and up to VDD. I have not tested the PGD/PGC pins.
Is it possible that when i powered the chip, the capacitor to ground caused a permanent issue? I have one more board left that I can test but i don't want to do anything on it yet since it's my last unadultered board.
Any help is appreciated! Thanks |
|
|
gaugeguy
Joined: 05 Apr 2011 Posts: 303
|
|
Posted: Fri Jul 07, 2023 11:41 am |
|
|
Can you provide a schematic showing what connects to the PIC? |
|
|
newguy
Joined: 24 Jun 2004 Posts: 1907
|
|
Posted: Fri Jul 07, 2023 11:53 am |
|
|
It would be fastest for you to correct the hardware issues on your 2nd board, then attempt to power & program.
Regarding whether the processor is legitimate or not, try rubbing the processor with a q-tip that has been soaked in flux remover. In my experience, the markings on counterfeit parts can be easily removed in this manner. |
|
|
edaou
Joined: 07 Jul 2023 Posts: 5
|
|
Posted: Fri Jul 07, 2023 1:30 pm |
|
|
Quote: | It would be fastest for you to correct the hardware issues on your 2nd board, then attempt to power & program.
|
I already did. I replaced the capacitor to ground with a 0 ohm resistor and i removed the resister for clkin making the pin free floating (my code will drive that pin). It still couldn't read the device ID, unless the device id was corrupted when i powered it on the first time which i doubt.
Quote: | Can you provide a schematic showing what connects to the PIC?
|
I don't know where i can host image to link here but i can verbalize.
1. RA0,1,2,3,5,6,7 are outputs to resistor+led circuit being driving by the PIC
2. RB0,1,2,3,4,5 are inputs with a jumper to ground.
3. RB6 and 7 are PGC, PGD for programming
4. Both Vss (pin 8 and 19) are connected to ground (now)
5. Both Vdd (pin 6 and 20) are connected to 5V Vcc
6. MCLR is connected to VCC with a jumper to ground it to reset.
|
|
|
newguy
Joined: 24 Jun 2004 Posts: 1907
|
|
Posted: Fri Jul 07, 2023 1:56 pm |
|
|
Over the years I've had a number of ICD-U64s stop working/burn out somehow. Try another ICD-U64. If that one can't read the device ID either, then I suspect you either have counterfeit processors or there's something else wrong with the assemblies.
Last edited by newguy on Fri Jul 07, 2023 2:00 pm; edited 1 time in total |
|
|
newguy
Joined: 24 Jun 2004 Posts: 1907
|
|
Posted: Fri Jul 07, 2023 2:00 pm |
|
|
Through the IDE, Tools -> CCSLoad to launch the loader separately from the IDE. Diagnostics tab, 3rd box down "If the device ID is wrong, use a DVM to test each pin." Use the controls to assert each of the pins to different levels and confirm with a voltmeter. If that's okay and you can confirm the pins change state through that control (proper state), then it would seem as though the processor is the problem. |
|
|
edaou
Joined: 07 Jul 2023 Posts: 5
|
|
Posted: Fri Jul 07, 2023 2:04 pm |
|
|
I'm not sure if you read in my original post:
Quote: | In the diagnostics area of the ICD interface there is a section "if the device ID is wrong use a DVM to test each pin" and i am able to force MCLR down to VSS and up to VDD. I have not tested the PGD/PGC pins. |
I am able to change the state of the MCLR pin.
I also don't think something is wrong with the ICD-U64 programmer because i was able to program the original version of the board with the chip using the ICD interface. I also use that ICD-U64 to program other boards with older PICs. |
|
|
gaugeguy
Joined: 05 Apr 2011 Posts: 303
|
|
Posted: Fri Jul 07, 2023 2:27 pm |
|
|
Quote: | 6. MCLR is connected to VCC with a jumper to ground it to reset. |
This does not sound like a proper connection. Could you provide more detail? |
|
|
PCM programmer
Joined: 06 Sep 2003 Posts: 21708
|
|
Posted: Fri Jul 07, 2023 4:01 pm |
|
|
MCLR should have a 10K pullup resistor on it. You said Vdd for the PIC
is +5v, so the pullup should also go to +5v.
When running the 18F25K80 at 5v, pin 6 (Vddcore/Vcap) should be connected
to a ceramic 10 uF, low ESR capacitor. This is in Section 2.4 of the 18F25K80
data sheet. You could substitute a 10 uF tantalum capacitor temporarily.
To post an image, you upload it to a free image hosting service such as:
https://imgbb.com/
Then get the hotlink for it (it will say the link for a forum), and post that here. |
|
|
Ttelmah
Joined: 11 Mar 2010 Posts: 19500
|
|
Posted: Sat Jul 08, 2023 8:09 am |
|
|
As PCM Programmer says, the glaring pin missing in your list of
connections is Vddcore/Vcap.
This is unlike almost any other PIC of similar size. It is a low voltage
chip internally. It runs the CPU at 3.3v. This is generated for you by an
internal regulator, and this must have a suitable capacitor on the
Vddcore/Vcap pin. The chip will not run correctly without it.
This capacitor, must be a low ESR type (ideally a ceramic), and quite close
to the chip (ideally right adjacent to the chip). If running instead from
a 3.3v supply, this pin must instead have it's own 0.1uF capacitor, and
the chip is then programmed with the ENVREG bit turned off.
The chip will not run without this connection. Your verbalized list
omits this pin... |
|
|
newguy
Joined: 24 Jun 2004 Posts: 1907
|
|
Posted: Sat Jul 08, 2023 10:50 am |
|
|
Re: Vddcore/Vcap low ESR capacitor.... Some years back I used a processor from the 18 family (can't remember which one), and I originally placed an 0603 10uF X7R ceramic cap for this connection. The processor behaved so strangely, and in desperation I finally placed a 10uF 1206 package X7R cap. That made it behave.
When it comes to ESR, remember that ESR is inversely related to capacitor footprint with ceramics. The larger the capacitor's physical size, the smaller the ESR. |
|
|
Ttelmah
Joined: 11 Mar 2010 Posts: 19500
|
|
Posted: Sat Jul 08, 2023 11:25 am |
|
|
A very good point. Teeny little capacitors have to throw away 'something'
to get that small size. ESR is a common thing that disappears... |
|
|
edaou
Joined: 07 Jul 2023 Posts: 5
|
|
Posted: Mon Jul 10, 2023 6:53 am |
|
|
I figured out where to host the picture but i can't embed it here. I put two pictures, one is the pinout i CAN program and one is the one i cannot. Vcc on the one i CAN program is 3.3V. this is the link:
https://imgur.com/a/ImUKlSu
The two power pins (VDDCORE/ VCAP (pin 6) and VDD (pin 20)) are connected to Vcc (5V) and a 0.1uF cap to ground.
The previous version of this same board (that I CAN program) only have 3.3V direct to Vddcore/ Vcap / Vdd with no cap to ground.
MCLR is connected to Vcc (5V) and a 10k pullup. The pin is also connected to a jumper so i can short it to ground and reset it (same as previous version of the board)
Is it possible that the 5V is just too much for this PIC? |
|
|
newguy
Joined: 24 Jun 2004 Posts: 1907
|
|
Posted: Mon Jul 10, 2023 7:45 am |
|
|
Chapter 2 of the PIC's data sheet, specifically section 2.4. One of the first lines there recommends reading section 28.3. I'll come back to that.
First bullet point at the top of the second column talks about some devices not having the ENVREG pin (as with your processor), and require a 0.1uF cap on the Vcap/Vddcore pin. Your design has this. Right after that, "The Vdd level of these devices must comply with the "voltage regulator disabled" specification for Parameter D001 in Section 31.0..."
Figure 31-2 shows that the max voltage for such a processor is 3.6V. This is the graph mentioned above.
I encourage you to have a look at section 28.3.
Back to section 2.4, second bullet point in the 2nd column:
"Some devices permanently enable the voltage regulator. These devices also do not have the ENVREG pin."
A PIC18F25K80 can run from up to 5V but requires the 10uF low ESR cap on the Vcap/Vddcore pin. This pin is not connected to the 5V rail for this processor.
A PIC18LF25K80 can only run from a max 3.6V rail but the Vcap/Vddcore pin must be fed the same ~3.3V Vdd as everything else, and in this case it requires a 0.1uF cap, same as for any other Vdd pin.
I suspect that the original board rev, which runs from a 5V rail, uses an F processor.
I suspect that the second board rev, which still runs from a 5V rail, was *supposed* to have an LF part fitted and for the rail to be reduced to 3.3V. Because the board directly connects 5V to the Vcap/Vddcore pin, that processor is now toast, no matter if it's an F or LF variant. |
|
|
gaugeguy
Joined: 05 Apr 2011 Posts: 303
|
|
Posted: Mon Jul 10, 2023 7:47 am |
|
|
Quote: | The two power pins (VDDCORE/ VCAP (pin 6) and VDD (pin 20)) are connected to Vcc (5V) and a 0.1uF cap to ground.
|
You have most likely damaged the processor. From the data sheet:
VDDCORE/VCAP 3 6 P
VDDCORE External filter capacitor connection.
VCAP External filter capacitor connection
Also read section 28.3 On-Chip Voltage Regulator |
|
|
|