UK Vintage Radio Repair and Restoration Powered By Google Custom Search Vintage Radio and TV Service Data

Go Back   UK Vintage Radio Repair and Restoration Discussion Forum > Specific Vintage Equipment > Vintage Computers

Notices

Vintage Computers Any vintage computer systems, calculators, video games etc., but with an emphasis on 1980s and earlier equipment.

Reply
 
Thread Tools
Old 18th Feb 2021, 7:26 pm   #1
SiriusHardware
Dekatron
 
Join Date: Aug 2011
Location: Newcastle, Tyne and Wear, UK.
Posts: 6,515
Default Reading PROMs with a Raspberry Pi

Two recent / ongoing threads related to the Commodore PET have highlighted the need to be able to read and verify PROMs, often very ancient devices, when the owner / driver does not possess a device reader / programmer. I've created this new thread for that subject so that we can bat ideas back and forth without doing so in threads which are focused on those other subjects.

A couple of days ago I tried reading a non-critical (therefore expendable) 2732 EPROM using just a Raspberry Pi and 8 series resistors for the voltage difference (5V on the EPROM data-out lines, 3V3 maximum in on the Pi) to drop across. The EPROM was powered from the +5V output on the Pi's GPIO connector. The assumption was that the Pi's GPIO pins would have internal diode clamps which would stop them from being taken more than 0.1V or 0.6V above the Pi's internal 3V3 supply. In fact, that does not appear to be the case. The logic '1' output voltage from the particular 2732 in question was about 4.1V and no matter what value of current limit resistor I tried, even up into the hundreds of K, I had 4.1V appearing on the input pins of the Pi. Not good, and the results I got were unsurprisingly rather inconsistent.

Mark1960 has pointed out, correctly, that I could have used 8 * voltage dividers (two resistors on each data pin) to divide the voltage out from the EPROM by about two-fifths: For example 1K8 in series with 3K3 down to 0V would give about the right division ratio, 16 resistors altogether.

However, I was already having a complete nightmare with slack pin-jumper connections coming and going on my breadboard lash-up so the thought of adding eight more parts to that already volatile mix didn't bear thinking about. Instead, I decided to remove the existing resistors and use a common 8 x Darlington driver IC, the ULN2803A, as the level shifter - one part rather than sixteen.

As well as having built-in current limit resistors on the transistor bases, this device inverts input signals and also has open-collector outputs. Luckily the latter properties can be circumvented with a couple of small changes to the Python code, the first to turn on internal pull-up resistors on the Pi pins being used to read data, and the second to turn the data the right way up again after reading it in from the outputs of the ULN. One particularly good physical feature of this IC is that all its inputs are arrayed down one side and all the corresponding outputs are on the same pins on the other side, making it very easy to wire up.

Although I still had trouble with loose connections, once I got them all to stay connected I found that I was able to read the 4K of code out of the test EPROM with the correct checksum being reported at the end.

This incarnation of the project just uses the 3V3 logic levels from the Pi to drive the EPROM address lines and CE lines of the device being read - because this was non-critical I thought I would just try it and see if it worked, and it did. My suggestion therefore would be to try it that way with your target device initially and if you read out the code you are expecting to see, be happy about that. If your system has several PROMs try reading them all this way and if three look right and one looks wrong then the chances are the reader is working correctly and that one device really is faulty.

If the target device is not happy with 3V3 drive levels to the address and CE pins you could always insert two more ULNs (going the other way) into the address lines, and assuming the PROM has less than 16 address lines, use any spare transistors left over to level-shift the CE signals. In this case the outputs of the ULNs would need pullups to the PROM / EPROM's 5V supply - Thanks to the aforementioned neat layout of the IC's connections, this could be done using a couple of 9-pin SIL resistor packages (8 resistors with one common connection).

With the driver ICs being single-direction this method is only suitable for ROMs / PROMs / EPROMS. For RAM testing you'd need bidirectional level shifters in the data lines.

The main advantage of using a Pi (rather than say Arduino) for this job is that, in spite of the need for at least some level shifting, it has the merit of having a filesystem to which it can write out any code that it reads from the memory device, that code can then be taken and compared against known good code, or alternatively the reader can itself open a known good binary file and compare it byte-by byte with what it is reading from the memory device. You can get a basic 40-pin Raspberry Pi (The Raspberry Pi Zero) for about 5, although there are additional costs: The price of a Micro-SD card to put the OS on, a micro-USB power supply and suitable adaptor / connection leads to allow connection of an HDMI display and USB mouse / keyboard. You might have some or all of these additional items already.

