Problem att programmera PIC18F4431 med PICkit2 *LÖST*

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
Chribbe76
EF Sponsor
Inlägg: 1167
Blev medlem: 17 januari 2004, 22:43:17
Ort: Stockholm

Problem att programmera PIC18F4431 med PICkit2 *LÖST*

Inlägg av Chribbe76 »

Jag har gjort ett kretskort med en ytmonterad PIC18F4431.
När jag programmerade den första gången finns det en risk att jag hade write protect och read protect på, det hela blev lite förvirrat. :humm:

Jag lödde bort(knipsade bort) kretsen och lödde fast en ny och denna gång är jag säker på att config-bitarna var ok.
Kretsen hittas av PICkit2 men jag får verifieringsfel när jag programmerar den, alltså exakt samma problem som den första Picen.
Om jag kör read så får jag bara 0-or in, därav verifieringsfelet.
Jag har provat att programmera den med både MPLAB och PICkits egna program, båda är senaste versionen.
Jag har fört över senaste firmware till PICkit2.

Jag har pullup till MCLR genom en diod som rekommenderat och jag har provat att programmera kretsen med både "target power" och "PICkit power".

[EDIT]
Jag har provat att programmera om en annan Pic så PICkit2 verkar må bra.

Om kretsen hittas måste väl det betyda att kommunikationen fungerar och programmering-spänningen är ok eller kan det finnas något fel som gör att kretsen ändå inte går att programmera?

Lite info som kan hjälpa er att hjälpa mig:

Kod: Markera allt

Initializing PICkit 2 version 0.0.3.63
Found PICkit 2 - Operating System Version 2.32.0
Target power not detected - Powering from PICkit 2 ( 5.00V)
PIC18F4431 found (Rev 0x2)
PICkit 2 Ready

Programming Target (2009-08-15  12:15:28)
PIC18F4431 found (Rev 0x2)
Erasing Target
Programming Program Memory (0x0 - 0xF)
Programming Program Memory (0x18 - 0x97)
Verifying Program Memory (0x0 - 0xF)
PK2Error0027:  Failed verify (Address = 0x0 - Expected Value 0xEF2E - Value Read 0xFFFF)
PICkit 2 Ready





   Address    Value   Field              Category                          Setting             

   300001      06   OSC     Oscillator                        HS-PLL enabled freq=4xFosc1      
                    FCMEN   Fail-Safe Clock Monitor Enable    Disabled                         
                    IESO    Internal External Switch Over ModeDisabled                         
   300002      06   PUT     Power Up Timer                    Enabled                          
                    BODEN   Brown Out Detect                  Enabled                          
                    BODENV  Brown Out Voltage                 4.2V                             
   300003      24   WDT     Watchdog Timer                    Disabled                         
                    WDTPS   Watchdog Postscaler               1:4                              
                    WINEN   Watchdog Timer Window             Disabled                         
   300004      3C   PWMPIN  PWM Output Pin Reset              PWM outputs disabled upon RESET  
                    LPOL    Low-Side Transistors Polarity     PWM 0, 2, 4 and 6 are active high
                    HPOL    High-Side Transistors Polarity    PWM 1, 3, 5, and 7 are active high
                    T1OSCMX Timer1 OSC                        Low Power                        
   300005      9D   FLTAMX  FLTA Mux                          FLTA input muxed with RC1        
                    SSPMX   SSP I/O Mux                       SCK/SCL, SDA/SDI and SDO are mux w/ RC5, RC4 and RC7 respectively.
                    PWM4MX  PWM4 Mux                          PWM4 output muxed w/ RB5         
                    EXCLKMX TMR0/T5CKI EXT CLK Mux            TMR0/T5CKI external clock input is multiplexed with RC3
                    MCLRE   Master Clear Enable               MCLR Enabled, RE3 Disabled       
   300006      80   STVR    Stack Overflow Reset              Disabled                         
                    LVP     Low Voltage Program               Disabled                         
   300008      0F   CP_0    Code Protect 00200-00FFF          Disabled                         
                    CP_1    Code Protect 01000-01FFF          Disabled                         
                    CP_2    Code Protect 02000-02FFF          Disabled                         
                    CP_3    Code Protect 03000-03FFF          Disabled                         
   300009      C0   CPB     Code Protect Boot                 Disabled                         
                    CPD     Data EE Read Protect              Disabled                         
   30000A      0F   WRT_0   Table Write Protect 00200-00FFF   Disabled                         
                    WRT_1   Table Write Protect 01000-01FFF   Disabled                         
                    WRT_2   Table Write Protect 02000-02FFF   Disabled                         
                    WRT_3   Table Write Protect 03000-03FFF   Disabled                         
   30000B      E0   WRTC    Config. Write Protect             Disabled                         
                    WRTB    Table Write Protect Boot          Disabled                         
                    WRTD    Data EE Write Protect             Disabled                         
   30000C      0F   EBTR_0  Table Read Protect 00200-00FFF    Disabled                         
                    EBTR_1  Table Read Protect 01000-01FFF    Disabled                         
                    EBTR_2  Table Read Protect 02000-02FFF    Disabled                         
                    EBTR_3  Table Read Protect 03000-03FFF    Disabled                         
   30000D      40   EBTRB   Table Read Protect Boot           Disabled                         
