- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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