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.
I didn't take a look at the power numbers on it, but I can give it a shot in the next couple of days. Luckily the -042 Pioneer kit has a jumper in series with the 5V rail which I can remove to measure power consumption on the PSoC4 end. The numbers might be skewed due to the LED's present during running, so I'll try with/without the LED's to check.
I know the PSoC4 power consumption is pretty competetive to most other micros of the same class(I know a guy who sitting next to me who could detect a capacitive button sense with as low as 4~5uA average current draw). That being said though, this might not be the best comparision as the MSGEQ7 just gives a muxed analog output. We would still need some form of processor with an ADC at the end of it to make sense of the data. From a whole system standpoint I'd hazard the numbers would be pretty similar.
Industry's best low leakage retention mode, using only 150nA while retaining SRAM and programmable logic and the ability to wake up from an interrupt
Industry's best non-retention stop mode down to 20nA with wakeup ability.
Industry's widest range Cortex M0 device, allowing full analog and digital operation from 1.71 to 5.5V.
's newest ARM-based PSoC, featuring the low-power Cortex-M0 core combined with PSoC's unique programmable mixed-signal hardware IP, resulting in the industry's most flexible and scalable low-power mixed-signal architecture. Use PSoC 4 with PSoC Creator™ to create unique designs, shorten development schedules, and accelerate your time-to-market.
Well, that's the marketing take on it, but I am wondering about real world power consumption during operation, not standby. To me a head-head comparison of a non-PSOC implementation to a PSOC implementation is relevant, but then I have mostly worked on products where power consumption matters.
If I remember right, the apps engineer who was showing us a simple demo involving reading a pushbutton and turning on an LED said the PSOC was consuming around 20mA (with the LED off). Granted this was a generation 2 device. I imagine Gen 4 is much improved.
You're absolutely right about the marketing take, I always like to see the working numbers as well :D. Although the sleep and hibernate numbers are surprisingly useful when doing an application which sleeps most of the time, something like the touch button sense I was talking about earlier where the the processor only wakes up once a few milliseconds and runs for a few usecs.
The real numbers when running can be found on the PSoC4200 data sheet http://www.cypress.com/?docID=46322 on page 14.
From the datasheet, with the CPU running full blast at 48MHz, it'll draw around 13mA for the core. I'd expect this application will probably draw a 2~3 more mA for the ADC, buffer opamp and PWM's. Very likely this can be optimized to run at 24MHz too(probably just able to squeeze in everything on the filtering end) and we could chop the core current down to 7mA. This is all just paper calculations though, real numbers coming up tomorrow :)
I just used the audio output of my laptop for this one. Even at the max volume, the signal was only a 0.5V peak-peak signal on the oscilloscope. I expect most laptops(and probably cellphones) give around the same range. Worth double checking the audio output on a oscilloscope before hooking upto the kit just to make sure though.
This brings up an interesting point which I didn't mention though. If you noticed in the block diagram and the video, I didn't actually shift the incoming AC waveform to fit within the rail to rail voltage range of the ADC. The PSoC is actually getting the direct -0.25 to +0.25V signal to the internal Opamp and ADC. Due to an interesting quirk in the silicon, you can actually measure voltages(when the ADC is in differential mode) below the ground upto around -0.4V (beyond it, begins to distort the signal). Great for quick, messy projects like this one :)
Hope you have fun with it! You'll need a protoshield of some sort though to wire up the LED's.
Wierd, I know I've replied before but it seems to have disappeared from the comments section.
Got some bench numbers and the current consumption is around 15mA(not driving LED's, pins are open), just as expected from the datasheet(13mA for the 48Mhz core and 2 mA for the rest). Also managed to optimize the code a little to make it run at 24MHz and chopped the current down to close to 8.5mA. Pretty decent considering the ADC+8PWM's+M0 core. Far better than the 20mA PSoC you remember I'm sure :)
the typical current consumption is 0.8mA @ 5V. So percentagewise, the PSOC is still "a hog" but in absolute terms, maybe not so bad. That outrageous clock speed on the PSOC eats power, which is what I remember from before.
I can still see the devices being useful for some unique functionality where a high level of integration is rquired and no off the shelf soltuions exist. The ability to reconfigure the device on the fly is also an interesting attribute.
Thanks for taking the time to investigate this and posting your data!
Alas, the outrageous clock speed is unavoidable due to the 7 digital band-pass filters :D
But, it's as you say it depends on how many things you can integrate in PSoC. At the risk of sounding 'markety', from a system level the power numbers will generally be in the ball-park range with additional savings in the BOM.
Hope you get a chance to play with PSoC again, purely from a fun perspective of the PSoC Creator IDE :)