Dear Srdjan:
AT89C52 is fully compatible with Intel MCS51. I recomend you to read
specficiations for this family from Intel data sheets for critical
specifications.
Memory mapping functionality related to EA:
/EA = High
Microcontroller will execute only code from internal Eeprom, unless PC exceeds
0x1FFF (8K) in which case it will continue to fetch external code.
/EA = Low
Microcontroller will execute, unconditionally, code from external memory. No
matter PC value.
External CODE execution depends on /EA state.
External DATA access depends on special instructions (MOVX, use of DPTR,
etc).
I am not sure but i beleive the /EA pin is a combinational pin. This means it
will change mode at the moment you change the pin state. It's simple to
test this (Put some program to run with internal code, /EA = High, then pull /EA
low, if the program hangs up this means I am probably right, if it continues
running it means you are right).
Be aware that when external CODE is accessed the Memory Read signal is performed
by /PSEN pin.
When external DATA is accessed /WR and /RD are used.
You can put /PSEN and /RD tied to an AND gate and you will have combined code +
data space addressing in one linear space 0 - 64K.
Regards,
Alejandro Deleon
----- Original Message -----
From: Srdjan Ridanovic
To: 8052@8052... ; avrclub@avrc... ; AVR-Chat@AVR-...
Sent: Sunday, February 08, 2004 8:41 PM
Subject: [AVR club] How to use /EA-Vpp pin?
Hi, I'm working on a boot loader project with some SRAM, EEPROM and AT89C52
and I want to ask you guys some things that I coudn't find in any tehnical
spacifications. For instance, if the /EA-Vpp pin is on "1", procesor
will execute program from internal code memory ( in this case 8Kb ) and then
countinu using external memory up to 64Kb ! If the /EA-Vpp is on "0"
procesor will read program code from external memory only ( 0x0000 - 0xFFFF ).
The question is: What will heppn if I change /EA-Vpp pin from "1" to
"0" while the program is executing comands from internal code memory?
( If I change it while internal program is running )
My presupposition is that the program will continue executing code from the PC (
program counter ) address of the external memory code and if it's not right
sincronized it will gone mad. Or it will countinue doing it's program from
internal 8Kb code memory and afther next reset it will start from 0x0000 of
external code memory.
If enyone has some experiance with these things I would be more than
grateful.
Sincerly Srdjan Ridanovic
------
Yahoo! Groups Links
a.. To