So far I have tested on a Raspberry Pi 2B, but in theory you should be able to use any 40-pin Pi for this purpose as long as it is one of the Linux minicomputer Raspberry Pis.

Last edited by SiriusHardware; 18th Feb 2021 at 7:56 pm.
SiriusHardware is offline   Reply With Quote
Old 18th Feb 2021, 10:46 pm   #2
Mark1960
Hexode
 
Join Date: Mar 2020
Location: Kitchener, Ontario, Canada
Posts: 455
Default Re: Reading PROMs with a Raspberry Pi

Quote:
Originally Posted by SiriusHardware View Post
Mark1960 has pointed out, correctly, that I could have used 8 * voltage dividers (two resistors on each data pin) to divide the voltage out from the EPROM by about two-fifths: For example 1K8 in series with 3K3 down to 0V would give about the right division ratio, 16 resistors altogether.
I don’t think that was me. I think it was ortek_service.

You might try a 74ac244 or 74ac541 powered at 3v3, inputs would be 5v tolerant.

Schottky diodes from inputs to 3.3v supply might stop the input going above the supply together with a current limit resistor.

Most ttl families have a diode to protect the input going below 0v, but not to go above the supply, but the 74ac family is 5v input tolerant and at 3v3 the input levels are similar to 5v ttl.

Last edited by Mark1960; 18th Feb 2021 at 10:48 pm. Reason: Added I think it was ortek_service.
Mark1960 is online now   Reply With Quote
Old 19th Feb 2021, 12:05 am   #3
SiriusHardware
Dekatron
 
Join Date: Aug 2011
Location: Newcastle, Tyne and Wear, UK.
Posts: 6,515
Default Re: Reading PROMs with a Raspberry Pi

Sorry, getting my Marks and Owens mixed up now. Seem to be having a a bad day for memory / recall. All noted.

There's nothing wrong in principle with 16 resistors (8 x divide down to three-fifths), it was just the practical effort of stopping them all from wobbling about on the 'prototype' which put me off that idea. This is what it would look like (attached). I've indicated two alternative pairs of divider resistor values [1K8 and 3K3] or [18K and 33K] with the same ratio, not sure which total resistive load would be better as I have not actually tried this option to see how much the lower of the two values would load the outputs of the PROM / EPROM.

Certainly this option keeps the software as clean as possible, no need to un-invert the data or invert the address outputs.

The undesignated lines marked '?' could be made to be higher address lines if the source device is larger than 4K, or extra CE or clock lines according to the requirements of the device.
Attached Thumbnails
Click image for larger version

Name:	PiPromReader_Resistordivider.jpg
Views:	68
Size:	61.8 KB
ID:	227060  
SiriusHardware is offline   Reply With Quote
Old 19th Feb 2021, 3:47 am   #4
ortek_service
Heptode
 
ortek_service's Avatar
 
Join Date: May 2018
Location: Northampton, Northamptonshire, UK.
Posts: 629
Default Re: Reading PROMs with a Raspberry Pi

Thanks for the info on what you've done.

You do have to be careful on relying on diode-clamps to the supply-rail, as if the series-resistors don't limit total input currents below supply current, then it can lend-up lifting the supply (as regulator can usually only source current). Especially if the ARM has a separate higher 3.3V etc Vio supply, with little load on it compared to lower-voltage core supply.

I recall there's probably also some 74LVC / LVT devices that may be 5V input-tolerant, but designed to work upto 3.3Vcc. But it can all get a bit manufacturer-specific / only on single-gate ones around those low-voltage families. But I do also like to have non-inverting buffers, to keep things simple.

I did wonder if there was enough free GPIO on the RPi, for all the lines required. With Arduino's, it seems that many IC-Testers shields are reliant upon having the less-common Arduino-Mega (ATmega2560) version, to have enough lines. Although it seems these can be bought for around 7, so less than even an RPi + uSD card.
And could just rely on link to PC to transfer the data, but may then have to write a bit of PC software to sort this, unless a serial-interface file-transfer protocol is used with the right terminal emulator program.
This could also be the basis of a more universal digital IC-tester, as I've seen recently seen a few quite reasonably-priced self-contained uC-based IC-Tester ones that have an LCD Module as user-interface can also do 40pin PIA's etc.
Or also using a test-vector program with a standard IC-programmer, that supports IC-testing.
ortek_service is offline   Reply With Quote
Old 19th Feb 2021, 9:00 am   #5
SiriusHardware
Dekatron
 
