This is an old revision of the document!
System Organization
The figure below depicts the top-level organization. I will explain it, starting from the left-hand side.
Photodetector. This should be self-explanatory. This is the receiver board that you constructed while attending ECEN 340.
JA PMOD. This is the JA PMOD connector located on the lower-right corner of the ZYBO board. Pins 1 and 7 (see the ZYBO reference manual) are the dedicated connections for the ZYBO's board Analog-to-Digital Converter (ADC). Note that the ADC will be destroyed if you exceed 1 volt as measured between the negative terminal (N) and the positive terminal (P). If the ADC is destroyed or damaged, the entire ZYBO board must be replaced ($125).
Analog Digital Converter (ADC). This is where the analog-to-digital conversion takes place. The ADC is contained in the ZYNQ FPGA chip (the larger chip located in the middle of the ZYBO board). See the ZYBO reference manual. Data are retrieved from the ADC by calling the interrupts_getAdcData() function that is provided by the interrupts package. See the code in supportFiles/interrupts.c, .h
for details.
queue.c. This is a set of functions that implement a queue. You will write these functions. Data are inserted into the queue by invoking queue_overwritePush()
and retrieved from the queue via queue_pop(), two of the several functions that you will write.
detector.c. This is a set of functions that implement the signal-processing-based detector. You will learn about how to implement this later in the semester.
filter.c All of your filtering functions are implemented in filter.c
lockoutTimer. When you detect a hit, you start a timer and do not detect any further hits until the timer expires.
number.
hitLedTimer. You need to flash the LED on top of the gun for at least 1/2 a second or so when you detect a hit.
transmitter.c. This file will contain the functions that implement a simple, configurable square-wave generator. You will need to support 10 frequencies (we will assign those) and you need to be able to start/stop the transmitter. You will implement the transmitter as a state-machine, as taught in ECEN 330. You set the frequency-number by invoking transmitter_setFrequencyNo()
with the desired frequency number. For now, the number will be set on the slide-switches as a binary number.
Slide Switches. These are the 4 slide switches on the ZYBO board. You access them via the switches package.
JF PMOD. This is the PMOD interface located on the left-side of the ZYBO board. There are 8 free pins on this connector that you can use as digital inputs or outputs.
Analog Transmitter Board. Self explanatory. You built one of these in ECEN 340. Pin 1 from the JF PMOD is used to connect the square-wave signal from the transmitter to the analog transmitter board.
Trigger From Gun. This is the signal from the trigger on the laser-tag gun that you used in ECEN 340. It connects to the ZYBO board using pin 2 on the JF PMOD.
It would be a good idea to review and reread the ZYBO Reference Manual.
Take a look at this for a view of the system with actual components.