Replace EEPROMs with FLASH Memory from Scratch

Поділитися
Вставка
  • Опубліковано 1 січ 2021
  • In this video I show you from scratch how and why to use parallel FLASH memory as a replacement for EEPROMs.
    Project files on GitHub:
    github.com/slu4coder/SST39SF0...
    Picture of EPROMs by yellowcloud:
    www.flickr.com/people/6379414...
    commons.wikimedia.org/wiki/Fi...
    Licensed under the Creative Commons Attribution 2.0 Generic license
    creativecommons.org/licenses/...
  • Наука та технологія

КОМЕНТАРІ • 71

  • @1malditoPerro
    @1malditoPerro 8 місяців тому

    Thanks for sharing your project. Really needed something like this to reflash and fix a corrupted SST39SF010A

  • @ucmRich
    @ucmRich 3 роки тому +2

    0 . 0 I been hoping to find a video for this :-D i got a million ideas that would be great for this level of vast overall improvements, thanks man ^_^

    • @slu467
      @slu467  3 роки тому +1

      Glad I could help!

  • @justrandom7214
    @justrandom7214 2 роки тому +2

    Massivly underrated channel...

    • @slu467
      @slu467  2 роки тому

      Thanks for pointing this out ;-)

  • @manuelmelguizo5739
    @manuelmelguizo5739 2 роки тому +2

    Dude, you just saved me the 50 bucks a cheap eeprom programmer costs. And I can get the flash from a local store for around 2.50€, no need order from China and wait around. Thank you so much!

    • @slu467
      @slu467  2 роки тому

      Glad you like it :-)

  • @chrisskyr623
    @chrisskyr623 3 роки тому +1

    thanks for this video I am wanting some kind of storage for my projects and I was think to buy eeprom but after this video I searched for flash and I find it cheeper with more capacity Thanks : ) : )

    • @slu467
      @slu467  3 роки тому

      Glad it helps your projects! FLASH opens up a whole new door...

  • @UpcycleElectronics
    @UpcycleElectronics 3 роки тому +1

    Awesome upload!

    • @slu467
      @slu467  3 роки тому

      Thanks for the visit

  • @hassanzahin1534
    @hassanzahin1534 3 роки тому +2

    Awesome

    • @slu467
      @slu467  3 роки тому

      Glad you like it!

  • @NotMarkKnopfler
    @NotMarkKnopfler Рік тому +3

    Interesting video. I tend to use FRAM in my designs. All the benefits of flash, but can withstand literally billions of random-access writes - no flash pages to worry about. All my designs that need to persist data use them via an I2C interface. Simple. They cost more than regular flash, though.

    • @slu467
      @slu467  Рік тому +2

      Thanks for pointing me in this direction. I will look into it.

    • @NotMarkKnopfler
      @NotMarkKnopfler Рік тому +2

      @@slu467 No problem at all. I normally use an 8Kx8bit version, the FM24CL64B-GTR. However, there is a nice 32Kx8 version, the MB85RC256V (Fujitsu). From the datasheet: "The MB85RC256V is an FRAM (Ferroelectric Random Access Memory) chip in a configuration of 32,768 words × 8 bits, using the ferroelectric process and silicon gate CMOS process technologies for forming the nonvolatile memory cells. Unlike SRAM, the MB85RC256V is able to retain data without using a data backup battery. The read/write endurance of the nonvolatile memory cells used for the MB85RC256V has proved to be at least 10 to the 12 cycles, significantly outperforming other nonvolatile memory products in the number. The MB85RC256V does not need a polling sequence after writing to the memory such as the case of Flash memory or E2 PROM."
      You just treat it like simple random access memory - because it is! You never need to worry about write cycles/number of writes. I'm done with Flash! 😀

    • @Kitsuinox
      @Kitsuinox 11 місяців тому

      I thought of doing the same since a serial FRAM would work for storing data to be accessed by an mcu or a cpu, but if you intend to use it to store, let's say, microcode on it then you probably will need a LOT of circuitry just to interface it

  • @AndersNielsenAA
    @AndersNielsenAA 3 роки тому +1

    Ha! I independently designed my own with a Nucleo64-board and made a pcb hat for it - no 595’s needed :)

  • @promods1457
    @promods1457 2 роки тому +4

    He talks like the GreatScott

  • @Pax-Z80
    @Pax-Z80 10 днів тому

    Thank you, I tried to use TommyProm32 drawing, but yours is way more clear and therefore easy to copy. Any chance your pcb is at pcbway in the share factory?

  • @rjameslower
    @rjameslower Рік тому

    But what if I need for 3.3v ? It is better look for another memory? Or level shifter?

  • @paulvanlit
    @paulvanlit 3 роки тому +1

    Third time is a charm; tried to put a question here 2x but it keeps being deleted ?
    I Really like your 'Minimal' and the various concepts that make it. On and of I'm working on a ScottCPU and I have the 29EE010 iso the 39SF010.
    I've tried your Sketch/C++ but have yet to succeed in programming it; It might be the timing, or maybe it is another IC than it states, because I can program it with a TL866II+ only when I turn off ChipID recognition.
    Question is there to your knowledge a reason why I could not use the 29EE010 (with similar program instructions) in the same way you use the 39SF010 in your 'Minimal' as ROM/Flashdrive?
    Thx for any hints, KR Paul

    • @slu467
      @slu467  3 роки тому

      Hi Paul, I do not have any experience with the model you've mentioned. So I can't be of any help here. In any case take a very close look at the datasheet. There should really be everything in it you need no know. Good luck! Let me know how it goes.

    • @paulvanlit
      @paulvanlit 3 роки тому +1

      @@slu467 Ok it was more to check whether I could use that similar built EEPROM the same way as you did with the Flash.
      (even somewhat easier because it does not have to be set from the 1 state start).
      But thx anyway and succes with you great Videos.

  • @stupossibleify
    @stupossibleify 3 роки тому +2

    Always assumed FLASH memory wasa completely different beast to EPROM, beyond the reach of hobbiests

    • @slu467
      @slu467  3 роки тому +1

      Actually it is a lot more versatile and in many cases a much cheaper replacement...

  • @tristunalekzander5608
    @tristunalekzander5608 3 роки тому +5

    Great video, after buying the same flash chip as you to experiment with, I have found that one of the things you didn't mention is despite being faster for writing something a single time and _only_ reading from it, when you need to update that data, if even just a single byte, you need to erase _the entire sector,_ which in your case is 4KB, which takes _18 ms,_ 18 times slower than an eeprom write, right? Not to mention the fact that you'd need to copy that 4KB sector to some other area and then rewrite it back into the updated sector if you don't want to lose what was already in that sector, and then erase the copy. And you've got to write to at least like 4 registers every single time you want to write something even if writing to fresh empty registers. To me it seems the only real advantage of it is that you can re-write the entire chip faster than re-writing to an entire eeprom, so you can test your new code faster. I mean, if the goal is to have a _simple_ yet _independent_ computer that can program itself, I don't see any benefit to using flash, it is actually slower than eeprom in many situations and also way more complicated.

    • @slu467
      @slu467  3 роки тому +1

      Thanks for digging into this! Of cause you are right, but try to buy a standard EEPROM with 512KB for that price ;-)

    • @tristunalekzander5608
      @tristunalekzander5608 3 роки тому +1

      @@slu467 Yes that has since become apparent to me lol I actually can't find any of that size anywhere and the ones that are close are really expensive. The best deal I can find is 64KB for about a dollar a piece, though you have to buy ten of them at a time from Ali-express. Even digi-key has a very poor selection of eeprom.
      I'm currently torn between having a smaller ROM with easier memory management or a larger flash ROM that's way more complicated to use both in design and probably in writing software for it too. I even considered wiring up multiple eeproms with some logic gates to increase their effective size. Though this would be messy and I am too OCD for that haha

    • @slu467
      @slu467  3 роки тому +1

      @@tristunalekzander5608 Hmm, the FLASH I've used does not require any additional design consideration compared to the eeprom. It's just the software thing and that isn't too bad either. Have you seen my video about a "poor man's SSD file system on a FLASH IC"? For me that's the solution.

    • @tristunalekzander5608
      @tristunalekzander5608 3 роки тому +1

      @@slu467 I did not see that video but I just watched it :) you're right it's just extra software you have to write. I'll have to look at the datasheet again as I got overwhelmed when I thought I was understanding it and then I saw something about something getting latched every sixth pulse lol wtf? You have reassured me that it isn't that bad, thank you.

    • @tristunalekzander5608
      @tristunalekzander5608 3 роки тому

      @@slu467 So are you executing from RAM? I'm planning on executing from ROM and I can't see how it wouldn't need new hardware because I don't think you can read in between the flash commands.

  • @mlann2333
    @mlann2333 9 місяців тому +1

    The Flash programmer works fine as long as Windows assigned the Nano a low number com port. My Arduino Nano was assigned com31 as I have loads of other FTDI based devices and prom.exe finds the port but can't open it. I had to reassign it to COM port 1 in device manager for it to work. I think C++ needs some workaround for com port numbers >9.

    • @slu467
      @slu467  9 місяців тому +1

      Had the same problem, too, and couldn't come up with a fix.

    • @1malditoPerro
      @1malditoPerro 8 місяців тому

      com ports greater than 9 need \\.\ prefix is what I read somewhere so it should be referenced as \\.\COM9
      \\.\COM31 etc@@slu467

  • @mtechzervis5071
    @mtechzervis5071 Рік тому

    I request sir, how to flash ec,io sio like svod and vertyanov laptop with arduino

  • @faristabakovic147
    @faristabakovic147 11 днів тому

    How to upload code from flash mamory to arduino or esp32? I mean how to use flash memory as bootloader.

  • @BoostedNW
    @BoostedNW 5 місяців тому

    Where's the C code for the console app?

  • @Evo2920
    @Evo2920 Рік тому +1

    Can I program it with Arduino?

    • @slu467
      @slu467  Рік тому +1

      My little FLASH programmer uses an Arduino Nano 🙂

    • @Evo2920
      @Evo2920 Рік тому

      @@slu467 which one you can recommand it to me as a beginner to start with? I had experience using the Arduino 😃

  • @paulkirchhof9546
    @paulkirchhof9546 3 роки тому

    Did you know a way to create a HDMI Signal with the nano and 512 KB RAM and two Shift-registers? Video 1920x1080 with 60Hz have a Pixel-clock of about 8 MHz if you take a 16Bit Shiftregister. You don’t need a HSYNC or VSYNC. The pixel clock need a RAM with only 60 ns access time. This is my idea because VGA Monitors are not up to date. A good way to have a video signal for a modern 27“ monitor.

    • @slu467
      @slu467  3 роки тому

      Hi Paul, that sounds interesting! I might look into this :-)

  • @scome98
    @scome98 3 місяці тому +1

    Excellent. Where can I find details about prom.exe? I have no clue where to even start sending data without it. :-)

    • @slu467
      @slu467  3 місяці тому +1

      Just follow the links in the description...

  • @ducksonplays4190
    @ducksonplays4190 3 роки тому

    What are then downsides of flash

    • @slu467
      @slu467  3 роки тому +1

      You have to erase them (only possible in blocks) before you can write. Cheers!

    • @ducksonplays4190
      @ducksonplays4190 3 роки тому

      @@slu467 you can read them byte by byte if remember right

    • @slu467
      @slu467  3 роки тому +1

      @@ducksonplays4190 You can read and write these FLASHs byte by byte, but a "1" stays a "1". So basically you have to erase them before writing and this can only be done blockwise. Old-style EEPROMs can also be written byte by byte. Hope this helps!

    • @ducksonplays4190
      @ducksonplays4190 3 роки тому

      @@slu467 it does help and i wonder why most eeproms are slow yet the winbond W27c512-45 is an eeprom that's 45 ns

  • @StevenSherman-kr4xm
    @StevenSherman-kr4xm 11 місяців тому

    Has any one had luck modifying the code to work on the nano every? PIND throws an error.

    • @slu467
      @slu467  11 місяців тому +1

      Hmm, I haven't tried the Every but they say it should be pretty much compatible to the Nano 3.0. I may buy one and experiment a bit though... My code doesn't use any fancy features of the ATmega328... and PIND is sooo standard...

    • @StevenSherman-kr4xm
      @StevenSherman-kr4xm 11 місяців тому +1

      @@slu467 annoyingly while the Every is physically pin compatible with the older Nano, the labeling of pins on the software side is different. Should be a straightforward 1 for 1 translation. I was more surprised it was an issue than too worried about fixing it

    • @StevenSherman-kr4xm
      @StevenSherman-kr4xm 11 місяців тому

      @@slu467 good news, got the programmer working.

  • @rickdearman9992
    @rickdearman9992 3 роки тому +1

    Humm... Looks like it would take a lot of work to get this working on a Linux machine. Or at least a lot of code change. But interesting idea.

    • @slu467
      @slu467  3 роки тому +2

      Hi Rick, I think it should be pretty straight-forward actually, but I am not a Linux expert. It's just the serial communication class that would need some attention. Cheers!

    • @StevenSherman-kr4xm
      @StevenSherman-kr4xm 11 місяців тому

      That's where I'm at now, building out the Minimal and trying to get a workable Nano Every flash programmer going.

  • @mtechzervis5071
    @mtechzervis5071 Рік тому

    please help, I need tutorial flash ec sio kbc laptops like svod and vertyanov

  • @viktorhugo8252
    @viktorhugo8252 3 роки тому

    Great job Wehre can I buy a Non Fake chip?

    • @slu467
      @slu467  3 роки тому

      Thanks! Can you explain 'non fake chips'?

    • @viktorhugo8252
      @viktorhugo8252 3 роки тому +1

      @@slu467 , There are chips Form china renabled with numbers from processors and have Not the correct Function. This are low cost chips with numbers from high cost chips. Called fake chips. Chips with less capacity of the original chip and so on. The seller of this chips are untrustworthy. I need a trustworthy seller.

    • @slu467
      @slu467  3 роки тому

      @@viktorhugo8252 I prefer proven suppliers as well. Let it cost a bit more, that's worth it!

    • @lachyplays3089
      @lachyplays3089 3 роки тому +1

      I get most of my parts from mouser. They only buy stuff from the official manufacturers, so they are super reliable. I’ve never had a fake chip.

    • @UpcycleElectronics
      @UpcycleElectronics 3 роки тому

      @@viktorhugo8252
      I highly recommend watching uploads and conference talks with Andrew "Bunnie" Haung, and maybe look up Ian's old uploads from Dangerous Prototypes (the guy behind the classic Bus Pirate). They often mentioned how the Shenzhen grey market works, the risks, and finding reliable sources.
      The merits of ordering from Mouser, Digikey, Farnell, Arrow, RS, and others, or directly from manufacturers are obvious. The grey market is a vital part of the supply chain for chip fabs, manufacturers, and distributors alike. There's nothing wrong with the parts/chips recycle market either, so long as a policy of full disclosure is maintained. The defacto standard is assume used unless stated otherwise. The vast majority of reconditioned chips are still quite useful when prototyping if one builds the test setups needed to verify good chips. Most of the time, just testing the DMM DC resistance between power and ground pins will reveal most fakes and faults.
      I don't see anyone complaining about the plethora of equivalent grey market test equipment sold at flee markets, hamfests, or on auction/classified listing websites. This is exactly the same, "buyer beware" type of transaction.
      I, for one, love the fact I have access to such an open market despite the risk, but as a partially disabled gimp, my time/value calculation is a bit different than most people. Grey market parts just go in the same drawers as parts I removed.
      -Jake