Over the last few weeks, I have been having a lot of fun implementing a simple audio spectrum analyzer using a pair of MSGEQ7 chips (designed by Mixed Signal Integration and purchased from SparkFun). For the digital processing and control portion of the system, I’m using a chipKIT MAX32 microcontroller platform featuring a 32-bit MIPS-based processor from Microchip Technology running at 80 MHz.
The columns on my project have received quite a few comments, including one from Sree Harsha Angara (a.k.a. Mithrandir), a senior applications engineer in Bangalore, India, for Cypress Semiconductor. “My interest is piqued now,” he wrote. “I’ll see if I can get the front-end filtering running on my PSoC 4 Pioneer kit. Weekend project, here I come :)”
Over the last few years, several of my friends have told me I should start playing with programmable SoC (PSoC) devices from Cypress. In particular, the PSoC 4 looks rather interesting, with its mixture of programmable analog fabric (opamps, 12-bit 1Msps SAR ADC, etc.), programmable digital fabric (four PLD-based logic blocks), and a 32-bit ARM Cortex-M0 processor running at up to 48 MHz. I particularly like the 1.7-5.5V operation.
Anyway, Sree and I ended up exchanging several emails. I learned that he “works mostly on power supervision designs and almost any other customer designs that come my way.” He takes “a personal interest in control theory, digital filters, and power electronics.” He’s currently writing a series of columns on PID controllers on EEWeb. He’s “always crawling around EE Times,” and he reads my blogs in particular “because of the fun projects.” Ooh, he knows how to get my attention (LOL).
Eventually, Sree sent me an email saying, “Hurray, I finally got my hands on an audio splitter. I also got some time to get to the filter design and I’m pretty satisfied with it. A quick peek of the characteristic curves is as shown below:”

When I asked Sree whether these curves were theoretical or empirically measured, he explained: “I create these curves the old-fashioned way using Excel. The curves I show here are theoretical, but I generally make it a habit to perform a simple Excel simulation in the digital domain once all the nasty transforms and fixed-point bit shifts are done.”
A few days later, Sree sent me another email saying, “It’s Alive!” It seems that he used his PSoC 4 to create “an exact replica of the MSGEQ7 chip with its seven band-pass filters and peak detectors.” He also sent me a link to link to this video showing his PSoC 4 accepting an audio stream, emulating a MSGEQ7, and driving seven LEDs.
Do you recall my blog from a couple of months ago about the 32-bit PSoC 4 dev board? Since then, I’ve ended up with 41xx and 42xx versions of these PSoC 4 Prototyping Kits, along with a PSoC 4 Pioneer Kit, so I asked Sree if I could implement his design on these boards. He replied: “This implementation just uses one SAR ADC and the whole filter runs through a single interrupt routine. That being said, you need seven PWMs to drive the LEDs — I basically use four fixed-function PWMs and the other three are implemented using UDBs (Universal Digital Blocks).” He also provided the following block diagrams.


If you want to play with this design yourself, Sree has kindly provided these main.c and adc-sar-int.c files, along with this ZIP file with all the source code and the entire PSoC Creator project.
Sree says we still have about 50-55% of the processing power free. Also, it seems that he’s run across another really interesting method called the Goertzel algorithm for frequency detection. In his last message to me, he said: “I’m still chugging along with the Goertzel algorithm, but on first sight it’s a lot more complicated than simple band-passes and I’m having some difficulty wrapping my head around it.”
I, for one, have every faith in Sree, and I look forward to reporting on his progress with the Goertzel algorithm in a future blog. In the meantime, what do you think about the PSoC 4 devices?
— Max Maxfield, Editor of All Things Fun & Interesting 
Related posts:
- 32-Bit PSoC 4 Dev Board Only $4
- QuickLogic Wearable Solutions Include Hardware & Software
- DCD’s D16950 UART Soft IP Core for FPGAs & ASICs
- Programmable Analog: Maxim Creates Swiss Army Knife
- ASIC, ASSP, SoC, FPGA – What’s the Difference?
- Menta’s Embedded FPGA Fabric for SoC Designs
- Lattice’s iCE40 Ultra FPGAs Make Smart Devices Smarter

I'd be interested in hearing what the power consumption is of the two designs, the dedicated hardware and the PSoC. I was intrigued by the PSoC concept years ago (PSoC 2) and tried to integrate them into products I was designing at the time. One large factor which ruled them out at the time was the massive power consumption relative to a traditional design. I would imagine that has improved and would be interested in some current (no pun intended) numbers.