Burn an EEPROM with an 8-bit computer bus

Поделиться
HTML-код
  • Опубликовано: 7 авг 2024
  • Build a DIY programmer for 28C parallel EEPROM with an Arduino Nano and use it to burn an 8-bit Commodore 64 cartridge ROM
    Download free open source EEPROM programmer HERE:
    github.com/trevor-makes/avr-e...
    github.com/trevor-makes/core
    View the assembly code with Compiler Explorer:
    godbolt.org/z/rW3x3navM
    Visual Studio Code: code.visualstudio.com/
    PlatformIO IDE: platformio.org/platformio-ide
    Chapters
    00:00 - Introduction
    01:57 - Breadboard the Arduino
    04:02 - Arduino port I/O
    08:22 - Compiler Explorer
    11:12 - Command-line interface
    13:03 - Breadboard the EEPROM
    14:02 - Coding the bus timings
    17:50 - Faster write with page mode
    18:55 - Import monitor commands
    20:04 - EEPROM escape sequences
    21:09 - Burn a Commodore 64 cartridge
  • НаукаНаука

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

  • @TrevorMakes
    @TrevorMakes  Год назад +2

    RUclips doesn't let me add links in my videos yet. Help me get more subscribers so I can fix it!
    Find the code for this project here:
    github.com/trevor-makes/avr-eeprom-programmer
    github.com/trevor-makes/core
    Check out Compiler Explorer here:
    godbolt.org/z/rW3x3navM

  • @alabamacajun7791
    @alabamacajun7791 11 месяцев назад +1

    I remember when I put a 28C16 EEPROM into my s100 (Explorer) system. That was the game changer of the 1980s when diskettes were still expensive and UV EPROMS were a pain. Trevor you were just in time where I'm about to use wifi and wired IOT boards to from the 8085 and 1802 systems I have. Usagi Electric on YT along with Jame Sharman and Ben Eater have been great inspiration. Love for the Z80 comes full circle.

  • @143HawkBlack
    @143HawkBlack Год назад +4

    Wow, after watching this video, I was astonished to find your channel doesn't have at least a few hundred thousand subscribers, if not millions. Top quality content, and that core library is quite nifty all in it's own right. I deeply enjoy the "no-nonsense" production style akin to Ben Eater, which is always a hallmark of a legendary teaching channel in my book, and a surefire way to gain me as a subscriber. Great work!

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

      Thank you very much! I'm still learning to make better videos more frequently, but I appreciate your support!

  • @jackrubin
    @jackrubin Год назад +2

    Really nice walk through relating hardware setup to code. Thanks!

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

    nice start and inspiration for a more mature product. keep it up!

  • @V-SEC943
    @V-SEC943 Год назад

    WOW learned moe in this video than I have in a decade MANY THANX

  • @Rich-can-do
    @Rich-can-do 4 месяца назад

    I subbed more Z80 breadboard magic pls.

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

    Nice edit. You mentioned that you weren't "totally happy with" other solutions. What didn't you like? Did they do something obnoxious, or do you have future plans that you're designing towards?

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

      The first two were just technical details I wanted to improve, which I covered in the video:
      - other designs use shift registers for the address, I used latches instead
      - other designs set the data bits one at a time, I used port registers to set 4 at a time
      The third issue, which I cut from the video, was how other designs either embed the ROM image in the Arduino code (so you have to reprogram the Arduino to burn a different ROM) or use their own client software on the PC to upload the ROM.
      Instead, I built all the commands into the Arduino, so it works with any serial monitor program--no need to install anything else.

  • @nonsquid
    @nonsquid Год назад +2

    You could have a job for life in the Nuclear industry making legacy systems work with old eeprom. Many legacy systems are dying due to lack of engineering support and management incompetence.

    • @TrevorMakes
      @TrevorMakes  Год назад +1

      Maintaining legacy computer systems sounds like a pretty relaxing job. Where would one go to start looking for that sort of work?

    • @harisalic2568
      @harisalic2568 Год назад +2

      @@TrevorMakes its relaxing until you have to fix a bug that was caused 40yrs ago with 0 documentation and code written in cobol😂

  • @sillymel
    @sillymel Год назад +1

    (16:52) I think I see a potential problem here. Since you enable reading from the bus before setting the data port to input mode, and both the data port on the Arduino and the EEPROM's data pins are directly connected to the bus, won't there be a small amount of time when the both the data port and the EEPROM could be writing to the bus, causing a potential short depending on the data?

    • @TrevorMakes
      @TrevorMakes  Год назад +3

      Yes, good catch! It would be safer to set input mode first and just put 2 NOPs after read enable (I initially did that). I think I figured that no harm would come from a few hundred nanoseconds of bus contention... Tbh, this was a late night decision that doesn't make much sense now. You've inspired me to change it back 😀

    • @alabamacajun7791
      @alabamacajun7791 11 месяцев назад

      Great catch. Current follows so as long as it's quick the buffers on the chips should stand the jolt. If I remember correctly most chips are open collector avoiding a shorted path for current but we still face the bad data that could be latched somewhere.

  • @haroldmoore2563
    @haroldmoore2563 Год назад +3

    Any chance you could show us the mico-mini-baby-steps to setup and be able to build the software? as loading your folder so the core library loads?

    • @TrevorMakes
      @TrevorMakes  Год назад +2

      Sure thing. I'm planning a video on using VSCode and PlatformIO for Arduino, so I'll use this project as an example.

    • @haroldmoore3509
      @haroldmoore3509 Год назад +1

      @@TrevorMakes Great! then people like me will not have to drink five cups of coffee to keep up! 🙂

    • @TrevorMakes
      @TrevorMakes  Год назад +2

      I regret the 5 cups of coffee I drank before I recorded this video

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

      Yeah I’m stuck too

    • @TrevorMakes
      @TrevorMakes  Год назад +1

      I'm glad you figured it out! I've been doing this stuff too long, so I needed a reminder that not everyone knows these tools already. There's also a "Download ZIP" button on GitHub to just get the code without needing Git. I'm editing a follow up video right now with just these steps to download the tools and code. I'll think about doing another video on just using Git and GitHub, since those are very useful on their own.

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

    What kind of EEPROM or flash for 3.3v I don't to use spi?

    • @TrevorMakes
      @TrevorMakes  Год назад +1

      AT28BV64B (BV=battery voltage) is like the EEPROM in this video but at 3.3v. These only come in SMT packages, so you might need an adapter to use them.

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

      @@TrevorMakes so many thanks

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

    L I K E 👍👍👍👍👍 💯🧡💯💛💯 🤩🤩🤩🤩🤩

  • @mysfiring
    @mysfiring Год назад +1

    Would this also work with something like the 27C256?

    • @TrevorMakes
      @TrevorMakes  Год назад +1

      This could only read the data. 27x EPROMs need a higher voltage pulse to write and usually UV light to erase. A TL866 programmer is good for those

    • @mysfiring
      @mysfiring Год назад +1

      @@TrevorMakes I'm not entirely well enough versed on the voltage requirements (could you use something like a twelve volt supply fed into the Arduino with a transistor?) but I do know that the IC I have in mind doesn't need UV erasing.
      So that's something at least.

    • @TrevorMakes
      @TrevorMakes  Год назад +2

      It looks like pin 1 needs to be raised from 5 V to 12.5 V during programming. If you look at the TommyPROM design, they appear to use a physical switch that you select while programming. Pin 20 (E#) is pulled low to write instead of pin 27 (WE#) like the 28C EEPROM. It seems to be recommended to raise the Vcc pin to 6.5 V during programming, but it may not be necessary? I think these changes could be made to the circuit/code from this video, but I don't think I have a 27C chip on hand to test it out.

    • @TrevorMakes
      @TrevorMakes  Год назад +1

      Check the bottom of this page tomnisbet.github.io/TommyPROM/pcb/

    • @mysfiring
      @mysfiring Год назад +1

      @@TrevorMakes Thank you. This should be fun! :D

  • @markgreco1962
    @markgreco1962 Год назад +1

    This is similar to Ben eater

    • @TrevorMakes
      @TrevorMakes  Год назад +2

      I actually found Ben Eater's channel when I was starting to plan my own channel. Seeing how successful his videos are encouraged me to move forward with mine!

    • @markgreco1962
      @markgreco1962 Год назад +1

      @@TrevorMakes cool!

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

    Concerned about efficient read/ write access, therefore not using shift registers, but uses eeprom and Arduino framework instead of proper hardware.
    Is this comedy ?

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

      Arduino is what hobbyists are most likely to have around and be familiar with, so I'm showing how to start going beyond the Arduino framework (replacing digitalWrite with AVR port I/O etc). What would you use instead?

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

    atmel

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

      atmel membuat barang elektronik yang bagus 😀