Introduction: Current Source DAC AD5420 and Arduino

Hello.In this article, I would like to share my experience with the AD5420 current digital-to-analog converter, which has the following characteristics:

  • 16-bit resolution and monotonicity
  • Current output ranges: 4 mA to 20 mA, 0 mA to 20 mA, or 0 mA to 24 mA
  • ±0.01% FSR typical total unadjusted error (TUE)
  • ±3 ppm/°C typical output drift
  • Flexible serial digital interface
  • On-chip output fault detection
  • On-chip reference (10 ppm/°C maximum)
  • Feedback/monitoring of output current
  • Asynchronous clear function

Power supply (AVDD) range

  • 10.8 V to 40 V; AD5410AREZ/AD5420AREZ
  • 10.8 V to 60 V; AD5410ACPZ/AD5420ACPZ
  • Output loop compliance to AVDD − 2.5 V
  • Temperature range: −40°C to +85°C

Step 1: Needed Components

For work, I took the following components:

  • Arduino UNO,
  • AD5420 shield for Arduino (with galvanic isolation),
  • Multimeter (for measuring the output current).

Step 2: Assembly

At the first step, it is necessary to install jumpers on the shield that are responsible for choosing the voltage level of logical signals, as well as for selecting FAULT, CLEAR and LATCH signals.

In the second step, I connected the AD5420 shield to the Arduino UNO, connected the 9-12V power, the USB cable for programming, a Multimeter for measuring 24V voltage (from an internal source).

Having connected the power, I immediately saw a voltage of 24V (which actually was a little higher: 25V).

After controlling the voltage, I switched the Multimeter to measure the current at the output of the shield.

Step 3: Programming

Next, I programmed the sketch in Arduino UNO. The sketch and the necessary library are attached below.

Rename file from *.txt to *.zip and unzip.

Step 4: Working

After programming, I opened the Serial Monitor, into which debugging information is issued, and through which you can set the current value from 0 to 20 mA in increments of 1.25 mA. I decided not to complicate the sketch, but to make it as simple as possible, so I set the current in numbers and letters 0-9 and A, B, C, D, E, F, G. A total of 17 values, 16 intervals, therefore, the step is 20mA / 16 = 1.25mA.

At the last step I checked the detection of an open circuit, for this I broke the measuring circuit and found that the status register changed the value from 0x00 to 0x04.

Results: The current source DAC is stable, has high accuracy. The presence of galvanic isolation allows its use in hazardous industrial areas.