Robots are revolutionizing our lives in many ways. Join our webinar to learn about Infineon’s broad portfolio of robot building blocks.
Click here to register.

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

PSoC™ 4 Forum Discussions

Level 1
Level 1
25 sign-ins First like given 5 replies posted
i want a 10 bit IDAC 
8 Replies
Level 9
Level 9
First comment on KBA 1000 replies posted 750 replies posted

Do you have any other specs other than 10-bit resolution? (update speed, voltage range, etc.)

currently psoc software only support 8bit IDAC, i post need 10bit resolution IDAC to control feedback voltage of buck synchronous IC

Another method is to use a pseudo-DAC implemented with PWM + RC circuit. 

The Trim/Margin component implements this idea to actually control the feedback voltage of buck regulator, exactly what you are after. It even calculates the voltages for margining HIGH and LOW and the RC circuit you have to design.

currently psoc software only support 8bit IDAC, i post need 10bit resolution IDAC to control feedback voltage of buck synchronous IC


See AN64275.  There are notes on creating 10-bit iDAC.


Attached is a project demo of the 10-bit dithered IDAC (DVDAC) analog for the PSoC4M. It is roughly follows PSoC5 DVDAC, described in the AB64275. Basically, it uses a DMA to dither the LSB of the 8bit IDAC at high speed, producing averaged  pseudo-10-bit resolution.

The DMA transfer to IDAC on P4 is tricky, it has to be 2 bytes, with MSB set to 0x07, and LSB is actual IDAC value (so RAM array must be 16-bit instead of 8-bit). This MSB is configuration setting for IDAC, controlling current output/bit, which has to be set on each DMA transaction. The DMA trigger has to be set to "unknown width".  Unlike PSoC5, on P4 DMA has no "nrq" signaling the end of Buffer transfer, instead the DMA internal irq and a PinLED are used to for that purpose.  Those digital outputs and API callback are optional and can be deleted.

The project is not tested, but, I believe, should work.

Few notes:

1. The PSoC4 IDAC has barely 8-bit accuracy, it also prone to temperature drift, as it doesn't have an actual voltage reference. In a result, the DVDAC's INL absolute accuracy will also likely remain in 8-bit range.

2. To control the output, the Buck converter actually needs current injection into the FB pin, not voltage. So IDAC can be directly hooked-up to the FB pin without R1=10k resistor from Figure 1 (instead the upper resistor in resistor divider  network is used). However, the IDAC in this mode must operate as a current sink, so for DMA transfer the MSB must be changed from 0x07 (source) to  (?I don't know?) (sink).  

3.  A cheap external DAC, like 12-bit MCP4725, may be a better way to implement a DC-DC voltage control. 

4. From my experience a digipot is even simpler way to control a Buck converter.


Figure 1. Project schematic.



Thank but I don't understand the digipot converter for Buck and I need a fast switching frequency of about 400kHz for a buck dc-dc


Digital potentiometer replaces resistor divider R1/R2 in the feedback loop. It can be controlled using I2C or SPI and can retain last setting.

This widget could not be displayed.