Join Date: Aug 2011
Location: Newcastle, Tyne and Wear, UK.
Posts: 6,515
Default Re: Reading PROMs with a Raspberry Pi

As things stand there are actually two or three GPIO pins currently unused so it could stretch to reading an 8K or 16K device.

With regard to relying on diode clamps, I think the lowest series resistors I used were 2K2 all the way up to several hundreds of K but in all cases the behaviour was as though there was no diode clamp action occurring on the Pi's inputs. So if resistors are used, they do indeed need to be in the form of a divider rather than just a simple current limit.

As mentioned in one of the other threads, Arduino does have a 'native' library for communicating with SD cards so that would be one way to get the code read out into a 'firm' form for backing up or for comparison with the original code, if available online.

I've also seen a third-party Arduino library for facilitating Xmodem / Ymodem transfer of binary files to / from any host running a terminal program which supports those protocols, such as Hyperterminal.

With the Pi having a filesystem right from the get-go with no extra hardware needed, that aspect is slightly easier to handle with a Pi than it is with an Arduino.

One thing I haven't really investigated is the maximum current available from the +5V output on the Pi, my Pi 2B runs a 2732 OK but the older PROM devices tend to run warm so their supply current may actually approach or exceed that available from the +5V output. In this case what you might have to do is take the +5V supply for the PROM from the + terminal of one of the USB sockets on the Pi rather than from the +5V pin on the GPIO connector.

Last edited by SiriusHardware; 19th Feb 2021 at 9:08 am.
SiriusHardware is offline   Reply With Quote
Old 19th Feb 2021, 4:09 pm   #6
SiriusHardware
Dekatron
 
Join Date: Aug 2011
Location: Newcastle, Tyne and Wear, UK.
Posts: 6,515
Default Re: Reading PROMs with a Raspberry Pi

Regarding the current available from the +5V pin on the GPIO connector, the answer to this seems to vary, probably because it really has changed as the Pi has developed.

One school of thought says that the +5V out is on the protected side of a 1A fuse which is also used by everything else on the board which can use +5V including the USB ports and the PI itself, which runs on the 5V regulated down to 3V3. What you have is therefore whatever portion of the available 1A the Pi is not using itself.

Where this is the case then obviously my earlier suggestion of taking power from one of the USB ports instead will make no difference.

Other sources have the +5V out on the GPIO pins directly connected to the USB +5V-in which powers the Pi. I think the likely answer is that later models of the Pi probably became more capable in this respect as end users started to demand the right to dangle USB powered HDDs, etc, off them.
SiriusHardware is offline   Reply With Quote
Old 20th Feb 2021, 3:42 am   #7
ortek_service
Heptode
 
ortek_service's Avatar
 
Join Date: May 2018
Location: Northampton, Northamptonshire, UK.
Posts: 629
Default Re: Reading PROMs with a Raspberry Pi

Quote:
Originally Posted by SiriusHardware View Post
Regarding the current available from the +5V pin on the GPIO connector, the answer to this seems to vary, probably because it really has changed as the Pi has developed.

One school of thought says that the +5V out is on the protected side of a 1A fuse which is also used by everything else on the board which can use +5V including the USB ports and the PI itself, which runs on the 5V regulated down to 3V3. What you have is therefore whatever portion of the available 1A the Pi is not using itself.

Where this is the case then obviously my earlier suggestion of taking power from one of the USB ports instead will make no difference.

Other sources have the +5V out on the GPIO pins directly connected to the USB +5V-in which powers the Pi. I think the likely answer is that later models of the Pi probably became more capable in this respect as end users started to demand the right to dangle USB powered HDDs, etc, off them.
I recall the very first RPI's had issues with USB devices tripping the resettable fuses / needing to use an external independently-powered Hub, and fuses were bypassed on later builds of the boards.

Providing the PSU that being used to power the RPI has plenty in reserve, then you could take a tap off that. And depending on the exact circuitry on the RPi, it may be possible to isolate the +5V on the GPIO connector, and add a link-wire (via a higher resettable fuse etc.?) direct to the DC input supply connector.

