Please note as of Wednesday, August 15th, 2018 this wiki has been set to read only. If you are a TI Employee and require Edit ability please contact x0211426 from the company directory.
Flash 101 for C2000
- 1 Introduction
- 2 Electrical Specifications
- 3 Other Resources
- 4 Frequently Asked Questions
This wiki page is dedicated to presenting general terminology associated with using the internal flash memory of the C2000 MCUs.
For frequently asked questions regarding flash programming and the API please see C2000 Flash Common Issues/FAQs
Electrical specifications can change between devices, peripheral types and device families. Always refer to the data manual and errata for a particular device for Electrical Specifications.
The following apply to C28x devices:
- Understanding Flash Programming (sprb169)
- Flash Programming Solutions for the TMS320F28xxx (spraal3)
- Running an Application from Flash (spra958)
- Serial Flash Programming of C2000™ Microcontrollers(sprabv4)
- Copying Compiler Sections from Flash to RAM on the TMS320F28xxx DSCs (spraau8)
- TMS320F281x Boot ROM Serial Flash Programming (spraaq2)
For specific Piccolo or Delfio API information please refer to controlSUITE (www.ti.com/controlsuite) in the controlSUITE\libs\utilities\flash_api directory.
Frequently Asked Questions
Q: What is a sector?
- A flash bank is divided up into sectors. A sector is the smallest section of flash that can be erased. For example, you can erase all of sector 'A' but you can not erase a single word in sector A.
Q: Where are sectors documented?
- See the flash information in the data manual for your particular device.
Q: Can I define a sector to a size I like?
- A sector corresponds to a physical chunk of the memory block. It is the smallest amount that can be erased From this standpoint you can not redefine a sector. You can, however, combine sectors in your linker command file to create a larger .text section. This will not change the fact that a sector is the smallest amount that can be erased. Please see: C28x Compiler - Understanding Linking
Erase and Program
Q: What does erase do?
- The erase algorithm gradually removes charge until all of the bits within a flash sector read back 1’s.
- Flash comes from the factory in an erased state.
- The erase algorithm sets all the bits in a sector to 1.
- The minimum amount of memory that can be erased at a time is a sector.
- Erase operates on Flash only. OTP cannot be erased.
Q: What does program do?
- Program puts your application code and/or data into Flash by gradually depositing charge on specified bits until they read back 0.
- Program CANNOT move a bit from a 0 to a 1.
- Program operates on both Flash and OTP.
- Program operates on single bits with a 16-bit block.
Q: What is Depletion?
- If the erase operation is interrupted and not allowed to complete, the device may become depleted. When this happens, the device may then begin to fail to erase. The erase algorithm should not be stopped, as this can also affect the CSM password.
- The Flash API has a depletion recovery function to try to recover flash that has been "over-erased". Please see C2000 Flash Common Issues/FAQs