pickit3 en 3,3V programmeren

heren, ik zoek jullie hulp,

al jaren programmeer ik de Microchip 16F628A/16F648A mbv een pickit3.
eerder gebruikte ik de WISP en Pickit2 maar de seriele poorten verdwenen vd laptop en de pickit2 raakte defect.

normaal werken mijn 16F-schakelingen op 5V en dat gaat prima, programmeren, herprogrammeren. Tabellen inlezen; allemaal geen enkel probleem.

nu probeer ik eenzelfde 16F op een voedingsspanning van 3,3V te laten werken. Eerder ook gedaan voor een paar ontwerpen en toen (8~10 jaar terug) was dat geen enkel probleem. de details van de WISP en pickit2 ben ik even kwijt maar de microprocessoren bleven programmeerbaar.

nu het probleem; ik ben weer bezig met een 3,3V-schakeling en met de pickit3 kan ik die precies 1 keer programmeren, na het programmeren werkt de software als bedoeld maar bij opnieuw programmeren met de pickit3 gaat het mis;
met de volgende foutmelding:


2022-04-08T20:19:27+0200- Completed loading IPE.


*****************************************************

Connecting to MPLAB PICkit 3...

Currently loaded firmware on PICkit 3
Firmware Suite Version.....01.40.13
Firmware type..............Midrange

Target voltage detected
Target device PIC16F628A found.
Device ID Revision = 8
2022-04-08T20:20:54+0200- Loading hex file. Please wait...
Loading code from D:\proton\MG Vxx\ontsteking MG Vxx continue vonken.hex...
2022-04-08T20:20:54+0200- Hex file loaded successfully.

2022-04-08T20:20:58+0200- Programming...

The following memory area(s) will be programmed:
program memory: start address = 0x0, end address = 0x6a
configuration memory

Device Erased...

Programming...
program memory
Address: 1 Expected Value: 3000 Received Value: 0
Failed to program device
2022-04-08T20:21:02+0200- Programming failed
Pass Count: 104

Target removed

de processor wordt herkend maar kan niet geprogrammeerd worden.
aanpassen van de spanning naar 3,3V onder het "settings/advanced/power"-menu maakt niet uit.
instellen van LVP_On in picbasic maakt ook geen verschil. Ook niet bij de eerste keer programmeren.

een nieuwe processor erop solderen werkt precies 1 keer maar is een wat dure oplossing.

hoe is dit op te lossen.
mvg Anne

Arco

Special Member

Er zit in de 18 pins pic's een 'quirk': als je programma bepaalde dingen doet direct na opstarten kan hij niet meer geprogrammeerd worden.
(o.a. als de PCG/PGD pinnen als output staan. de Pickit kan dan de pinnen niet manipuleren.)

Dit is simpel te voorkomen door als allereerste begin een delay van 50 of 100mS in te lassen in je programma.

Een 'vastzittende' pic genezen kan ook: https://www.circuitsonline.net/forum/view/message/1719826#1719826
(dit geldt voor het standalone pickit2 (of 3) programma, niet voor die ellendige MPLABx IPE... )

Dit euvel treedt alleen op bij de oude 18 pinners als de 627/28/48(a)

Ander punt om rekening mee te houden: de 16F628A werkt op 3.3v niet op 20MHz (max is 10MHz)

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

Op 8 april 2022 21:11:18 schreef Arco:

Ander punt om rekening mee te houden: de 16F628A werkt op 3.3v niet op 20MHz (max is 10MHz)

klopt, ik heb er 8 MHz op zitten, en dat ook in de software aangegeven

Je kan hem wissen met VDD > 4,5V
Zie parameter D132 in datasheet.
Heeft wat te maken met je config instellingen.
De pickit3 standalone geeft een waarschuwingsvenster als spanning te laag staat voor een succesvolle bulk erase

Arco

Special Member

Erase gaat goed volgens plaatje in starttopic...
Ik zou de standalone GUI gebruiken, veel prettiger/beter/sneller werkend als die IPE zooi...
Standalone: https://ww1.microchip.com/downloads/en/DeviceDoc/PICkit3%20Programmer%…

Spanningen regelt het programma zelf volgens de in de devicefile vermelde waarden. (onafhankelijk van ingestelde spanning)

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

gevonden, kan ook in de sectie ontwerpfouten enz

de pic heeft een brown-out voltage van 3,45V
dus als je de pic op 3,3 V laat draaien dan brown-out in de configsettings op "off" zetten.