Hardware specification part I: microcontroller and display

Before continuing work on the system subcomponents, I’m going to specify two basic hardware components: the microcontroller and the display.

Microcontroller

First, for the microcontroller, I will use theĀ TIVA LaunchPad (TM4C123GXL) as the foundation on which to build the Bispectrum Visualizer. Why? It provides a fast (75 MHz) 32 bit CPU with DSP-like capability thanks to its multiply-accumulate register. It also supports in-circuit debugging via its USB interface, is supported by good software libraries and development tools, and most importantly, I already have experience with the TIVA LaunchPad. Its 32 kb of RAM is rather constrained for the matrices of values that will represent the bispectra, but this will make the firmware design more interesting as a learning experience.

The TIVA LaunchPad provides headers to connect external circuitry. My plan is to design a PCB that fits into this header that implements all of the audio circuitry, including audio connectors, amplifier, and filter.

The board runs from a 3.3 V regulated supply that can drive up to 500 mA with overcurrent protection, powered by 5 V from a micro USB connection. This means the ADC of the onboard microcontroller will be able to digitize voltages in the range of 0 to 3.3 V – important to know when designing the amplifier and filter electronics.

Display

And finally, for the display, I will use an existing display module already designed to connect to the TIVA LaunchPad, the Kentec QVGA Display BoosterPack (BOOSTXL-K350QVG-S1). Specifying this display now is important because it will define which header pins are free to use for my own circuit.

Hardware block diagram

Here’s the hardware block diagram for the Bispectrum Visualizer, which shows the “big picture” approach to the hardware implementation.

Let’s start with the external facing subcomponents (in boldface). The device will have two audio input connectors: one for a microphone, and another for a line-level audio source. This will allow the system to display the bispectrum of live sounds in the environment, or from a pre-recorded source, such as a personal music player. A switch will be used to define which input source (microphone or line in) is used to compute the bispectrum. A mono monitor out is provided so that inputs may be optionally monitored or recorded by an external device. A display is included, of course, to display the bispectrum.

The most important internal analog subcomponents are the amplifier and anti-aliasing filter. The gain of the amplifier will be controlled by the microcontroller at minimum according to which input is selected, and perhaps also according to whether clipping is detected in the digitized audio stream. The anti-aliasing filter prevents frequencies above the Nyquist frequency from being “reflected” (or aliased) to lower frequencies, corrupting the signal at the frequencies of interest. And finally, the microcontroller will contain the analog-to-digital converter, memory, and signal processing firmware to compute the bispectrum and send it to the display.