Serial EPROM programmer, test post. - Page 1
Forum section: electronics / general

author: CDI1977
author_rank: Contributor
timestamp: May 18, 2020, 01:22:19 am
content: Tear down, repair and misadventures.Subtitle "Burner on the burner."Hmm, inline thumbnail does not work for me. After messing about almost looks right.Photos resized down to 1024 x 768.Photo 1. My dad built this project.Photo 2. Circuit Cellar kit, PCB, MCU and EPROM then supply the rest yourself.Photo 3. Left to right, 8KB RAM, 16KB EPROM programme, 4 x 8KB RAM to hold target EPROM data. All 28 pin sockets, EPROM has 1 extra address line. Pin 1 on all sockets is strapped to +5V.Photo 4. Japanese power supply, not included in kit. Enclosure base, enclosure not included in kit. The T2 transformers are the magnetic isolation feedback.Photo 5. Face plate, dad's handiwork.Photo 6. Layout marks and PCBs for panel switches and display.Photo 7. BYTE magazine, October 1986.Photo 8. Well I suppose I have to try it out next.End of post.

author: CDI1977
author_rank: Contributor
timestamp: May 18, 2020, 06:42:51 am
content: Tear down, repair and misadventures.Subtitle "Irony."When I first powered up this is what I saw. At the time I suspected it was not good.The 7 segment display does work. This was just a random power up condition.Removed the buffer RAM and EPROM so just the minimum number of components are running. Probing address and data bus, read, write signals, etc. Seems like the hardware is running OK.Downloaded Ubuntu MATE for Raspberry Pi. Wrote the image file onto micro-SD card. This is the first install attempt.OK, wiped the micro-SD card and repeated process, successfully after getting this strange error message.Breakout box for when you had to know what those data signals were. I have now got a bunch of these 9 pin PCB mount ( wire wrap ) connectors.Made up simple serial cable. Except it did not work, shorting pins 2 & 3 for loopback worked fine. Signal ground wire is missing, black wire at one end, brown at the other.All correct now.Next, check to see if the processor communicates.PuTTY terminal emulator.Well that is good, the chip may still be defective. No idea if it does internal self tests and checksums.Installed the EPROM that contains the Circuit Cellar BASIC programmes, assembly code, message strings and LED patterns. The variables declared on line 60 could all be BASEA but the EPROM data is bad.The programme drops out at line 60 and there should be more lines but the interpreter cannot get past line 60.In PROM mode no edits can be made. Switch to RAM mode. I only read enough of the documentation to get by.Wrote this up to see if the EPROM data can be read. To convert from decimal to hex it looks like a whole subroutine would be needed.EPROM contents, just the printable ASCII characters.A few letters off by one in the ASCII table. Some of this could be edited by hand. To fix any errors in assembler would require a lot of patience.End of post.

author: CDI1977
author_rank: Contributor
timestamp: May 18, 2020, 07:48:15 am
content: Tear down, repair and misadventures.Subtitle "Programming excercise."This is MCS 52 BASIC, it took me a while to figure out how to convert binary to 2 character ASCII. Anyway this is my display of the EPROM data.There is no support for terminal cursor position in the language. Since most emulators are ANSI/vt100 I used the terminal escape sequences to keep the display tidy.The conversion is needed because you cannot usually transmit binary data via a serial port without side effects.I used the same format that most hex displays use.Tacked on this code. Time delay allows enough time to deal with putting the terminal emulator into file transfer modeThis is the minicom terminal emulator which has file transfer capability. The 16K EPROM transferred as 32K ASCII bytes.Transferred 2 copies of the EPROM data. The checksums are identical so probably good data.MCS 52 BASIC programme to receive data from computer. The INPUT statement did not work but I found GET did the job. Line 140 is messed up from editing. Here I am converting 2 ASCII characters back to binary.Sending the file back to the programmer. I modified the character delay to slow the transfer down to allow processing time.[ The character delay is too short, later on it was increased a lot. ]Before sending the data back I had removed the EPROM and replaced it with the RAM chip. So this allows for testing of any modified code.That is the plan, wait and see if it works out.[ Hmm, forgot that is an 8K RAM so stuffing 16K is not going to work. ]On the Raspberry Pi, I tried using bash with awk to convert ASCII to hex. Having problems, So I learned enough Python to get the job done,This is hexcurse looking at the recovered binary file that my python script generated. So now I have all the tools in place to attempt repairing the EPROM data.End of post.

author: CDI1977
author_rank: Contributor
timestamp: May 18, 2020, 09:39:52 am
content: Tear down, repair and misadventures.Subtitle "Revelation."After reading more of the MCS BASIC 52 manual, I can put names to the memory locationsEPROM back in place, BASIC errors out. Found this useful print hex instruction. I have to correct what I said was an error.Instruction 12 00 30 at address 20DE is a CALL to subroutine after which it returns and executes at 20E1. At address 20EF instead of a CALL a jump is made to start the BASIC interpreter. No need to return and obviously the BASIC code is now running.After writing into the buffer RAM from the computer, verify the data. At 6 characters per second it takes a while.Verification is done by re-transmitting the data and comparing the data from memory. So using BASIC I can send and receive data files.Spot check some data values.Using hexcurse in decimal address mode, file address 1233 agrees with memory. The file address is 0 based.OK, getting closer to making things work.End of post.

