Hackaday.io Hackaday.io
Projects
Recently Updated Most Likes Newest Project Lists
Discover Contests Courses Stack
More
Courses Tutorials Events Hackerspaces Profiles Hackaday.com Tindie Marketplace
Sign up Log in
Close
0%
0%

MX29F1615 programmer

Cheap 16 bit parallel flash programmer with an arduino, two counters CD4040, one shift register 74164

Acathla (Fabien)Acathla (Fabien)
Following Follow project
Liked Like project

Become a Hackaday.io member

Not a member? You should Sign up.

Already have an account? Log in.

Sign up with Github
Sign up with Twitter
OR
Forgot your password?

Just one more thing

To make the experience fit your profile, pick a username and tell us what interests you.

Pick an awesome username
hackaday.io/
Your profile's URL: hackaday.io/username. Max 25 alphanumeric characters.
Pick a few interests
Projects that share your interests
People that share your interests

We found and based on your interests.

Choose more interests.

OK, I'm done! Skip
Join this project
Similar projects worth following
1.3k views
3 comments
11 followers
8 likes
  • Description
  • Details
  • Files 6
    • View all
  • Components 0
  • Logs 1
    • View all
  • Instructions 0
  • Discussion 3
View Gallery
1.3k
3
11
8

Team (1)

  • Acathla (Fabien)Acathla (Fabien)

Join this project's team
  • Upverter schematics
completed project
hardware
arduino amiga

This project was created on 04/03/2018 and last updated 2 years ago.

Description

I needed to program those kind of ROM the cheapest way. I bought ten MX29F1615 online (clearly second hand even if not specified) for 14,20€. It can replace a kickstart ROM on an Amiga classic. Then I developed the programmer without buying any expensive component. The PC part is partly based on https://github.com/todbot/arduino-serial for the communication between the arduino and the PC. I tried to use flashrom but failed. It can program the full 16Mb EEPROM in 15 or 20 min. It's slow but it works and I usually program only the half. It's using counters to generate the 21 lines of address (in 8 bit mode), only 128 bytes of buffer are programmed at a time. Code can probably can be improved a bit. The most complicated part was to understand the datasheet. Like the 8bit/16bit modes. You can't program the device in 8 bit mode, but it's not clearly written somewhere.

Files

eeprom_programmer.h

Arduino part

x-chdr - 545.00 bytes - 04/03/2018 at 12:53

Download

eeprom_programmer.ino

Arduino part

ino - 9.31 kB - 04/03/2018 at 12:53

Download

Makefile

makefile - 1.06 kB - 04/03/2018 at 12:53

Download

eeprom_programmer.c

x-csrc - 9.72 kB - 04/03/2018 at 12:53

Download

eeprom_programmer-lib.c

x-csrc - 4.01 kB - 04/03/2018 at 12:53

Download

View all 6 files

Project Logs
Collapse

  • Upgrade to Arduino Mega

    Acathla (Fabien) • 08/31/2020 at 15:54 • 0 comments

    New version using an Arduino Mega (almost no need for external component) : arduino and PC (linux) code with schematics and PCB done with Kicad : https://framagit.org/acathla/eeprom-programmer

View project log

Enjoy this project?

Share

Discussions

Log In/Sign up to comment

Become a Hackaday.io Member

Create an account to leave a comment. Already have an account? Log In.

Sign up with Github
Sign up with Twitter
OR
ole00 wrote 02/08/2020 at 22:21 • point

Hi, nice project. Could you please share a schematics with us? It's OK if it's drawn by hand on a piece of paper. I'm interested in seeing how you generated 10V for VHH and the part with the transistor to switch between 5 / 10 V. The software part seems to be clear to me: Address buss is generated via the 2 counters by toggling the 'clock' pin (I like that, it needs just one clock pulse to generate consecutive 12 bit address), the data bus is 16 bit wide in write mode ( top byte of the data bus is generated by the shift register, bottom byte uses 8 arduino pins D2-D9), and for reading only an 8bit data  mode is used where the data bits are again mapped to arduino pins D2-D9 (but this time switched as input). The rest of the code  is just sending and receiving the data between the PC and MCU.

My tips for speed improvement:

1) do not write data with value 0xFF (erased flash memory has already value 0xFF)

2) In flash_databus_output you always set the pinMode for data bits even if you write 128 bytes in one go - optimise it to set the ouput pin mode just once, before the first byte is written.

3) unroll the loops where 8 bits are sent  (the time spent calculating the 'for' loop is eliminated)

4) do not use digitalWrite function - although it is portable, it is also slow because it does several checks and also (if it is not inlined) there is an extra overhead of entering the function, passing the parameters, then exiting the function. Use a macro  that toggles just a single pin on a specific arduino port for maximum speed.

5) use some some sort of data compression (maybe it's an overkill for a simple project like this)

  Are you sure? yes | no

Spark wrote 09/11/2019 at 15:01 • point

Would you share what software you used to program MX29F1615?

  Are you sure? yes | no

Marcelo wrote 05/13/2019 at 02:23 • point

Have you the pcb layout with all components? And how to program all this?

  Are you sure? yes | no

Similar Projects

an alternative Arduino IDE
Project Owner Contributor

IDE4Arduino

TobiasTobias

Using Cortana as the user interface b/w the user and the Arduino enabling opportunities like voice recognition and low budget home automation
Project Owner Contributor

Home Automation Using Cortana

nanna56789nanna56789

BBC Micro:Bit is not only for kid. Use it as a control board for your applications and program the Arduino way
Project Owner Contributor

Program the Micro:Bit in Arduino C

nicoud jean-danielnicoud jean-daniel

Add a second brain to your Arduino Mega
Project Owner Contributor

RetroShield for Arduino Mega

Erturk KocalarErturk Kocalar

Does this project spark your interest?

Become a member to follow this project and never miss any updates

Going up?

About Us Contact Hackaday.io Give Feedback Terms of Use Privacy Policy Hackaday API

© 2023 Hackaday

Yes, delete it Cancel

Report project as inappropriate

You are about to report the project "MX29F1615 programmer", please tell us the reason.

Send message

Your application has been submitted.

Remove Member

Are you sure you want to remove yourself as a member for this project?

Project owner will be notified upon removal.