Replace EEPROMs with FLASH Memory from Scratch

Поделиться
HTML-код
  • Опубликовано: 27 авг 2024
  • 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/slu...
    Picture of EPROMs by yellowcloud:
    www.flickr.com...
    commons.wikime...
    Licensed under the Creative Commons Attribution 2.0 Generic license
    creativecommon...

Комментарии • 71

  • @justrandom7214
    @justrandom7214 2 года назад +2

    Massivly underrated channel...

    • @slu467
      @slu467  2 года назад

      Thanks for pointing this out ;-)

  • @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!

  • @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 :-)

  • @1malditoPerro
    @1malditoPerro 10 месяцев назад

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

  • @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...

  • @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 Год назад

      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

  • @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.

  • @UpcycleElectronics
    @UpcycleElectronics 3 года назад +1

    Awesome upload!

    • @slu467
      @slu467  3 года назад

      Thanks for the visit

  • @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 :)

  • @Pax-Z80
    @Pax-Z80 Месяц назад

    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?

  • @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...

  • @mlann2333
    @mlann2333 10 месяцев назад +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  10 месяцев назад +1

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

    • @1malditoPerro
      @1malditoPerro 10 месяцев назад

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

  • @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.

  • @faristabakovic147
    @faristabakovic147 Месяц назад

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

  • @promods1457
    @promods1457 3 года назад +4

    He talks like the GreatScott

  • @hassanzahin1534
    @hassanzahin1534 3 года назад +2

    Awesome

    • @slu467
      @slu467  3 года назад

      Glad you like it!

  • @BoostedNW
    @BoostedNW 6 месяцев назад

    Where's the C code for the console app?

  • @rjameslower
    @rjameslower Год назад

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

  • @scome98
    @scome98 4 месяца назад +1

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

    • @slu467
      @slu467  4 месяца назад +1

      Just follow the links in the description...

  • @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 😃

  • @StevenSherman-kr4xm
    @StevenSherman-kr4xm Год назад

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

    • @slu467
      @slu467  Год назад +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 Год назад +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 Год назад

      @@slu467 good news, got the programmer working.

  • @mtechzervis5071
    @mtechzervis5071 Год назад

    I request sir, how to flash ec,io sio like svod and vertyanov laptop with 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 :-)

  • @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

  • @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 Год назад

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

  • @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

  • @mtechzervis5071
    @mtechzervis5071 Год назад

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