port docs to minumal-mistakes Jekyll theme
351
docs/_config.yml
@ -1,87 +1,296 @@
|
||||
# Site settings
|
||||
# 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.
|
||||
# You can create any custom variable you would like, and they will be accessible
|
||||
# in the templates via {{ site.myvariable }}.
|
||||
title: "TommyPROM"
|
||||
description: "A programmer for EEPROMs and EPROMs using Arduino hardware"
|
||||
baseurl: "/TommyPROM"
|
||||
url: "https://tomnisbet.github.io"
|
||||
# Welcome to Jekyll!
|
||||
#
|
||||
# This config file is meant for settings that affect your entire site, values
|
||||
# which you are expected to set up once and rarely need to edit after that.
|
||||
# For technical reasons, this file is *NOT* reloaded automatically when you use
|
||||
# `jekyll serve`. If you change this file, please restart the server process.
|
||||
|
||||
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
|
||||
#exclude: ["node_modules/", "*.gemspec", "*.gem", "Gemfile", "Gemfile.lock", "package.json", "package-lock.json", "script/", "LICENSE.txt", "lib/", "bin/", "README.md", "Rakefile"]
|
||||
# theme : "minimal-mistakes-jekyll"
|
||||
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
|
||||
#logo: "/docs/images/logo.png"
|
||||
# Site Settings
|
||||
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
|
||||
# Supports true (default) or false
|
||||
search_enabled: true
|
||||
search:
|
||||
# Split pages into sections that can be searched individually
|
||||
# Supports 1 - 6, default: 2
|
||||
heading_level: 2
|
||||
# Maximum amount of previews per search result
|
||||
# Default: 3
|
||||
previews: 3
|
||||
# Maximum amount of words to display before a matched word in the preview
|
||||
# Default: 5
|
||||
preview_words_before: 5
|
||||
# Maximum amount of words to display after a matched word in the preview
|
||||
# Default: 10
|
||||
preview_words_after: 10
|
||||
# Set the search token separator
|
||||
# Default: /[\s\-/]+/
|
||||
# Example: enable support for hyphenated search words
|
||||
tokenizer_separator: /[\s/]+/
|
||||
# Display the relative url in search results
|
||||
# Supports true (default) or false
|
||||
rel_url: true
|
||||
# Enable or disable the search button that appears in the bottom right corner of every page
|
||||
# Supports true or false (default)
|
||||
button: false
|
||||
# Site Author
|
||||
author:
|
||||
name : "Tom Nisbet"
|
||||
avatar : # path of avatar image, e.g. "/assets/images/bio-photo.jpg"
|
||||
bio : "I am an **amazing** person."
|
||||
location : "Somewhere"
|
||||
email :
|
||||
links:
|
||||
- label: "Email"
|
||||
icon: "fas fa-fw fa-envelope-square"
|
||||
# url: "mailto:your.name@email.com"
|
||||
- label: "Website"
|
||||
icon: "fas fa-fw fa-link"
|
||||
# url: "https://your-website.com"
|
||||
- label: "Twitter"
|
||||
icon: "fab fa-fw fa-twitter-square"
|
||||
# url: "https://twitter.com/"
|
||||
- label: "Facebook"
|
||||
icon: "fab fa-fw fa-facebook-square"
|
||||
# url: "https://facebook.com/"
|
||||
- label: "GitHub"
|
||||
icon: "fab fa-fw fa-github"
|
||||
# url: "https://github.com/"
|
||||
- label: "Instagram"
|
||||
icon: "fab fa-fw fa-instagram"
|
||||
# url: "https://instagram.com/"
|
||||
|
||||
# Enable or disable heading anchors
|
||||
heading_anchors: true
|
||||
|
||||
# Aux links for the upper right navigation
|
||||
aux_links:
|
||||
"Project Home":
|
||||
- "//github.com/TomNisbet/TommyPROM"
|
||||
|
||||
# Makes Aux links open in a new tab. Default is false
|
||||
aux_links_new_tab: false
|
||||
# Site Footer
|
||||
footer:
|
||||
links:
|
||||
- label: "Twitter"
|
||||
icon: "fab fa-fw fa-twitter-square"
|
||||
# url:
|
||||
- label: "Facebook"
|
||||
icon: "fab fa-fw fa-facebook-square"
|
||||
# url:
|
||||
- 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
|
||||
nav_sort: case_insensitive # default, equivalent to nil
|
||||
# nav_sort: case_sensitive # Capital letters sorted before lowercase
|
||||
# Reading Files
|
||||
include:
|
||||
- .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
|
||||
back_to_top: true
|
||||
back_to_top_text: "Back to top"
|
||||
# Conversion
|
||||
markdown: kramdown
|
||||
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
|
||||
#last_edit_timestamp: true # show or hide edit time - page must have `last_modified_date` defined in the frontmatter
|
||||
#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
|
||||
# Markdown Processing
|
||||
kramdown:
|
||||
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
|
||||
color_scheme: nil
|
||||
# Collections
|
||||
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:
|
||||
- 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
|
||||
|
30
docs/_data/navigation.yml
Normal file
@ -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"
|
1762
docs/_data/ui-text.yml
Normal file
@ -1,26 +1,23 @@
|
||||
---
|
||||
title: Overview
|
||||
description: "TommyPROM Arduino based programmer for 28C256 EEPROMs"
|
||||
has_children: false
|
||||
nav_order: 10
|
||||
title: "TommyPROM - An Arduino-based EEPROM programmer"
|
||||
permalink: /
|
||||
excerpt: "TommyPROM Arduino based programmer for 28C256 EEPROMs"
|
||||
---
|
||||
|
||||
# TommyPROM - An Arduino-based EEPROM programmer
|
||||
|
||||
This is a simple EEPROM programmer and reader that can be assembled using an Arduino and a
|
||||
TommyPROM 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
|
||||
Boarduino models.
|
||||
|
||||
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.
|
||||
|
||||
[![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:
|
||||
* Simple hardware design that can be assembled on a breadboard.
|
||||
* 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.
|
||||
* 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.
|
||||
* 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
|
||||
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
|
||||
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
|
||||
[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.
|
||||
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
|
||||
data before writing.
|
||||
|
||||
The [hardware](hardware) page has descriptions of the hardware designs and links to
|
||||
schematics. The [software](software) page has class definitions and more information on
|
||||
The [hardware](docs/hardware) page has descriptions of the hardware designs and links to
|
||||
schematics. The [software](docs/software) page has class definitions and more information on
|
||||
the software design.
|
||||
|
||||
The project was inspired by the
|
||||
@ -54,10 +51,10 @@ The project was inspired by the
|
||||
## PCB Version
|
||||
|
||||
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.
|
||||
|
||||
[![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
|
||||
|
||||
@ -80,7 +77,7 @@ chip type.
|
||||
|
||||
## 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
|
||||
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.
|
||||
* 28C series EEPROMS, like the X28C256, sometimes ship from the factory with Data
|
||||
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
|
||||
Arduino pins that match the definitions in the code.
|
||||
* 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
|
||||
description: "Troubleshooting TommyPROM hardware"
|
||||
has_children: false
|
||||
nav_order: 50
|
||||
title: "Troubleshooting a TommyPROM Build"
|
||||
permalink: /docs/troubleshooting
|
||||
exerpt: "Troubleshooting TommyPROM hardware and software"
|
||||
---
|
||||
|
||||
## Hardware Verifier Tool
|
@ -1,12 +1,9 @@
|
||||
---
|
||||
title: Hardware Design
|
||||
description: "TommyPROM Arduino 28C256 programmer hardware design"
|
||||
has_children: false
|
||||
nav_order: 20
|
||||
title: "Hardware Design"
|
||||
permalink: /docs/hardware
|
||||
exerpt: "TommyPROM Arduino EEPROM programmer software design"
|
||||
---
|
||||
|
||||
# Hardware Design
|
||||
|
||||
## Basic Hardware Version
|
||||
|
||||
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>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
|
||||
|
||||
@ -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,
|
||||
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
|
||||
[hardware project page](https://github.com/TomNisbet/TommyPROM/tree/master/hardware).
|
@ -1,16 +1,13 @@
|
||||
---
|
||||
title: Software Design
|
||||
description: "TommyPROM Arduino 28C256 programmer software design"
|
||||
has_children: false
|
||||
nav_order: 30
|
||||
title: "Software Design"
|
||||
permalink: /docs/software
|
||||
exerpt: "TommyPROM Arduino EEPROM programmer software design"
|
||||
---
|
||||
|
||||
# Software Design
|
||||
|
||||
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
|
||||
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.
|
||||
|
||||
## CommandStatus class
|
@ -1,12 +1,9 @@
|
||||
---
|
||||
title: Printed Circuit Board
|
||||
description: "TommyPROM Arduino 28C256 programmer PCB"
|
||||
has_children: false
|
||||
nav_order: 35
|
||||
title: Printed Circuit Boards
|
||||
permalink: /docs/pcb
|
||||
exerpt: "Printed Circuit Boards"
|
||||
---
|
||||
|
||||
# Printed Circuit Board
|
||||
|
||||
Although it was originally designed as a one-off programmer to be used on a breadboard,
|
||||
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)
|
||||
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
|
||||
|
||||
@ -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
|
||||
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
|
||||
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_
|
||||
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
|
||||
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
|
||||
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_
|
||||
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
|
||||
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
|
||||
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
|
||||
[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.
|
@ -1,12 +1,9 @@
|
||||
---
|
||||
title: Adding Chip Families
|
||||
description: "Extending TommyPROM hardware to support other EEPROM and EPROM chips"
|
||||
has_children: false
|
||||
nav_order: 70
|
||||
title: "Adding New Chip Families"
|
||||
permalink: /docs/extending
|
||||
exerpt: "Extending TommyPROM to support new EEPROM, EPROM, and Flash chip families"
|
||||
---
|
||||
|
||||
# Extending the design to new chip families
|
||||
|
||||
## Hardware
|
||||
|
||||
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
|
||||
description: "Troubleshooting and Programming 28C256 EEPROMs with Software Data Protection (SDP)"
|
||||
has_children: false
|
||||
nav_order: 60
|
||||
title: "28C EEPROMs and Software Data Protection (SDP)"
|
||||
permalink: /docs/28C256-notes
|
||||
exerpt: "28C EEPROMs and Software Data Protection (SDP)"
|
||||
---
|
||||
|
||||
# 28C EEPROMs and Software Data Protection (SDP)
|
||||
|
||||
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
|
||||
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
|
||||
byte.
|
||||
|
||||
[![Unlock Timing](images/Unlock-Timing.png)](../images/Unlock-Timing.png)
|
||||
[![Unlock Timing](images/Unlock-Timing.png)](images/Unlock-Timing.png)
|
||||
|
||||
# References
|
||||
|
@ -1,8 +1,7 @@
|
||||
---
|
||||
title: PROM Types
|
||||
description: "PROM types supported by TommyPROM - EPROM, EEPROM, Flash"
|
||||
has_children: false
|
||||
nav_order: 40
|
||||
permalink: /docs/prom-families
|
||||
exerpt: "PROM types supported by TommyPROM - EPROM, EEPROM, Flash"
|
||||
---
|
||||
|
||||
TommyPROM can be used to read and write several different types of PROM chips. Due to
|