We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
We are working on at91sam9G20 controller, which is interfaced to AT45DB641E data flash recently AT45DB642D got obsolete. Keil flash programming algorithms are available for AT45DB642D only. AT45DB641E is a 264 page size flash whereas AT45DB642D is 1056 how can I configure/modify the flash programming algorithm to suite for AT45DB641E
Regards Kumar
I am unable to upload flash algorithm (.FLX file) as attachment, Please follow the instructions and create at your end.
make a copy the project \ARM\Flash\AT91SAM9_DF edit FlashDev.c file Add the following lines at the end of file
#ifdef P264_CS1 // Page Size 264 Bytes, Chip Select 1 struct FlashDevice const FlashDevice = { FLASH_DRV_VERS, // Driver Version, do not modify! "AT91SAM9 DataFlash Page264 CS1(45DB641E)", // Device Name EXTSPI, // Device Type 0x20000000, // Device Start Address 0x00840000, // Device Size in Bytes (8.25MB) 264, // Programming Page Size 0, // Reserved, must be 0 0xFF, // Initial Content of Erased Memory 100, // Program Page Timeout 100 mSec 100, // Erase Sector Timeout 100 mSec // Specify Size and Address of Sectors 0x840, 0x000000, // Sector Size 2112 bytes (block = 8*page) SECTOR_END }; #endif #ifdef P256_CS1 // Page Size 256 Bytes, Chip Select 1 struct FlashDevice const FlashDevice = { FLASH_DRV_VERS, // Driver Version, do not modify! "AT91SAM9 DataFlash Page256 CS1(45DB641E)", // Device Name EXTSPI, // Device Type 0x20000000, // Device Start Address 0x00840000, // Device Size in Bytes (8.25MB) 256, // Programming Page Size 0, // Reserved, must be 0 0xFF, // Initial Content of Erased Memory 100, // Program Page Timeout 100 mSec 100, // Erase Sector Timeout 100 mSec // Specify Size and Address of Sectors 0x800, 0x000000, // Sector Size 2048 bytes (block = 8*page) SECTOR_END }; #endif
pass, P256_CS1 or P264_CS1 through preprocessor symbols (present in project options dialog) as required
add the following lines to DFlashHW.c (in the beginning)
// ----------------- Page Size 264, CS1 used ---------------------------------- #ifdef P264_CS1 #define PAGE_SIZE 264 // Size of page #define ADDR_BITS 9 // Bits for addressing inside page #define CHIP_SIZE 0x840000 // Chip size (in bytes) = 8MB #define SPI_PCS_DF SPI_PCS1_DF #define CS_INDEX 1 #endif // ----------------- Page Size 256, CS1 used ---------------------------------- #ifdef P256_CS1 #define PAGE_SIZE 256 // Size of page #define ADDR_BITS 8 // Bits for addressing inside page #define CHIP_SIZE 0x840000 // Chip size (in bytes) = 8MB #define SPI_PCS_DF SPI_PCS1_DF #define CS_INDEX 1 #endif
compile the project, FLX file will be generated copy FLX Files to \ARM\Flash folder restart keil new flash programming algorithm can be seen in flash programming window.