I remember that Acorn choose not to provide power on the Beeb's 1MHz port, so you I had to power the EPROM-Programming I made for it off a Bench PSU and other peripherals generally had their own mains-PSU.
Although you could grab +5V off some of the other powers and also +12V from the external disk-drive etc. power socket on all but very early ones that only had a lower-power linear PSU.
ortek_service is offline   Reply With Quote
Old 20th Feb 2021, 10:53 am   #8
SiriusHardware
Dekatron
 
Join Date: Aug 2011
Location: Newcastle, Tyne and Wear, UK.
Posts: 6,515
Default Re: Reading PROMs with a Raspberry Pi

A forum member over on the Raspberry Pi forums kindly pointed me to this information page, where there are two tables which more or less answer the question regarding the power available from the +5V out...

https://www.raspberrypi.org/document...faqs/#pi-power

...however this still varies according to what you have running on the USB ports as they share that resource, so using a wireless keyboard and mouse (with a single USB dongle serving both) would be one way to lighten the USB load - or to lessen the load even more you could run the Pi 'Headless' which is something I have never done.

The only way to avoid having to consider this problem at all is to use either a Pi Zero or a Pi 4, because in those versions the +5V input from the power supply is passed unfused to the +5V output on the GPIO connector. Obviously this presents its own hazard if you are connecting it to a rat's nest lashed up on a bit of breadboard - if your incoming 5V micro USB supply is not properly current limited, one momentary accidental short could fry the power tracks on the Pi - not too bad if the Pi is a 5 Pi zero but quite a hit if it is a 4GB Pi 4.

Which brings to mind something quite important which I have not said yet - if using a system like this to read an old and possibly quite precious PROM, the PROM must be fully connected to the Pi before power is applied to the Pi, and it must remain connected for the whole time that the Pi is powered and only removed after the Pi is powered down.

That does mean that if you have a set of PROMs you want to read, you have to connect the PROM, power up, run the reader software, exit, power down, repeat this for each PROM.

This is one argument for using an Arduino instead. Although the same caution applies, an Arduino has no elaborate power up / power down ritual - you just turn them on and turn them off.
SiriusHardware is offline   Reply With Quote
Old 20th Feb 2021, 11:27 am   #9
ortek_service
Heptode
 
ortek_service's Avatar
 
Join Date: May 2018
Location: Northampton, Northamptonshire, UK.
Posts: 629
Default Re: Reading PROMs with a Raspberry Pi

I suppose you could always switch the power to the EPROM, and also put tristate buffers on the address / data & chip-enables, to prevent possible latch-up when power is connected
Or (if port lines go direct), insert some series resistors of a few kohms / set them to inputs in the software and only set to outputs when actively-reading the device.
Although starting to run out of GPIO lines to do this on software control, and hardware is getting a bit more involved and might be tempting to go the whole hog and use proper pin-driver circuitry on each line with ability to do an insertion test to check for bad pin-contacts which can be useful to ensure valid readout when copying devices.
ortek_service is offline   Reply With Quote
Old 20th Feb 2021, 11:34 am   #10
SiriusHardware
Dekatron
 
Join Date: Aug 2011
Location: Newcastle, Tyne and Wear, UK.
Posts: 6,515
Default Re: Reading PROMs with a Raspberry Pi

All of the above are eminently sensible ideas, but I am trying to keep the hardware as simple as possible on the basis that this is something which the end user may only need to do once-only to verify the PROMs in one specific system, using something which they may already have or can buy very cheaply.

Against that background the need to connect / power up / power down / disconnect is very much a secondary inconvenience, but it is important that it is done that way.
SiriusHardware is offline   Reply With Quote
Old 22nd Feb 2021, 2:44 pm   #11
NottsIan
Tetrode
 
Join Date: Mar 2018
Location: Nottingham, Nottinghamshire, UK.
Posts: 51
Default Re: Reading PROMs with a Raspberry Pi

When considering 5V power don't forget that it's perfectly acceptable to feed the 5V into the GPIO 5V pin. This does bypass the fuse so caution is called for but it can save a lot of messing around.
NottsIan is offline   Reply With Quote
Old 22nd Feb 2021, 4:01 pm   #12
ciprians
Diode
 
Join Date: Apr 2020
Location: Iasi, Romania
Posts: 7
Default Re: Reading PROMs with a Raspberry Pi

