Programmable Analog Enables 7 DACs in a 4 VDAC Part | Cypress Semiconductor
Programmable Analog Enables 7 DACs in a 4 VDAC Part
What can’t programmability solve? One of our applications engineers and brilliant analog designers, Mark Hastings, recently put together a project in PSoC Creator implementing 7 DACs. While this may not seem too exciting at first glance, take a look at our higher end analog PSoC 3 or PSoC 5 parts and you’ll notice the datasheets only advertise 4 VIDACs at most. So how did he do it? Using the programmable analog capabilities on the chip—a feature unique to our PSoC products.
Here’s an excerpt from his design explanation:
“A single VDAC can be used to create 4 additional VDACs by using the CT/CT [programmable analog] blocks as Track and Hold components. Using a LUT as a simple state machine, it generates DMA requests and Track/Hold pulses to properly sequence through the four outputs. The data for the four DACs is kept in an array that is easily set in software.
The DMA automatically refreshes each of the DACs with the array [values] at a high enough rate that the Sample and Hold output will not decay significantly. In the test project the Track and Hold components were refreshed every 8 uSec. Since DMA is doing all the work keeping the DACs refreshed, the CPU overhead is zero until an output is updated by the CPU which is exactly the same overhead as updating a normal DAC. The other three unused DAC [peripherals] may be used as VDACs or IDACs for a total of seven DACs.
Unlike PWM DACs [which can also be implemented with our programmable architecture] these don’t require an external RC filter and actually have a lower output impedance than the standard VDACs without using an op-amp. The down side [to this implementation] is that they [the 4 additional VDACs] incur the input offset error of a couple mVolts of the CT [programmable analog] blocks and of course they use up a CT block for each VDAC output. This method could easily be scaled from 2 to 4 VDACs.”
The value of the programmable analog blocks in our PSoC devices is often not fully understood, but with implementations like the above (and there are many other examples such as this) it’s easier to see what can be done and why we spend so much effort in ensuring our programmable fabric spans across the analog and digital domains. Within the PSoC 3 and PSoC 5 category, you’ll find a mix of parts that have 0 to 4 VIDACs and 0 to 4 programmable analog blocks as well as many other variations to help you in selecting the right size programmable part so you get the maximum value in the smallest device. View the parts available in the parametric tables here: PSoC 3-www.cypress.com/go/psoc3 and PSoC 5-www.cypress.com/go/psoc5.