IC tests
General Overview
Since Our fpga was designed to be implemented in an easily constrctable circuit,
that is exactly what we did. We constructed the circuit on a proto-design
board, with a 68 pin socket for the fpga. We tested parts of the circuit as
we built it. The only major design change was changing the RC oscillator to
a 555 timer, as documented in the frequency determiner portion of this report.
Frequency determiner
Once the output module 7 segment displays were hooked up and verified, we were
able to test the control and data path portion of the design dealing with the
determination of the current humidity. Before hooking up the oscillator, we
used a signal generator to represent the input frequency. Starting the
frequency at 406 KHz (minimum humidity at 10%), and moving gradually down to
325 Khz (maximum humidity at 85%), we saw the output go from 10 to 90. The
signal generator was very difficult to tune at such high frequencies, however,
since we saw the humdity value increase between these two values, we knew that
this portion of the design worked as planned. We also noticed that upon
reset, the output on the display was either an even or odd value of humidity, and from
there, it would only increase or decrease by 2. This was exactly as planned.
We then built the 555 timer circuit, and hooked it up to the humidity frequency
input. Our first test put the humidity at 65%. We tested the sensor by
measuring its capacitance, predicting the humidity, and then obtaining
the humidity from our design. This test also proved successful. As well, by
breathing on the sensor numerous times, we saw the output on the 7 segment
display rise slowly from 65% to 71% (in increments of 2 as it should). The
value then very slowly decreased down to 65% again.
These tests verified the design of the controller and datapath.
Keypad Tests
The keypad circuit was then built and hooked up to the fpga. This circuit also
has 7 segment displays which show the keys which are pressed. Thus
testing of the keypad was simple. When the first key was pressed, the output
should show up on the most significant digit display, and when the next key is
pressed, the value should appear on the least significant digit display. Then,
the process repeats itself. Everything worked mainly as planned, except that
it is obvious that we do not debounce for long enough. When a key is pressed,
the display shows that the value is latched, however, when we let go of the
key, the output sometimes disappears (error condition occured). Everything
continues to function as normal after that, showing that the keypad module
continues to function normally. Thus, we determined that we must not
debounce long enough for the release of a key press. Adding capacitors did
not help enough to completely eliminate the problem.
Since the keypad module did latch and output the correct values quite
regularly, we could test the whole design. Upon reset, the
current humidity was 65%. We then entered the desired value at 68% on the
keypad. Both values were output correctly to displays. The humid LED,
representing the humidifier, went on as it should. When we breathed
upon the sensor, the humidity rose. When it reached 69%, the humid
LED, representing the humidifier, went out as we expected.
The humidity continued to rise until it hit 72%.
The humidity later
started to decrease again. When it hit 67%, the humid light went on again,
as expected. The humidity continued to drop to 65%, and the humid light
stayed on.
All of the above tests verified the correct operation of our complete design.
Back to project home page