AmpWave DA1C024BS – Isolated Single Channel SPI DAC Module

AmpWave DA1C024BS – Isolated Single Channel SPI Multi-Range Current DAC converts digital input into (0-24mA) current output accurately.

IntermediateProtip1 hour187
AmpWave DA1C024BS – Isolated Single Channel SPI DAC Module

Things used in this project

Hardware components

AmpWave DA1C024BS – Isolated Single Channel SPI Multi-Range Current DAC Module AD5420A
×1
Arduino UNO
Arduino UNO
×1

Software apps and online services

Arduino IDE
Arduino IDE

Story

Read more

Schematics

Wire connection

Code

Code of the project

Arduino
#include <ad5420.h>
/*
Use the 6 pin SPI connector on arduino DUE board (NOT the ICSP!)
The pin 1 has a white dot behind it.
MOSI:
MISO:
SCLK:
CS: on SPI extended mode can use only PIN 4,10,52 !!!
*/
#define AD5420_FAULT 8 
#define AD5420_CLEAR 9 
#define AD5420_LATCH 10  //CS

//MOSI ----> Arduino MOSI pin
//MISO----> Arduino MISO pin
//SCLK----->----> Arduino SPI CLK pin

DAC_AD5420 dac_ad5420 = DAC_AD5420(AD5420_LATCH, AD5420_CLEAR, AD5420_FAULT);
uint16_t current = 0;
void setup() {
  Serial.begin(115200); //Serial Com Begin

  Serial.println("AD5420_01_test start!");
  Serial.print("_latch = ");
  Serial.println(dac_ad5420._latch);
  Serial.print("_clear = ");
  Serial.println(dac_ad5420._clear);
  Serial.print("_fault = ");
  Serial.println(dac_ad5420._fault);

  dac_ad5420.begin(); //SPI Communication Begin with AD5420

  delay(100);

  dac_ad5420.ad5420_reset(); //AD5420 Registers rest

  delay(100);

 
//AD5420 Intialize (O/P Enable and Range Select)
   //AD5420_0_24_RANGE  -----> 0-24mA
  //AD5420_4_20_RANGE  ----->4-20mA
  //AD5420_0_20_RANGE  ----->0-20mA
  dac_ad5420.ad5420_write_ctrl(AD5420_OUTEN | AD5420_REXT | AD5420_0_24_RANGE); 



  //    dac_ad5420.ad5420_write_data(0x2000);
  dac_ad5420.ad5420_write_data(current);   //Write 0X0000 ---->O/P Current 0mA , 4mA

}


void loop() {

  Serial.print("Get_Status: ");
  Serial.println(dac_ad5420.ad5420_get_status(), HEX);
  Serial.print("Status_Reg: ");
  Serial.println(dac_ad5420.ad5420_read_reg(AD5420_STATUS_REG), HEX);
  Serial.print("Data_Reg: ");
  Serial.println(dac_ad5420.ad5420_read_reg(AD5420_DATA_REG), HEX);
  Serial.print("Control_Reg: ");
  Serial.println(dac_ad5420.ad5420_read_reg(AD5420_CONTROL_REG), HEX);


  if (Serial.available() > 0) {

    char ch = Serial.read();  // Clean the input buffer
   
    if (ch == '0') dac_ad5420.ad5420_write_data(0x0000);

    else if (ch == '1') dac_ad5420.ad5420_write_data(0x1000);
    else if (ch == '2') dac_ad5420.ad5420_write_data(0x2000);
    else if (ch == '3') dac_ad5420.ad5420_write_data(0x3000);
    else if (ch == '4') dac_ad5420.ad5420_write_data(0x4000);
    else if (ch == '5') dac_ad5420.ad5420_write_data(0x5000);
    else if (ch == '6') dac_ad5420.ad5420_write_data(0x6000);
    else if (ch == '7') dac_ad5420.ad5420_write_data(0x7000);
    else if (ch == '8') dac_ad5420.ad5420_write_data(0x8000);
    else if (ch == '9') dac_ad5420.ad5420_write_data(0x9000);
    else if (ch == 'A') dac_ad5420.ad5420_write_data(0xA000);
    else if (ch == 'B') dac_ad5420.ad5420_write_data(0xB000);
    else if (ch == 'C') dac_ad5420.ad5420_write_data(0xC000);
    else if (ch == 'D') dac_ad5420.ad5420_write_data(0xD000);
    else if (ch == 'E') dac_ad5420.ad5420_write_data(0xE000);
    else if (ch == 'F') dac_ad5420.ad5420_write_data(0xF000);
    else if (ch == 'G') dac_ad5420.ad5420_write_data(0xFFFF); 

  }
  delay(200);
}

Credits

Bhuvisara Dharmasena
5 projects • 1 follower
Contact
Chathura Yapa Bandara
19 projects • 5 followers
Contact

Comments

Please log in or sign up to comment.