Example program for EVAL-AD568x and EVAL-AD569x.
Dependencies: adi_console_menu platform_drivers
EVAL-AD568x-AD569x
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.
app/nanodac_console_app.h@9:cce35eca2ab0, 2021-07-21 (annotated)
- 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?
User | Revision | Line number | New 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_ */ |