Example host software for the Maxim Integrated MAX31723/MAX31722 Device Temperature Sensor. Hosted on the MAX32630FTHR. The MAX31723 may be used in thermostats, thermometers, and hardware temperature supervisors.

Dependencies:   MAX31723_Digital_Temperature_Sensor max32630fthr USBDevice

Revision:
7:bf8c91e28a3b
Parent:
4:51c1a4c4f762
Child:
8:5bbefd9bce9f
--- a/main.cpp	Sun Oct 07 22:13:30 2018 +0000
+++ b/main.cpp	Wed Jan 23 00:48:54 2019 +0000
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved.
+ * Copyright (C) 2018-2019 Maxim Integrated Products, Inc., All Rights Reserved.
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the "Software"),
@@ -50,7 +50,7 @@
 /** (note the calls to Thread::wait below for delays) */
 /**
  * @brief Sample main program for Maxim Integrated DS4424, DS4422
- * @version 1.0000.3
+ * @version 1.0000.301
  *
  * @details Sample main program for DS4424, DS4422
  * The prints are sent to the terminal window (9600, 8n1).
@@ -65,31 +65,63 @@
  */
 int main()
 {
-    int32_t value[4]={0,0,0,0};
+    int32_t in_pAmps[4] = {-193675000, -1525000, 6100000, -16012500};
+    uint8_t in_raw[4];
+    int32_t value[4] = {0, 0, 0, 0};
     int ret, i;
+    int32_t out_pAmps[4] = {0, 0, 0, 0};
+    uint32_t rfs_board[4] = {40000, 80000, 100000, 160000};
     
     DigitalOut rLED(LED1, LED_OFF);
     DigitalOut gLED(LED2, LED_OFF);
     DigitalOut bLED(LED3, LED_OFF);
-
     
     bLED = LED_ON;
     gLED = LED_ON;
 
     i2cBus.frequency(400000);
+    printf("\r\n");
+    
+    /* write to each channel using picoAmps */
+    for (i = 0; i < 4; i++) {
+        ret = ds4424_dac.convert_picoAmps_to_hw_raw(&in_raw[i], in_pAmps[i], rfs_board[i]);
+        printf("Set picoAmps Out %d picoAmps, hw raw = %d, rfs = %d Ohms\r\n", in_pAmps[i], in_raw[i], rfs_board[i]);
+    }
+    printf("\r\n");
+    ret = ds4424_dac.write_hw_raw(in_raw[0], DS4424::REG_OUT0);
+    ret = ds4424_dac.write_hw_raw(in_raw[1], DS4424::REG_OUT1);
+    ret = ds4424_dac.write_hw_raw(in_raw[2], DS4424::REG_OUT2);
+    ret = ds4424_dac.write_hw_raw(in_raw[3], DS4424::REG_OUT3);
 
-    // read each channel
-    ret = ds4424_dac.write_raw(127, DS4424::REG_OUT0); 
-    ret = ds4424_dac.write_raw(2, DS4424::REG_OUT1); 
-    ret = ds4424_dac.write_raw(-127, DS4424::REG_OUT2); 
-    ret = ds4424_dac.write_raw(-2, DS4424::REG_OUT3); 
+    /* write to each channel using two's complement */
+    /*
+    ret = ds4424_dac.write_raw(-127, DS4424::REG_OUT0); 
+    ret = ds4424_dac.write_raw(-2, DS4424::REG_OUT1); 
+    ret = ds4424_dac.write_raw(10, DS4424::REG_OUT2); 
+    ret = ds4424_dac.write_raw(-42, DS4424::REG_OUT3);
+    */
+    ret = ds4424_dac.read_hw_raw(in_raw[0], DS4424::REG_OUT0); 
+    ret = ds4424_dac.read_hw_raw(in_raw[1], DS4424::REG_OUT1); 
+    ret = ds4424_dac.read_hw_raw(in_raw[2], DS4424::REG_OUT2); 
+    ret = ds4424_dac.read_hw_raw(in_raw[3], DS4424::REG_OUT3); 
+    for (i = 0; i < 4; i++) {
+        printf("Read hw raw Out %d = %d\r\n", i, in_raw[i]);
+    }
+    printf("\r\n");
 
     ret = ds4424_dac.read_raw(value[0], DS4424::REG_OUT0); 
     ret = ds4424_dac.read_raw(value[1], DS4424::REG_OUT1); 
     ret = ds4424_dac.read_raw(value[2], DS4424::REG_OUT2); 
     ret = ds4424_dac.read_raw(value[3], DS4424::REG_OUT3); 
     for (i = 0; i < 4; i++) {
-        printf("Out%d = %d\r\n", i, value[i]);
+        printf("Read raw two's complement Out %d = %d\r\n", i, value[i]);
+    }
+    printf("\r\n");
+
+    /* Convert two's complement values to picoAmps */
+    for (i = 0; i < 4; i++) {
+        ret = ds4424_dac.convert_raw_to_picoAmps(&out_pAmps[i], value[i], rfs_board[i]); 
+        printf("Read Out %d = %d picoAmps, rfs = %d Ohms\r\n", i, out_pAmps[i], rfs_board[i]);
     }
     printf("\r\n");
    
@@ -98,6 +130,4 @@
         gLED = !gLED;
         wait(1.0);
     }
-
 }
-