Skip to content

trevor-makes/avr-eeprom-programmer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Arduino EEPROM Programmer

  • Build an EEPROM programmer with an Arduino, two 74HC573 latches, and a 28C EEPROM
  • Command line tools for uploading IHX files built into firmware

Check out these YouTube videos!

Assembling the circuit

Building the software

Use the PlatformIO plugin for VSCode.

Open the project folder with VSCode, select the environment for your board (uno, nano, oldnano), and click Upload.

The core library is required and PlatformIO will download this into the .pio folder.

Distributed under the MIT license

Using the programmer

After building and uploading the program to the Arduino, connect a serial monitor such as the one included with PlatformIO. A > should appear as a prompt for input. The following commands are available:

For all commands, integer parameters maybe be specified in decimal 255, hex $FF, octal &377, or binary %11111111.

>baud [rate]

The baud rate defaults to 9600, but can be changed at runtime. Type ctrl-t b [rate] in the PlatformIO terminal to match the changed baud rate. Setting the baud rate too high can cause IHX import to fail if it exceeds the EEPROM page write timing. Tested with 115200 and found to be within a safe margin.

Burning data in IHX format

Data to be written to EEPROM must be converted to plain text Intel HEX format. Use the bin2ihx script to convert from a binary file or the ihx2bin script to do the reverse.

The plain text data may be copy/pasted into the host terminal or uploaded with a special terminal command. The PlatformIO terminal supports uploading with the ctrl-t ctrl-u escape sequence.

>import

All input following the command will be parsed as Intel HEX and written to the EEPROM in paged write mode.

>verify

All input following the command will be parsed as Intel HEX and validated against values read from the EEPROM. Prints "PASS" on success. Prints "FAIL" and marks differences with '*' otherwise.

>export [base] [size]

Prints EEPROM data from base to base + size - 1 in Intel HEX format.

Special EEPROM commands

Tested with Atmel AT28Cxx EEPROMs

>erase

Erases all EEPROM data to hex FF.

>unlock

Disables software data protection.

>lock

Enables software data protection. Attempts to write data will be discarded until the unlock command is issued.

Low level read/write operations

>hex [base] [size]

Prints a hex dump of ROM data from base to base + size - 1.

>set [base] "string pattern"

Writes ASCII data to EEPROM starting at base. No null terminator is written.

>set [base] $41 255 %01000001 'A' "strings too"

Writes byte or ASCII data sequentially to EEPROM starting at base.

>fill [base] [size] [pattern]

Repeats one-byte pattern in EEPROM from base to base + size - 1.

>move [source] [size] [dest]

Copies EEPROM from [source...source + size - 1] to [dest...dest + size - 1]. Destination may overlap with source.

About

EEPROM programmer using Arduino

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published