Melabs manual says
Flash program writes must be enabled in the configuration for the PICmicro MCU at device programming time for ERASECODE to be able to erase.
Have you done this when programming the pic?
Melabs manual says
Flash program writes must be enabled in the configuration for the PICmicro MCU at device programming time for ERASECODE to be able to erase.
Have you done this when programming the pic?
I have looked high and low but cannot see where this is set.
What exactly is this called and where can I find it?
(I have the U2 Programmer with version 4.51.)
Last edited by Zebryk; - 17th May 2015 at 00:17. Reason: Additional Info
its in the hardware configuration registers (fuse settings)
shown here with default pbp values (no code protection )WPFP = PAGE_0
WPCFG = OFF
WPDIS = OFF
WPEND = PAGE_WPFP
it does help if you post you whole code (in code tags) not just snippets, and include what version of pbp used
Richard,
I tried your suggestion but it did not work.
As my whole code is >73,000 characters it will not post.
I am using PBPX 3.0.7.4
The PIC is a PIC18F27J13.
Is my syntax / technique correct?
Thanks,
what syntax ? at no stage have you posted the relevant config fuse settings you have employed.
why not make a small pgm to test the idea
Richard is asking about config settings where watchdog timer, crystal mode, write protect, etc are all set, and what you are doing there.
The program looks right to me tho I have not used it. Except the output doesn’t absolutely verify what was written, only what read back.
Code:verifya var type ' byte or word verifyb var type ' verified var bit ' EraseCode $1800 ' Whole Block of 4 Words $1800 to $1864? EraseCode $1900 RadioID = RadioID + 1 RadioCH = RadioCH + 1 WriteCode $1803, RadioID ' Writes to 4th Word in Block WriteCode $1903, RadioCH ReadCode $1803, verifya ' Reads from 4th Word in Block ReadCode $1903, verifyb verify = 1 if verifya != RadioID then verified = 0 if verifyb != RadioCh then verified = 0 if verify = 1 then hserout2["RadioID: ", dec RadioID, 13,10] hserout2["RadioCH: ", dec RadioCH, 13,10] else hserout2[“It’s broken :(",13,10] endif
Each PIC controller has different page size that you can WRITE to.
For example if your chip has 64 words page, then you have to read all 64 words, change what you want, then write back the whole 64 words page.
It is a bit clumsy but that is how it works. You cannot change only the words you really want. And if you write less tat the page size, then data will not be written!
So, my suggestion is to make an array, get the page form Flash, make the changes, then store back to Flash the array.
Ioannis
Bookmarks