Forked repository for pushing changes to EVAL-AD4696
Dependencies: platform_drivers
app/ad4696_support.c@1:8792acb5a039, 2021-09-30 (annotated)
- Committer:
- pmallick
- Date:
- Thu Sep 30 11:01:05 2021 +0530
- Revision:
- 1:8792acb5a039
AD4696 IIO Application- Initial Revision
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
pmallick | 1:8792acb5a039 | 1 | /*************************************************************************//** |
pmallick | 1:8792acb5a039 | 2 | * @file ad4696_support.c |
pmallick | 1:8792acb5a039 | 3 | * @brief AD469x device No-OS driver supports |
pmallick | 1:8792acb5a039 | 4 | ****************************************************************************** |
pmallick | 1:8792acb5a039 | 5 | * Copyright (c) 2021 Analog Devices, Inc. |
pmallick | 1:8792acb5a039 | 6 | * |
pmallick | 1:8792acb5a039 | 7 | * All rights reserved. |
pmallick | 1:8792acb5a039 | 8 | * |
pmallick | 1:8792acb5a039 | 9 | * This software is proprietary to Analog Devices, Inc. and its licensors. |
pmallick | 1:8792acb5a039 | 10 | * By using this software you agree to the terms of the associated |
pmallick | 1:8792acb5a039 | 11 | * Analog Devices Software License Agreement. |
pmallick | 1:8792acb5a039 | 12 | *****************************************************************************/ |
pmallick | 1:8792acb5a039 | 13 | |
pmallick | 1:8792acb5a039 | 14 | /******************************************************************************/ |
pmallick | 1:8792acb5a039 | 15 | /***************************** Include Files **********************************/ |
pmallick | 1:8792acb5a039 | 16 | /******************************************************************************/ |
pmallick | 1:8792acb5a039 | 17 | |
pmallick | 1:8792acb5a039 | 18 | #include <stdint.h> |
pmallick | 1:8792acb5a039 | 19 | |
pmallick | 1:8792acb5a039 | 20 | #include "app_config.h" |
pmallick | 1:8792acb5a039 | 21 | #include "ad4696_support.h" |
pmallick | 1:8792acb5a039 | 22 | #include "error.h" |
pmallick | 1:8792acb5a039 | 23 | |
pmallick | 1:8792acb5a039 | 24 | /******************************************************************************/ |
pmallick | 1:8792acb5a039 | 25 | /********************** Macros and Constants Definition ***********************/ |
pmallick | 1:8792acb5a039 | 26 | /******************************************************************************/ |
pmallick | 1:8792acb5a039 | 27 | |
pmallick | 1:8792acb5a039 | 28 | /******************************************************************************/ |
pmallick | 1:8792acb5a039 | 29 | /********************** Variables and User Defined Data Types *****************/ |
pmallick | 1:8792acb5a039 | 30 | /******************************************************************************/ |
pmallick | 1:8792acb5a039 | 31 | |
pmallick | 1:8792acb5a039 | 32 | /******************************************************************************/ |
pmallick | 1:8792acb5a039 | 33 | /************************ Functions Definitions *******************************/ |
pmallick | 1:8792acb5a039 | 34 | /******************************************************************************/ |
pmallick | 1:8792acb5a039 | 35 | /*! |
pmallick | 1:8792acb5a039 | 36 | * @brief Enter Manual Trigger mode |
pmallick | 1:8792acb5a039 | 37 | * @param device[in] - device instance |
pmallick | 1:8792acb5a039 | 38 | * @return SUCCESS in case of success, negative error code otherwise. |
pmallick | 1:8792acb5a039 | 39 | */ |
pmallick | 1:8792acb5a039 | 40 | int32_t ad4696_enable_manual_trigger_mode(struct ad469x_dev *device) |
pmallick | 1:8792acb5a039 | 41 | { |
pmallick | 1:8792acb5a039 | 42 | do |
pmallick | 1:8792acb5a039 | 43 | { |
pmallick | 1:8792acb5a039 | 44 | if (ad469x_spi_reg_write(device, |
pmallick | 1:8792acb5a039 | 45 | AD469x_REG_SETUP, |
pmallick | 1:8792acb5a039 | 46 | AD469x_REG_SETUP_RESET) != SUCCESS) { |
pmallick | 1:8792acb5a039 | 47 | break; |
pmallick | 1:8792acb5a039 | 48 | } |
pmallick | 1:8792acb5a039 | 49 | |
pmallick | 1:8792acb5a039 | 50 | if (ad469x_spi_reg_write(device, |
pmallick | 1:8792acb5a039 | 51 | AD469x_REG_SEQ_CTRL, |
pmallick | 1:8792acb5a039 | 52 | AD469x_REG_SEQ_CTRL_RESET) != SUCCESS) { |
pmallick | 1:8792acb5a039 | 53 | break; |
pmallick | 1:8792acb5a039 | 54 | } |
pmallick | 1:8792acb5a039 | 55 | |
pmallick | 1:8792acb5a039 | 56 | return SUCCESS; |
pmallick | 1:8792acb5a039 | 57 | } while (0); |
pmallick | 1:8792acb5a039 | 58 | |
pmallick | 1:8792acb5a039 | 59 | return FAILURE; |
pmallick | 1:8792acb5a039 | 60 | } |
pmallick | 1:8792acb5a039 | 61 | |
pmallick | 1:8792acb5a039 | 62 | /*! |
pmallick | 1:8792acb5a039 | 63 | * @brief Select between polarity modes |
pmallick | 1:8792acb5a039 | 64 | * @param device[in] - device instance |
pmallick | 1:8792acb5a039 | 65 | * @return SUCCESS in case of success, negative error code otherwise. |
pmallick | 1:8792acb5a039 | 66 | */ |
pmallick | 1:8792acb5a039 | 67 | int32_t ad4696_polarity_mode_select(struct ad469x_dev *device) |
pmallick | 1:8792acb5a039 | 68 | { |
pmallick | 1:8792acb5a039 | 69 | uint8_t data = 0; |
pmallick | 1:8792acb5a039 | 70 | |
pmallick | 1:8792acb5a039 | 71 | for (uint8_t i = 0; i < AD469x_CHANNEL_NO;i++) |
pmallick | 1:8792acb5a039 | 72 | { |
pmallick | 1:8792acb5a039 | 73 | if (ad469x_spi_reg_read(device, |
pmallick | 1:8792acb5a039 | 74 | AD469x_REG_CONFIG_IN(i), |
pmallick | 1:8792acb5a039 | 75 | &data) != SUCCESS) { |
pmallick | 1:8792acb5a039 | 76 | return FAILURE; |
pmallick | 1:8792acb5a039 | 77 | } |
pmallick | 1:8792acb5a039 | 78 | |
pmallick | 1:8792acb5a039 | 79 | #if defined(PSEUDO_BIPOLAR_MODE) |
pmallick | 1:8792acb5a039 | 80 | data |= (AD469x_REG_CONFIG_IN_PAIR(AD469x_PSEUDO_BIPOLAR_MODE) |
pmallick | 1:8792acb5a039 | 81 | | AD469x_REG_CONFIG_IN_MODE(AD469x_INx_COM)); |
pmallick | 1:8792acb5a039 | 82 | #else |
pmallick | 1:8792acb5a039 | 83 | data |= (AD469x_REG_CONFIG_IN_PAIR(AD469x_UNIPOLAR_MODE) |
pmallick | 1:8792acb5a039 | 84 | | AD469x_REG_CONFIG_IN_MODE(AD469x_INx_REF_GND)); |
pmallick | 1:8792acb5a039 | 85 | #endif |
pmallick | 1:8792acb5a039 | 86 | |
pmallick | 1:8792acb5a039 | 87 | if (ad469x_spi_reg_write(device, |
pmallick | 1:8792acb5a039 | 88 | AD469x_REG_CONFIG_IN(i), |
pmallick | 1:8792acb5a039 | 89 | data) != SUCCESS) { |
pmallick | 1:8792acb5a039 | 90 | return FAILURE; |
pmallick | 1:8792acb5a039 | 91 | } |
pmallick | 1:8792acb5a039 | 92 | } |
pmallick | 1:8792acb5a039 | 93 | return SUCCESS; |
pmallick | 1:8792acb5a039 | 94 | } |