Mahesh Phalke / Mbed OS EVAL-AD568x-AD569x

Dependencies:   platform_drivers adi_console_menu AD568x-AD569x

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers nanodac_console_app.h Source File

nanodac_console_app.h

Go to the documentation of this file.
00001 /*!
00002  *****************************************************************************
00003   @file:  nanodac_console_app.h
00004 
00005   @brief: defines the console menu structure for the nanodac example code
00006 
00007   @details:
00008  -----------------------------------------------------------------------------
00009  Copyright (c) 2020 Analog Devices, Inc.
00010  All rights reserved.
00011 
00012  This software is proprietary to Analog Devices, Inc. and its licensors.
00013  By using this software you agree to the terms of the associated
00014  Analog Devices Software License Agreement.
00015 *****************************************************************************/
00016 
00017 #ifndef NANODAC_CONSOLE_APP_H_
00018 #define NANODAC_CONSOLE_APP_H_
00019 
00020 /******************************************************************************/
00021 /***************************** Include Files **********************************/
00022 /******************************************************************************/
00023 
00024 #include "adi_console_menu.h"
00025 #include "app_config.h"
00026 
00027 /******************************************************************************/
00028 /********************** Macros and Constants Definitions **********************/
00029 /******************************************************************************/
00030 
00031 // Define the DAC channel menu selection. The following devices from nanodac
00032 // family have only single channel and does not need menu to select DAC channel.
00033 #if !(defined(DEV_AD5683) || defined(DEV_AD5683R) || defined(DEV_AD5682R) || \
00034         defined(DEV_AD5681R) || defined(DEV_AD5693)  || defined(DEV_AD5693R) || \
00035         defined(DEV_AD5692R) || defined(DEV_AD5691R))
00036 #define DISPLAY_DAC_CHANNEL_SELECT_MENU
00037 // Define the number of DAC channels (for devices having more than 1 channel)
00038 #if (defined(DEV_AD5687) || defined(DEV_AD5687R) || defined(DEV_AD5697R) || \
00039      defined(DEV_AD5689) || defined(DEV_AD5689R))
00040 #define DAC_CHANNEL_COUNT 2
00041 #elif (defined(DEV_AD5686) || defined(DEV_AD5686R) || defined(DEV_AD5685R) || \
00042      defined(DEV_AD5684) || defined(DEV_AD5684R) || \
00043      defined(DEV_AD5696) || defined(DEV_AD5696R) || defined(DEV_AD5695R) || \
00044      defined(DEV_AD5694) || defined(DEV_AD5694R))
00045 #define DAC_CHANNEL_COUNT 4
00046 #elif (defined(DEV_AD5676) || defined(DEV_AD5676R) || defined(DEV_AD5672R) || \
00047        defined(DEV_AD5675R) || defined(DEV_AD5671R))
00048 #define DAC_CHANNEL_COUNT 8
00049 #elif (defined(DEV_AD5679) || defined(DEV_AD5679R) || defined(DEV_AD5673R) || \
00050        defined(DEV_AD5674) || defined(DEV_AD5674R) || defined(DEV_AD5677R))
00051 #define DAC_CHANNEL_COUNT 16
00052 #endif
00053 #endif
00054 
00055 // Define the LDAC masking menu. The following devices from nanodac
00056 // family have only single channel and does not need menu to select LDAC masking.
00057 #if !(defined(DEV_AD5683) || defined(DEV_AD5683R) || \
00058         defined(DEV_AD5682R) || defined(DEV_AD5681R) || defined(DEV_AD5693) || \
00059         defined(DEV_AD5693R) || defined(DEV_AD5692R) || defined(DEV_AD5691R))
00060 #define DISPLAY_LDAC_MASK_SELECT_MENU
00061 #endif
00062 
00063 // Define the Vref source selections. The following devices from nanodac
00064 // family have only external Vref source.
00065 #if (defined(DEV_AD5674) || defined(DEV_AD5676) || defined(DEV_AD5686) || \
00066      defined(DEV_AD5684) || defined(DEV_AD5696) || defined(DEV_AD5694) || \
00067      defined(DEV_AD5683) || defined(DEV_AD5693) || defined(DEV_AD5679) || \
00068      defined(DEV_AD5687) || defined(DEV_AD5689))
00069 #define EXT_VREF_SOURCE_ONLY
00070 #endif
00071 
00072 // Define the gain source (software controlled or hardware controlled)
00073 #if (defined(DEV_AD5683) || defined(DEV_AD5683R) || defined(DEV_AD5682R) || \
00074      defined(DEV_AD5681R) || defined(DEV_AD5693)  || defined(DEV_AD5693R) || \
00075      defined(DEV_AD5692R) || defined(DEV_AD5691R))
00076 #define SOFTWARE_CONTROLLED_GAIN
00077 #else
00078 #define HARDWARE_CONTROLLED_GAIN
00079 #endif
00080 
00081 // Define the operating mode selections
00082 #if (defined(DEV_AD5674) || defined(DEV_AD5674R) || defined(DEV_AD5673R) || \
00083      defined(DEV_AD5679) || defined(DEV_AD5677R))
00084 #define _1K_TO_GND_POWER_DOWN
00085 #elif (defined(DEV_AD5676) || defined(DEV_AD5676R) || defined(DEV_AD5675R) || \
00086        defined(DEV_AD5671R) || defined(DEV_AD5672R))
00087 #define _1K_TO_GND_POWER_DOWN
00088 #define THREE_STATE_POWER_DOWN
00089 #else
00090 #define _1K_TO_GND_POWER_DOWN
00091 #define _100K_TO_GND_POWER_DOWN
00092 #define THREE_STATE_POWER_DOWN
00093 #endif
00094 
00095 // define the DAC resolution
00096 #if (defined(DEV_AD5671R) || defined(DEV_AD5672R) || defined(DEV_AD5673R) || \
00097      defined(DEV_AD5674) || defined(DEV_AD5674R) || defined(DEV_AD5684R) || \
00098      defined(DEV_AD5687) || defined(DEV_AD5687R) || defined(DEV_AD5697R) || \
00099      defined(DEV_AD5694) || defined(DEV_AD5694R) || defined(DEV_AD5681R) || \
00100      defined(DEV_AD5691R))
00101 #define TOTAL_OUTPUT_CODES      ((1U << 12) - 1)    // For 12-bit DAC (2^12 - 1)
00102 #elif (defined(DEV_AD5685R) || defined(DEV_AD5695R) || defined(DEV_AD5682R) || \
00103      defined(DEV_AD5692R))
00104 #define TOTAL_OUTPUT_CODES      ((1U << 14) - 1)    // For 14-bit DAC (2^14 - 1)
00105 #else
00106 #define TOTAL_OUTPUT_CODES      ((1U << 16) - 1)    // For 16-bit DAC (2^16 - 1)
00107 #endif
00108 
00109 /******************************************************************************/
00110 /********************** Variables and User Defined Data Types *****************/
00111 /******************************************************************************/
00112 
00113 extern console_menu nanodac_main_menu;
00114 
00115 /******************************************************************************/
00116 /************************ Public Declarations *********************************/
00117 /******************************************************************************/
00118 
00119 int32_t nanodac_app_initialize(void);
00120 
00121 
00122 #endif /* NANODAC_CONSOLE_APP_H_ */