Recent discussions
We are trying to measure the Sector Erase time for S29GL032N.
We want to know how the Min and Max given in the datasheet (0.5 Sec and 3.5Sec) (Page 70) are mentioned. What are the test conditions and which sectors these readings are applicable?
Show Less
Hi,
Now I use S25HS512T flash chip in our project, and need SDK for the chip of your product.
I have submitted download request, but that request has not been progressed. So I hope you can deal it early!
Thank you!
Show LessHello, I want to use the S29GL512T through SM32F7 and I can't program/erase. In prior’s designs, the board had the memory S29GL128N and now I want to use the new S29GL512T without change the board design.
Thus, the first question is, can I issue the S29GL512T as 128Mbits memory keeping the A23 and A24 pins to no connect? Or is there any other inconvenient?
Then if there is no problem to use S29GL512T, I’ve developing an external loader to program the memory and, as I said, the program/erase doesn't work. I'm not sure what happens, but I suspect the sequence isn't sent successfully because the RD/BY# pin never detects the falling edge. Can you help me and suggest things to check for the program/erase process works?
This is the code for MassErase
int MassErase(void) {
uint8_t mass_erase = 0;
unsigned long polling_counter = 0xFFFFFFFF;
volatile uint16_t status_reg;
NOR_WRITE(NOR_ADDR_SHIFT(BSP_NOR_BASE_ADDR, NOR_MEMORY_16B, 0x555), 0xAA);
NOR_WRITE(NOR_ADDR_SHIFT(BSP_NOR_BASE_ADDR, NOR_MEMORY_16B, 0x2AA), 0x55);
NOR_WRITE(NOR_ADDR_SHIFT(BSP_NOR_BASE_ADDR, NOR_MEMORY_16B, 0x555), 0x80);
NOR_WRITE(NOR_ADDR_SHIFT(BSP_NOR_BASE_ADDR, NOR_MEMORY_16B, 0x555), 0xAA);
NOR_WRITE(NOR_ADDR_SHIFT(BSP_NOR_BASE_ADDR, NOR_MEMORY_16B, 0x2AA), 0x55);
NOR_WRITE(NOR_ADDR_SHIFT(BSP_NOR_BASE_ADDR, NOR_MEMORY_16B, 0x555), 0x10);
do {
polling_counter--;
NOR_WRITE(NOR_ADDR_SHIFT(BSP_NOR_BASE_ADDR, NOR_MEMORY_16B, 0x555), 0x70);
status_reg = *(__IO uint32_t *)(uint32_t)BSP_NOR_BASE_ADDR;
if( (status_reg & 0x80) == 0x80 ) /* Are all devices done bit 7 is 1 */
break;
}while(polling_counter);
#if DEBUG
if ((status_reg & 0x20) == 0x20) {
PRINT_TEXT("Mass erase error");
mass_erase = 0;
} else {
PRINT_TEXT("Mass erase done!");
mass_erase = 1;
}
#endif
return mass_erase;
}
Show Less
We are planning to use Erase Suspend and Resume operations for S29GL032N NOR Flash in our product.
We want to know how much time Erase Suspend command execution will take (min and max values).
This time is not given in the datasheet.
Regards,
Anil Patil
Show Less
您好!
我想向您咨询一个问题:我在使用贵公司S25HS512T flash芯片时,使用candence的qspi控制器对flash芯片进行寄存器配置,可能是由于配置出错,现在本人已无法对贵司的flash芯片寄存器进行读写。
无论我如何配置,所有寄存器读回来的数值都是0xFF,导致存储数据也无法正常读写,目前只能正确读出flash的ID。
请问该问题如何解决,我现在想将flash恢复到出厂默认值,包括寄存器在内,请问该如何操作!
期待您能尽快回复!
谢谢!
Hello!
I would like to ask you a question: when I used your company's S25HS512T flash chip, I used Candence's QSPI controller to configure the register of the flash chip. It may be due to configuration error, now I can no longer read and write the register of your company's flash chip.
No matter how I configure the flash, the value read back from all registers is 0xFF, so the memory data cannot be read and written normally. At present, only the ID of Flash can be read correctly.
May I ask how to solve this problem? Now I want to restore Flash to the factory default value, including the register, may I ask how to operate!
Looking forward to your early reply!
Best Wishes!
Show LessWe are planning to use Erase Suspend and Resume operations during Sector Erase in S29GL032N NOR Flash.
We want to know if there is data available for how much one Erase Suspend and Resume operation will impact on the Sector Erase time (min and max).
Also want to know the device Reliability due to frequent Suspend/Resume operations during Sector Erase.
Regards,
Anil Patil
Show Lesswhere should i connect the exposed pad of WSON 5 x 6 mm package?
I have one doubt regarding S25FL256SAGMFI013 NOR Flash. I am interfacing this with Virtex 7 FPGA. Let me know the supply voltage of SCK pin if I am tie VIO pin to 1.8V?
Show LessCan you please provide the IBIS and Step models for S25FL512SAGMFMR10 ?
We are using NOR Flash in our new product. I want to derive Sector Address as required for Protect/Unprotect function. The below shared code uses few macros for deriving the Sector Address. This code did not share the values of the macros used in this function. Can I get the values for macros used in this function?
SHORT_FLASH_SECTOR_ADDRESS, LARGE_SECTOR_SIZE, SMALL_SECTOR_SIZE
void flashProtectAllSectors( void )
{
Uint32 sectorAddress, saIndx;
volatile Uint16 *p; // flash pointer
// Calculate the sector offset address relative to the flash base address.
// See device datasheet Table 3. S29JL032J Sector Addresses - Top Boot Devices
for( saIndx=0; saIndx<71; saIndx++ )
{
// Note that "sectorAddress" is the sector's starting address. Values
// calculated here are as given in the aforementioned Table 3,
// column "(x8)Address Range" 000000h (SA0) through to 3FE000h (SA70)
if ( saIndx < ( ( SHORT_FLASH_SECTOR_ADDRESS & 0x3F0000 ) >> 16 ) )
{ // 32 KWords
sectorAddress = saIndx*LARGE_SECTOR_SIZE;
}
else
{ // 4K Words
sectorAddress = SHORT_FLASH_SECTOR_ADDRESS;
sectorAddress += ( saIndx - ( ( SHORT_FLASH_SECTOR_ADDRESS & 0x3F0000 ) >> 16 ) )*SMALL_SECTOR_SIZE;
}
// Device datasheet Figure 2 - In-System Sector Protect sector algorithm.
flashProtectSector( sectorAddress );
// Feedback.
printf( "Sector Protected %d \n\r", saIndx );
}// for all sectors SA0 through SA70
printf("Boot sector protect complete. Ensure 12VDC has been removed from RESET#.\n\r");
printf( "...\n\r" );
printf("\n\r");
/**NOTE NOT SHOWN --> SYSTEM PAUSED HERE TO REMOVE RESET# Vid 12VDC BEFORE PROCEEDING**/
// The 12VDC shall have been removed from RESET# at this time.
// Reset the flash (FLASH_START_ADDRESS 0x90000000)
p = ( Uint16* )FLASH_START_ADDRESS;
resetFlash(p);
} // flashProtectAllSectors
Show Less