Senast redigerad av Chribbe76 15 augusti 2009, 19:02:02, redigerad totalt 1 gång.
H.O
Inlägg: 5919
Blev medlem: 19 mars 2007, 10:11:27
Ort: Ronneby

Re: Problem att programmera PIC18F4431 med PICkit2

Inlägg av H.O »

Har du både Vdd/Vss och AVdd/AVss anslutna?
Jag hade problem med 18F2431, jag körde iofs med PICStart+ så det är möjligt att mitt problem snarare var med PICStart+ än men kretsen i sig - men i alla fall. I hjälpfilen för PICStart+ stod det att man skulle sätta ett motstånd på 1k mellan pin7(AVdd) och pin11(RC0) (på 28-pinnars). Det visade sig också att andra med liknade problem lyckades programera dom efter att monterat en extra bypass-konding tvärs över matningsbenen direkt på chippet. Men som sagt, det var med PICStart+....
Användarvisningsbild
Chribbe76
EF Sponsor
Inlägg: 1167
Blev medlem: 17 januari 2004, 22:43:17
Ort: Stockholm

Re: Problem att programmera PIC18F4431 med PICkit2

Inlägg av Chribbe76 »

AVss är ansluten till Vss och just nu är AVdd inte ansluten, den kommer dock anslutas till en ref-spänning senare.
Jag förstår inte logiken med att ansluta AVdd till RC0, har du en länk till det dokumentet?
Jag har en 100nF konding nära kretsen så det borde vara bra.
H.O
Inlägg: 5919
Blev medlem: 19 mars 2007, 10:11:27
Ort: Ronneby

Re: Problem att programmera PIC18F4431 med PICkit2

Inlägg av H.O »

Har du MPLAB installerat så hittar du ReadMe-filen för PICStart+ i typ:
C:\Program\Microchip\MPLAB IDE\Readmes\Readme for PICSTART Plus.htm
The following is a list of known problems. For information on common problems, error messages and limitations, please see “Troubleshooting” in the online help file for PICSTART Plus (hlpPSPlus.chm).

Some devices require that a 0.1uF bypass capacitor be placed from the VDD pin to the VSS pin of the device to successfully program the device. Also, pin 7 must be shorted to pin 20 (VDD to AVDD). If programming failures still arise, try increasing this value incrementally to a maximum of 10uF. A low ESR capacitor such as a tantalum is recommended. The parts affected are:

PIC10F220 PIC10F222 PIC16F737 PIC16F747
PIC16F767 PIC16F777 PIC18F2220 PIC18F2320
PIC18F2410 PIC18F2420 PIC18F2455 PIC18F2480
PIC18F2510 PIC18F2515 PIC18F2520 PIC18F2525
PIC18F2550 PIC18F2580 PIC18F2585 PIC18F2610
PIC18F2620 PIC18F2680 PIC18F4220 PIC18F4320
PIC18F4410 PIC18F4420 PIC18F2331 PIC18F2431
PIC18F4331 PIC18F4431 PIC18F4455 PIC18F4480
PIC18F4510 PIC18F4515 PIC18F4520 PIC18F4525
PIC18F4550 PIC18F4580 PIC18F4585 PIC18F4610
PIC18F4620 PIC18F4680 PIC18F4682

For devices such as the 18Fxx31 which have power supply (Vdd and AVdd) and ground (Vss and AVss), all pins must be used in order for these devices to program.
Och i hjälpfilen, hlpPSPlus.chm :
PICSTART Plus Limitations for PIC18F2331/2431
All power supply (Vdd and AVdd) and ground (Vss and AVss) pins must be used in order for these devices to program. PICSTART Plus will handle Vdd, Vss and AVss properly, but you must place a 1kOhm resistor between Pin 7 (AVdd) and Pin 11 in the socket with the device for proper operation. There are other devices that may require the use of all power supply and ground pins. Consult the datasheet if an unexplained programming problem occurs, such as inconsistent programming.
Som sagt, detta gäller ju PICStart+ men extra avkoppling och framför allt att ansluta bägge paren med Vdd/Vss är nog värt ett försök.
Användarvisningsbild
Chribbe76
EF Sponsor
Inlägg: 1167
Blev medlem: 17 januari 2004, 22:43:17
Ort: Stockholm

