Showing results for 
Search instead for 
Did you mean: 


Contributor II

IDACs have been included in every PSoC MCU, since the PSoC 1. They source or sink current and can be updated from memory using Direct Memory Access (DMA) to create a waveform, like the WaveDAC Component. Since the IDAC is current based, it can be connected in parallel and externally, to create complex wave forms. If you need a VDAC, just add an external resistor to give you the voltage range that you want.

The features of the PSoC 6 MCU IDAC include:

  • Six current ranges (4.96-μA to 635-μA)
  • Sink or Source current
  • 7-bit resolution
  • Two IDACs can be put in parallel to form an 8-bit IDAC or create
    complex wave forms
  • Add external resistor for VDAC functionality

A typical application for an IDAC is to control the feedback on a voltage regulator to trim it to exactly where you want.


In the above application, the IDAC can sink or source current making the range the twice as large as a 7-bit IDAC with sink or source only. You effectively have an 8-bit IDAC.

These APIs are used to control the range and polarity. 

  • void IDAC7_SetPolarity (uint32 polarity)
  • void IDAC7_SetRange (uint32 range)

Another IDAC application is a level shifter.  If you sink current, the signal at the ADC input decreases. If you source current, the signal at the ADC increases. You can use the current sourcing technique to measure negative voltages.


I have been a PSoC Specialist for Arrow for 5 years and 7 years total. I am a PSoC Zealot as per Dave Van Ess (for those of you who remember when Dave was at Cypress). The IDACs are great, very useful for many applications and they can save you space and cost in many instances..

Feel free to ask questions or leave a comment!

2 Replies
Honored Contributor II

Thank you for very interesting design ideas. What is the role of R9, R25 and R28 in the top schematic?


Contributor II

Those resistors are used to set the range into the Regulator to limit the swing to a defined range.

Top labels