Problems with Z80 DART serial - Page 1
Forum section: electronics / general

author: profdc9
author_rank: Frequent Contributor
timestamp: July 27, 2021, 06:52:00 pm
content: I made a PCB for Grant Searle's Z80 CP/M computer.https://github.com/profdc9/Z80SBCI have had a problem I can not figure out. When I turn on and reset the computer from a cold start after not having applied the power for awhile, the computer seems to operate just fine. I can boot up CP/M and use it for about 2 or 3 minutes. However, after 2 or 3 minutes, CP/M starts to show BDos errors and directories appear with duplicated filenames. Shortly afterwards, the computer stops accepting serial input, though if I reset serial output occurs (it displays the "Press  to activate console").I have removed the compactflash card and all of the chips I added to the design and the problem still happens. I thought it might be that I was using the Z80A DART, so I bought a Z80B DART, but that did not help.If I unplug the computer and allow it to stay unplugged for a few minutes, the computer is fine again for a few minutes. Maybe its a heat problem, but none of the chips get more than slightly warm.If anyone could provide advice on how to track down such an intermittent problem I would appreciate it. The schematic for the Z80 computer is in the github project.Thanks!

author: Andy Watson
author_rank: Super Contributor
timestamp: July 27, 2021, 08:16:06 pm
content: It does sound very much like a thermal problem. Is the power-supply holding up? Take a can of freezer, or other cooling agent (alcohol ?) and check each chip in turn.

author: saipan59
author_rank: Contributor
timestamp: July 27, 2021, 09:33:05 pm
content: Simple idea: Try putting an ice cube tray directly over/under the board.If that helps it run longer, then definitely thermal.Or, as Andy said, monitor PS voltages during that first couple of minutes, to see if anything changes.Pete

author: profdc9
author_rank: Frequent Contributor
timestamp: July 28, 2021, 12:29:41 am
content: Well, I placed a beer can on the Z80 processor and now it seems to work for awhile.The conclusion is naturally, my processor wants beer.Or, the beer can is cold and cooled the processor.

author: SiliconWizard
author_rank: Super Contributor
timestamp: July 28, 2021, 12:48:24 am
content: Well, a Z80 overheating? I don't think I've ever seen this.Or maybe the board itself is heating for some reason, and in turns heats the CPU...

author: saipan59
author_rank: Contributor
timestamp: July 28, 2021, 03:53:48 pm
content: One more thought:Rather than a heat-sensitive chip, another possibility is a cracked solder joint or PCB trace that goes hi-Z with temp changes.Pete

author: SiliconWizard
author_rank: Super Contributor
timestamp: July 28, 2021, 04:19:35 pm
content: Quote from: saipan59 on July 28, 2021, 03:53:48 pmCould be! Actually, cracked solder joints can themselves induce this: even when cold, they may already have an increased resistance. If any significant current passes through this, the joint will just heat up while the circuit is operating, further increasing its resistance... further heating... until voltage drops enough that the whole thing stops functioning.

author: granzeier
author_rank: Regular Contributor
timestamp: July 28, 2021, 08:49:49 pm
content: Have you tried another one of your boards, preferably with different chips and components? That would tell you if the trouble is that board or components on it, of the trouble is in the design of your board.

author: Benta
author_rank: Super Contributor
timestamp: July 28, 2021, 09:05:51 pm
content: Question based on a similar experience:Are you really using 74HCTxx and not 74HCxx parts?

author: profdc9
author_rank: Frequent Contributor
timestamp: July 28, 2021, 10:12:04 pm
content: Well, I am slightly overclocking a Z80B to 7.3728 MHz (from 6 MHz). Perhaps this is marginal. I am acquiring a 8 MHz version. But I was told that slightly overclocking the Z80B part generally works, but perhaps I was misinformed. I am also getting a 3.6864 MHz crystal to try that as well.I went over the solder joints twice and reheated them and retinned them. I don't think it's a solder joint.I am using 74HCT/74LS parts for the address decoding logic, and I tried the circuit with all 74HC parts removed.

author: SiliconWizard
author_rank: Super Contributor
timestamp: July 28, 2021, 11:27:32 pm
content: Can you try downclocking the CPU just to see if it's the cause?

author: profdc9
author_rank: Frequent Contributor
timestamp: July 29, 2021, 01:35:47 am
content: In order to get a usable baud rate I need to downclock to half the crystal speed, which is why I ordered a 3.6864 MHz crystal, but I could try to inject it using a function generator I suppose.

author: profdc9
author_rank: Frequent Contributor
timestamp: July 29, 2021, 02:55:12 am
content: Well, it's been running off my function generator at 3.6864 MHz for about half an hour now, so it seems to be stable at this frequency.Maybe it is the slight overclocking...

author: SiliconWizard
author_rank: Super Contributor
timestamp: July 29, 2021, 03:56:47 pm
content: Quote from: profdc9 on July 29, 2021, 02:55:12 amThat's interesting! I admit I have never tried overclocking Z80 CPUs, so I have no clue how amenable to this they were. Apparently, not very.Now as cooling the CPU seems to help, you could just add some heatsink on the CPU and call it a day.

author: woofy
author_rank: Frequent Contributor
timestamp: July 29, 2021, 10:16:03 pm
content: Quote from: profdc9 on July 28, 2021, 10:12:04 pmThe DART runs from the same clk as the CPU, so make sure you have an 8MHz DART too.