I'm trying to understand how to dump a flash device myself without using a universal programmer.

I have this chip S29GL032N90TFI040, I also have TSOP48 socket The datasheet specifies the table of the device bus operations (page 17):

In SPI flashes that I dumped before the datasheets of the SPI flashes had its specific and easy to understand command for reading data, for example [0xB] [A1] [A2] [A3] [Dummy byte] [Dummy byte] [Dummy byte], after this command the SPI flash would spit out its contents from address [A1][A2][A3] until CS# was LOW, After looking in the datasheet of S29GL032N90TFI040, I didn't see the commands that are needed to be sent in order to retrieve data from this flash, only the table of device bus operations, which specifies the device bus operations pins but not the command that is needed to be sent or the ordering (there is a read operations timing image in page 65, but it is still not enough information for writing a programmer for this specific chip.)

My questions are:

  1. How can I find out the specific command that is needed to be sent, the order of the command, the number of bytes that will be retrieved from the input address?

  2. What Arduino like board is recommended and have enough pins to program TSOP48 chips?

Note: I know there are Universal Programmers that will make my life easy, But I don't like easy.

Thanks. Device bus operations


1 Answer 1


It would appear the S29GL032N does not have a (serial) SPI interface. It is access using (parallel) address and data lines. There appears to be 21 (A0 - A20) address lines available on the '32 version of the chip. And 16 (DQ0 - DQ15) data lines. This will be problematic for most Arduinos as most Arduinos do not have 37 GPIO lines.

  • \$\begingroup\$ So which board will not have problems with dumping this flash? Also did you figured out how the reading works? What should I send to read bytes from it and in what order, and what is the indication that the chip starts to send data? I didn't understand how the communication works. \$\endgroup\$
    – Kikapi
    Feb 24, 2017 at 14:25
  • 1
    \$\begingroup\$ This memory chip has is a parallel interface. You set the address pins and the data will likely appear on the data pins. There are no "commands". I think you are confusing this memory chip with its serial port counterparts. \$\endgroup\$
    – st2000
    Feb 24, 2017 at 16:03
  • \$\begingroup\$ which board have 37+ gpio lines? \$\endgroup\$
    – Kikapi
    Mar 1, 2017 at 20:41
  • \$\begingroup\$ The Arduino Mega appears to have 54 digital input/output pins. Unfortunately, it appears your memory chip is a 3volt device and the Mega is a 5volt device. So you would need to do a bit more research into how to interface with a 3volt part. Or find a similar Arduino which runs at 3volts. \$\endgroup\$
    – st2000
    Mar 2, 2017 at 1:33
  • \$\begingroup\$ Thanks, btw how it is possible that 32Mbit==2^22 bits but the chip has only 2^21 addresses? \$\endgroup\$
    – Kikapi
    Mar 9, 2017 at 0:31

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.