Connect with us

Reading a failing PLD

Discussion in 'Electronic Components' started by jamma-plusser, Nov 16, 2008.

Scroll to continue with content
  1. I have an AMI 18CV8-15 on a PCB from 1993 that is failing (it only
    works properly when I've given it a good blast with some freezer
    spray, and it's slowly getting worse, ie needing more freezer spray to
    make it work every time).

    If I try and read it (my EPROM programmer, a Galep-4, supports it)
    then I get a different reading every time.

    Now I'm not that familiar with PLDs but as I understand it they have a
    security bit - if this bit is set (not sure how I can tell!) then
    would this account for the different reading every time? Or are the
    variable readings caused by the PLD failing?

    I've tried giving it a good blast of freezer spray before I try and
    read it, but I still get a different reading every time.

    Any advice please?

  2. Franc Zabkar

    Franc Zabkar Guest

    I believe that your programmer should be able to determine the status
    of the security bit. IIRC my Sunshine Expro-60 is able to do this.
    I'd use the technique that Steve Gibson uses in his Spinrite hard disc
    data recovery software. Keep re-reading the PLD, save the data, and
    then perform a statistical analysis on it. Assuming the bad bits are
    good more often than not, build a binary image with this in mind. If
    the failure mode is known, then this may help, too. For example, are
    faulty bits usually low or high?

    - Franc Zabkar
  3. I would have thought so too. Can't see any indication though. I know
    if I read a GAL then all bits are set to '1' so as the 18CV8 is
    varying so much I would GUESS that it's not protected. Not sure
    Must admit that I wouldn't know where to start - what would I use to
    perform such an analysis?
    It varies.

  4. Franc Zabkar

    Franc Zabkar Guest

    Sorry, I just checked my programmer. It only gives me the option of
    blowing the security fuse for a PEEL18CV8. It doesn't appear to detect
    its status.
    I'd read the device several times (while freezing and/or heating it)
    and save the binary images to sequentially numbered files, eg
    image01.bin, image02.bin, etc. I'd then write a simple program to
    check each bit in each of the .bins and count how many times it
    appears as a 1 or a 0. If a particular bit consistently reads the same
    when the PLD is heated (which appears to be when it is most prone to
    failure), then it could be assumed that this bit is good. If a bad bit
    reads as 0 most of the time, then assume it really is a 0.
    Let's assume that the faults are the result of decaying data, not
    faults in the actual logic gates. Over time, does a particular bit
    "fade" back to its blank state? If so, then if the blank state is "1",
    say, you would expect that failures would only show up in bits that
    had been programmed as 0s.

    - Franc Zabkar
  5. Franc Zabkar

    Franc Zabkar Guest

    I'd first test the input and output pins to make sure that they swing
    between the correct TTL levels. Sometimes increasing the supply
    voltage will see the device come good (it may damage it as well).
    Reducing the supply may also help in isolating an intermittent bit.

    - Franc Zabkar
  6. Are you referring to increasing the supply voltage when the device is
    in the programmer (don't think that I can do that!) or on the board?

    If the latter then surely that is going to risk damaging other ICs on
    the board, particularly if increasing the voltage (which I can do
    easily enough via the PSU).
  7. Okay, further to that - if I lower the voltage to the board then it
    runs much better. So how can I lower the voltage to the 18CV8 when
    it's in the programmer socket? It seems to work best at about 4.7 VDC
  8. JW

    JW Guest

    Lift it's power pin from the programmers socket, and power it with a
    external supply. Make sure the grounds are connected together between the
    programmer and the external power supply.
  9. Thanks, nice idea.

    Another possibility - how about using a diode to drop the voltage to
    the PLD itself?
  10. Franc Zabkar

    Franc Zabkar Guest

    AFAICS, that could cause destructive latchup problems if the voltage
    on any of the input pins is greater than Vcc. You may be able to get
    away with a germanium diode, or a high current Schottky diode, or a
    PNP transistor with low Vce(sat).

    In fact the datasheet stipulates an absolute maximum input voltage of
    Vcc + 0.6V. For guaranteed operation, the limit is Vcc + 0.3V. The
    recommended supply range is 4.75 - 5.25V.

    If you use an external supply, be sure to power up the supply before
    powering up your programmer. When powering down, turn off your
    programmer before turning off the supply.

    - Franc Zabkar
  11. Thanks. I did in fact try the diode trick before reading your reply
    and it worked on the board (I used a 1N4001 diode on the +5 volt pin)
    - now I can run the board at the correct voltage using the diode on
    the PLD only and have about 4.7 going to the PLD. It didn't help with
    reading it in the programmer though, which is a pity.
  12. Clint Sharp

    Clint Sharp Guest

    Would it be difficult to reverse engineer the function or do you have no
    idea as to the function?

    Might be worth taking a look at a few dumps from the device to see if
    you have any consistent areas and then mapping them to the used I/O pins
    on the device. You may be surprised how simple it actually is if you
    spend a little time drawing the relevant parts of the circuit.

    I'm guessing from your nick that it's going to be on an arcade board?

    Naming the board might be useful, especially if there's a schematic
    kicking around, it's possible that there's enough info on the circuit to
    reverse the device.

    Clint Sharp
  13. Must admit that's going to be a bit beyond me I'm afraid.

    I could send you a few dumps if you're willing to take a look. :)
    Yeah, sorry, meant to mention that.
    It's a Raiden 2 board. No schems around as far as I can tell I'm
  14. Franc Zabkar

    Franc Zabkar Guest

    Why not take several dumps, ZIP them up, and then upload them to a
    file sharing site? Alternatively, email them to me and I'll put them
    on my web site for others to look at.

    - Franc Zabkar
Ask a Question
Want to reply to this thread or ask your own question?
You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.
Electronics Point Logo
Continue to site
Quote of the day