S29GL01GS - How to Access Complete 1Gbit of the memory?

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Anonymous
Not applicable
  1. Hi, I’m using S29GL01GS parallel Nor Flash, the issue that I’m facing is that I am not able to write the complete 1Gbit , I'm able to write only 512Mbit ,the address mapping is from 0x0000000 to 0x3FFFFFF which is only 512Mbit,datasheet specifies it is 16bit word addressing but the chip takes two address spaces for a 16bit word. How do I access the rest of the Memory?.
  2. After the Complete Chip Erase Command Sequence, I usually wait around 3 minutes before writing to or reading from the chip, Is this normal?
0 Likes
5 Replies
Anonymous
Not applicable

Hi Srujan,

The address mapping 0x0000000 to 0x3FFFFFF is 1Gbit not 512 M bit. Since addressing is x16 eack sector is 64Kwords /128Kbyte.

So 64K*1024 ( sectors) * 16bits ( 1 word) = 1Gbit.

You can determine the status of the erase operation by reading RY/BY#, the Status Register or using Data Polling. Refer to Status Register on page 34 of datasheet for information on these status bits. Refer to Data Polling Status on page 35 of datasheet.It is better to follow any of hte above instead of waiting for 3 min all the time.

Thanks,

Krishna.

Anonymous
Not applicable

Hi Mr.Krishna, thank you for your feedback,

I understood the issue with chip erase,it was helpfull,Thank you.

I have interfaced S29GL01GS with the STM32F4 microcontroller

Here each incremental address points to 1Byte(8bit) and not 1Word(16bit)

so with the last address being 0x3FFFFFF, it points to 67108864th byte.

Is there a way to change the address range from 0x0000000-0x3FFFFFF to 0x0000000-0x7FFFFFF.

so that each address represents a single byte of memory.

Ex.,

say i write 0xAAAA to location 0x0000000

, 0xCCCC to location 0x0000001

,0xFFFF(default) in location 0x0000002

it should be saved as AAAA , CCCC

but the data is stored as 0x8888 in location 0x0000000 which is the AND of 0xAAAA and 0xCCCC.

and if i read 0x0000001 location the data that i recieve is 0xFF88

I would like to share a link

Interfacing STM32 with External 512kx16 SRAM, 8bit data only accessible per one address of RAM

Here the issue is with SRAM, similar to mine.

Thank you.

0 Likes
Anonymous
Not applicable

Hello Srujan,

Q) Is there a way to change the address range from 0x0000000-0x3FFFFFF to 0x0000000-0x7FFFFFF.

so that each address represents a single byte of memory.

A) No there is no way to change the address range. May be You need to configure the FMC to make this work properly. The FMC can be configured to access 8-bit memory, 16-bit memory and 32-bit memory.

Thanks,

Krishna.

0 Likes
Anonymous
Not applicable

flash_1.PNG

Flash_3.png

0 Likes
Anonymous
Not applicable

The FMC is configured to access 16-bit memory,

Capture2.PNG

Pls suggest any changes if necessary..!!

0 Likes