Re: Problem att programmera PIC18F4431 med PICkit2

Inlägg av Chribbe76 »

Ha, det funkade! :tumupp:
Tack H.O!

Jag drog en tillfällig kabel från Vdd till AVdd och slängde in en 1µF konding mellan AVdd och AVss.
Kondingen kanske inte behövdes för det ska ändå sitta en 1µF konding vid spännings-ref-kretsen men nu är det dubbelt.

Frågan är nu om det fungerar att programmera kretsen när jag löder sp-ref-kretsen(5.000V) och tar bort den tillfälliga kabeln. :humm:

Kan det vara så att det går bättre att programmera kretsen med en bootloader?
H.O
Inlägg: 5919
Blev medlem: 19 mars 2007, 10:11:27
Ort: Ronneby

Re: Problem att programmera PIC18F4431 med PICkit2 *LÖST*

Inlägg av H.O »

Se där ja....
Vågar inte svara på om det fungerar med ref-kretsen men kan den leverera lite ström så 'borde' det ju fungera - du får testa. Kan du inte använda AN2/AN3 som ref-ingångar annars?

På PICStart+ skulle man sätta ett motstånd mellan pin7 och pin11 för att 28-pinnars varianten skulle gå att programera pin7 är Avdd på 28-pinnarskapseln medans pin11 är AVdd på 40-pinnars kapseln. Jag tror att PICStart+ felaktigt lägger 5V på pin 11 även för 28-pinnars-varianten och eftersom det fungerar med 1k där så borde din sp-ref inte behöva kunna ge så många mA för att det skall fungera.

Sen vet jag inte hur det blir om det är 'stor' skillnad mellan Vdd och AVdd.... Som sagt, du får testa.

Kan inte svara på om det fungerar bättre med en bootlader heller tyvärr. Jag programerar iofs själv mina 18F2431 med bootloader men jag har matningspinnarna ihopkopplade på kortet så jag vet faktiskt inte. Jag råkade alltså ut för problemet när jag skulle programera bootloader-stub'en i PIC'en från början....
Användarvisningsbild
Chribbe76
EF Sponsor
Inlägg: 1167
Blev medlem: 17 januari 2004, 22:43:17
Ort: Stockholm

Re: Problem att programmera PIC18F4431 med PICkit2 *LÖST*

Inlägg av Chribbe76 »

Det fungerade med ref-kretsen så jag är nöjd.
Jag skulle dock vilja veta om det fungerar med en lägre spänning på AVdd men det är inte mitt problem just nu iaf.
H.O
Inlägg: 5919
Blev medlem: 19 mars 2007, 10:11:27
Ort: Ronneby

Re: Problem att programmera PIC18F4431 med PICkit2 *LÖST*

Inlägg av H.O »

Databladet (jag tittade på DS39616B sidan 370) säger att AVdd får vara skilja +/-0.3V från Vdd så skall du ha ref-spänning som avviker från matningspänningen får du antingen sänka matningspänningen eller använda dom dedikerade VRef-ingångarna.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Problem att programmera PIC18F4431 med PICkit2 *LÖST*

Inlägg av sodjan »

> Jag skulle dock vilja veta om det fungerar med en lägre spänning på AVdd...

Än vadå ? Den vanliga matningen Vdd ? Självklart inte.
Och varför skulle du vilja ha det ? Eller är det så att du har
rört ihop AVdd med ref-spänningen, det låter lite så...
Användarvisningsbild
Chribbe76
EF Sponsor
Inlägg: 1167
Blev medlem: 17 januari 2004, 22:43:17
Ort: Stockholm

Re: Problem att programmera PIC18F4431 med PICkit2 *LÖST*

Inlägg av Chribbe76 »

Rört ihop hade jag inte gjort men jag visste inte att AVdd inte får vara lägre än Vdd-0.3V.
Då var det ju tur att jag inte valde 4.096V på AVdd. :)
Vref+ är upptagen i det här fallet så AVdd måste helt enkelt agera refspänning.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Problem att programmera PIC18F4431 med PICkit2 *LÖST*

Inlägg av sodjan »

Och anledningen till separata Vdd/AVdd är ju att minska störningarna från de
digitala till de analoga kretserna. Inte för att kunna ha olika spänning på dom.
D.v.s att man kan ha en bättre filtrerad/glättad matning till AVdd än till resten
av processorn, ungefär som som ibland gör med helt separata analoga kretsar.
Skriv svar