A Voltage Supply, ± 12.5 V, 0.5 A, with Arduino Nano Every
The Prototype ... before calibration :-)
✈ Motivation
As our control signals usually span the range of -10 V to +10 V, it was desireable to have a SCPI compatible
Power Supply to generate those voltages. The fact, that some RF-Switches or Attenuators also need negative voltages
(with some current) also made this a wishlist device. The voltage can be set by a potentiometer or via USB.
And the current is measured with a 50 mΩ shunt, amplified by 50 and then and A/D converted by the Arduino.
✈ The Design
The design uses an ac/dc converter (RACM30-15DK/277) to generate a stable +/- 15 V rail.
An Arduino Nano Every does the housekeeping. It programs a DAC (AD5693RARMZ) to generate a voltage
from 0 ... +2.5 V. This voltage is turned into a bipolar voltage of -12.5 V to +12.5 V. We used
this tool
to calculate the necessary resistors. This setpoint voltage is compared to the output voltage with
a PI-loop.
The output is handled by the driver (BUF634F/500 or LME49600). If the load calls for more current, the voltage drop
across R1 (10 Ω * 65 mA ≈ 0.65 V) gets larger and therefore increases the Base-Emitter Voltage of the Power Transistors.
They (TIP2955 or TIP3055) then start conducting and take over gradually. They are mounted at the bottom of the case,
so the case has to dissipate a maximum of 15 V * 0.5 A = 7.5 W.
The current is measured with a 50 mΩ shunt. This voltage drop is amplified by a factor of 50 and biased around 2.5 V
to be suiteable for an Arduino analog input. For this, the positive input of the opamp is biased at 50 mV. The
resistors for the opamp are chosen to be 100 kΩ and 2 kΩ (GAIN = 50). The voltage divider at the
positive input uses 33 kΩ and 680 Ω.
We used this
calculator for that.
RACM30-15DK/277 handling that powerline thingThe TIP3055/2955 use the case as heatsink
✈ Downloads
✈ Special Components used here
ITEM
SUPPLIER
Cable for USB
Adafruit #937, Panel Mount - B Female to Micro-B Male
COM SETTINGS :
Set up the COM port inside the PC according to the following list.
• Baud rate: 115200
• Parity bit: None
• Data bit: 8
• Stop bit: 1
• Data flow control: None
COMMAND SYNTAX : VSET:xx.x OR VSET:x.x
Description: Sets the output voltage.
Example VSET:9.99
Sets the voltage to 9.99 V
Returns O.K.
IOUT?
Description:Returns the actual output current.
Example IOUT?
Returns the output current.
*IDN?
Description:Returns the Devices identification.
Example *IDN?
Returns SUPPLYMOD-B V2.0 BY CHANGPUAK.CH (C) 07/2025
✈ Performance
Drift
The voltage drift is mainly introduced by the DAC's internal voltage reference, multiplied by 5.
The datasheet of the AD5693R states a typical 2 ppm/°C and a maximum of 5 ppm/°C. The dac
was programmed to 9.299 V, Current drawn 500 mA. Within 47 Minutes, an increase
of ≈ 1 mV was observed.
Response to Load Changes. Step from 90 mA to 450 mA
The Power Supply needs about 200 ms to regulate for jumps in load changes. This is mainly caused
by the relatively large capacitor C12 (1nF).
✈ Share your thoughts
The webmaster does not read these comments regularely. Urgent questions should be send via email.
Ads or links to completely uncorrelated things will be removed.