It’s time for another update on the decoder!
I have designed and tested what I am calling the “phase detector amplifier” (for want of a better term) that translates the low signal levels coming down the coaxial cable from the loop amplifier to digital levels for presentation to the phase detector. The design is very similar to the loop amplifier, but without the line driver, and with some hysteresis added using a couple of logic inverters.
If it proves necessary to add AGC to the system, it would probably make more sense to add it here in the phase detector amplifier (rather than the loop amplifier) since it has few constraints on the allowable current drain.
In an effort to reduce the workload of the microprocessor, I added some circuitry after the SPI converter that “strips” off the first two bytes of the transponder transmission (since they are the same on all transponders), and suppresses the remainder of the transponder transmission if the first two bytes are incorrect or garbled. Less garbage into the microprocessor is always appreciated by the software guys (who are presently me, myself, and I).
I have ordered a couple of flavors of microprocessors, and we’ll see which is best for the task at hand. One is a mid-level PIC, with which I’m familiar, and the other is an Atmel, residing on an Arduino Uno single-board computer, which has the advantage that the hardware is already done for me at a very reasonable price. Both will require assembly-language routines to keep up with the transponders’ data rates, but I’m comfortable with that.
The idea for the first proof of concept has transmogrified somewhat: Instead of timing laps, the decoder will simply dump the transponder data packet to my PC, making “cloning” of existing transponder IDs much easier than my current method (of using my oscilloscope to capture the waveform, and determining the phase inversions visually). Once that is working, then I’ll add time stamps to each data packet.
For anyone who would like to participate in creating code for the project, here is what I envision the data packet to look like:
6 ASCII hex bytes, representing 24 bits of transponder ID, followed by
8 ASCII hex bytes, representing 32 bits of time stamp, in increments of 1 millisecond, followed by
ASCII carriage return and line feed
The lap counting PC will require a program to examine all of the incoming data, determine the loop crossing time for each transponder, and format the result to send to the lap counting program. Is anyone interested in doing this?