sburrow wrote:
1) Have you run some other devices or code on this current board? You had the LCD working on the last one, have you proven this board with something similar? Or at least some LED's? That would at least give you a starting place.
No I/O, or even LEDs are attached to this board. It passed the NOP test, but as soon as I started using RAM it went splat.
Quote:
2) How much do you trust this logic analyzer?
A medium amount, I guess? I think mostly my difficulties with it are due to my inexperience using it, with its general persnicketiness being a contributing factor. I am starting to get more consistent results, thanks to George's input. The dev-board itself is a proven design, but my particular one is clearly not a very well made one. (Messy soldering, flux residue all over the back of it, and so on. A couple of the pins on the fx2 were bridged with solder and I had to separate them with a scalpel. Maybe once things settle down I'll go ahead and pony up the $12 for the one that hoglet uses.)
Quote:
3) Have you tried pressing chips, pushing on wires, bending things? I'm guessing you checked continuity with all of those drill spots? Even a tiny jumper could change things drastically! Just checking for physical issues.
For sure; on that topic, earlier I took George's advice and pulled the CPU to test the decoding logic by driving the address lines directly. When I reinserted the CPU I got exciting new chaos! Turns out that one pin on the CPU didn't have continuity with the leg on the socket, so A14 was floating! The little socket fingers had gotten stuck somehow, I guess. I pried around in there with a bodkin and managed to free them up so I'm back to the old boring chaos.
Quote:
4) Are you sure the chips are functioning ok? Or are they "too good"? Golly I remember one time a '161 was making my whole screen snow unless I warmed it up, but other '161s were fine. Turns out I had a timing issue, but my "canary" '161 was just too good at it's job apparently. I know 74AC' chips have fast slew rates, maybe it's something like that?
I definitely have a bad AC163. That was an easy one to find, though, because it's my prescaler and the clock signal was wild! The other day I switched it out for an HC163, and the clock is now working. All the other glue logic chips seem to be doing what they're expected to.
Quote:
5) Does your reset line supervisor start the reset process at 4.5V or more? Any small shift in voltage on that line would make it reset then. I usually go with 3V threshold versions when possible.
In fact, yes (it's a DS1813-5). And it was causing me problems just like you describe! I tidied up my ground network and added some bypass caps on either side of it and now it's behaving. (Also, reset goes to the logic analyzer, and it seems to put a relatively heavy load on it! The DS1813 holds the reset line at 5.1V normally, but when I connected it to the logic analyzer it drops to 4.8! That load, along with my previous not-so-good ground / bypassing in the neighborhood of the DS1813 made for some truly scary looking traces on the scope!)
Thanks a lot for your encouragement, Chad. It really helps with morale!
I've narrowed the problem down to the RAM. If I remove the RAM IC from the board, the RAM test completes successfully (which is to say, it notices that what it writes to RAM is different from what it reads back from RAM and jumps to the appropriate failure loop). With the RAM on the board it goes splat the first time it executes LDA 0,X. When I drove the address lines directly as George suggested, with just the ROM on board I could read from the ROM no problem, and the signals on the data bus were rail to rail. With just the RAM on the board I could also get it to drive the data bus, but the high voltage seemed low (4.7-8 or so) but still high enough for a logic 1. With both the RAM and ROM on board, though, I would read 700 or 800mv on the data bus, which should never ever happen. This seems like bus contention for sure. But I can't figure out what can be happening to cause it. ROM_CS and RAM_CS are generated by a `139 so they can never both be low at the same time. I am stump-ed.
This is the RAM I'm using:
Attachment:
File comment: W24512AK-15
W24512A1111.pdf [206.43 KiB]
Downloaded 51 times
I grabbed some of them from that Ali Express seller that Michael (K8LH) recommends. I guess it's possible that my entire batch is bad, but it seems unlikely that they would all fail in *exactly* the same way. I think either I made a mistake somewhere connecting it (but I can't find one!) or there's some aspect of it that I've failed to understand that has caused me to make a bad design decision.