Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
06/02/08 18:58
Modified:
  06/02/08 21:22

Read: times


 
#155414 - but, Gary, we HAVE been talking about it...
Responding to: ???'s previous message
http://www.8052.com/forum/read.phtml?id=155313 in the "addendum"
http://www.8052.com/forum/read.phtml?id=155317
http://www.8052.com/forum/read.phtml?id=155391

It is a relatively smart approach from Temic/Atmel to make the flash quasi-byte-programmable, together with the relatively small FLASH page (block, sector - the terminology is not established) size.

The following is the description of what happens when you use the program byte or program block IAP call: After an appropriate SFR bit is set, and a MOVX is performed, the programming hardware internally reads (caches) a FLASH page into which the MOVX address falls, into an user-inaccessible RAM array of 128 bytes and latches the high address. Subsequent writes go into this cache and don't modify the latched high address (this is why attempts to write beyond the page boundary end up in circular writes into the same page). Then, when the programming sequence is activated setting the appropriate SFR bits, the page in question gets erased and then rewritten by the content of the cache.

Here are also the caveats of this process:
- due to the full erase/reprogram cycle is performed for each programming, byte or partial page write take always the same, relatively long, time (milliseconds, as compared to microseconds for a write to a previously erased FLASH in the Philips chips)
- a single byte write wears the whole page, i.e. counts into the total endurance of the whole page

JW

List of 19 messages in thread
TopicAuthorDate
Now I can't get "Erase Block" to work, 89C51RC2            01/01/70 00:00      
   PLEASE, pretty please            01/01/70 00:00      
      Atmel 89C51RC2-UM Erase Block            01/01/70 00:00      
         if there is no prefix on the chip...            01/01/70 00:00      
            FLIP says it is an AT89C51RC2            01/01/70 00:00      
         Oh, everybody remembers all previous posts,            01/01/70 00:00      
            Well I remember all of yours! :)            01/01/70 00:00      
   why wouldn't be that?            01/01/70 00:00      
      Have I misinterpreted the documentation?            01/01/70 00:00      
         WHICH documentation?            01/01/70 00:00      
            BAD documentation!            01/01/70 00:00      
               oh, THAT one IS bad indeed!            01/01/70 00:00      
   I'd say this the reason why erase does not work...            01/01/70 00:00      
      No erase is needed, why did I think it was?            01/01/70 00:00      
         but, Gary, we HAVE been talking about it...            01/01/70 00:00      
            I know, I have been missing that            01/01/70 00:00      
               when I came accross IAP for the first time...            01/01/70 00:00      
   Not How - but the Before/After            01/01/70 00:00      
      Run In Simulation            01/01/70 00:00      

Back to Subject List