I have an SST39SF040-70-4C-PHE 4 M flash memory. I was trying to program it using my Raspberry Pi.

Reading the datasheet Table 7 says:

Vih (Input High Voltage)= 2.0 V and Vihc (Input High Voltage CMOS)= Vdd-0.3 V.

You can find it at page 12 of the datasheet.

It is probably a very stupid question, but why do they specify two input high levels? Does the device recognize HIGH at Vdd-0.3 or 2.0 volts? If I use a Raspberry (only to program it) does the flash recognize a '1' with 3.3 volts or do I need a level translator from 3.3 volts to 5 volts logic?

  • 1
    \$\begingroup\$ Is there a particular reason you want to use this ancient chip, and not a far simpler to work with SPI 3v3 SPI flash? If you need to get data into it for use by something else, that might make sense, otherwise it's not worth the trouble to wire it up. \$\endgroup\$ Oct 13, 2020 at 16:09
  • \$\begingroup\$ I was simply looking for a parallel Memory which I try to program in Python with a Raspberry. It's more for educational purposes than anything else \$\endgroup\$ Oct 13, 2020 at 16:17
  • \$\begingroup\$ There's essentially no reason to use a parallel flash memory today unless you have a situation where it can be directly mapped and executed from, which would not really apply. Or unless you need a gigabit-scale part, but this isn't that. At the very least you'd want to chose a 3v3 supply part you could read back from without level translation, rather than this ancient 5v supply one which would require that. \$\endgroup\$ Oct 13, 2020 at 16:19

2 Answers 2


The normal logic inputs are recognized as a logic 1 if the voltage is above Vih (2.0 volts).

However, CMOS devices often take current from the supply if the input level is not close to the supply rail.

The level at which they specify the standby current when using CMOS level inputs is 100uA(Isb2), but to guarantee that the CE needs to be at Vdd-0.3v.

If you are only using TTL inputs that reach 2.0V they only guarantee 3mA (Isb1).

The device will function correctly logically with either, it is just the standby current that will differ.


It is a CMOS chip with TTL compatible IO levels. It will understand 2V as logic high. Make sure you don't accidentally set the chip to read mode, so that it does not output the 5V supply to the 3.3V IO pins of RasPi.

  • \$\begingroup\$ Good catch! That the chip will output 5 volt logic in read mode make it a very poor choice for use with a pi. Since the user seems to be using it for an original project (vs. trying to write an image into something to transplant into legacy gear) the real solution is to chose a more modern 3v3 part (probably an SPI one, but even if parallel, at least pick one with 3v3 supply) \$\endgroup\$ Oct 13, 2020 at 16:23

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.