Final Design

Single Panel Control

 

Here is a flow chart for controlling a single 4x4 panel of Tricolor LEDs controlled by a PIC processor:

As seen above, the DE2 development board should provide master control for the board.  The DE2 should communicate with the appropriate PIC (PIC16F690) for a chosen panel by sending a bit-stream detailing the status of the individual LEDs to each of the three shift registers (74LS164), one for each panel.  Once all four values for each color have been shifted in the flip flops (74LS273) clock, freezing the 4-bit output of the shift registers.  From the flip flop output, the outputs are fed in parallel to the appropriate anode.  The DE2 must also send a signal to the PIC choosing a cathode.  The signal passes through a decoder (74LS153) followed by an inverter (74LS240) to nullify the active-low effects before finally providing power to the base of an NPN switching transistor which when power flows into the base allows voltage to pass from the collector, connected to a cathode, to the emitter and on to ground.

Things not shown in the above image are that the emitter of each transistor needs to be connected to ground, and a 5V DC Power Supply must be applied across each of the chips to provide power.

Master Control

This chart shows panels containing the circuitry detailed above controlled as we planned by the master circuitry:

 

 

 The 50 MHz clock on the DE2 provides the run clock for the NIOS II soft processor implemented on the Cyclone II FPGA.  The Switches provide input from the user as to which animation to run, which is in turn displayed on the LCD Display.  The NIOS II Master control communicates with each panel's PIC processor via an SPI interface and stores data in the SD Ram.  We did not end up being able to interface the NIOS II to the PICs unfortunately as we could not successfully configure the PICs as slaves within the allotted time.

 

Master Control Plan B

Since we could not interface the PIC processors with the DE2 via SPI protocol, we decided to hard-code the animations within each of the PICs and then synchronize them using the crystal oscillating clock since we were unable to interface with the DE2.