forked from Apple-2-HW/TommyPROM
Add detailed troubleshooting commands
This commit is contained in:
parent
d9eb7ae29d
commit
8ddae82395
@ -77,3 +77,90 @@ Writing the unlock code to disable Software Write Protect mode.
|
||||
#cd
|
||||
|
||||
```
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
If the programmer seems to be working, but 28C256 EEPROMs cannot be written, the problem
|
||||
may simply be a locked chip. Some chips have been received with the Software Data
|
||||
Protection (SDP) enabled, even though the data sheet states that it should be disabled
|
||||
from the factory. If the chip does not write (try the Zap command in the TommyPROM code),
|
||||
then try an Unlock command and then retry the write.
|
||||
|
||||
If the programmer is not working, the most common problem is a simple wiring error. The
|
||||
hardware verify sketch can help to find missing or crossed connections.
|
||||
|
||||
The hardware has three sections: an 8-bit read-write data bus connected to the target
|
||||
PROM's data line, a set of write-only address lines generated by shift registers and
|
||||
connected to the target PROM's address lines, and a set of write-only control lines from
|
||||
the Arduino that toggle the PROM's output enable and write lines.
|
||||
|
||||
The first step in general testing it to remove the target chip and then toggle single
|
||||
lines from the Arduino. The result should be measured at the target PROM footprint, not
|
||||
at the Arduino. To fully test, use a multimeter to verify that the lines that should be
|
||||
active are active and that any other lines are not.
|
||||
|
||||
### Testing the data bus
|
||||
|
||||
Issue a set of Data commands from the Hardware Verify sketch and measure EACH data line at
|
||||
the PROM footprint. **If the expected result is "D0 HIGH", verify not only that D0 reads
|
||||
HIGH, but that all of the other lines read LOW.**
|
||||
|
||||
Data test commands
|
||||
|
||||
|Command|Result|
|
||||
|:--- |:--- |
|
||||
|D0 |All data lines LOW|
|
||||
|D1 |D0 HIGH|
|
||||
|D2 |D1 HIGH|
|
||||
|D4 |D2 HIGH|
|
||||
|D8 |D3 HIGH|
|
||||
|D10 |D4 HIGH|
|
||||
|D20 |D5 HIGH|
|
||||
|D40 |D6 HIGH|
|
||||
|D80 |D7 HIGH|
|
||||
|Dff |all data lines HIGH|
|
||||
|
||||
### Testing the address lines
|
||||
|
||||
As with the data tests above, verify not only the line with the expected result, but all
|
||||
other address lines as well.
|
||||
|
||||
|Command|Result|
|
||||
|:--- |:--- |
|
||||
|A0 |All address lines LOW|
|
||||
|A1 |A0 HIGH|
|
||||
|A2 |A1 HIGH|
|
||||
|A4 |A2 HIGH|
|
||||
|A8 |A3 HIGH|
|
||||
|A10 |A4 HIGH|
|
||||
|A20 |A5 HIGH|
|
||||
|A40 |A6 HIGH|
|
||||
|A80 |A7 HIGH|
|
||||
|A100 |A8 HIGH|
|
||||
|A200 |A9 HIGH|
|
||||
|A400 |A10 HIGH|
|
||||
|A800 |A11 HIGH|
|
||||
|A1000 |A12 HIGH|
|
||||
|A2000 |A13 HIGH|
|
||||
|A4000 |A14 HIGH|
|
||||
|A7fff |all address lines HIGH|
|
||||
|
||||
### Testing the control lines
|
||||
|
||||
The PROM control lines are active LOW, so an enable command will set the corresponding
|
||||
control line LOW and a disable will set it HIGH. Try the commands in the following table.
|
||||
Note that they should be done in the order listed, because a test command on one control
|
||||
line will not change the state of any of the other lines.
|
||||
|
||||
To begin, issue the following commands: D0, A0, Cd, Od, Wd. Note that the Od command is
|
||||
the letter 'O', not the number zero. All three control lines should read HIGH after these
|
||||
commands are complete.
|
||||
|
||||
|Command|Result|
|
||||
|:--- |:--- |
|
||||
|Ce | Chip Enable (CE) LOW, others HIGH|
|
||||
|Cd | CE, OE, WE all HIGH|
|
||||
|Oe | Output Enable (OE) LOW, others HIGH|
|
||||
|Cd | CE, OE, WE all HIGH|
|
||||
|We | Write Enable (WE) LOW, others HIGH|
|
||||
|Wd | CE, OE, WE all HIGH|
|
||||
|
Loading…
Reference in New Issue
Block a user