Hi, recently i used Programmer for EPROM 27 series (16-512) based on Arduino with good results on reading/writing 27C128/256/512 EPROMs.
It's based on Arduino Nano, supports 27C16-512 EPROMs and has GUI for Windows/Linux. Also supports verify operation for written data.
ciprians is offline   Reply With Quote
Old 24th Feb 2021, 8:59 am   #13
ortek_service
Heptode
 
ortek_service's Avatar
 
Join Date: May 2018
Location: Northampton, Northamptonshire, UK.
Posts: 629
Default Re: Reading PROMs with a Raspberry Pi

Quote:
Originally Posted by ciprians View Post
Hi, recently i used Programmer for EPROM 27 series (16-512) based on Arduino with good results on reading/writing 27C128/256/512 EPROMs.
It's based on Arduino Nano, supports 27C16-512 EPROMs and has GUI for Windows/Linux. Also supports verify operation for written data.
Thanks for the link to this one, which I had not seen before
- Although I do know of a couple of other people who very recently designed EPROM-Emulators based on using a small Arduino module to control it, with suitable latches / counters to get enough address lines from limited GPIO. As well as needing a RAM buffer with multiplexed access to it

Although I'm a bit confused by the schematic on the githib page, as it seems to show it only operates at 24V Vpp, whereas the 'C' CMOS EPROMs are usually all 12.5V Vpp (rather than mainly 25V / 21V for original ones, particularly smaller memory sizes). Vcc Power / Gnd also not shown on IC's

I do see that the 24V goes to a power connector, so it would be possible to use an external variable supply. But there is a step-up DC-DC converter, that appears to also generate a fixed 24V from the +5V supply (Presumably derived from USB power to Arduino), rather than a step-down to generate the +5V from a variable external higher Vpp etc. supply.
ortek_service is offline   Reply With Quote
Old 24th Feb 2021, 4:58 pm   #14
ciprians
Diode
 
Join Date: Apr 2020
Location: Iasi, Romania
Posts: 7
Default Re: Reading PROMs with a Raspberry Pi

Hi, the +24V will be used only if you populate the DC-DC converter on PCB. The converter is not really required, and you can use the power connector to provide the required programming voltage.
On EPROM, pin 14 for GND & pin 28 for +5V, where the +5V is provided by arduino nano.
For reading, only the USB connection to arduino will be used, but to write you will also need to provide the programming voltage using the power connector.
Also the PCB, which now is double sided, can be easily converted to single sided with THT components.
ciprians is offline   Reply With Quote
Old 24th Feb 2021, 5:03 pm   #15
ciprians
Diode
 
Join Date: Apr 2020
Location: Iasi, Romania
Posts: 7
Default Re: Reading PROMs with a Raspberry Pi

If you think, it will be useful to you, I can provide with my single sided PCB drawing (it's a little bit messy as there are a lot of connection wires, but it's working)
ciprians is offline   Reply With Quote
Old 24th Feb 2021, 9:02 pm   #16
SiriusHardware
Dekatron
 
Join Date: Aug 2011
Location: Newcastle, Tyne and Wear, UK.
Posts: 6,515
Default Re: Reading PROMs with a Raspberry Pi

My thanks to ciprians for the useful information regarding the project which uses an Arduino as the base for a chip reader - we have discussed other Arduino projects which do similar things but that is certainly one of the most finished / sophisticated Arduino versions to date. I have no objection to the scope of the thread spreading out this way - with hindsight I should have added '/Arduino' to the end of the thread title, but for the moment I would like to return to the original thread topic of using a Raspberry Pi to read a PROM.

The background to this was that two forum members recently had problems with retro-computers in which they did not know whether the PROMs were good or bad. Neither person had an EPROM reader or similar device, also neither had Arduinos but both had Raspberry Pis, so that was why I set off down the road of trying to use a Pi rather than an Arduino. The main concern was that Raspberry Pis are 3V3 devices whereas old PROMs and EPROMs are invariably 5-volt devices. Both of the individuals concerned have since resolved this issue in other ways but I decided to continue to the end so that we have a ready made and tested and above all simple solution if this need arises again.

This is an absolute barebones Raspberry Pi PROM reader with minimal hardware and simple Python software to drive it. For the hardware, it has been assumed that the 3V3 output levels from the Pi's GPIO pins are enough to satisfy the threshold for a logic '1' on the address pins and data pins of the source device. It has also been assumed that the CE / CS pins on the PROM can also accept the 0V / 3V3 logic levels as valid logic 0 and logic 1.

