TommyPROM/docs/troubleshooting.md

79 lines
2.1 KiB
Markdown
Raw Normal View History

2020-06-28 18:28:35 +00:00
---
title: Troubleshooting
has_children: false
nav_order: 3
---
## Hardware Verifier Tool
2020-06-29 18:44:14 +00:00
A [Hardware verification Arduino sketch](https://github.com/TomNisbet/TommyPROM/tree/master/HardwareVerify)
is provided to assist with troubleshooting. Loading this sketch onto the TommyPROM
hardware allows access to individual control lines from the Arduino to verify that the
2020-06-29 15:48:57 +00:00
hardware was assembled correctly.
2020-06-28 18:28:35 +00:00
2020-06-29 18:44:14 +00:00
The verifier sketch can be used without a chip installed to scope out address and data
lines. It also offers low-level control when the chip is installed.
2020-06-28 18:28:35 +00:00
2020-06-29 15:48:57 +00:00
THIS TOOL USES DIRECT PORT ACCESS ON THE ARDUINO. CHECK TO MAKE SURE IT IS COMPATIBLE
WITH YOUR BOARD BEFORE USING. It will work correctly on the Unu, Nano, and Boarduino. It
WILL NOT WORK on the Micro.
2020-06-28 18:28:35 +00:00
2020-06-29 15:48:57 +00:00
Note that the commands write to the individual 28C control lines with some exceptions to
2020-06-29 18:44:14 +00:00
protect the chip and the host Arduino:
2020-06-28 18:28:35 +00:00
2020-06-29 18:44:14 +00:00
* When the O command is used to enable chip output, the Arduino data bus is set to INPUT
* When the D command is used to write data from the Arduino, the chip output is disabled
2020-06-28 18:28:35 +00:00
* The R command sets the output enable (OE) on the chip, but not the chip enable (CE)
2020-06-29 18:44:14 +00:00
* The L and U commands reset CE, OE, and WE back to disabled on completion and change the
data and address
2020-06-28 18:28:35 +00:00
2020-06-29 15:48:57 +00:00
The session below shows how a write fails to a locked chip and then succeeds once the chip
is unlocked.
2020-06-28 18:28:35 +00:00
```
Hardware Verifier - 28C series EEPROM
Valid commands are:
Axxxx - Set address bus to xxxx
Dxx - Set Data bus to xx
Cs - Set Chip enable to state (e=enable, d=disable)
Os - Set Output enable to state (e=enable, d=disable)
Ws - Set Write enable to state (e=enable, d=disable)
R - Read and print the value on the data bus
L - Send Lock sequence to enable device Software Data Protection
U - Send Unlock sequence to disable device Software Data Protection
#l
Writing the lock code to enable Software Write Protect mode.
#a0000
#ce
#r
22
#d55
#we
#wd
#r
22
#u
Writing the unlock code to disable Software Write Protect mode.
#d33
#we
#wd
#r
33
#cd
```