Example host software code for the Maxim Integrated MAX5216/MAX5214 16-bit/14-bit SPI bus DAC. Hosted on the MAX32630FTHR FeatherWing micro-controller board.

Dependencies:   MAX5216_16_Bit_DAC_SPI_Bus_Driver USBDevice max32630fthr

Revision:
1:fe0cd2999f95
Parent:
0:64aee6498091
Child:
2:5f8cd1facd15
--- a/main.cpp	Sun Aug 12 10:18:22 2018 +0000
+++ b/main.cpp	Mon Aug 13 04:18:41 2018 +0000
@@ -48,16 +48,16 @@
 // (note the calls to Thread::wait below for delays)
 /**
 * @brief Sample main program for MAX5214, MAX5216
-* @version 1.0000.0
+* @version 1.0000.1
 *
 * @details Sample main program for MAX30101.
 * The prints are sent to the terminal window (9600, 8n1).
-* The program sets the GPIOs to 1.8V and the program
-* blinks green if it's able to communicate with
-* the MAX30101, otherwise, it blinks red.
+* The program sets the GPIOs to 3.3V and the program
+* issues various voltages to the DAC. Then the program
+* issues a Power Down Command.
 * To run the program, drag and drop the .bin file into the 
 * DAPLINK folder. After it finishes flashing, cycle the power or 
-* reset the Pegasus after flashing by pressing the button on
+* reset the Pegasus (MAX32630FTHR) after flashing by pressing the button on
 * the Pegasus next to the battery connector or the button
 * on the MAXREFDES100HDK.
 */
@@ -71,9 +71,9 @@
     MAX5216 dac(spi, selectPin, MAX5216::MAX5216_IC);
     
     spi.format(8,0);
-    spi.frequency(1000000);
+    spi.frequency(24000000);  // Use 24 MHz SPI bus
     
-    // Write a command
+    // Command values to the DAC
     dac.writeCommand(MAX5216::WrtThru_Reg, 0xFFFF);
     wait(1.0);
     gLED = LED_OFF;
@@ -85,10 +85,16 @@
     gLED = LED_OFF;
     dac.writeCommand(MAX5216::WrtThru_Reg, 0x1FFF);
     wait(1.0);
-    bLED = LED_ON;
-    dac.writeCommand(MAX5216::NoOp_Reg, 0xFFFF);
+    rLED = LED_ON;
+    gLED = LED_ON;
+
+    // Issue Power Down Commands
+//    dac.writeCommand(MAX5216::PwrDwn_Reg, MAX5216::PwrDwnNormalOp);
+    dac.writeCommand(MAX5216::PwrDwn_Reg, MAX5216::PwrDwnHiZ);
+//    dac.writeCommand(MAX5216::PwrDwn_Reg, MAX5216::PwrDwn100K);
+//    dac.writeCommand(MAX5216::PwrDwn_Reg, MAX5216::PwrDwn1K);
     wait(2.0);
-    bLED = LED_OFF;
+    rLED = LED_OFF;
 
     while (true) {  // Blink the green LED 
         gLED = !gLED;