port docs to minumal-mistakes Jekyll theme
351
docs/_config.yml
|
@ -1,87 +1,296 @@
|
||||||
# Site settings
|
# Welcome to Jekyll!
|
||||||
# These are used to personalize your new site. If you look in the HTML files,
|
#
|
||||||
# you will see them accessed via {{ site.title }}, {{ site.github_repo }}, and so on.
|
# This config file is meant for settings that affect your entire site, values
|
||||||
# You can create any custom variable you would like, and they will be accessible
|
# which you are expected to set up once and rarely need to edit after that.
|
||||||
# in the templates via {{ site.myvariable }}.
|
# For technical reasons, this file is *NOT* reloaded automatically when you use
|
||||||
title: "TommyPROM"
|
# `jekyll serve`. If you change this file, please restart the server process.
|
||||||
description: "A programmer for EEPROMs and EPROMs using Arduino hardware"
|
|
||||||
baseurl: "/TommyPROM"
|
|
||||||
url: "https://tomnisbet.github.io"
|
|
||||||
|
|
||||||
remote_theme: pmarsceill/just-the-docs
|
# Theme Settings
|
||||||
|
#
|
||||||
|
# Review documentation to determine if you should use `theme` or `remote_theme`
|
||||||
|
# https://mmistakes.github.io/minimal-mistakes/docs/quick-start-guide/#installing-the-theme
|
||||||
|
|
||||||
permalink: pretty
|
# theme : "minimal-mistakes-jekyll"
|
||||||
#exclude: ["node_modules/", "*.gemspec", "*.gem", "Gemfile", "Gemfile.lock", "package.json", "package-lock.json", "script/", "LICENSE.txt", "lib/", "bin/", "README.md", "Rakefile"]
|
remote_theme : "tomnisbet/minimal-mistakes"
|
||||||
|
minimal_mistakes_skin : "default" # "air", "aqua", "contrast", "dark", "dirt", "neon", "mint", "plum", "sunrise"
|
||||||
|
|
||||||
# Set a path/url to a logo that will be displayed instead of the title
|
# Site Settings
|
||||||
#logo: "/docs/images/logo.png"
|
locale : "en-US"
|
||||||
|
title : "TommyPROM"
|
||||||
|
title_separator : "-"
|
||||||
|
subtitle : "Arduino-based EEPROM programmer"
|
||||||
|
name : "Tom Nisbet"
|
||||||
|
description : "A programmer for EEPROMs, Flash, and EPROMs using Arduino hardware"
|
||||||
|
url : https://tomnisbet.github.io # the base hostname & protocol for your site e.g. "https://mmistakes.github.io"
|
||||||
|
#baseurl : "/test-doc2" # the subpath of your site, e.g. "/blog"
|
||||||
|
repository : "tomnisbet/TommyPROM"
|
||||||
|
teaser : # path of fallback teaser image, e.g. "/assets/images/500x300.png"
|
||||||
|
logo : # path of logo image to display in the masthead, e.g. "/assets/images/88x88.png"
|
||||||
|
masthead_title : # overrides the website title displayed in the masthead, use " " for no title
|
||||||
|
# breadcrumbs : false # true, false (default)
|
||||||
|
words_per_minute : 200
|
||||||
|
comments:
|
||||||
|
provider : "false" # false (default), "disqus", "discourse", "facebook", "staticman_v2", "staticman", "utterances", "custom"
|
||||||
|
disqus:
|
||||||
|
shortname : # https://help.disqus.com/customer/portal/articles/466208-what-s-a-shortname-
|
||||||
|
discourse:
|
||||||
|
server : # https://meta.discourse.org/t/embedding-discourse-comments-via-javascript/31963 , e.g.: meta.discourse.org
|
||||||
|
facebook:
|
||||||
|
# https://developers.facebook.com/docs/plugins/comments
|
||||||
|
appid :
|
||||||
|
num_posts : # 5 (default)
|
||||||
|
colorscheme : # "light" (default), "dark"
|
||||||
|
utterances:
|
||||||
|
theme : # "github-light" (default), "github-dark"
|
||||||
|
issue_term : # "pathname" (default)
|
||||||
|
staticman:
|
||||||
|
branch : # "master"
|
||||||
|
endpoint : # "https://{your Staticman v3 API}/v3/entry/github/"
|
||||||
|
reCaptcha:
|
||||||
|
siteKey :
|
||||||
|
secret :
|
||||||
|
atom_feed:
|
||||||
|
path : # blank (default) uses feed.xml
|
||||||
|
search : # true, false (default)
|
||||||
|
search_full_content : # true, false (default)
|
||||||
|
search_provider : # lunr (default), algolia, google
|
||||||
|
algolia:
|
||||||
|
application_id : # YOUR_APPLICATION_ID
|
||||||
|
index_name : # YOUR_INDEX_NAME
|
||||||
|
search_only_api_key : # YOUR_SEARCH_ONLY_API_KEY
|
||||||
|
powered_by : # true (default), false
|
||||||
|
google:
|
||||||
|
search_engine_id : # YOUR_SEARCH_ENGINE_ID
|
||||||
|
instant_search : # false (default), true
|
||||||
|
# SEO Related
|
||||||
|
google_site_verification :
|
||||||
|
bing_site_verification :
|
||||||
|
yandex_site_verification :
|
||||||
|
naver_site_verification :
|
||||||
|
|
||||||
|
# Social Sharing
|
||||||
|
twitter:
|
||||||
|
username :
|
||||||
|
facebook:
|
||||||
|
username :
|
||||||
|
app_id :
|
||||||
|
publisher :
|
||||||
|
og_image : # Open Graph/Twitter default site image
|
||||||
|
# For specifying social profiles
|
||||||
|
# - https://developers.google.com/structured-data/customize/social-profiles
|
||||||
|
social:
|
||||||
|
type : # Person or Organization (defaults to Person)
|
||||||
|
name : # If the user or organization name differs from the site's name
|
||||||
|
links: # An array of links to social media profiles
|
||||||
|
|
||||||
|
# Analytics
|
||||||
|
analytics:
|
||||||
|
provider : false # false (default), "google", "google-universal", "custom"
|
||||||
|
google:
|
||||||
|
tracking_id :
|
||||||
|
anonymize_ip : # true, false (default)
|
||||||
|
|
||||||
|
|
||||||
# Enable or disable the site search
|
# Site Author
|
||||||
# Supports true (default) or false
|
author:
|
||||||
search_enabled: true
|
name : "Tom Nisbet"
|
||||||
search:
|
avatar : # path of avatar image, e.g. "/assets/images/bio-photo.jpg"
|
||||||
# Split pages into sections that can be searched individually
|
bio : "I am an **amazing** person."
|
||||||
# Supports 1 - 6, default: 2
|
location : "Somewhere"
|
||||||
heading_level: 2
|
email :
|
||||||
# Maximum amount of previews per search result
|
links:
|
||||||
# Default: 3
|
- label: "Email"
|
||||||
previews: 3
|
icon: "fas fa-fw fa-envelope-square"
|
||||||
# Maximum amount of words to display before a matched word in the preview
|
# url: "mailto:your.name@email.com"
|
||||||
# Default: 5
|
- label: "Website"
|
||||||
preview_words_before: 5
|
icon: "fas fa-fw fa-link"
|
||||||
# Maximum amount of words to display after a matched word in the preview
|
# url: "https://your-website.com"
|
||||||
# Default: 10
|
- label: "Twitter"
|
||||||
preview_words_after: 10
|
icon: "fab fa-fw fa-twitter-square"
|
||||||
# Set the search token separator
|
# url: "https://twitter.com/"
|
||||||
# Default: /[\s\-/]+/
|
- label: "Facebook"
|
||||||
# Example: enable support for hyphenated search words
|
icon: "fab fa-fw fa-facebook-square"
|
||||||
tokenizer_separator: /[\s/]+/
|
# url: "https://facebook.com/"
|
||||||
# Display the relative url in search results
|
- label: "GitHub"
|
||||||
# Supports true (default) or false
|
icon: "fab fa-fw fa-github"
|
||||||
rel_url: true
|
# url: "https://github.com/"
|
||||||
# Enable or disable the search button that appears in the bottom right corner of every page
|
- label: "Instagram"
|
||||||
# Supports true or false (default)
|
icon: "fab fa-fw fa-instagram"
|
||||||
button: false
|
# url: "https://instagram.com/"
|
||||||
|
|
||||||
# Enable or disable heading anchors
|
# Site Footer
|
||||||
heading_anchors: true
|
footer:
|
||||||
|
links:
|
||||||
# Aux links for the upper right navigation
|
- label: "Twitter"
|
||||||
aux_links:
|
icon: "fab fa-fw fa-twitter-square"
|
||||||
"Project Home":
|
# url:
|
||||||
- "//github.com/TomNisbet/TommyPROM"
|
- label: "Facebook"
|
||||||
|
icon: "fab fa-fw fa-facebook-square"
|
||||||
# Makes Aux links open in a new tab. Default is false
|
# url:
|
||||||
aux_links_new_tab: false
|
- label: "GitHub"
|
||||||
|
icon: "fab fa-fw fa-github"
|
||||||
|
# url:
|
||||||
|
- label: "Project Home"
|
||||||
|
icon: "fas fa-fw fa-link"
|
||||||
|
url: "https://github.com/TomNisbet/TommyPROM"
|
||||||
|
- label: "Bitbucket"
|
||||||
|
icon: "fab fa-fw fa-bitbucket"
|
||||||
|
# url:
|
||||||
|
- label: "Instagram"
|
||||||
|
icon: "fab fa-fw fa-instagram"
|
||||||
|
# url:
|
||||||
|
|
||||||
|
|
||||||
# Sort order for navigation links
|
# Reading Files
|
||||||
nav_sort: case_insensitive # default, equivalent to nil
|
include:
|
||||||
# nav_sort: case_sensitive # Capital letters sorted before lowercase
|
- .htaccess
|
||||||
|
- _docs
|
||||||
|
exclude:
|
||||||
|
- "*.sublime-project"
|
||||||
|
- "*.sublime-workspace"
|
||||||
|
- vendor
|
||||||
|
- .asset-cache
|
||||||
|
- .bundle
|
||||||
|
- .jekyll-assets-cache
|
||||||
|
- .sass-cache
|
||||||
|
- assets/js/plugins
|
||||||
|
- assets/js/_main.js
|
||||||
|
- assets/js/vendor
|
||||||
|
- Capfile
|
||||||
|
- CHANGELOG
|
||||||
|
- config
|
||||||
|
- Gemfile
|
||||||
|
- Gruntfile.js
|
||||||
|
- gulpfile.js
|
||||||
|
- LICENSE
|
||||||
|
- log
|
||||||
|
- node_modules
|
||||||
|
- package.json
|
||||||
|
- package-lock.json
|
||||||
|
- Rakefile
|
||||||
|
- README
|
||||||
|
- tmp
|
||||||
|
- /test # ignore Minimal Mistakes /test
|
||||||
|
keep_files:
|
||||||
|
- .git
|
||||||
|
- .svn
|
||||||
|
encoding: "utf-8"
|
||||||
|
markdown_ext: "markdown,mkdown,mkdn,mkd,md"
|
||||||
|
|
||||||
# Footer content
|
|
||||||
# appears at the bottom of every page's main content
|
|
||||||
|
|
||||||
# Back to top link
|
# Conversion
|
||||||
back_to_top: true
|
markdown: kramdown
|
||||||
back_to_top_text: "Back to top"
|
highlighter: rouge
|
||||||
|
lsi: false
|
||||||
|
excerpt_separator: "\n\n"
|
||||||
|
incremental: false
|
||||||
|
|
||||||
footer_content: "<a href=\"https://github.com/TomNisbet/TommyPROM\">Return to GitHub project</a>"
|
|
||||||
|
|
||||||
# Footer last edited timestamp
|
# Markdown Processing
|
||||||
#last_edit_timestamp: true # show or hide edit time - page must have `last_modified_date` defined in the frontmatter
|
kramdown:
|
||||||
#last_edit_time_format: "%b %e %Y at %I:%M %p" # uses ruby's time format: https://ruby-doc.org/stdlib-2.7.0/libdoc/time/rdoc/Time.html
|
input: GFM
|
||||||
|
hard_wrap: false
|
||||||
|
auto_ids: true
|
||||||
|
footnote_nr: 1
|
||||||
|
entity_output: as_char
|
||||||
|
toc_levels: 1..6
|
||||||
|
smart_quotes: lsquo,rsquo,ldquo,rdquo
|
||||||
|
enable_coderay: false
|
||||||
|
|
||||||
# Footer "Edit this page on GitHub" link text
|
|
||||||
gh_edit_link: false # show or hide edit this page link
|
|
||||||
gh_edit_link_text: "Return to GitHub project"
|
|
||||||
gh_edit_repository: "https://github.com/tomnisbet/TommyPROM"
|
|
||||||
gh_edit_branch: "master" # the branch that your docs is served from
|
|
||||||
gh_edit_view_mode: "tree" # "tree" or "edit" if you want the user to jump into the editor immediately
|
|
||||||
|
|
||||||
# Color scheme currently only supports "dark", "light"/nil (default), or a custom scheme that you define
|
# Collections
|
||||||
color_scheme: nil
|
collections:
|
||||||
|
docs:
|
||||||
|
output: true
|
||||||
|
permalink: /:collection/:path/
|
||||||
|
|
||||||
|
# Defaults
|
||||||
|
defaults:
|
||||||
|
# _pages
|
||||||
|
- scope:
|
||||||
|
path: "_pages"
|
||||||
|
type: pages
|
||||||
|
values:
|
||||||
|
layout: single
|
||||||
|
author_profile: true
|
||||||
|
# _docs
|
||||||
|
- scope:
|
||||||
|
path: ""
|
||||||
|
type: docs
|
||||||
|
values:
|
||||||
|
layout: single
|
||||||
|
classes: wide
|
||||||
|
read_time: false
|
||||||
|
author_profile: false
|
||||||
|
share: false
|
||||||
|
comments: false
|
||||||
|
sidebar:
|
||||||
|
nav: "docs"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Sass/SCSS
|
||||||
|
sass:
|
||||||
|
sass_dir: _sass
|
||||||
|
style: compressed # https://sass-lang.com/documentation/file.SASS_REFERENCE.html#output_style
|
||||||
|
|
||||||
|
|
||||||
|
# Outputting
|
||||||
|
permalink: /:categories/:title/
|
||||||
|
# paginate: 5 # amount of posts to show
|
||||||
|
# paginate_path: /page:num/
|
||||||
|
timezone: America/New_York # https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
|
||||||
|
|
||||||
|
|
||||||
|
# Plugins (previously gems:)
|
||||||
plugins:
|
plugins:
|
||||||
- jekyll-seo-tag
|
- jekyll-paginate
|
||||||
|
- jekyll-sitemap
|
||||||
|
- jekyll-gist
|
||||||
|
- jekyll-feed
|
||||||
|
- jekyll-include-cache
|
||||||
|
|
||||||
|
# mimic GitHub Pages with --safe
|
||||||
|
whitelist:
|
||||||
|
- jekyll-paginate
|
||||||
|
- jekyll-sitemap
|
||||||
|
- jekyll-gist
|
||||||
|
- jekyll-feed
|
||||||
|
- jekyll-include-cache
|
||||||
|
|
||||||
|
|
||||||
|
# Archives
|
||||||
|
# Type
|
||||||
|
# - GitHub Pages compatible archive pages built with Liquid ~> type: liquid (default)
|
||||||
|
# - Jekyll Archives plugin archive pages ~> type: jekyll-archives
|
||||||
|
# Path (examples)
|
||||||
|
# - Archive page should exist at path when using Liquid method or you can
|
||||||
|
# expect broken links (especially with breadcrumbs enabled)
|
||||||
|
# - <base_path>/tags/my-awesome-tag/index.html ~> path: /tags/
|
||||||
|
# - <base_path>/categories/my-awesome-category/index.html ~> path: /categories/
|
||||||
|
# - <base_path>/my-awesome-category/index.html ~> path: /
|
||||||
|
category_archive:
|
||||||
|
type: liquid
|
||||||
|
path: /categories/
|
||||||
|
tag_archive:
|
||||||
|
type: liquid
|
||||||
|
path: /tags/
|
||||||
|
# https://github.com/jekyll/jekyll-archives
|
||||||
|
# jekyll-archives:
|
||||||
|
# enabled:
|
||||||
|
# - categories
|
||||||
|
# - tags
|
||||||
|
# layouts:
|
||||||
|
# category: archive-taxonomy
|
||||||
|
# tag: archive-taxonomy
|
||||||
|
# permalinks:
|
||||||
|
# category: /categories/:name/
|
||||||
|
# tag: /tags/:name/
|
||||||
|
|
||||||
|
|
||||||
|
# HTML Compression
|
||||||
|
# - https://jch.penibelst.de/
|
||||||
|
compress_html:
|
||||||
|
clippings: all
|
||||||
|
ignore:
|
||||||
|
envs: development
|
||||||
|
|
|
@ -0,0 +1,30 @@
|
||||||
|
# main links
|
||||||
|
docs:
|
||||||
|
- title: "Introduction"
|
||||||
|
children:
|
||||||
|
- title: "What is TommyPROM?"
|
||||||
|
url: /
|
||||||
|
- title: "Operation"
|
||||||
|
children:
|
||||||
|
- title: "Troubleshooting"
|
||||||
|
url: /docs/troubleshooting
|
||||||
|
- title: "Design"
|
||||||
|
children:
|
||||||
|
- title: "Hardware"
|
||||||
|
url: /docs/hardware
|
||||||
|
- title: "Software"
|
||||||
|
url: /docs/software
|
||||||
|
- title: "Printed Circuit Board"
|
||||||
|
url: /docs/pcb
|
||||||
|
- title: "Adding Chip Families"
|
||||||
|
url: /docs/extending
|
||||||
|
- title: "References"
|
||||||
|
children:
|
||||||
|
- title: "28C256 and SDP"
|
||||||
|
url: /docs/28C256-notes
|
||||||
|
- title: "PROM Types"
|
||||||
|
url: /docs/prom-families
|
||||||
|
- title: "Links"
|
||||||
|
children:
|
||||||
|
- title: "Code and Schematics"
|
||||||
|
url: "https://github.com/TomNisbet/TommyPROM"
|
|
@ -1,26 +1,23 @@
|
||||||
---
|
---
|
||||||
title: Overview
|
title: "TommyPROM - An Arduino-based EEPROM programmer"
|
||||||
description: "TommyPROM Arduino based programmer for 28C256 EEPROMs"
|
permalink: /
|
||||||
has_children: false
|
excerpt: "TommyPROM Arduino based programmer for 28C256 EEPROMs"
|
||||||
nav_order: 10
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# TommyPROM - An Arduino-based EEPROM programmer
|
TommyPROM is a simple EEPROM programmer and reader that can be assembled using an Arduino and a
|
||||||
|
|
||||||
This is a simple EEPROM programmer and reader that can be assembled using an Arduino and a
|
|
||||||
few additional parts. It has been successfully built using the Arduino UNO, Nano and
|
few additional parts. It has been successfully built using the Arduino UNO, Nano and
|
||||||
Boarduino models.
|
Boarduino models.
|
||||||
|
|
||||||
The original code was specific to the 28C256 32Kx8 EEPROM, but it has been extended to
|
The original code was specific to the 28C256 32Kx8 EEPROM, but it has been extended to
|
||||||
also support SST39SF flash, 27C EPROMs, 29C flash and the Intel 8755A EPROMS.
|
also support SST39SF flash, 27C EPROMs, 29C flash and the Intel 8755A EPROMS.
|
||||||
|
|
||||||
[![TommyPROM Nano Hardware](images/TommyPROM-nano-700.jpg)](images/TommyPROM-nano.jpg)
|
[![TommyPROM Nano Hardware](docs/images/TommyPROM-nano-700.jpg)](docs/images/TommyPROM-nano.jpg)
|
||||||
|
|
||||||
Features include:
|
Features include:
|
||||||
* Simple hardware design that can be assembled on a breadboard.
|
* Simple hardware design that can be assembled on a breadboard.
|
||||||
* ROM images transfers using XMODEM - no special host client needed.
|
* ROM images transfers using XMODEM - no special host client needed.
|
||||||
* Support for fast block EEPROM writes - a 32K EEPROM will program in just a few seconds.
|
* Support for fast block EEPROM writes - a 32K EEPROM will program in just a few seconds.
|
||||||
* Optimized code that supports the timing requirements needed to unlock the 28C series [Software Data Protection](28C256-notes) Algorithm.
|
* Optimized code that supports the timing requirements needed to unlock the 28C series [Software Data Protection](docs/28C256-notes) Algorithm.
|
||||||
* Modular software design to easily support other EEPROM, flash, and EPROM families.
|
* Modular software design to easily support other EEPROM, flash, and EPROM families.
|
||||||
* Hardware support for 19 address lines, allowing the use of chips as large as 512KB, like the SST39SF040 and 29C040.
|
* Hardware support for 19 address lines, allowing the use of chips as large as 512KB, like the SST39SF040 and 29C040.
|
||||||
|
|
||||||
|
@ -29,9 +26,9 @@ Features include:
|
||||||
The 28C hardware and software design can be used with other 5V PROMS as well. Many 5V
|
The 28C hardware and software design can be used with other 5V PROMS as well. Many 5V
|
||||||
chips, including UV EPROMs such as the 2716, 2764, 27C2001 and 27C040, can be read, but
|
chips, including UV EPROMs such as the 2716, 2764, 27C2001 and 27C040, can be read, but
|
||||||
not written, with the basic hardware. Some pin changes may be needed to get the signals to
|
not written, with the basic hardware. Some pin changes may be needed to get the signals to
|
||||||
the correct pins on the device. See the [Extending the design](extending) page for
|
the correct pins on the device. See the [Extending the design](docs/extending) page for
|
||||||
details on suggested hardware and software changes needed to support new
|
details on suggested hardware and software changes needed to support new
|
||||||
[EPROM, flash,and EEPROM families](prom-families).
|
[EPROM, flash,and EEPROM families](docs/prom-families).
|
||||||
|
|
||||||
The PROM-specific code is modular and can be easily adapted to support additional devices.
|
The PROM-specific code is modular and can be easily adapted to support additional devices.
|
||||||
There are currently drivers for 28C series EEPROMS, SST39SF flash, 27C EPROMs and the
|
There are currently drivers for 28C series EEPROMS, SST39SF flash, 27C EPROMs and the
|
||||||
|
@ -44,8 +41,8 @@ the XModem buffer in the current code. Other 29C020s and all 29C040s use a 256
|
||||||
sector and cannot be written without code changes to buffer up an entire 256 byte block of
|
sector and cannot be written without code changes to buffer up an entire 256 byte block of
|
||||||
data before writing.
|
data before writing.
|
||||||
|
|
||||||
The [hardware](hardware) page has descriptions of the hardware designs and links to
|
The [hardware](docs/hardware) page has descriptions of the hardware designs and links to
|
||||||
schematics. The [software](software) page has class definitions and more information on
|
schematics. The [software](docs/software) page has class definitions and more information on
|
||||||
the software design.
|
the software design.
|
||||||
|
|
||||||
The project was inspired by the
|
The project was inspired by the
|
||||||
|
@ -54,10 +51,10 @@ The project was inspired by the
|
||||||
## PCB Version
|
## PCB Version
|
||||||
|
|
||||||
Although it was originally designed as a one-off programmer to be used on a breadboard,
|
Although it was originally designed as a one-off programmer to be used on a breadboard,
|
||||||
there are now some PCB versions as well. The [PCB](pcb) page has descriptions with links
|
there are now some PCB versions as well. The [PCB](docs/pcb) page has descriptions with links
|
||||||
to the KiCad schematics and Gerber files.
|
to the KiCad schematics and Gerber files.
|
||||||
|
|
||||||
[![TommyPROM PCB](images/TommyPROM-pcb-with-microcode-500.jpg)](images/TommyPROM-pcb.jpg)
|
[![TommyPROM PCB](docs/images/TommyPROM-pcb-with-microcode-500.jpg)](docs/images/TommyPROM-pcb.jpg)
|
||||||
|
|
||||||
## Compiling
|
## Compiling
|
||||||
|
|
||||||
|
@ -80,7 +77,7 @@ chip type.
|
||||||
|
|
||||||
## Operation
|
## Operation
|
||||||
|
|
||||||
![TommyPROM console screenshot](images/tommyprom-console.png)
|
![TommyPROM console screenshot](docs/images/tommyprom-console.png)
|
||||||
|
|
||||||
To use the programmer, connect the Arduino USB to the host computer and run a terminal
|
To use the programmer, connect the Arduino USB to the host computer and run a terminal
|
||||||
program, such as TeraTerm (Windows) or Minicom (Linux). The Arduino development Serial
|
program, such as TeraTerm (Windows) or Minicom (Linux). The Arduino development Serial
|
||||||
|
@ -131,8 +128,8 @@ have different port mappings and definitely will not work without software chang
|
||||||
verify that the data and address paths are good.
|
verify that the data and address paths are good.
|
||||||
* 28C series EEPROMS, like the X28C256, sometimes ship from the factory with Data
|
* 28C series EEPROMS, like the X28C256, sometimes ship from the factory with Data
|
||||||
Protection enabled. Use the UNLOCK command to disable this. See the
|
Protection enabled. Use the UNLOCK command to disable this. See the
|
||||||
[28C256 Notes](28C256-notes) for more information.
|
[28C256 Notes](docs/28C256-notes) for more information.
|
||||||
* Re-check all hardware connections and verify the the control pins are going to the
|
* Re-check all hardware connections and verify the the control pins are going to the
|
||||||
Arduino pins that match the definitions in the code.
|
Arduino pins that match the definitions in the code.
|
||||||
* This repo contains a standalone program called HardwareVerify that allows low-level
|
* This repo contains a standalone program called HardwareVerify that allows low-level
|
||||||
access to the address, data, and control lines through a menu-driven interface. See the [troubleshooting](troubleshooting) section for more tips.
|
access to the address, data, and control lines through a menu-driven interface. See the [troubleshooting](docs/troubleshooting) section for more tips.
|
|
@ -1,8 +1,7 @@
|
||||||
---
|
---
|
||||||
title: Troubleshooting
|
title: "Troubleshooting a TommyPROM Build"
|
||||||
description: "Troubleshooting TommyPROM hardware"
|
permalink: /docs/troubleshooting
|
||||||
has_children: false
|
exerpt: "Troubleshooting TommyPROM hardware and software"
|
||||||
nav_order: 50
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Hardware Verifier Tool
|
## Hardware Verifier Tool
|
|
@ -1,12 +1,9 @@
|
||||||
---
|
---
|
||||||
title: Hardware Design
|
title: "Hardware Design"
|
||||||
description: "TommyPROM Arduino 28C256 programmer hardware design"
|
permalink: /docs/hardware
|
||||||
has_children: false
|
exerpt: "TommyPROM Arduino EEPROM programmer software design"
|
||||||
nav_order: 20
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# Hardware Design
|
|
||||||
|
|
||||||
## Basic Hardware Version
|
## Basic Hardware Version
|
||||||
|
|
||||||
The hardware uses an Arduino to write data and to toggle control lines with the
|
The hardware uses an Arduino to write data and to toggle control lines with the
|
||||||
|
@ -30,7 +27,7 @@ The two shift registers can produce a sixteen bit address, although the 28C256 o
|
||||||
A<sub>0</sub>..A<sub>15</sub> and connecting Arduino pins D10..D12 to the chip's
|
A<sub>0</sub>..A<sub>15</sub> and connecting Arduino pins D10..D12 to the chip's
|
||||||
A<sub>16</sub>..A<sub>18</sub>
|
A<sub>16</sub>..A<sub>18</sub>
|
||||||
|
|
||||||
[![TommyPROM Nano Schematic](images/TommyPROM-nano-sch.png)](../images/TommyPROM-nano-sch.png)
|
[![TommyPROM Nano Schematic](images/TommyPROM-nano-sch.png)](images/TommyPROM-nano-sch.png)
|
||||||
|
|
||||||
## 74LS595 Shift Registers
|
## 74LS595 Shift Registers
|
||||||
|
|
||||||
|
@ -116,7 +113,7 @@ is present here for the programming voltage. Because this is designed as a quick
|
||||||
assembled hardware design, a triple output bench supply was used to provide the 25.5V,
|
assembled hardware design, a triple output bench supply was used to provide the 25.5V,
|
||||||
5.5V and 5V outputs.
|
5.5V and 5V outputs.
|
||||||
|
|
||||||
[![TommyPROM Nano Schematic](images/TommyPROM-8755A-sch.png)](../images/TommyPROM-8755A-sch.png)
|
[![TommyPROM Nano Schematic](images/TommyPROM-8755A-sch.png)](images/TommyPROM-8755A-sch.png)
|
||||||
|
|
||||||
Eagle-format schematics can be downloaded from the
|
Eagle-format schematics can be downloaded from the
|
||||||
[hardware project page](https://github.com/TomNisbet/TommyPROM/tree/master/hardware).
|
[hardware project page](https://github.com/TomNisbet/TommyPROM/tree/master/hardware).
|
|
@ -1,16 +1,13 @@
|
||||||
---
|
---
|
||||||
title: Software Design
|
title: "Software Design"
|
||||||
description: "TommyPROM Arduino 28C256 programmer software design"
|
permalink: /docs/software
|
||||||
has_children: false
|
exerpt: "TommyPROM Arduino EEPROM programmer software design"
|
||||||
nav_order: 30
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# Software Design
|
|
||||||
|
|
||||||
The software is designed around several major blocks and classes. The code has been
|
The software is designed around several major blocks and classes. The code has been
|
||||||
broken out into individual files to make it easy to extend the hardware support to
|
broken out into individual files to make it easy to extend the hardware support to
|
||||||
additional EPROM and EEPROM families. See the
|
additional EPROM and EEPROM families. See the
|
||||||
[Adding Chip Families](../extending) page for details on suggested hardware and software
|
[Adding Chip Families](extending) page for details on suggested hardware and software
|
||||||
changes needed.
|
changes needed.
|
||||||
|
|
||||||
## CommandStatus class
|
## CommandStatus class
|
|
@ -1,12 +1,9 @@
|
||||||
---
|
---
|
||||||
title: Printed Circuit Board
|
title: Printed Circuit Boards
|
||||||
description: "TommyPROM Arduino 28C256 programmer PCB"
|
permalink: /docs/pcb
|
||||||
has_children: false
|
exerpt: "Printed Circuit Boards"
|
||||||
nav_order: 35
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# Printed Circuit Board
|
|
||||||
|
|
||||||
Although it was originally designed as a one-off programmer to be used on a breadboard,
|
Although it was originally designed as a one-off programmer to be used on a breadboard,
|
||||||
there are now some PCB versions.
|
there are now some PCB versions.
|
||||||
|
|
||||||
|
@ -20,7 +17,7 @@ disturbing any of the wires.
|
||||||
The [KiCad design files](https://github.com/TomNisbet/TommyPROM/tree/master/schematics)
|
The [KiCad design files](https://github.com/TomNisbet/TommyPROM/tree/master/schematics)
|
||||||
are in the project repo.
|
are in the project repo.
|
||||||
|
|
||||||
[![TommyPROM PCB](images/TommyPROM-pcb-with-microcode-500.jpg)](../images/TommyPROM-pcb.jpg)
|
[![TommyPROM PCB](images/TommyPROM-pcb-with-microcode-500.jpg)](images/TommyPROM-pcb.jpg)
|
||||||
|
|
||||||
## TommyPROM32
|
## TommyPROM32
|
||||||
|
|
||||||
|
@ -30,7 +27,7 @@ other chips as well. It uses a set of headers that allow any of the signals to
|
||||||
chip to be re-routed. The default configuration, with just jumper shunts installed, is
|
chip to be re-routed. The default configuration, with just jumper shunts installed, is
|
||||||
wired for the SST39SF0x0 chips.
|
wired for the SST39SF0x0 chips.
|
||||||
|
|
||||||
[![TommyPROM PCB](images/TommyPROM32-SST39SF-500.jpg)](../images/TommyPROM32-SST39SF.jpg)
|
[![TommyPROM PCB](images/TommyPROM32-SST39SF-500.jpg)](images/TommyPROM32-SST39SF.jpg)
|
||||||
|
|
||||||
Many other chips, particularly if they follow JEDEC standards, can be supported by
|
Many other chips, particularly if they follow JEDEC standards, can be supported by
|
||||||
removing shunts and adding just a few jumper wires.
|
removing shunts and adding just a few jumper wires.
|
||||||
|
@ -40,7 +37,7 @@ Chips with fewer pins can also be supported. There are power pins in place to s
|
||||||
28C256 with a power jumper on pin 28, the _WE_ signal moved down to pin 27, and the _A14_
|
28C256 with a power jumper on pin 28, the _WE_ signal moved down to pin 27, and the _A14_
|
||||||
signal moved from ping 27 to pin 1.
|
signal moved from ping 27 to pin 1.
|
||||||
|
|
||||||
[![TommyPROM PCB](images/TommyPROM32-28C256-500.jpg)](../images/TommyPROM32-28C256.jpg)
|
[![TommyPROM PCB](images/TommyPROM32-28C256-500.jpg)](images/TommyPROM32-28C256.jpg)
|
||||||
|
|
||||||
Power inputs and a switch are provided to support older flash and EEPROM chips that need
|
Power inputs and a switch are provided to support older flash and EEPROM chips that need
|
||||||
higher programming voltages. Many of these chips just need a higher voltage, like 12V,
|
higher programming voltages. Many of these chips just need a higher voltage, like 12V,
|
||||||
|
@ -55,18 +52,18 @@ supply. The _VPP Out_ signal is connected to the chip's VPP on pin 1. The chip
|
||||||
programming mode when the slide switch is set to the _High_ position and is in read mode
|
programming mode when the slide switch is set to the _High_ position and is in read mode
|
||||||
when in the _Low_ position.
|
when in the _Low_ position.
|
||||||
|
|
||||||
[![TommyPROM PCB](images/TommyPROM32-27C257-pgm-500.jpg)](../images/TommyPROM32-27C257-pgm.jpg)
|
[![TommyPROM PCB](images/TommyPROM32-27C257-pgm-500.jpg)](images/TommyPROM32-27C257-pgm.jpg)
|
||||||
|
|
||||||
To erase the WE27C257 chip, the external power supply is providing 14V and the _VPP Out_
|
To erase the WE27C257 chip, the external power supply is providing 14V and the _VPP Out_
|
||||||
is connected to the chip's _VPP_ and _A9_ pins. An external breadboard was needed to
|
is connected to the chip's _VPP_ and _A9_ pins. An external breadboard was needed to
|
||||||
allow the _VPP Out_ signal to be connected to multiple pins. A new spin of the board is
|
allow the _VPP Out_ signal to be connected to multiple pins. A new spin of the board is
|
||||||
planned with multiple _VPP Output_ pins and some general-purpose interconnect pins.
|
planned with multiple _VPP Output_ pins and some general-purpose interconnect pins.
|
||||||
|
|
||||||
[![TommyPROM PCB](images/TommyPROM32-27C257-erase-500.jpg)](../images/TommyPROM32-27C257-erase.jpg)
|
[![TommyPROM PCB](images/TommyPROM32-27C257-erase-500.jpg)](images/TommyPROM32-27C257-erase.jpg)
|
||||||
|
|
||||||
|
|
||||||
For chips that require a high voltage VPP pulse during programming, some external
|
For chips that require a high voltage VPP pulse during programming, some external
|
||||||
switching circuitry will be needed to allow the Arduino to control the VPP voltage. There
|
switching circuitry will be needed to allow the Arduino to control the VPP voltage. There
|
||||||
is a header connected to the unused D13 pin that can support this. See the
|
is a header connected to the unused D13 pin that can support this. See the
|
||||||
[Intel 8755 version of the hardware](../hardware/#intel-8755a-hardware-version) for an
|
[Intel 8755 version of the hardware](hardware/#intel-8755a-hardware-version) for an
|
||||||
example of voltage switching by TommyPROM.
|
example of voltage switching by TommyPROM.
|
|
@ -1,12 +1,9 @@
|
||||||
---
|
---
|
||||||
title: Adding Chip Families
|
title: "Adding New Chip Families"
|
||||||
description: "Extending TommyPROM hardware to support other EEPROM and EPROM chips"
|
permalink: /docs/extending
|
||||||
has_children: false
|
exerpt: "Extending TommyPROM to support new EEPROM, EPROM, and Flash chip families"
|
||||||
nav_order: 70
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# Extending the design to new chip families
|
|
||||||
|
|
||||||
## Hardware
|
## Hardware
|
||||||
|
|
||||||
There are currently two hardware flavors - one for 28C series EEPROMs and one specifically
|
There are currently two hardware flavors - one for 28C series EEPROMs and one specifically
|
Before Width: | Height: | Size: 1.7 MiB After Width: | Height: | Size: 1.7 MiB |
Before Width: | Height: | Size: 1.6 MiB After Width: | Height: | Size: 1.6 MiB |
Before Width: | Height: | Size: 1.7 MiB After Width: | Height: | Size: 1.7 MiB |
Before Width: | Height: | Size: 52 KiB After Width: | Height: | Size: 52 KiB |
Before Width: | Height: | Size: 511 KiB After Width: | Height: | Size: 511 KiB |
Before Width: | Height: | Size: 103 KiB After Width: | Height: | Size: 103 KiB |
Before Width: | Height: | Size: 182 KiB After Width: | Height: | Size: 182 KiB |
Before Width: | Height: | Size: 903 KiB After Width: | Height: | Size: 903 KiB |
Before Width: | Height: | Size: 122 KiB After Width: | Height: | Size: 122 KiB |
Before Width: | Height: | Size: 113 KiB After Width: | Height: | Size: 113 KiB |
Before Width: | Height: | Size: 1.5 MiB After Width: | Height: | Size: 1.5 MiB |
Before Width: | Height: | Size: 117 KiB After Width: | Height: | Size: 117 KiB |
Before Width: | Height: | Size: 4.6 MiB After Width: | Height: | Size: 4.6 MiB |
Before Width: | Height: | Size: 995 KiB After Width: | Height: | Size: 995 KiB |
Before Width: | Height: | Size: 129 KiB After Width: | Height: | Size: 129 KiB |
Before Width: | Height: | Size: 2.0 MiB After Width: | Height: | Size: 2.0 MiB |
Before Width: | Height: | Size: 126 KiB After Width: | Height: | Size: 126 KiB |
Before Width: | Height: | Size: 1.4 MiB After Width: | Height: | Size: 1.4 MiB |
Before Width: | Height: | Size: 168 KiB After Width: | Height: | Size: 168 KiB |
Before Width: | Height: | Size: 2.2 MiB After Width: | Height: | Size: 2.2 MiB |
Before Width: | Height: | Size: 118 KiB After Width: | Height: | Size: 118 KiB |
Before Width: | Height: | Size: 1.9 MiB After Width: | Height: | Size: 1.9 MiB |
Before Width: | Height: | Size: 84 KiB After Width: | Height: | Size: 84 KiB |
Before Width: | Height: | Size: 52 KiB After Width: | Height: | Size: 52 KiB |
Before Width: | Height: | Size: 52 KiB After Width: | Height: | Size: 52 KiB |
Before Width: | Height: | Size: 68 KiB After Width: | Height: | Size: 68 KiB |
Before Width: | Height: | Size: 1.1 MiB After Width: | Height: | Size: 1.1 MiB |
Before Width: | Height: | Size: 70 KiB After Width: | Height: | Size: 70 KiB |
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 37 KiB After Width: | Height: | Size: 37 KiB |
|
@ -1,12 +1,9 @@
|
||||||
---
|
---
|
||||||
title: 28C256 and SDP
|
title: "28C EEPROMs and Software Data Protection (SDP)"
|
||||||
description: "Troubleshooting and Programming 28C256 EEPROMs with Software Data Protection (SDP)"
|
permalink: /docs/28C256-notes
|
||||||
has_children: false
|
exerpt: "28C EEPROMs and Software Data Protection (SDP)"
|
||||||
nav_order: 60
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# 28C EEPROMs and Software Data Protection (SDP)
|
|
||||||
|
|
||||||
The 28C series parallel EEPROMS, like the 28C256, support fast block writes and algorithms
|
The 28C series parallel EEPROMS, like the 28C256, support fast block writes and algorithms
|
||||||
to implement Software Data Protection (SDP). The SDP feature seems to be a leading cause
|
to implement Software Data Protection (SDP). The SDP feature seems to be a leading cause
|
||||||
of problems for people trying to program these chips with Arduino or other homebrew
|
of problems for people trying to program these chips with Arduino or other homebrew
|
||||||
|
@ -55,7 +52,7 @@ were unlocked and burned successfully with the TommyProm code.
|
||||||
The capture below shows an unlock command sequence where the tBLC is within 80us for each
|
The capture below shows an unlock command sequence where the tBLC is within 80us for each
|
||||||
byte.
|
byte.
|
||||||
|
|
||||||
[![Unlock Timing](images/Unlock-Timing.png)](../images/Unlock-Timing.png)
|
[![Unlock Timing](images/Unlock-Timing.png)](images/Unlock-Timing.png)
|
||||||
|
|
||||||
# References
|
# References
|
||||||
|
|
|
@ -1,8 +1,7 @@
|
||||||
---
|
---
|
||||||
title: PROM Types
|
title: PROM Types
|
||||||
description: "PROM types supported by TommyPROM - EPROM, EEPROM, Flash"
|
permalink: /docs/prom-families
|
||||||
has_children: false
|
exerpt: "PROM types supported by TommyPROM - EPROM, EEPROM, Flash"
|
||||||
nav_order: 40
|
|
||||||
---
|
---
|
||||||
|
|
||||||
TommyPROM can be used to read and write several different types of PROM chips. Due to
|
TommyPROM can be used to read and write several different types of PROM chips. Due to
|