I completed wiring up the two new design input boards and stacked them inside the input enclosure. I am hooking up the external signals and other lines to the boards, then will fire up a test. Right now, however, I am not satisfied with my means of attaching the signals to the board. I need to find a new connection method and apply it before I proceed.
Whether I use single pins in the holes or directly insert a wire into it, the pin or wire is not mechanically secured to the board. It is easy for it to tear up the copper trace on the board. I have ordered pcb pins that mount through a hole and are soldered to the trace and pads on the top and bottom copper layers. The pin should form a mechanically secure attachment for the wires I will attach.
I came up with a way of securing the wires to the boards, by soldering to copper on both sides of the PCB. I created a round 'pad' on the top board as well as the pad on the bottom that is connected to circuit traces. Once the wire and pad is bonded on both sides, the wire is well anchored and won't put any strain on the traces.
With all the new boards and connections set up, I tried the bus pirate and once again am not able to read any useful output from the chip registers, always sensing FF. The same results occur with the fpga logic. Therefore, it appears I still have an analog electrical issue to sort out. The errors occur whether or not the output board is hooked into the I2C chain, thus the problem is with my link out to the input boards.
|Chasing analog issues with card reader I2C serial link|
To verify this, I am temporarily moving the input and output boards to within a foot of the fpga and wiring a separate set of lines bypassing the long cable. This was done to verify that the issue is the length of the connection. However, the same issue arises with both bus pirate and fpga driving the line. I will keep digging.
|I2C transaction, overlay of clock and data lines on scope|
|Quickie circuit to trigger scope on I2C Start of message|
|Ringing on falling edge, voltage offset from ground|
I ran through all the signals, forcing each input from the card reader to flip and verifying that this state is reflected in the fpga logic. All the lines work except for the index marker signal, which appears always high and can't be switched. As well, my input board for the second chip, which carries the IM signal, is also not reflecting changes in the card reader state it monitors.
Something is wrong with my second input board. I found a trace was not delivering the +3.3 volt to one of the zones of the board. I jumpered the stretch with some bare wire, but the board is still not working correctly. I will do some continuity testing, inspect the soldering for bridges, and hopefully find whatever is not working correctly.
I did find a few places where continuity with the chip pin wasn't good and one flaw in my initialization and reading logic for chip 2. Before I fixed those issues, I did some multimeter work to confirm that my pushbuttons from the 2501 panel are correctly debounced and reflected as signals into the MCP23017 chip.
With those defects I discovered now corrected, I could test again and confirm the second board is working properly other than having the 'interrupt occured' bit continually on. This may be a consequence of the IM signal floating. I will double check all the settings for the interrupt then run a test.
I put the scope on the full length cable now that the hardware is debugged. The signals are very clean, no ringing at all - this is likely due to the well matched impedance of the token ring cable compared to the short regular wires I used for the debugging runs.
However, I could see that the low voltage levels for both clock and data lines is now however just under 1 volt. While this skirts with legal levels according to the I2C spec, it is far above the required maximum spec of the MCP23017 chip. Undoubtedly this is the cause of the problems I am having.
I suspected this is cumulative resistance in the board traces, wiring and cables that connect the ground of all the units. I put in very good ground links directly to the MCP23017 chips, to the fpga board and to the power supply for the links, however it had almost no effect.
It is possible that I will have to implement I2C buffer/extender chips which should resolve many issues related to the long cable run. I have picked a part to use and may begin designing boards to place at both end of the serial links. I want to do more research and noodling to see whether I can establish a sufficiently reliable link without the need for the buffers.
On the plus side, I now have solid new boards and a much better mounting inside the input box, which will pay off in better reliability down the road. I have some insulation to apply, but won't seal up the box until the issue with the I2C chain is fully resolved.
TEKTRONICS OSCILLOSCOPE REPAIR
Unfortunately for me, my 7603 was the 'option 1' type which did not include the readout system that displays text and digital information on the screen. This capability is essential for my digital counter and my logic analyzer plug-ins, so I am hunting for a suitable board to install. I have just bought a 'for parts' 7633 that appears to have the readout board inside. Once I pick it up locally and bring it to the shop, I should know whether I can begin installing the board into my 7633. I hope to also salvage some transistors and other parts to use with the 7603 system I am repairing.
The digital counter plug-in has two power supply filter capacitors that are shorted to ground. Apparently the tantalum capacitors used in the plugins are notorious for failing. Once I replace the two bad ones and verify the unit works correctly, I will go through the unit and my scopes, replacing all the tantulum caps with new ones. The parts themselves are small change, it is just a matter of patience desoldering the old and soldering in the new ones.
The Tektronix boards use an internal ground plane layer in the PCB sandwich, to which one end of the capacitors is soldered as part of a thru via. No traces run from the top or bottom layer. Because of the large ground plane internally yet the small copper circular pads on the outer surfaces, it is very hard indeed to unsolder and remove the lead from the old capacitor on the ground side.
I ended up with the via pads completely removed on one replacement, but was able to bolster the component lead with additional wire segments to form a good mechanical fit to the internal ground layer, then the solder wicked down to complete the electrical connection. It was very slow and tedious due to the heat conduction problems of the internal ground plane, but eventually all the tantalum capacitors were replaced, the short is gone and the unit is ready to test when the readout system is working in my 7603.
The 7603 had a bad driver transistor in the power supply producing +15V power. I replaced it with a part from the OS245 to confirm my diagnosis and will order permanent replacements. I should have replacement transistors from the 7633 parts unit I am buying.
The machine is now functional, but is erratic powering up which means I have to work on it a bit more. The +5V supply sometimes drops to a low voltage, which means the other 2N5859 transistor is not seated well, or perhaps a solder junction on its socket is cracked, or it may be an internal fault in the transistor. When it doesn't come on, I give the rear a slight whack and power comes right up.
The 7633 has some broken knobs on the front but appears in good shape internally. It does indeed have the readout system installed, which justifies my $45 investment. I powered it up and checked the power supplies - everything ticking right on the money. The scope is not working right, however, as I am not getting a good sweep with a time base inserted, and there is some odd blooming of broad shapes on the screen even when it is non-store mode that can't be dimmed with the intensity control .
I may play around a bit to see if I can figure out what is wrong - if it is simple, this makes a better storage scope than the Tektronix 465 I have been using. I can sell the 465 and the Iwatsu scopes I no longer need. I would still have to decide which of the two scopes should have the readout system. Probably I will choose the 7603 because of its large bright screen.
I also picked up a logic analyzer plug in, the 7D01 and its companion DF1 display formatter, plus two probes that give me 32 channels of monitoring. I can use a single scope to monitor 32 digital signals, watch four analog signals simultaneously, count events, measure frequencies and time intervals, and switch between these capabilities pretty quickly.
During my scoping of the I2C link, as I was switching the sweep rate dial on a 7B53A time base, the plug-in stopped triggering sweeps. I put in another timebase, a milspec one that is equivalent to a 7B53AN, to continue my serial link checking. I have to diagnose and repair the broken 7B53A, which won't perform a sweep even in 'auto' mode or with 'line' selected as a trigger source.
Having decided that the readout board should be placed in my 7603, I removed the cables and board, installed it in its new home,but will have to make some new ribbon and coaxial cables since the ones from the 7633 are too short. The readout board sits further forward in the 7603, farther from the other boards to which the cables must connect. I would need to order the parts and wouldn't have them in hand until next week.
However, it occured to me that if I rotated the readout board 180 degrees in its mounting position, I would gain several inches, perhaps enough to make use of existing cables. I will need to switch these around, to get the lengths of the existing cables sorted to match the necessary span in the 7603. Several will work fine already, although one of the links is still a trifle short. If I can't find a more direct routing to gain the extra inch, I may need to swap this for a similar but slightly longer 10 wire cable from the 7633.
After a few fun hours disassembling the 7633 to grab any suitable cables, plus working on alternate routings, I was able to get all the flat ribbon cables connected as well as two of the five coaxial connections. The remaining three cables must be made from suitable coaxial cable and connector ends or bought, but that should complete the installation of the read-out functionality into the oscilloscope.
I found a supplier with some used Peltola cables that should be long enough to work - order placed now just need to wait patiently until they arrive. They are coming from Greece which means about two weeks for delivery. This gives me the highest confidence solution for the problem.
In the meantime, I will experiment with a plan to cut an existing but too short cable, solder on SMA connectors to the cut ends, and use an SMA coupler to join them. If that works in a scope in place of an intact cable that I temporarily replace, then I can use this method to build extenders. Not sure of the signal loss incurred in these connections and I will be adding two connections per lengthened cable, but the specs for SMA connectors imply very low loss, almost less than the cable itself.
DISPLAY PEDESTAL COMPLETION
I removed the damaged light panel assembly, in order to reglue it and install it correctly. The front plexiglass panel is attached by only two of its four pins, but with the light panel removed I have good access to correct this and affix the panel solidly. I will switch to 1/8" clear acrylic rods, in order to achieve a very solid mating with the 1/8" holes I drilled in the plexiglass. The downside is that the clear rod won't match the color of the plexiglass panel, but a secure attachment is paramount.
The pin repair worked out well, although the clear pin is noticeable to me. The black paint surface inside the plexiglass panel took a bit of scraping on the left side from having to remove the light panel that sat behind it. I will leave it alone for now, given the long history with this part of the project of every step incurring some additional kind of damage to the appearance.
I began testing the light panels to detect and repair any damaged LEDs. So far, I have found a non-working LED used to display bit 10 of the EXT register display. I haven't completed a comprehensive test of all the lights but anticipate I can accomplish this by the end of New Year's day. I can then repair the lights that don't work, glue the panel together, reverify the lights are working, then install the light panel inside the enclosure. Lastly, I will do one final verification of all LEDs working after I install the header plate and side panels, but before I close up the rear of the enclosure.
I replaced the failed LED in the EXT register position, as well as corrected a problem with the light indicating Interrupt Level 4, leaving me with a fully working light panel. I am ready to glue it together again, now that I have a verified panel with all lights working properly and a properly affixed plexiglass panel on the front. I also should trim the areas where the front plexiglass panel attachments extend into the enclosure as there exist some points of contact that spoil an ideal fit right now.