Soundbar design encompasses many divergent yet essential steps (see http://electronicdesign.com/author/dafydd-roche). For example, the marketing team’s specification must be decoded into component selections. Various converter and amplifier topologies must be examined. And, there’s in-circuit and production line programming.

In terms of hardware, the soundbar reference design we have been developing uses an MSP430 16-bit low-power microcontroller to handle the control, user interface, and housekeeping duties. The PCM3070’s dual miniDSPs manage the audio processing (Fig. 1).

1. The final soundbar reference design hardware includes the miniDSP codec, microcontroller, USB, S/PDIF receiver, audio power amplifier, and power supply.

Download this article in .PDF format
This file type includes high resolution graphics and schematics when applicable.

The code for the miniDSPs is kept externally on an additional EEPROM, as we had some concerns regarding the number of different process flows required for the miniDSP. By process flow, I refer to a different audio processing flow for, say, Sony/Philips Digital Interchange Format (S/PDIF) content versus analog input, or different audio processing for 44.1-kHz content versus 48 kHz. Each process flow requires its own code and coefficients, increasing the amount of flash space required on the microcontroller, if we decide to keep everything in the microcontroller.

In practice (and hindsight), we found that customers typically had two process flows (44.1 and 48 kHz). In fact, most had one process flow, with different coefficients for 44.1 kHz and 48 kHz.

In the rest of this article, we’ll discuss the software that was developed to boot the code for the miniDSP codec from an external source, mainly because that's what was done, but also because it provides a good example of such software management, should you have multiple process flows in your product.

The software in an audio system, such as a soundbar or PC speaker, can be split into a few different sections: control and user interface (decoding IR, receiving button presses and de-bouncing them), housekeeping (boot up and maintenance of multiple devices), and audio signal chain processing (audio processing that sits between the input and speaker amplifiers).