Data out from the PROM to the Pi presents a greater problem as the Pi's GPIO pins are not 5V - tolerant which means some kind of level shifting is needed. I tried various methods but the simplest one which works is to use a resistor divider to divide the 5V-out from the PROM down to 3V3. After some experimentation I decided on series resistors = 4K7 and resistors down to 0V = 10K, which divides the input voltage to about two-thirds of the original voltage.

My first attempt at doing this used a female-female header block plugged onto the 40-pin GPIO connector and an experimenter's plug-in breadboard to hold the source device and level shifter, with the two elements connected together by Arduino style round-pin male-male jumpers. It didn't work too well, I had constant problems with connections coming and going.

Version two, which works really reliably, replaced the F-F header and male jump leads with female to female Dupont leads and a purpose made carrier board for the source device and the level shifter (see first two images). On the 'carrier' I have started by fitting vertical rows of male pins so that each source device pin has at least one connector pin associated with it. I have then added horizontal rows of more pins to those pins which may be 0V or 5V supply pins on the source device. This is to make it easier to tie some of the source device pins, especially additional chip select pins, to 0V or 5V, as and when required.

For the data pin level shifter I used two resistor packages, an 8 x parallel 4K7 package for the series resistors and an 8 x 10K SIL resistor package for the resistors going from the Pi pins down to 0V. You could of course use 16 individual resistors.

For the two CE / CS outputs I have intentionally used GPIO 3 as the active low CE output because this pin has a permanent hardware pullup resistor on it, so it will therefore hold the connected PROM in the disabled state until such time as it is intentionally enabled by this output being driven low under software control.

As this project uses most of the Pi's 40 GPIO pins you need to go into Raspi-Config and check / ensure that all of the 'special functions' of some of the Pi's GPIO pins are turned off, so turn off Serial, PSI, I2C, Onewire and so on.

The .PY program can be loaded into IDLE PYTHON 3 on the Pi and run there but it will run very slowly. It will run much faster in a terminal window if you place it in your home /yourusername/bin folder (create the bin folder if necessary) and, while in that folder, make it executable with

Code:
sudo chmod +x readprom.py
cd back down to your home folder and run the program with

Code:
readprom.py <enter>.
Output from the reader is to the screen and each line shows a line address in hex, 16 hex bytes and the equivalent in ASCII. At the end of the operation the 16-bit checksum of the code which has been read is also displayed. You can, optionally, also write the code being read out to a binary file. To enable this, find the line "FileWrite=0", change it to "FileWrite=1" and save the program. Now when you run it, as well as displaying the code on the screen it will write it out to a plain binary file called 'binaryfile.bin', which will be generated in the folder where the readprom.py file is. This is a no-frills feature - if the file already exists it will be overwritten. If the file path specified is invalid, the program will fall over.

The program is currently set to read 4K (4096) bytes. You can change that value downwards to read smaller (2K, 1K etc) memory devices.

In the .zip file: The readprom.py script and a larger version of the connection diagram shown below.
Attached Thumbnails
Click image for larger version

Name:	PromReaderCarrierBoard.jpg
Views:	36
Size:	91.4 KB
ID:	227542   Click image for larger version

Name:	PromReader.jpg
Views:	30
Size:	89.2 KB
ID:	227543   Click image for larger version

Name:	PiPromReader_Resistordivider.jpg
Views:	31
Size:	63.0 KB
ID:	227547   Click image for larger version

Name:	prom_read_UD7_code_2.jpg
Views:	30
Size:	133.3 KB
ID:	227548  
Attached Files
File Type: zip PiPromReader.zip (185.5 KB, 11 views)
SiriusHardware is offline   Reply With Quote
Old 24th Feb 2021, 9:13 pm   #17
SiriusHardware
Dekatron
 
Join Date: Aug 2011
Location: Newcastle, Tyne and Wear, UK.
Posts: 6,515
Default Re: Reading PROMs with a Raspberry Pi

One further point, some very old PROM devices may draw quite a bit of current from the +5V supply pin on the GPIO port. The best Pi models to use in this respect are the Pi Zero and Pi 4, as the +5V input from the PSU is passed unfused to the +5V GPIO pin on those models. The available current is then only really limited by the ability of the PSU to supply it, in addition to the supply current needed by the Pi itself of course.
SiriusHardware is offline   Reply With Quote
Old 27th Feb 2021, 5:52 pm   #18
ortek_service
Heptode
 
