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

ADuC 841 possible EEPROM issue

I observed a strange thing when working with ADuC 841 EEPROM - when I access it more intensively, the uP resets itself. The code I am running is quite complex, so I don't want to blame EEPROM right away, but has anybody else experienced similar behavior?
Little more about my code, "access it more intensively" meaning about 50 calls of following function in one batch

unsigned char EE_Save_Float_Data(float fdata, unsigned int page) reentrant
{
        FLOAT ee_data;
        WORD address;

        ee_data.value = fdata;
        address.value = page;

        //normal mode
        ECON = EE_NORMAL_MODE;

        EADRH = address.BYTES.high;
        EADRL = address.BYTES.low;

        ECON = EE_ERASE_PAGE;

        EDATA1 = ee_data.BYTES.DATA1;
        EDATA2 = ee_data.BYTES.DATA2;
        EDATA3 = ee_data.BYTES.DATA3;
        EDATA4 = ee_data.BYTES.DATA4;

        ECON = EE_WRITE;
        ECON = EE_VERIFY;

        return (ECON == 0);
}

From my further experiments, adding delay after each memory operation seems to be helping, same as disabling interrupts (EA = 0) in the whole EEPROM handling function. None of these are however described as necessary in 841 datasheet.

Thank you for any opinion/advice
Petr

0