0

I have a Raspberry Pi 4 Model B and I want to use it to flash a Coreboot BIOS image to a SPI EEPROM chip (using either flashrom or a program called "spi flash programmer" that is originally made for Arduino). The SPI chip is a W25Q64FW Winbond Chip which is soldered to a Packard Bell EasyNote Laptop with an Acer NB.Y4311.002 motherboard. The chip expects a voltage of 1.8V. Adding pullup resistors to create an external level shifter is not only complicated, but also created a bottle neck for the reading and writing speed of the spi flash programmer program (taking more than 2 hours each time) and negatively influenced the signal quality as shown on the oscilloscope.

Is there any workaround (also weird/rare ones) to make the Raspberry Pi directly output 1.8 V for the SPI chip? I am happy about any hint.

Edit: A unidirectional connection is ok. Regarding the speed, we want to transfer a BIOS image about 8 Mebibytes big. I suppose anything up to 30 min would be acceptable to work with. (We sometimes have to rely on try-and-error, which is hard if every try needs several hours.)

2 Answers 2

2

You indicated "hints" were OK, so here's a hint-but-not-an-answer:

I suspect that there is a way to get 1.8V out of the RPi 4B - but this is only a suspicion. I only read of it a day or two ago, and I've not tried it, nor explored the idea in any detail. The basis for my suspicion may be found in the CM4 datasheet. Reference para 3.3 Electrical Specification:

Please note that Vref is the GPIO bank voltage which must be tied to either 3.3V or 1.8v rail.

Note that the CM4 module is a different platform than the RPi 4B. However, it uses the very same BCM2711 SoC as the RPi 4B, and the "official documentation" on GPIO specifically refers us to the CM4 Datasheet for details on the GPIO voltage specifications. Or, perhaps it may be necessary to purchase a CM4 and associated CM4 IO board to get at this?

Of course, it is entirely possible that I've not properly translated the "official documentation" into proper English :) If no one here in RPi SE suggests anything more substantial, you might post an "Issue" on the RPi firmware GitHub site - some of the staff are very helpful.

If it turns out that my hint-but-not-an-answer is rubbish, then I have one other answer that is very likely more substantial:

A real answer:

I have wasted enormous amounts of time attempting to configure RPi hardware using the tools provided by The Foundation - /boot/config.txt, rpi-eeprom bootloader configuration and so forth. I believe this is due in large part to my background - I am more comfortable with systems ruled by physical laws than man-made (e.g. software) laws. I say all of this only to underscore that a hardware solution may be a more time-efficient solution.

A potentially straightforward solution to your problem may be to use a level-shifter. You're likely familiar with these devices, but here's a brief intro written by TI. This link may suggest some specific TI part numbers that meet your specifications.

One final point: The majority of ICs produced today are in surface-mount packages, and these are not particularly easy-to-use for hobbyists. If you have the inclination, and basic soldering skills, there are generic "breakout boards" for many common SM packages, and if not several vendors will sell you a customised breakout board tailored to a specific IC.

0

The GPIO on the Pi4 is 3.3V.

You will need some external circuitry but without more details it is impossible to suggest what.

It is simple to convert voltage levels - the complexity depends on speed requirements and whether unidirectional or bidirectional is needed.

2
  • Which kind of details should I add to my question, in order to make this more "answerable"?
    – ema
    Jun 15, 2021 at 7:21
  • speed requirements and whether unidirectional or bidirectional also detail of what you want to connect. This is not Pi specific - it is an EE Question. If "Adding pullup resistors to create an external level shifter is … complicated" you won't get enything simpler.
    – Milliways
    Jun 15, 2021 at 7:29

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.