This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

AT89C51 HSB Security Bits

Hi,

I am trying to unlock the security on a AT89c51 processor to call subroutines in external flash.

When I do an LCALL from internal flash and a RET from external flash, the processor reboots. I have MOVX from the internal flash bootloader 0x22 to a specific external location, and can verify that it is there.

The LCALL is to this external 16-bit address.

In the data sheet the manufacturer, Atmel, sets the default level of security to level 4 no external code execution is possible.

I have built a parallel programmer and have successfully read the security bytes.

When I try to perform a chip erase, as discussed in some application notes, the erase doesn't occur.

I provide these voltages on the corresponding pins:
Pin 44 VCC 4.96V (H)
Pin 10 RST 4.45V (H)
Pin 30 P2.6 4.96V (H)
Pin 31 P2.7 0.7mV (L)
Pin 18 P3.6 0.4mV (L)
Pin 19 P3.7 151.7mV (L)
Pin 22 GND 0.1mV (L)
Pin 32 PSEN 0.1mV (L)
Pin 33 PROG 4.92V b4 program pulse (H)
Pin 35 EA/Vpp 4.48V (H)

I am running a 6MHz XTAL.

When I perform a program pulse for >=10mS, the low
voltage level is: 151.7mV.

The data sheet says that the programming voltage is
generated internally from Vcc so I don't provide a
12 volt programming pulse (Although I did give it a try
because the above wasn't working!)

Is there any thing that looks incorrect here?
Do I need to do anything with the address, data pins?
Can I get confirmation of success using the described technique?
Am I totally in left field here????

Thank You.
Sincerely,
RJohn Nesselhauf

0