Jump to content
  • 0

Programming an EEPROM with my Basys2 Spartan 3E board


VeeeHDL

Question

Yes,  I want to program an EEPROM with my Basys2 Spartan 3E board.

Is this possible? I want to dump a few megabytes of data into an EEPROM flash. (Particularly  this 8 pin flash of a "bios chip" of a motherboard:

https://www.winbond.com/productResource-files/Winbond_Serial_Flash_Product Brief.pdf

image.png.e902e361ab01d49eec22fe813611e8db.png

For this project , I am thinking of reading the Bios.bin dump from a FAT32 Flash drive stick and send the data from USB  use my FPGA as a bridge to convert it to what the EEPROM would understand and have a DONE led go high when the process completes.

 

Am I on the right track? Are there any example VHDL codes utilizing reading from flash drive and/or writing to an 8-pin EEPROM block? I have searched for this a lot but no luck. Thanks all for your attention.

 

 

Edited by VeeeHDL
grammar and schematic- rephrasing
Link to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 0

Hi @VeeeHDL,

I have not attempted anything quite like this, but in principle this certainly possible to do. The Basys 2 does not have any on-board RAM like your graphic shows, but it's not strictly necessary.

The main hurdle would be creating the FPGA logic to convert the data stored on the external storage (flash drive, SD card, doesn't really matter) into a format that can be loaded onto the EEPROM and then (presumably) successfully read back and usable by the FPGA or some other system.

I do not think you would be able to set the FPGA Done pin high as that is controlled by the FPGA; though you could certainly designate one of the user LEDs as a "done" indicator.

As for reference materials, Digilent does not have direct materials, though some simple searching online led me to a number of resources that might help get you going; I have not tried any of the materials so I cannot verify any of their functionality. Reading data from USB link, reading from SD card link, EEPROM material link1, link2, link3.

Thanks,
JColvin

Link to comment
Share on other sites

  • 0
On 9/3/2022 at 2:42 AM, JColvin said:

Hi @VeeeHDL,

I have not attempted anything quite like this, but in principle this certainly possible to do. The Basys 2 does not have any on-board RAM like your graphic shows, but it's not strictly necessary.

The main hurdle would be creating the FPGA logic to convert the data stored on the external storage (flash drive, SD card, doesn't really matter) into a format that can be loaded onto the EEPROM and then (presumably) successfully read back and usable by the FPGA or some other system.

I do not think you would be able to set the FPGA Done pin high as that is controlled by the FPGA; though you could certainly designate one of the user LEDs as a "done" indicator.

As for reference materials, Digilent does not have direct materials, though some simple searching online led me to a number of resources that might help get you going; I have not tried any of the materials so I cannot verify any of their functionality. Reading data from USB link, reading from SD card link, EEPROM material link1, link2, link3.

Thanks,
JColvin

Thank you so much,

 

I have one more question:. Can I use the non volatile flash on the FPGA itself? I know that there is XCF02S PROM on the FPGA. Can I use it deviated from its original purpose (instead of holding the bitstream I want it to hold my 256kB .ROM file ) and more importantly, do I have direct access to it ?  Block ram on my fpga is really small and can't hold 256kB of data at one go (72kb of block ram, i.e., very very small). This is really annoying. Basys 3 has flash while basys2 doesn't.

I am thinking about this because usb interface with a usb stick appeared really complex, I don't want to bother with that path.

I can use the volatile fpga memory mode to program my bitstream instead of prom non volatile programming mode, I can live with that.

 

Datasheet for my basys2

https://docs.xilinx.com/api/khub/documents/UOAB20VKtExyleq1j4~Z_g/content?Ft-Calling-App=ft%2Fturnkey-portal&Ft-Calling-App-Version=4.0.26&filename=ds001.pdf&download=true

 

dsheet for the basys3 board that I don't have:

https://docs.xilinx.com/api/khub/documents/2Q1ujx53XGev4neIVdL3hw/content?Ft-Calling-App=ft%2Fturnkey-portal&Ft-Calling-App-Version=4.0.26&filename=ds312.pdf&download=true

 

 

Actually SD card really seems fit for this job. It is also SPI interface. So my job will be read from one and then mirror it to the eeprom.

image.png.94ce26ead2490bdbbc3d3b4b37f12abe.png

 

But I am unsure whether the file system level knowledge will be required here?

Should I format the sdcard as simple fat32, write the source 256kB.rom file  to it and all will be okay, I will be allowed to read it without decryption?

 

Edited by VeeeHDL
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...