author: CDI1977
author_rank: Contributor
timestamp: May 18, 2020, 10:57:55 pm
content: Tear down, repair and misadventures.Subtitle "Hardware hack."Photos resized to 1024 x 768.EPROM code sets MTOP at 4095. Replacing the EPROM with an 8KB RAM, MCS BASIC sets MTOP at 16383.This is why I could not verify after writing to the RAM at address 0000H-1FFFH, it was messing up BASIC reserved memory.Amongst the parts Dad gave me was this circuit. I am going to repurpose the Vero board.There is a reason the socket header is not flush.Pretty simple, original IC from socket a pullup resistor and jumper pins. Piece of wire and couple of cut traces.Clears the neighbouring ICs. With the jumper removed the chip select is disabled for the EPROM socket.There is now an 8KB RAM chip in the EPROM socket. MCS BASIC sets MTOP to the last address of the first 8KB RAM. By disabling the chip select the second 8KB RAM is not detected.Now the jumper is in place and chip select is enabled. As expected now I can verify that the RAM at address 2000H-3FFFH was written to correctly. The BASIC reserved memory is untouched in RAM address space 000oH-!FFFH.Reset button runs the code downloaded into RAM at location 2000H. This code has been edited to fix line 60. Now line 60 does not have a syntax error. I will need to replace the 8KB RAM with a 16KB RAM.

author: CDI1977
author_rank: Contributor
timestamp: May 19, 2020, 12:00:15 am
content: Tear down, repair and misadventures.Subtitle "New developments."Fixed the errors shown here in line 70 and 200. Missed line 80 closing parenthesis.Missing a bit, ")" becomes "(".Programme list goes this far now. To continue I need a 16K RAM.So I made one by stacking 2 8K RAM ICs and separated chip selects. The circuit design breaks up all of the memory space into 8K blocks. This did not work out.So I went looking through the recently acquired parts. Hmm, this could be useful.This could be very useful too, for another project. Repairing a Tektronix 2445 oscilloscope.Using the back up copy of the EPROM. So maybe I do not need to continue with the software reconstruction.Upside down, green LED indicates it is safe to insert or remove EPROM. The 0 indicates type 2716. I erased one 2716 for 17 minutes and picked a random second IC from parts. [ EPROM is not in the correct position. ]Both of the 2716s indicated as not erased.Could be a dirty socket or an actual hardware fault. [ No, that was my fault and triggered me into more troubleshooting. ]Verifying a 27256 which was also erased along with the 2716.Next, check into if it burns OK and how the upload, download feature works.

author: CDI1977
author_rank: Contributor
timestamp: May 19, 2020, 03:05:17 pm
content: Tear down, repair and misadventures.Subtitle "Hardware check."Not realising my previous mistake, the solution is, more troubleshooting.Testing data bits 7-0 output at the ZIF socket.Not sure if that was data or address lines. I think we used to call this a sliding 1 pattern.[ Repaired 2445, another gift from dad. ]Sliding 0 pattern. D0-D7, A0-A7 tested OK.Same test applied to address lines A0-A7. All that changes is the register address.Address 6002, D7-D0Address 6000, A7-A0Address 6001 A15-A8Address lines top to bottom, A8-A11. Something is not right on A11.Byte Magazine circuit diagram.A11 connects to pin 23 via a level shift circuit. So lets see how that works.[ 74LS51 has a NOR gate output.]Pin driver test programme and everything that I mapped out.Line 500 is the expected output on pin 23. The circuit diagram has the power control bits interchanged. Line 560 & 570 change the voltage level.[ Not interchanged, I got the polarity wrong, logic 0 is active state. This will lead me down the garden path later. ]Top trace is A8 used for sync. Bottom trace is pin 23, logic 1, logic 0, logic 1, +5V, +25V, logic 0. So far so good.Pin 28 Vcc, +5, power inhibit, +6 that works OK.FAULTY POWERS.Pin 1 A15/Vpp, expected logic 1, logic 0, logic 1 and that is OK. Then instead of +5 there is + 8.4 and +12.5 & +21 are missing.Checking that the data input port is working.Looping address lines 0-7 into data lines 0-7.OK, the input data port works.End of post.

author: Gyro
author_rank: Super Contributor
timestamp: May 19, 2020, 05:28:25 pm
content: You still don't seem to get that this is a forum, not a personal blog (have you any idea how many members there are on this forum?). Despite your response to helius on part 4 you still continue starting new threads.Why aren't you just adding each update as a reply on your original thread? The absence of replies (and minimal views) to all of your new threads ought to be a big hint that you're not doing it right!EDIT: Just to add some clarity to the above (and below), these posts were all originally posted by the OP as separate threads. Dave has now taken the time to collate all of the OP's original threads into this single one.

author: Simon
author_rank: Unknown
timestamp: May 19, 2020, 06:34:55 pm
content: If you post any more like this and I get notified I will ban you! who the hell do you think you are?