Example program for EVAL-AD568x and EVAL-AD569x.

Dependencies:   adi_console_menu platform_drivers

EVAL-AD568x-AD569x

User Guide

This nanoDAC+ Mbed support software can be used as a starting point for developing your own firmware that targets Analog Devices nanoDAC+ products in your own environment. The software is configurable for your exact product within the nanoDAC+ family. See the user-guide for full instructions.

Committer:
Kjansen
Date:
Wed Jul 21 12:09:31 2021 +0100
Revision:
9:cce35eca2ab0
Parent:
5:78877c8a97c8
Code improvement for EVAL-AD568x-AD569x

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mahphalke 5:78877c8a97c8 1 /*!
mahphalke 5:78877c8a97c8 2 *****************************************************************************
mahphalke 5:78877c8a97c8 3 @file: nanodac_console_app.h
mahphalke 5:78877c8a97c8 4
mahphalke 5:78877c8a97c8 5 @brief: defines the console menu structure for the nanodac example code
mahphalke 5:78877c8a97c8 6
mahphalke 5:78877c8a97c8 7 @details:
mahphalke 5:78877c8a97c8 8 -----------------------------------------------------------------------------
mahphalke 5:78877c8a97c8 9 Copyright (c) 2020 Analog Devices, Inc.
mahphalke 5:78877c8a97c8 10 All rights reserved.
mahphalke 5:78877c8a97c8 11
mahphalke 5:78877c8a97c8 12 This software is proprietary to Analog Devices, Inc. and its licensors.
mahphalke 5:78877c8a97c8 13 By using this software you agree to the terms of the associated
mahphalke 5:78877c8a97c8 14 Analog Devices Software License Agreement.
mahphalke 5:78877c8a97c8 15 *****************************************************************************/
mahphalke 5:78877c8a97c8 16
mahphalke 5:78877c8a97c8 17 #ifndef NANODAC_CONSOLE_APP_H_
mahphalke 5:78877c8a97c8 18 #define NANODAC_CONSOLE_APP_H_
mahphalke 5:78877c8a97c8 19
mahphalke 5:78877c8a97c8 20 /******************************************************************************/
mahphalke 5:78877c8a97c8 21 /***************************** Include Files **********************************/
mahphalke 5:78877c8a97c8 22 /******************************************************************************/
mahphalke 5:78877c8a97c8 23
mahphalke 5:78877c8a97c8 24 #include "adi_console_menu.h"
mahphalke 5:78877c8a97c8 25 #include "app_config.h"
mahphalke 5:78877c8a97c8 26
mahphalke 5:78877c8a97c8 27 /******************************************************************************/
mahphalke 5:78877c8a97c8 28 /********************** Macros and Constants Definitions **********************/
mahphalke 5:78877c8a97c8 29 /******************************************************************************/
mahphalke 5:78877c8a97c8 30
mahphalke 5:78877c8a97c8 31 // Define the DAC channel menu selection. The following devices from nanodac
mahphalke 5:78877c8a97c8 32 // family have only single channel and does not need menu to select DAC channel.
mahphalke 5:78877c8a97c8 33 #if !(defined(DEV_AD5683) || defined(DEV_AD5683R) || defined(DEV_AD5682R) || \
mahphalke 5:78877c8a97c8 34 defined(DEV_AD5681R) || defined(DEV_AD5693) || defined(DEV_AD5693R) || \
mahphalke 5:78877c8a97c8 35 defined(DEV_AD5692R) || defined(DEV_AD5691R))
mahphalke 5:78877c8a97c8 36 #define DISPLAY_DAC_CHANNEL_SELECT_MENU
mahphalke 5:78877c8a97c8 37 // Define the number of DAC channels (for devices having more than 1 channel)
mahphalke 5:78877c8a97c8 38 #if (defined(DEV_AD5687) || defined(DEV_AD5687R) || defined(DEV_AD5697R) || \
mahphalke 5:78877c8a97c8 39 defined(DEV_AD5689) || defined(DEV_AD5689R))
mahphalke 5:78877c8a97c8 40 #define DAC_CHANNEL_COUNT 2
mahphalke 5:78877c8a97c8 41 #elif (defined(DEV_AD5686) || defined(DEV_AD5686R) || defined(DEV_AD5685R) || \
mahphalke 5:78877c8a97c8 42 defined(DEV_AD5684) || defined(DEV_AD5684R) || \
mahphalke 5:78877c8a97c8 43 defined(DEV_AD5696) || defined(DEV_AD5696R) || defined(DEV_AD5695R) || \
mahphalke 5:78877c8a97c8 44 defined(DEV_AD5694) || defined(DEV_AD5694R))
mahphalke 5:78877c8a97c8 45 #define DAC_CHANNEL_COUNT 4
mahphalke 5:78877c8a97c8 46 #elif (defined(DEV_AD5676) || defined(DEV_AD5676R) || defined(DEV_AD5672R) || \
mahphalke 5:78877c8a97c8 47 defined(DEV_AD5675R) || defined(DEV_AD5671R))
mahphalke 5:78877c8a97c8 48 #define DAC_CHANNEL_COUNT 8
mahphalke 5:78877c8a97c8 49 #elif (defined(DEV_AD5679) || defined(DEV_AD5679R) || defined(DEV_AD5673R) || \
mahphalke 5:78877c8a97c8 50 defined(DEV_AD5674) || defined(DEV_AD5674R) || defined(DEV_AD5677R))
mahphalke 5:78877c8a97c8 51 #define DAC_CHANNEL_COUNT 16
mahphalke 5:78877c8a97c8 52 #endif
mahphalke 5:78877c8a97c8 53 #endif
mahphalke 5:78877c8a97c8 54
mahphalke 5:78877c8a97c8 55 // Define the LDAC masking menu. The following devices from nanodac
mahphalke 5:78877c8a97c8 56 // family have only single channel and does not need menu to select LDAC masking.
mahphalke 5:78877c8a97c8 57 #if !(defined(DEV_AD5683) || defined(DEV_AD5683R) || \
mahphalke 5:78877c8a97c8 58 defined(DEV_AD5682R) || defined(DEV_AD5681R) || defined(DEV_AD5693) || \
mahphalke 5:78877c8a97c8 59 defined(DEV_AD5693R) || defined(DEV_AD5692R) || defined(DEV_AD5691R))
mahphalke 5:78877c8a97c8 60 #define DISPLAY_LDAC_MASK_SELECT_MENU
mahphalke 5:78877c8a97c8 61 #endif
mahphalke 5:78877c8a97c8 62
mahphalke 5:78877c8a97c8 63 // Define the Vref source selections. The following devices from nanodac
mahphalke 5:78877c8a97c8 64 // family have only external Vref source.
mahphalke 5:78877c8a97c8 65 #if (defined(DEV_AD5674) || defined(DEV_AD5676) || defined(DEV_AD5686) || \
mahphalke 5:78877c8a97c8 66 defined(DEV_AD5684) || defined(DEV_AD5696) || defined(DEV_AD5694) || \
mahphalke 5:78877c8a97c8 67 defined(DEV_AD5683) || defined(DEV_AD5693) || defined(DEV_AD5679) || \
mahphalke 5:78877c8a97c8 68 defined(DEV_AD5687) || defined(DEV_AD5689))
mahphalke 5:78877c8a97c8 69 #define EXT_VREF_SOURCE_ONLY
mahphalke 5:78877c8a97c8 70 #endif
mahphalke 5:78877c8a97c8 71
mahphalke 5:78877c8a97c8 72 // Define the gain source (software controlled or hardware controlled)
mahphalke 5:78877c8a97c8 73 #if (defined(DEV_AD5683) || defined(DEV_AD5683R) || defined(DEV_AD5682R) || \
mahphalke 5:78877c8a97c8 74 defined(DEV_AD5681R) || defined(DEV_AD5693) || defined(DEV_AD5693R) || \
mahphalke 5:78877c8a97c8 75 defined(DEV_AD5692R) || defined(DEV_AD5691R))
mahphalke 5:78877c8a97c8 76 #define SOFTWARE_CONTROLLED_GAIN
mahphalke 5:78877c8a97c8 77 #else
mahphalke 5:78877c8a97c8 78 #define HARDWARE_CONTROLLED_GAIN
mahphalke 5:78877c8a97c8 79 #endif
mahphalke 5:78877c8a97c8 80
mahphalke 5:78877c8a97c8 81 // Define the operating mode selections
mahphalke 5:78877c8a97c8 82 #if (defined(DEV_AD5674) || defined(DEV_AD5674R) || defined(DEV_AD5673R) || \
mahphalke 5:78877c8a97c8 83 defined(DEV_AD5679) || defined(DEV_AD5677R))
mahphalke 5:78877c8a97c8 84 #define _1K_TO_GND_POWER_DOWN
mahphalke 5:78877c8a97c8 85 #elif (defined(DEV_AD5676) || defined(DEV_AD5676R) || defined(DEV_AD5675R) || \
mahphalke 5:78877c8a97c8 86 defined(DEV_AD5671R) || defined(DEV_AD5672R))
mahphalke 5:78877c8a97c8 87 #define _1K_TO_GND_POWER_DOWN
mahphalke 5:78877c8a97c8 88 #define THREE_STATE_POWER_DOWN
mahphalke 5:78877c8a97c8 89 #else
mahphalke 5:78877c8a97c8 90 #define _1K_TO_GND_POWER_DOWN
mahphalke 5:78877c8a97c8 91 #define _100K_TO_GND_POWER_DOWN
mahphalke 5:78877c8a97c8 92 #define THREE_STATE_POWER_DOWN
mahphalke 5:78877c8a97c8 93 #endif
mahphalke 5:78877c8a97c8 94
mahphalke 5:78877c8a97c8 95 // define the DAC resolution
mahphalke 5:78877c8a97c8 96 #if (defined(DEV_AD5671R) || defined(DEV_AD5672R) || defined(DEV_AD5673R) || \
mahphalke 5:78877c8a97c8 97 defined(DEV_AD5674) || defined(DEV_AD5674R) || defined(DEV_AD5684R) || \
mahphalke 5:78877c8a97c8 98 defined(DEV_AD5687) || defined(DEV_AD5687R) || defined(DEV_AD5697R) || \
mahphalke 5:78877c8a97c8 99 defined(DEV_AD5694) || defined(DEV_AD5694R) || defined(DEV_AD5681R) || \
mahphalke 5:78877c8a97c8 100 defined(DEV_AD5691R))
mahphalke 5:78877c8a97c8 101 #define TOTAL_OUTPUT_CODES ((1U << 12) - 1) // For 12-bit DAC (2^12 - 1)
mahphalke 5:78877c8a97c8 102 #elif (defined(DEV_AD5685R) || defined(DEV_AD5695R) || defined(DEV_AD5682R) || \
mahphalke 5:78877c8a97c8 103 defined(DEV_AD5692R))
mahphalke 5:78877c8a97c8 104 #define TOTAL_OUTPUT_CODES ((1U << 14) - 1) // For 14-bit DAC (2^14 - 1)
mahphalke 5:78877c8a97c8 105 #else
mahphalke 5:78877c8a97c8 106 #define TOTAL_OUTPUT_CODES ((1U << 16) - 1) // For 16-bit DAC (2^16 - 1)
mahphalke 5:78877c8a97c8 107 #endif
mahphalke 5:78877c8a97c8 108
mahphalke 5:78877c8a97c8 109 /******************************************************************************/
mahphalke 5:78877c8a97c8 110 /********************** Variables and User Defined Data Types *****************/
mahphalke 5:78877c8a97c8 111 /******************************************************************************/
mahphalke 5:78877c8a97c8 112
mahphalke 5:78877c8a97c8 113 extern console_menu nanodac_main_menu;
mahphalke 5:78877c8a97c8 114
mahphalke 5:78877c8a97c8 115 /******************************************************************************/
mahphalke 5:78877c8a97c8 116 /************************ Public Declarations *********************************/
mahphalke 5:78877c8a97c8 117 /******************************************************************************/
mahphalke 5:78877c8a97c8 118
mahphalke 5:78877c8a97c8 119 int32_t nanodac_app_initialize(void);
mahphalke 5:78877c8a97c8 120
mahphalke 5:78877c8a97c8 121
mahphalke 5:78877c8a97c8 122 #endif /* NANODAC_CONSOLE_APP_H_ */