Rhococo prototype hardware debugging
|Project RhoCoCo Prototype hardware debugging|
|Almost all new hardware, (exceptions do exist, but are rare) will have some faults in them that must be found an solved, this page handles what I found during this quest.|
April 10, 2019 First bug finds
Unfortunately most new hardware won't be 100% functional on first try, Rhococo (Rev 1.8) is no exception. I already noticed a few non optimal things in the PCB layout. For one, I noticed that all the ceramic radial caps I had bought had wires bent to a 2/10 inch pitch, while the PCB used 1/10 inch, and 3/10 inch, that is already a reason for a new (rev 1.9) redesign.
But during first use, I also measured some voltages that were not exactly right. For one the supply voltage for the SRAM was not half a volt or so lower than 5V, but much less lower, the voltage drop over the D9 diode was just a few hundred millivolt (0.25V or so, not the expected 0.6V) meaning the current the SRAM draws is very low, a 1N4148 needs a good mA for a 0.6mA drop. Now is this more a theoretical than a practical problem, because I'm sure that when the SRAM is accessed (chip enable going low) the current consumption will immediately rise above a mA, and the diode will do its job, still I would prefer it when the voltage would be a stable 4.5V. I considered that the simple solution would be to place a resistor across C11 that draws 0.5mA from the 4.5V, so an R = V / I = 4.5 / 0,001 = 4500 Ohm, or 4K7 should work. I tried it by soldering 4K7 across C11, on the back of the PCB, and it worked, the supply voltage across the SRAM did indeed drop by 0.5V, to about 4,7V. so that should work.
a more difficult problem to solve is that I measured 3.9V across the 3V3 supply! somehow the 3V3 is pushed up, but I had expected it to! the reason is that 5V signals from the Z80 end up on inputs of the Propeller chip through the current limiting 1K resistors in the data-lines, and the Z80 control output signals /RD /WR and /IORQ, unfortunately I also found the first real mistake, in that I forgot to insert a limiting resistor in /IORQ, but moved it to the /BUSACK signal where it isn't really needed.
So I have to find a solution for that, either drawing current from the 3V3, or increasing the resistance of the series resistors, or both.
Its possible that when the propeller is started, it will draw more current. Presently the whole board draws just 60 or so mA from the 5V supply! I expect that to rise to a few hundred mA when both the Z80 and propeller are working, still I have to do something about that 3,9V on the 3V3 supply, the resistors are now dimensioned to limit the current flowing into a propeller pin to no more than 1mA, I suspect that is much to much, but which resistor value is needed can really only be determined experimentally, I regret not remembering during build up to make these resistors easily replaceable as I had planned.
For R30 to R37 (data signals) and for R25, R26 and R27, I also plan to remove these resistors, and use round female socket pins instead, so that I can quickly replace these resistors with different values. However, a first attempt to remove the resistors failed, its hard to do without specialized equipment, for example I have to get better solder wick, and so I choose to take the board to my day-job, where I have better equipment. I cannot afford to damage the PCB when pulling out these resistors. Meanwhile I managed to replace the resistors with suitable sockets, as the resistors are placed very close together, I could not use 1/10" strips, but had to use loose contacts, but this "operation" was done under a microscope, and went well
One possible solution to the problem of too high voltages on 3V3 line is to mount a 3V6 2% zener across the 3V3 supply, I have looked at the datasheet of a 3V6 zener, and it seems possible to do this. I acquired a 3V6 Zener, and will try. If I can get the 3V3 supply line under control, I can use lower value series resistors, which is better when trying to drive the SRAM through them.