Searching \ for 'PIC 16C84 Bulk Erase' in subject line. ()
Make payments with PayPal - it's fast, free and secure! Help us get a faster server
FAQ page: www.piclist.com/techref/microchip/devices.htm?key=16C
Search entire site for: 'PIC 16C84 Bulk Erase'.

Truncated match.
PICList Thread
'PIC 16C84 Bulk Erase'
1999\01\24@112830 by mahfoud rahal

picon face
Hi,

I'm working on a PIC16C84 programmer project. All programming commands
given in DS30189D documentation from Microchip are working fine except
for "BULK ERASE PROGRAM MEMORY" and "BULK ERASE DATA MEMORY" witch are
001001 and 001011 respectively.

For example, in chapter 2.3.1.8 (BULK ERASE PROGRAM MEMORY)
the doc says:
1- Do a "Load Data All 1's" command
2- Do a "Bulk Erase User Memory" command
3- Do a "Begin programming command"
4- Wait 10 ms to complete bulk erase

so, my programmer send:
1- 000010 0111111111111110
2- 001001
3- 001000
4- wait 10 ms

When I read back the chip, no location of the Prog Mem changed,
am'I missing something or is there some mistakes in DS30190D.
Any idea ?

Note: I can do the equivalent operation by writing 3FFF in all program
memory locations but this consumes much more time.

Thanks for your time and attention.

______________________________________________________
Get Your Private, Free Email at http://www.hotmail.com

1999\01\24@143725 by Nigel Goodwin

flavicon
picon face
In message <spam_OUT19990124162727.22841.qmailTakeThisOuTspamhotmail.com>, mahfoud rahal
<.....mahfoud_rahalKILLspamspam@spam@HOTMAIL.COM> writes
{Quote hidden}

I could never get it to work either, eventually someone told me that you
needed to add an extra 'Begin Programming Command' before the 'Erase'
command - this would be at '1.5-' in your numbering scheme above.

This is the routine I use for totally erasing the chips, it's written in
Delphi/Turbo Pascal - same routine works in either. It should be fairly
easy to see what's going on.

Procedure EraseAll;
Var
 i : Byte;
Begin
 {Clear Protect fuse}
 ProgMode(POn);
 Command(LdConf);
 OutWord($3FFF);
 FOR i := 0 TO 6 Do
   Command(IncAdd);
 Command(1);
 Command(7);
 Command(BegPrg);
 Delay(PgmCfg[Current].Settings[DelayTime]);
 Command(1);
 Command(7);
 Command(BegPrg);
 Delay(PgmCfg[Current].Settings[DelayTime]);
 ProgMode(POff);

 {Clear Data memory}
 ProgMode(POn);
 Command(LdData);
 OutWord($3FFF);
 Command(BegPrg);
 Command(ErsDat);
 Command(BegPrg);
 Delay(PgmCfg[Current].Settings[DelayTime]);
 ProgMode(POff);

 {Clear Prog memory}
 ProgMode(POn);
 Command(LdProg);
 OutWord($3FFF);
 Command(BegPrg);
 Command(ErsPrg);
 Command(BegPrg);
 Delay(PgmCfg[Current].Settings[DelayTime]);
 ProgMode(POff);
End;
--

Nigel.

       /--------------------------------------------------------------\
       | Nigel Goodwin   | Internet : nigelgspamKILLspamlpilsley.demon.co.uk     |
       | Lower Pilsley   | Web Page : http://www.lpilsley.demon.co.uk |
       | Chesterfield    | Official site for Shin Ki Ju Jitsu         |
       | England         |                                            |
       \--------------------------------------------------------------/

1999\01\24@162955 by uter van ooijen / floortje hanneman

picon face
I had the same problem. I do not remember what the catch was, but there is
something missing in the uChip documentation and someone on the PicList
gave me the correct hint. Maybe this fragment from the firmware of my
programmer can help. Don't be scared by all the macro's, you can easily
spot the commands to the target PIC.
regards,
Wouter.

command_program_erase
; remove protection
move_const_via_w_to H'03', data1
move_const_via_w_to H'0F', data2
move_const_via_w_to H'0F', data3
move_const_via_w_to H'0F', data4
output_command_const H'00'
call output_data
move_const_via_w_to D'07', count1
increment_loop
call command_increment
decfsz count1, f
 goto increment_loop
output_command_const H'01'
output_command_const H'07'
output_command_const H'08'
call wait_for_target
output_command_const H'01'
output_command_const H'07'
; erase data memory
call reset_target
move_const_via_w_to H'00', data1
move_const_via_w_to H'00', data2
move_const_via_w_to H'0F', data3
move_const_via_w_to H'0F', data4
output_command_const H'03'
call output_data
output_command_const H'08'
call wait_for_target
output_command_const H'0B'
output_command_const H'08'
call wait_for_target
return


----------
{Quote hidden}

1999\01\24@174126 by Jim Robertson

flavicon
face
At 08:27 24/01/99 PST, you wrote:

He he, wish I had a dollar for everyone who has came up against this
problem.  I spent days on it myself.

These days just about everyone uses the "code protection killer" to do a
bulk erase as that seems to work without any hassle.

I do know of at least one person who has got the bulk erase stuff to
work but he has never spilt the beans as to the secret.

Jim



{Quote hidden}

--------------------------------------------------------
Jim Robertson
Email: newfoundspamspam_OUTpipeline.com.au

http://www.pipeline.com.au/users/newfound
--------------------------------------------------------

1999\01\25@075043 by Caisson

flavicon
face
> Van: mahfoud rahal <@spam@mahfoud_rahalKILLspamspamHOTMAIL.COM>
> Aan: KILLspamPICLISTKILLspamspamMITVMA.MIT.EDU
> Onderwerp: PIC 16C84 Bulk Erase
> Datum: zondag 24 januari 1999 17:27
>
> Hi,

Hello mahfoud,

{Quote hidden}

Yes.  It's a problem MicroChip does not have the solution for ... I talked
with the person who wrote the article & asked him to check it.  He
recommended to use the "Erase protected code" method.  You don't have to.
Just exchange steps 2 & 3.  It does not make sense, but it works.

> Note: I can do the equivalent operation by writing 3FFF in all program
> memory locations but this consumes much more time.

And it is counted as a full programming-cycle.  So a full
Erase-and-programming step will count as _two_ programming steps, chopping
the number of times you can re-program your EEPROM in HALF !

> Thanks for your time and attention.

You're welcome.

Greetz,
 Rudy Wieser

More... (looser matching)
- Last day of these posts
- In 1999 , 2000 only
- Today
- New search...