. | . | . | . | David McCracken |
Astec TVROupdated:2022.05.19 |
ASTEC had been contracted to develop a TVRO (Television Receive Only) set top system, comprising the receiver and a two-axis motorized dish antenna. The dish controller was to be built into the receiver. I was initially hired just to design the digital and control electronics. When I finished, ASTEC’s engineers realized that they had no idea how to design embedded system software and I was hired to do this as well.
I had never before designed a consumer product but some of the requirements were similar to those of laboratory instruments: multi-digit LED display, single-LED annunciators, motor drivers and encoders, etc. I had no idea how to design the many radio, television, and (IR) remote control interfaces but ASTEC’s radio engineers had already picked many of the components that they wanted. All were made in Japan, Taiwan, or Germany and none had English data sheets. They all had one thing in common; something that I had never seen before; the CPU talked to them via a strobed serial interface used to reduce costs while increasing reliability. This interface scheme was especially valuable for us because it reduced cabling between the CPU board, serving as the front face of the box, and the I/O, located mostly on the main radio board. For the rest of the design I made a typical multiplexed LED display and keyboard scanner, which couldn’t be optimized any further. I used SIPO shift registers for all other I/O.
In those days the dishes were either 9 or 12 feet in diameter and had to be oriented to point directly at one of the 24 geosynchronous satellites that could be seen from most parts of the continental US. Typically, an expert installer would pour a concrete base, attach the antenna to it, and then adjust the dish so that a single-axis azimuth scan followed the satellite belt. Twice a year a technician would have to realign the dish to compensate for movement of the base due to spring thaw and fall freeze. Some manufacturers added an elevation axis motor, which could theoretically compensate for the changes but no one had figured out how to use it to get rid of the regular visits by the technician.
ASTEC’s base plan was to build the dish controller into the receiver to at least eliminate the clutter of a separate box. They decided to provide two-axis control in case one of us could come up with a plan for effectively using the elevation control. ASTEC’s engineers proposed a complex scheme comprising both a memorized map of the sky at many different points in the US and a daily self-adjusting scheme, which I calculated as requiring 12 hours to complete. A steady stream of inventors came through the lab trying to sell multi-thousand dollar ultra-precision electromechanical schemes. I just watched what a good installer did to find the satellites and wrote a (MC6801 ASM) program to do the same thing. I implemented this, along with everything else, in a one dollar MC6801 microcontroller with 8KBytes of ROM. With the radio signal quality for feedback, the receiver would find its first satellite in less than 15 minutes and map the entire constellation in less than a half-hour. This was required only when the system was installed, after which the receiver constantly adjusted the dish position to compensate for physical changes. My invention was awarded US patent 4,801,940.
In addition to one television channel, each satellite would relay as many as 20 (more or less) radio stations. Crammed into a very narrow bandwidth, many of the audio subcarriers were located 50KC apart. Like most consumer products, our receiver used a 100KC bandwidth SAW (Surface Acoustic Wave) filter to admit this signal, which being wider than the subcarrier spacing, prevented automatic PLL-based signal seeking. Thus, only professional equipment or very adept dial twisters could lock onto these signals.
The radio engineers had become so enamored of microprocessor control that they mistakenly put it into the radio signal control loop. Instead of simply connecting the phase detector’s analog error output to the VCO’s analog control input, they connected it to a MUX-ADC channel. A DAC channel controlled the VCO. The microprocessor had to constantly read the error and adjust the VCO voltage accordingly. I was reviewing this, considering replacing it with a wire, when I realized that it afforded a means of automatically finding the subcarriers. Starting locked onto a subcarrier by normal PLL action, I used an anti-PLL action to move toward the next carrier, that is I steadily changed the VCO control voltage to increase the phase error. The phase error would be a minimum at the starting point and increase at first but, as the local frequency (from the VCO) approached the next subcarrier, the SAW filter would begin to admit some of that signal. The phase error would be the superposition of the positive error from one subcarrier and the negative from the next. When the result was zero I was at the mid-point and could resume normal PLL action to pull into the next subcarrier. This invention was awarded US patent 4,783,848
ASTEC’s Taipei factory was picked to build the receiver, but they were set up to make computer monitors and power supplies and had no automated test equipment for embedded computer systems. I had designed a “back door” means of accessing the microprocessor through a spare serial port, much like a BDM debugger but using an ISR instead of microcode. The ISR provided typical debugging facilities, such as code patching and reading and writing registers and memory. While this was useful for me, alone it couldn’t really help the factory. For them I designed a test system. Controlled by any computer with a GPIB port (I used the portable Osborne) this system provided digital and analog input and output signals and an interface to the receiver’s back door debugger. I wrote a guided probe test protocol in which the control computer would tell the operator connections to make between the test system and the unit under test. In most cases the operator only need to touch a probe to one point. The controller would then use the back door debugger to set up additional test conditions and/or read back status. The controller analyzed the results of each test and identified a specific problem, if any. It could locate most shorts and opens, as well as failed and out-of-spec components. When I brought this to the factory, they showed me a closet filled with several hundred dysfunctional units and dared my test system to fix any of them. With some initial instructions from me, a handful of technicians had fixed nearly all of the units in a few hours.