S29GL064N90BFI03 autoselect mode

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

cross mob
Anonymous
Not applicable

Now that I can write to the SGL-N device I am unable to get it into autoselect mode to grab the device ID. I am able to grab it from the older flash S29AL032D90.

Running the following command returns back the actual data at that location, not the device ID..

*Note that I am running in 8 bit mode.

(*(Uint8 *)baseaddr + 0xaaa) = 0xaa;

(*(Uint8 *)baseaddr + 0x555) = 0x55;

(*(Uint8 *)baseaddr + 0xaaa) = 0x90;

deviceID = (*(Uint8 *)baseaddr + 0x02);

Its supposed to return 0x7e but I am getting data from memory location 0x02.

I ran this on two seperate SGL-N flash.

Cong Do

0 Likes
1 Solution
Anonymous
Not applicable

For completion purposes.

The solution was to run an extra read command. Not sure if because of timing issue but on the second read, I was able to get the device ID.

e.g.

(*(Uint8 *)baseaddr + 0xaaa) = 0xaa;

(*(Uint8 *)baseaddr + 0x555) = 0x55;

(*(Uint8 *)baseaddr + 0xaaa) = 0x90;

deviceID = (*(Uint8 *)baseaddr + 0x02); // Garbage

deviceID = (*(Uint8 *)baseaddr + 0x02); // Device ID

View solution in original post

0 Likes
1 Reply
Anonymous
Not applicable

For completion purposes.

The solution was to run an extra read command. Not sure if because of timing issue but on the second read, I was able to get the device ID.

e.g.

(*(Uint8 *)baseaddr + 0xaaa) = 0xaa;

(*(Uint8 *)baseaddr + 0x555) = 0x55;

(*(Uint8 *)baseaddr + 0xaaa) = 0x90;

deviceID = (*(Uint8 *)baseaddr + 0x02); // Garbage

deviceID = (*(Uint8 *)baseaddr + 0x02); // Device ID

0 Likes