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

flash programing

I am using SAB80C535 micro controller and I want to program and external flash and eeprom in both page and byte mode. I am using AT29c256 and AT28c256f from atmel. i would like some guidance form people who have implemented this type of program
thanks

Parents
  • What, exactly, concerns you?

    In really general terms, I'd note that flash sees erase/programming commands as a series of accesses to specific addresses with specific data. If you don't follow the specified patterns exactly, the flash won't execute the command. So, you need to be sure that flash accesses are atomic. You don't want an interrupt handler to insert some other flash access into the middle of your programming sequence.

    Erasing and programming usually takes a significant amount of time. Check your data sheet. You'll need to account for this delay in your design; you may or may not be able to simply block execution while waiting for a write to complete.

    I've had trouble with the toggle bit algorithm that's supposed to signal operation completion on other Atmel parts. Could be just my code, of course, but on my part it seems to quit just a little too early after an erase. I use a timer to wait for the erase to complete instead.

    The AT29c256 datasheet spec's a pretty low number of erase cycles (10,000). That's fine for some applications. But you may want to think about wear levelling.

Reply
  • What, exactly, concerns you?

    In really general terms, I'd note that flash sees erase/programming commands as a series of accesses to specific addresses with specific data. If you don't follow the specified patterns exactly, the flash won't execute the command. So, you need to be sure that flash accesses are atomic. You don't want an interrupt handler to insert some other flash access into the middle of your programming sequence.

    Erasing and programming usually takes a significant amount of time. Check your data sheet. You'll need to account for this delay in your design; you may or may not be able to simply block execution while waiting for a write to complete.

    I've had trouble with the toggle bit algorithm that's supposed to signal operation completion on other Atmel parts. Could be just my code, of course, but on my part it seems to quit just a little too early after an erase. I use a timer to wait for the erase to complete instead.

    The AT29c256 datasheet spec's a pretty low number of erase cycles (10,000). That's fine for some applications. But you may want to think about wear levelling.

Children
No data