Continue to Site

Welcome to our site!

Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

  • Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

Need some heads.. Logic problem I have spent days on

Ian Rogers

User Extraordinaire
Forum Supporter
Most Helpful Member
Fun fun fun..

The diagram shows a display system, 16 bit address 8 bit bus Hitachi H8 with ROM RAM and LCD all connected to the busses.

My issue! All works fine. The display has a block (0xff) displayed at location 8 (or 7 if we start at 0)
Every screen works but that location is always 0xff. I have swapped the RAM, ROM, MPU and the screen all thats left is the PCB.
1713265707057.png

Screenshot as well
1713265899346.png


My best guess is the shadow screen buffer at location 0xFB80 is being corupted internally
BUT!! i have checked shorts, High resistance on all the external address and data pins.

Waddya think???
 
Long, long ago - my first computer was a Tangerine Microtan 65, which was a Eurocard sized board, you could then add a second board TANEX (TANgerine EXpansion), and a small backplane board was available to connect the two together. The second board provided memory expansion, ROM and RAM, plus a cassette interface.

Following on from that, you could buy a full size backplane - which included memory paging - and add extra boards.

Among the extra boards I bought was a 'hi-res' graphics card (not very hi-res, and only mono), a sound synthesiser card (using the usual AY type IC) - and a third party CMOS battery backed memory card, using 2K static RAM's.

However, when I built the memory card I was getting really 'strange' problems, which took a LOT of investigating to figure out what was happening - eventually I realised that the memory was getting duplicated - you wrote to one part, and it was duplicated so many times up all the memory. By working out the exact spacing, I realised that it meant two of the address lines on the memory card were shorted together, and also exactly which two it was.

I confirmed the short with a meter, and VERY, VERY carefully examined the board - expecting to find a solder splash across the address lines, but it wasn't that - it was a manufacturing defect on the PCB, and a tiny piece of track between address lines hadn't been etched away completely. A small cut with a Stanley knife instantly cured the problem :D

I wonder if you have something similar?
 
My logic is this... The program works fine.. This ends around 0x4800 the last three addresses are used for
internal RAM 0xFC00 External RAM 0xC000 and the display at 0xE000..

For the shadow screen located in Internal RAM at FE80 and only one byte affected at FE88 there has to be something that connects these as you can see the second line will be at 0xFEC0 and the character at 0xFEC8 is fine The external encoder the good ol' 74hc138 is on A15, A14 and A13 and the external ram switch is on G2a and G2b with G1 pulled high. Absolutely nothing amiss here! So as you can see, without any of the program memory not corrupted the only thing left is a hardware fault... BUT PIGGIN WHERE..

I once had one of these where someones aggressive soldering seeped under the PLCC socket and was touching the surrounding pins.. This was my first "go to" job.. I checked for continuity on all pins and their surrounding pins..

Once I swap out the decoder, I'll be pulling the MPU socket off the board next. See where that gets me.
 
Have you tried a different program?

You have beaten you brain out on the hardware, but could there be an oddity in the software which scribbles on that memory location?

Try a completely different program, just a simple "Hello World" or just write out the alphabet.

JimB
 
This system has been "out there" for years... I have tried several programs. several LCD's two or three MPU's etc... I'm now lost.

All I can imagine is an arbitrary read from an unused location in memory.. From 0x4800 the memory is filled with 0xFF.. I have three different PCB's on the desk and only the one is doing this.

Its a cracker of a problem.. It's really foxed me. BUT!!! I will find it.. Or I'll die trying..

Remember I didn't commission these things, I'm just repairing, they did work once..
I have a feeling the new 138 will fix it..
 
Is there any noise on the power or ground anywhere? Or any signals with odd looking levels?

I've recently been working on some old industrial controllers which had strange problems & with those it seems to have been a coincidence between current draw and certain logic signals near a memory IC enable line, causing a glitch that prevented the memory being written to reliably.

The boards have tants scattered about as the bulk decoupling, plus some ceramics - none look to have cracked or burst, but there is around 1V on noise on the 5V supply, before adding extra ceramics!
 
I have since replaced the 74hc138 (just incase) I removed the MPU socket to see if anything is shorting underneath.. But Alass I got two boards mixed up and removed the wrong one.. LOL You can only do that an our age.. What a numpty. I'll do the other one soon but its an 84 pin PLCC and time is never on my time (so to speak).. The board is still doing the same... The challenge is weakening as days go by and the bin looks very favorable..
 
I have since replaced the 74hc138 (just incase) I removed the MPU socket to see if anything is shorting underneath.. But Alass I got two boards mixed up and removed the wrong one.. LOL You can only do that an our age.. What a numpty. I'll do the other one soon but its an 84 pin PLCC and time is never on my time (so to speak).. The board is still doing the same... The challenge is weakening as days go by and the bin looks very favorable..
It pop it in the bin and not tell anyone. The value of solving this mystery is in arrears.
 

Latest threads

New Articles From Microcontroller Tips

Back
Top