PIC18F45K50 programmeren probleem

Hallo,

Gebruik makende van PICkit3 en MPLAB X IPE v5.20 heb ik nooit problemen ondervonden om o.a. PIC18F4550 en PIC16F18313 te programmeren.

Nu wou ik voor het eerst PIC18F45K50 programmeren, maar ik krijg steeds volgende foutmelding:

code:


Connecting to MPLAB PICkit 3...

Currently loaded firmware on PICkit 3
Firmware Suite Version.....01.56.00
Firmware type..............PIC18F
Target voltage detected
Target device PIC18F45K50 found.
Device Revision ID = 2
Loading code from C:\Mijn documenten\µC\CNC bovenfrees\8 Stappenmotor drivers - microbasic 7-6\2 Microbasic - motors PIC18F45K50\MyProject.hex...
2020-06-30 22:10:57 +0200 - Hex file loaded successfully.
2020-06-30 22:10:58 +0200 - Programming...


Device Erased...

Programming...

The following memory area(s) will be programmed:
program memory: start address = 0x0, end address = 0x7f
configuration memory
configuration memory
Address: 300006 Expected Value: 81 Received Value: 85
Failed to program device

Wat zou dit probleem kunnen veroorzaken?

Is er iets wat ik bij PIC18F45K50 speciaal anders moet doen dan bij PIC18F4550?

Ik gebruik een externe 5V voeding en high voltage programming.

Met vriendelijke groeten,
Tom

Arco

Special Member

Staat in de datasheet onder 'Special Features'...

Je probeert in CONFIG_4L register (0x300006) het lvp bit te veranderen met de programmer in LVP mode, dat mag niet en dat doet de chip dus ook niet.
Daarvoor moet je de programmer in high voltage mode zetten...

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com

Bedankt!
Ik vind alleen niet hoe ik PICkit3 in MPLAB X IPE v5.20 in high voltage mode kan zetten?

Arco

Special Member

MPLABx gebruik ik helaas (of gelukkig) nooit... ;)
Ik gebruik altijd het standalone programma.

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com

Na updaten naar versie 5.40 is het wel gelukt om dit te wijzigen en de PIC te programmeren.

Ik zou de interne oscillator willen gebruiken en zou USB willen gebruiken.
Volgens de datasheet moet de interne oscillator dan op 16 MHz, 3xPLL en geen clock division. Dit resulteert dan in 48 MHz kloksnelheid voor PIC en USB kan dan op volle snelheid gebruikt worden.

Hieronder vindt u mijn programma en in bijlage de configuratie bits.
Wanneer ik de PIC aanzet gebeurt er niets.

Wat doe ik verkeerd?

code:


program MyProject

main:
OSCCON.IRCF2 = 1
OSCCON.IRCF1 = 1
OSCCON.IRCF0 = 1
OSCCON.SCS1 = 1
OSCCON2.PLLEN = 1

TRISD.5=0

while
LATD.5 = 1
delay_ms(500)
LATD.5 = 0
delay_ms(500)

wend

end.
Arco

Special Member

De inputs zijn default analoog. Betreffende bit in het ANSELD register moet je op '0' zetten.

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com

Na invoegen van ANSELD.5 = 0 gebeurt er nog steeds niets.
Ook niet met externe HS oscillator

Verder doe ik alles hetzelfde als ik bij PIC18F4550 deed.

[Bericht gewijzigd door elektronica op donderdag 2 juli 2020 11:15:15 (25%)

Arco

Special Member

Je hebt ook de watchdog timer aangezet, die blijft resetten als je 'm niet aanstuurt.

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com

Na de watchdog timer uit te schakelen (en ook BOR apart bij uitgeschakeld), werkt het nog steeds niet.

Arco

Special Member

De syntax is ook niet helemaal fris (in zo'n kort programma... ;) )

pic basic code:


While
  LATD.5 = 1
  delay_ms(500)
  LATD.5 = 0
  delay_ms(500)
Wend

wordt door de compiler uitgelegd als iets heel anders:

pic basic code:


While LATD.5 = 1
  delay_ms(500)
  LATD.5 = 0
  delay_ms(500)
Wend

Achter While hoort nog iets te komen. Als dat er niet staat, gebruikt de compiler het eerstvolgende op de volgende regel...
Je zou eigenlijk moeten gebruiken:

pic basic code:


While True
  LATD.5 = 1
  delay_ms(500)
  LATD.5 = 0
  delay_ms(500)
Wend
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com

Dat is het!
Nu werkt hij zowel met interne als externe oscillator.

Hoe ik daarover heb kunnen kijken 8)7
Mijn focus was helemaal op de configuratie bits die verschillend waren van PIC18F4550...

Bedankt!

In bijlage vind je mijn huidige configuratie settings.
Mijn programma zou steeds moeten blijven lopen en resets/pauzes zorgen voor problemen.
Heb ik de configuratie op deze manier juist gedaan om zoveel mogelijk resets/pauzes/... tegen te gaan?

Arco

Special Member

Er zal wel wat anders gammel zijn in je programma. Spontane resets krijg je helemaal nooit als alles klopt...
Post de code eens...

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com