ortek_service's Avatar
 
Join Date: May 2018
Location: Northampton, Northamptonshire, UK.
Posts: 629
Default Re: Reading PROMs with a Raspberry Pi

Quote:
Originally Posted by ciprians View Post
Hi, the +24V will be used only if you populate the DC-DC converter on PCB. The converter is not really required, and you can use the power connector to provide the required programming voltage.
On EPROM, pin 14 for GND & pin 28 for +5V, where the +5V is provided by arduino nano.
For reading, only the USB connection to arduino will be used, but to write you will also need to provide the programming voltage using the power connector.
Also the PCB, which now is double sided, can be easily converted to single sided with THT components.

If you think, it will be useful to you, I can provide with my single sided PCB drawing (it's a little bit messy as there are a lot of connection wires, but it's working)
Thanks for the clarifications - I guess if '+24V ' had been called +Vpp to reflect it's potential multiple voltages (or +12V5 for just the 'C' devices), that
might have not confused me so much as to what was being done.

And having a DC-DC converter available with the required Vpp voltages / adjustable to fine-trim to exact voltage / maybe switching between common ones could be useful, otherwise it's probably simplifies not having it.

Thanks for offer of S/S PCB layout, but I'd probably be tempted to just build something like this on veroboard / VQ-matrix board or a shield prototyping board I've got. I don't myself have an immediate need, as I have a few commercial programmers, although they only handle 27xx ones, so have to use adaptors I've made. Although I might put one together sometime, to have a play with it for interest.
I've been considering trying to make something for the Arduino (2560) Mega, that could handle even more pins to be able test many digital peripheral IC's etc. as have seen some RAM IC testers etc. shields for these.
ortek_service is offline   Reply With Quote
Old 28th Feb 2021, 7:53 am   #19
ortek_service
Heptode
 
ortek_service's Avatar
 
Join Date: May 2018
Location: Northampton, Northamptonshire, UK.
Posts: 629
Default Re: Reading PROMs with a Raspberry Pi

Quote:
Originally Posted by SiriusHardware View Post
One further point, some very old PROM devices may draw quite a bit of current from the +5V supply pin on the GPIO port. The best Pi models to use in this respect are the Pi Zero and Pi 4, as the +5V input from the PSU is passed unfused to the +5V GPIO pin on those models. The available current is then only really limited by the ability of the PSU to supply it, in addition to the supply current needed by the Pi itself of course.
Thanks for all the info. I might be tempted to knock one up some time, to have a play with it as should have everything required.

And I may well try it with an RPi Zero I've got, as only have one RPi4, I recently got to go into a PiTop Laptop case (besides some old original RPi-1's, with only a 26-way GPIO connector, although I think I may have an RPi2 somewhere as well).
I might even try building a direct plug-in one for some specific odd pinout ROMs etc, on a bit of matrix-squares / veroboard, rather than having to work out all the patching required each time.
ortek_service is offline   Reply With Quote
Old 28th Feb 2021, 9:46 am   #20
SiriusHardware
Dekatron
 
Join Date: Aug 2011
Location: Newcastle, Tyne and Wear, UK.
Posts: 6,515
Default Re: Reading PROMs with a Raspberry Pi

If you (or anyone else) decides to have a play I really recommend not using plug-in breadboard with the typical spindly round 'Arduino jumpers' which are widely and cheaply available, they are just too frustratingly unreliable. I think ScottishColin had the same experience when he was trying to read his PET 2001N PROMs with an Arduino Mega.

You could try 'Dupont' female (at the Raspberry Pi end) to 'Dupont' male (at the device end) on breadboard as they may be a better friction fit, and their square body shape helps them to support each other when they are inserted into adjacent holes or onto adjacent pins.
SiriusHardware is offline   Reply With Quote
Reply

Thread Tools



All times are GMT. The time now is 4:59 pm.


All information and advice on this forum is subject to the WARNING AND DISCLAIMER located at https://www.vintage-radio.net/rules.html.
Failure to heed this warning may result in death or serious injury to yourself and/or others.


Powered by vBulletin®
Copyright ©2000 - 2021, vBulletin Solutions, Inc.
Copyright ©2002 - 2021, Paul Stenning.